diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po
index 3259a2f959..f85b16eccb 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-11-25 04:46+0000\n"
-"PO-Revision-Date: 2021-11-25 05:07\n"
+"POT-Creation-Date: 2021-11-30 21:49+0000\n"
+"PO-Revision-Date: 2021-11-30 21:52\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Language: de_DE\n"
@@ -36,7 +36,7 @@ msgstr "Datum eingeben"
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:594
+#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr "Bestätigen"
@@ -114,99 +114,121 @@ 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:109 stock/models.py:1874
+#: InvenTree/models.py:114
+msgid "Missing file"
+msgstr "Fehlende Datei"
+
+#: InvenTree/models.py:115
+msgid "Missing external link"
+msgstr "Fehlender externer Link"
+
+#: InvenTree/models.py:126 stock/models.py:1874
+#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr "Anhang"
-#: InvenTree/models.py:110
+#: InvenTree/models.py:127
msgid "Select file to attach"
msgstr "Datei zum Anhängen auswählen"
-#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
+#: InvenTree/models.py:133 company/models.py:131 company/models.py:348
+#: company/models.py:564 order/models.py:163 part/models.py:797
+#: report/templates/report/inventree_build_order_base.html:165
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
+msgid "Link"
+msgstr "Link"
+
+#: InvenTree/models.py:134 build/models.py:330 part/models.py:798
+#: stock/models.py:540
+msgid "Link to external URL"
+msgstr "Link zu einer externen URL"
+
+#: InvenTree/models.py:137 templates/js/translated/attachment.js:161
msgid "Comment"
msgstr "Kommentar"
-#: InvenTree/models.py:112
+#: InvenTree/models.py:137
msgid "File comment"
msgstr "Datei-Kommentar"
-#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185
#: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:2054
+#: report/templates/report/inventree_test_report_base.html:96
+#: templates/js/translated/stock.js:2084
msgid "User"
msgstr "Benutzer"
-#: InvenTree/models.py:122
+#: InvenTree/models.py:147
msgid "upload date"
msgstr "Hochladedatum"
-#: InvenTree/models.py:142
+#: InvenTree/models.py:170
msgid "Filename must not be empty"
msgstr "Dateiname darf nicht leer sein"
-#: InvenTree/models.py:165
+#: InvenTree/models.py:193
msgid "Invalid attachment directory"
msgstr "Ungültiges Verzeichnis für Anhang"
-#: InvenTree/models.py:175
+#: InvenTree/models.py:203
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Dateiname enthält ungültiges Zeichen '{c}'"
-#: InvenTree/models.py:178
+#: InvenTree/models.py:206
msgid "Filename missing extension"
msgstr "Dateiendung fehlt"
-#: InvenTree/models.py:185
+#: InvenTree/models.py:213
msgid "Attachment with this filename already exists"
msgstr "Anhang mit diesem Dateinamen bereits vorhanden"
-#: InvenTree/models.py:192
+#: InvenTree/models.py:220
msgid "Error renaming file"
msgstr "Fehler beim Umbenennen"
-#: InvenTree/models.py:227
+#: InvenTree/models.py:255
msgid "Invalid choice"
msgstr "Ungültige Auswahl"
-#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: InvenTree/models.py:271 InvenTree/models.py:272 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
#: part/templates/part/detail.html:25 report/models.py:181
#: templates/InvenTree/settings/settings.html:259
#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
-#: templates/js/translated/stock.js:1847
+#: templates/js/translated/stock.js:1877
msgid "Name"
msgstr "Name"
-#: InvenTree/models.py:250 build/models.py:207
+#: InvenTree/models.py:278 build/models.py:207
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:80
#: company/templates/company/supplier_part.html:81 label/models.py:119
#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:551 report/models.py:590
+#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
#: templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
-#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/order.js:855 templates/js/translated/order.js:1091
#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
-#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
-#: templates/js/translated/stock.js:1904
+#: templates/js/translated/stock.js:1151 templates/js/translated/stock.js:1889
+#: templates/js/translated/stock.js:1934
msgid "Description"
msgstr "Beschreibung"
-#: InvenTree/models.py:251
+#: InvenTree/models.py:279
msgid "Description (optional)"
msgstr "Beschreibung (optional)"
-#: InvenTree/models.py:259
+#: InvenTree/models.py:287
msgid "parent"
msgstr "Eltern"
@@ -214,87 +236,87 @@ msgstr "Eltern"
msgid "Must be a valid number"
msgstr "Muss eine gültige Nummer sein"
-#: InvenTree/serializers.py:251
+#: InvenTree/serializers.py:285
msgid "Filename"
msgstr "Dateiname"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:670
msgid "German"
msgstr "Deutsch"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:671
msgid "Greek"
msgstr "Griechisch"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:672
msgid "English"
msgstr "Englisch"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:673
msgid "Spanish"
msgstr "Spanisch"
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:674
msgid "Spanish (Mexican)"
msgstr "Spanisch (Mexikanisch)"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:675
msgid "French"
msgstr "Französisch"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:676
msgid "Hebrew"
msgstr "Hebräisch"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr "Italienisch"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr "Japanisch"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr "Koreanisch"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr "Niederländisch"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr "Norwegisch"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr "Polnisch"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:683
msgid "Portugese"
msgstr "Portugiesisch"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:684
msgid "Russian"
msgstr "Russisch"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:685
msgid "Swedish"
msgstr "Schwedisch"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:686
msgid "Thai"
msgstr "Thailändisch"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:687
msgid "Turkish"
msgstr "Türkisch"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:688
msgid "Vietnamese"
msgstr "Vietnamesisch"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:689
msgid "Chinese"
msgstr "Chinesisch"
@@ -479,27 +501,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:536
+#: InvenTree/views.py:538
msgid "Delete Item"
msgstr "Element löschen"
-#: InvenTree/views.py:585
+#: InvenTree/views.py:587
msgid "Check box to confirm item deletion"
msgstr "Häkchen setzen um Löschung von Objekt zu bestätigen"
-#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
+#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21
msgid "Edit User Information"
msgstr "Benutzerinformationen bearbeiten"
-#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
+#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr "Passwort eingeben"
-#: InvenTree/views.py:630
+#: InvenTree/views.py:632
msgid "Password fields must match"
msgstr "Passwörter stimmen nicht überein"
-#: InvenTree/views.py:863 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:101
msgid "System Information"
msgstr "Systeminformationen"
@@ -552,12 +574,13 @@ msgstr "Barcode Lagerartikel zugeordnet"
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
+#: part/templates/part/detail.html:1076 part/templates/part/detail.html:1162
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:77
+#: report/templates/report/inventree_test_report_base.html:81
+#: report/templates/report/inventree_test_report_base.html:139
#: stock/forms.py:156 stock/serializers.py:286
#: stock/templates/stock/item_base.html:256
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
@@ -565,12 +588,12 @@ msgstr "Barcode Lagerartikel zugeordnet"
#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
-#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
-#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/order.js:892 templates/js/translated/order.js:1205
+#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290
+#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479
#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
-#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
-#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377
+#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171
msgid "Quantity"
msgstr "Anzahl"
@@ -579,8 +602,8 @@ msgid "Enter quantity for build output"
msgstr "Menge der Endprodukte angeben"
#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:307 templates/js/translated/stock.js:194
-#: templates/js/translated/stock.js:348
+#: stock/serializers.py:307 templates/js/translated/stock.js:224
+#: templates/js/translated/stock.js:378
msgid "Serial Numbers"
msgstr "Seriennummer"
@@ -639,7 +662,7 @@ msgstr "Bauauftragsreferenz"
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
+#: templates/js/translated/order.js:886 templates/js/translated/order.js:1473
msgid "Reference"
msgstr "Referenz"
@@ -677,10 +700,10 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/order.js:840 templates/js/translated/order.js:1457
#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
-#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
-#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508
+#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159
msgid "Part"
msgstr "Teil"
@@ -745,7 +768,7 @@ msgid "Batch code for this build output"
msgstr "Losnummer für dieses Endprodukt"
#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1104
msgid "Creation Date"
msgstr "Erstelldatum"
@@ -779,7 +802,7 @@ msgstr "Nutzer der diesen Bauauftrag erstellt hat"
#: order/templates/order/order_base.html:154
#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680
+#: templates/js/translated/build.js:1680 templates/js/translated/order.js:700
msgid "Responsible"
msgstr "Verantwortlicher Benutzer"
@@ -795,27 +818,21 @@ msgstr "Nutzer der für diesen Bauauftrag zuständig ist"
msgid "External Link"
msgstr "Externer Link"
-#: build/models.py:330 part/models.py:798 stock/models.py:540
-msgid "Link to external URL"
-msgstr "Link zu einer externen URL"
-
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:183 order/models.py:738
-#: order/templates/order/po_navbar.html:38
-#: order/templates/order/po_navbar.html:41
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:11 part/models.py:925
#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: stock/serializers.py:583 stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
-#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
-#: templates/js/translated/stock.js:1340
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:985
+#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1370
msgid "Notes"
msgstr "Notizen"
@@ -876,8 +893,8 @@ msgstr "Bauauftrag starten um Teile zuzuweisen"
#: stock/templates/stock/item_base.html:340
#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
-#: templates/js/translated/stock.js:1990
+#: templates/js/translated/order.js:1178 templates/js/translated/order.js:1183
+#: templates/js/translated/stock.js:2020
msgid "Stock Item"
msgstr "Lagerartikel"
@@ -903,50 +920,50 @@ msgstr "Endprodukt"
#: build/serializers.py:146
msgid "Build output does not match the parent build"
-msgstr ""
+msgstr "Endprodukt stimmt nicht mit übergeordnetem Bauauftrag überein"
#: build/serializers.py:150
msgid "Output part does not match BuildOrder part"
-msgstr ""
+msgstr "Endprodukt entspricht nicht dem Teil des Bauauftrags"
#: build/serializers.py:154
msgid "This build output has already been completed"
-msgstr ""
+msgstr "Dieses Endprodukt wurde bereits fertiggestellt"
#: build/serializers.py:158
msgid "This build output is not fully allocated"
-msgstr ""
+msgstr "Dieses Endprodukt ist nicht vollständig zugewiesen"
-#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
-#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: build/serializers.py:190 order/serializers.py:219 order/serializers.py:287
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685
#: stock/templates/stock/item_base.html:286
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
-#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
-#: templates/js/translated/stock.js:1931
+#: templates/js/translated/order.js:1190 templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251
+#: templates/js/translated/stock.js:1961
msgid "Location"
msgstr "Lagerort"
#: build/serializers.py:191
msgid "Location for completed build outputs"
-msgstr ""
+msgstr "Lagerort für fertige Endprodukte"
#: build/serializers.py:197 build/templates/build/build_base.html:129
#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: order/serializers.py:240 stock/templates/stock/item_base.html:409
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
-#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
-#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+#: templates/js/translated/order.js:1096 templates/js/translated/stock.js:1226
+#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187
msgid "Status"
msgstr "Status"
#: build/serializers.py:213
msgid "A list of build outputs must be provided"
-msgstr ""
+msgstr "Eine Liste von Endprodukten muss angegeben werden"
#: build/serializers.py:259 build/serializers.py:308 part/models.py:2700
#: part/models.py:2859
@@ -959,17 +976,17 @@ msgstr "Endprodukt"
#: build/serializers.py:278
msgid "Build output must point to the same build"
-msgstr ""
+msgstr "Endprodukt muss auf den gleichen Bauauftrag verweisen"
#: build/serializers.py:319
msgid "bom_item.part must point to the same part as the build order"
-msgstr ""
+msgstr "bom_item.part muss auf dasselbe Teil verweisen wie der Bauauftrag"
#: build/serializers.py:334
msgid "Item must be in stock"
msgstr "Teil muss auf Lager sein"
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:233
#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
msgid "Quantity must be greater than zero"
msgstr "Anzahl muss größer Null sein"
@@ -981,15 +998,15 @@ msgstr "Verfügbare Menge ({q}) überschritten"
#: build/serializers.py:396
msgid "Build output must be specified for allocation of tracked parts"
-msgstr ""
+msgstr "Für Zuweisung von verfolgten Teilen muss ein Endprodukt angegeben sein"
#: build/serializers.py:403
msgid "Build output cannot be specified for allocation of untracked parts"
-msgstr ""
+msgstr "Endprodukt kann bei Zuweisung nicht-verfolgter Teile nicht angegeben werden"
#: build/serializers.py:431
msgid "Allocation items must be provided"
-msgstr ""
+msgstr "Zuweisungen müssen angegeben werden"
#: build/tasks.py:92
msgid "Stock required for build order"
@@ -1060,7 +1077,7 @@ msgstr "Bestand wurde Bauauftrag noch nicht vollständig zugewiesen"
#: order/templates/order/sales_order_base.html:140
#: report/templates/report/inventree_build_order_base.html:126
#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
-#: templates/js/translated/order.js:1087
+#: templates/js/translated/order.js:1109
msgid "Target Date"
msgstr "Zieldatum"
@@ -1096,7 +1113,7 @@ msgstr "Fertig"
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/order.js:1029
+#: templates/js/translated/order.js:1051
msgid "Sales Order"
msgstr "Auftrag"
@@ -1171,7 +1188,7 @@ msgid "Stock can be taken from any available location."
msgstr "Bestand kann jedem verfügbaren Lagerort entnommen werden."
#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:974
msgid "Destination"
msgstr "Ziel-Lager"
@@ -1185,7 +1202,7 @@ msgstr "Zugewiesene Teile"
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:304
-#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/stock.js:1240 templates/js/translated/stock.js:2194
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:233
msgid "Batch"
@@ -1286,7 +1303,6 @@ msgid "Completed Build Outputs"
msgstr "Fertiggestellte Endprodukte"
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
-#: order/templates/order/po_navbar.html:35
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:52
@@ -1300,7 +1316,7 @@ msgstr "Anhänge"
msgid "Build Notes"
msgstr "Bauauftrags-Notizen"
-#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:453
#: company/templates/company/detail.html:188
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
@@ -1312,45 +1328,11 @@ msgstr "Bauauftrags-Notizen"
msgid "Edit Notes"
msgstr "Anmerkungen bearbeiten"
-#: build/templates/build/detail.html:448
-#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
-#: templates/attachment_button.html:4
-msgid "Add Attachment"
-msgstr "Anhang hinzufügen"
-
-#: build/templates/build/detail.html:467
-#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:142
-#: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
-msgid "Edit Attachment"
-msgstr "Anhang bearbeiten"
-
-#: build/templates/build/detail.html:474
-#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:149
-#: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
-#: templates/js/translated/order.js:1243
-msgid "Confirm Delete Operation"
-msgstr "Löschvorgang bestätigen"
-
-#: build/templates/build/detail.html:475
-#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:150
-#: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
-msgid "Delete Attachment"
-msgstr "Anhang löschen"
-
-#: build/templates/build/detail.html:513
+#: build/templates/build/detail.html:477
msgid "Allocation Complete"
msgstr "Zuordnung abgeschlossen"
-#: build/templates/build/detail.html:514
+#: build/templates/build/detail.html:478
msgid "All untracked stock items have been allocated"
msgstr "Alle nicht verfolgten Lagerartikel wurden zugewiesen"
@@ -1376,15 +1358,15 @@ msgstr "Listen-Ansicht"
#: build/templates/build/sidebar.html:5
msgid "Build Order Details"
-msgstr ""
+msgstr "Bauauftragdetails"
#: build/templates/build/sidebar.html:12
msgid "Pending Items"
-msgstr ""
+msgstr "Ausstehende Einträge"
#: build/templates/build/sidebar.html:15
msgid "Completed Items"
-msgstr ""
+msgstr "Abgeschlossene Elemente"
#: build/views.py:76
msgid "Build was cancelled"
@@ -1466,7 +1448,7 @@ msgstr "Fehler beim Lesen der Datei (falsche Größe)"
msgid "Error reading file (data could be corrupted)"
msgstr "Fehler beim Lesen der Datei (Daten könnten beschädigt sein)"
-#: common/forms.py:34 templates/js/translated/attachment.js:54
+#: common/forms.py:34
msgid "File"
msgstr "Datei"
@@ -1952,7 +1934,7 @@ msgstr "Abonnierte Teile anzeigen"
#: common/models.py:1002
msgid "Show subscribed parts on the homepage"
-msgstr "Abonnierte Teile auf der Startseite anzeigen"
+msgstr "Zeige abonnierte Teile auf der Startseite"
#: common/models.py:1007
msgid "Show subscribed categories"
@@ -1960,7 +1942,7 @@ msgstr "Abonnierte Kategorien anzeigen"
#: common/models.py:1008
msgid "Show subscribed part categories on the homepage"
-msgstr "Abonnierte Teilkategorien auf der Startseite anzeigen"
+msgstr "Zeige abonnierte Teilkategorien auf der Startseite"
#: common/models.py:1013
msgid "Show latest parts"
@@ -1984,7 +1966,7 @@ msgstr "Nicht validierte Stücklisten anzeigen"
#: common/models.py:1027
msgid "Show BOMs that await validation on the homepage"
-msgstr ""
+msgstr "Zeige Stücklisten, die noch nicht validiert sind, auf der Startseite"
#: common/models.py:1032
msgid "Show recent stock changes"
@@ -2016,7 +1998,7 @@ msgstr "Lerren Bestand anzeigen"
#: common/models.py:1051
msgid "Show depleted stock items on the homepage"
-msgstr ""
+msgstr "Zeige aufgebrauchte Lagerartikel auf der Startseite"
#: common/models.py:1056
msgid "Show needed stock"
@@ -2032,7 +2014,7 @@ msgstr "Abgelaufenen Bestand anzeigen"
#: common/models.py:1063
msgid "Show expired stock items on the homepage"
-msgstr "Zeige Abgelaufene Lagerbestände auf der Startseite"
+msgstr "Zeige abgelaufene Lagerbestände auf der Startseite"
#: common/models.py:1068
msgid "Show stale stock"
@@ -2040,7 +2022,7 @@ msgstr "Alten Bestand anzeigen"
#: common/models.py:1069
msgid "Show stale stock items on the homepage"
-msgstr ""
+msgstr "Zeige überfällige Lagerartikel auf der Startseite"
#: common/models.py:1074
msgid "Show pending builds"
@@ -2064,7 +2046,7 @@ msgstr "Ausstehende POs anzeigen"
#: common/models.py:1087
msgid "Show outstanding POs on the homepage"
-msgstr "Ausstehende POs auf der Startseite anzeigen"
+msgstr "Zeige ausstehende POs auf der Startseite"
#: common/models.py:1092
msgid "Show overdue POs"
@@ -2072,7 +2054,7 @@ msgstr "Überfällige POs anzeigen"
#: common/models.py:1093
msgid "Show overdue POs on the homepage"
-msgstr "Überfällige POs auf der Startseite anzeigen"
+msgstr "Zeige überfällige POs auf der Startseite"
#: common/models.py:1098
msgid "Show outstanding SOs"
@@ -2080,7 +2062,7 @@ msgstr "Ausstehende SOs anzeigen"
#: common/models.py:1099
msgid "Show outstanding SOs on the homepage"
-msgstr "Ausstehende SOs auf der Startseite anzeigen"
+msgstr "Zeige ausstehende SOs auf der Startseite"
#: common/models.py:1104
msgid "Show overdue SOs"
@@ -2088,7 +2070,7 @@ msgstr "Überfällige SOs anzeigen"
#: common/models.py:1105
msgid "Show overdue SOs on the homepage"
-msgstr "Überfällige SOs auf der Startseite anzeigen"
+msgstr "Zeige überfällige SOs auf der Startseite"
#: common/models.py:1111
msgid "Inline label display"
@@ -2168,13 +2150,11 @@ msgstr "Preis"
msgid "Unit price at specified quantity"
msgstr "Stückpreis für die angegebene Anzahl"
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
-#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
-#: part/views.py:854
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
+#: part/views.py:858
msgid "Upload File"
msgstr "Datei hochgeladen"
@@ -2182,7 +2162,7 @@ msgstr "Datei hochgeladen"
#: 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:213
-#: part/views.py:855
+#: part/views.py:859
msgid "Match Fields"
msgstr "Übereinstimmende Felder"
@@ -2200,13 +2180,13 @@ msgstr "Teile importiert"
#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:40
+#: order/templates/order/order_wizard/po_upload.html:47
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:43
+#: part/templates/part/import_wizard/part_upload.html:45
msgid "Previous Step"
msgstr "Vorheriger Schritt"
@@ -2252,7 +2232,7 @@ msgid "Contact phone number"
msgstr "Kontakt-Telefon"
#: company/models.py:125 company/templates/company/company_base.html:102
-#: templates/InvenTree/settings/user.html:46
+#: templates/InvenTree/settings/user.html:47
msgid "Email"
msgstr "Email"
@@ -2268,14 +2248,6 @@ msgstr "Kontakt"
msgid "Point of contact"
msgstr "Anlaufstelle"
-#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:163 part/models.py:797
-#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:537
-#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
-msgid "Link"
-msgstr "Link"
-
#: company/models.py:131
msgid "Link to external company information"
msgstr "Link auf externe Firmeninformation"
@@ -2343,7 +2315,7 @@ msgstr "Hersteller auswählen"
#: company/models.py:342 company/templates/company/manufacturer_part.html:97
#: company/templates/company/supplier_part.html:112
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:874
#: templates/js/translated/part.js:240
msgid "MPN"
msgstr "MPN"
@@ -2372,9 +2344,9 @@ msgid "Parameter name"
msgstr "Parametername"
#: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:90
+#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:1867 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878
msgid "Value"
msgstr "Wert"
@@ -2413,7 +2385,7 @@ msgid "Select supplier"
msgstr "Zulieferer auswählen"
#: company/models.py:551 company/templates/company/supplier_part.html:98
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:861
#: templates/js/translated/part.js:221
msgid "SKU"
msgstr "SKU (Lagerbestandseinheit)"
@@ -2450,7 +2422,7 @@ msgstr "Mindestpreis"
#: company/models.py:582 company/templates/company/supplier_part.html:119
#: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1366
msgid "Packaging"
msgstr "Verpackungen"
@@ -2515,8 +2487,8 @@ msgstr "Telefon"
#: company/templates/company/company_base.html:126 order/models.py:567
#: order/templates/order/sales_order_base.html:114 stock/models.py:525
#: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
-#: templates/js/translated/stock.js:1972
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1073
+#: templates/js/translated/stock.js:2002
msgid "Customer"
msgstr "Kunde"
@@ -2721,7 +2693,7 @@ msgid "Delete parameters"
msgstr "Parameter löschen"
#: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:974
+#: part/templates/part/detail.html:976
msgid "Add Parameter"
msgstr "Parameter hinzufügen"
@@ -2735,24 +2707,24 @@ msgstr "Parameter löschen"
#: company/templates/company/sidebar.html:6
msgid "Manufactured Parts"
-msgstr ""
+msgstr "Hergestellte Teile"
#: company/templates/company/sidebar.html:10
msgid "Supplied Parts"
-msgstr ""
+msgstr "Zuliefererteile"
#: company/templates/company/sidebar.html:16
msgid "Supplied Stock Items"
-msgstr ""
+msgstr "Zugelieferte Lagerartikel"
#: company/templates/company/sidebar.html:22
msgid "Assigned Stock Items"
-msgstr ""
+msgstr "Zugewiesene Lagerartikel"
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:492
#: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1323
msgid "Supplier Part"
msgstr "Zuliefererteil"
@@ -2778,7 +2750,7 @@ msgstr "Neuen Lagerartikel hinzufügen"
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
-#: templates/js/translated/stock.js:324
+#: templates/js/translated/stock.js:354
msgid "New Stock Item"
msgstr "Neuer Lagerartikel"
@@ -2799,7 +2771,7 @@ msgstr "Preisinformationen ansehen"
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1713
+#: part/templates/part/prices.html:271 part/views.py:1717
msgid "Add Price Break"
msgstr "Preisstaffel hinzufügen"
@@ -2807,11 +2779,11 @@ msgstr "Preisstaffel hinzufügen"
msgid "No price break information found"
msgstr "Keine Informationen zur Preisstaffel gefunden"
-#: company/templates/company/supplier_part.html:224 part/views.py:1775
+#: company/templates/company/supplier_part.html:224 part/views.py:1779
msgid "Delete Price Break"
msgstr "Preisstaffel löschen"
-#: company/templates/company/supplier_part.html:238 part/views.py:1761
+#: company/templates/company/supplier_part.html:238 part/views.py:1765
msgid "Edit Price Break"
msgstr "Preisstaffel bearbeiten"
@@ -2831,8 +2803,8 @@ msgstr "Preisstaffel löschen"
#: templates/InvenTree/settings/sidebar.html:40
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
-#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
-#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:509
+#: templates/js/translated/stock.js:1162 templates/navbar.html:26
msgid "Stock"
msgstr "Bestand"
@@ -2855,7 +2827,7 @@ msgstr "Bepreisung"
#: stock/templates/stock/location.html:132
#: stock/templates/stock/location.html:144
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1901
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr "Lagerartikel"
@@ -2885,24 +2857,24 @@ msgstr "Firmen"
msgid "New Company"
msgstr "Neue Firma"
-#: company/views.py:129 part/views.py:580
+#: company/views.py:129 part/views.py:584
msgid "Download Image"
msgstr "Bild herunterladen"
-#: company/views.py:158 part/views.py:612
+#: company/views.py:158 part/views.py:616
msgid "Image size exceeds maximum allowable size for download"
msgstr "Bildgröße überschreitet maximal-erlaubte Größe für Downloads"
-#: company/views.py:165 part/views.py:619
+#: company/views.py:165 part/views.py:623
#, python-brace-format
msgid "Invalid response: {code}"
msgstr "Ungültige Antwort {code}"
-#: company/views.py:174 part/views.py:628
+#: company/views.py:174 part/views.py:632
msgid "Supplied URL is not a valid image file"
msgstr "Angegebene URL ist kein gültiges Bild"
-#: label/api.py:57 report/api.py:201
+#: label/api.py:57 report/api.py:203
msgid "No valid objects provided to template"
msgstr "Keine korrekten Objekte für Vorlage gegeben"
@@ -2959,7 +2931,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
msgstr "Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
#: label/models.py:259 label/models.py:319 label/models.py:366
-#: report/models.py:322 report/models.py:457 report/models.py:495
+#: report/models.py:322 report/models.py:459 report/models.py:497
msgid "Filters"
msgstr "Filter"
@@ -3089,7 +3061,7 @@ msgstr "Bestellreferenz"
msgid "Target date for order completion. Order will be overdue after this date."
msgstr "Zieldatum für Auftrags-Fertigstellung."
-#: order/models.py:582 templates/js/translated/order.js:1092
+#: order/models.py:582 templates/js/translated/order.js:1114
msgid "Shipment Date"
msgstr "Versanddatum"
@@ -3114,7 +3086,7 @@ msgid "Line item notes"
msgstr "Position - Notizen"
#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1144
+#: templates/js/translated/order.js:1166
msgid "Order"
msgstr "Bestellung"
@@ -3122,8 +3094,8 @@ msgstr "Bestellung"
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:325
-#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1300
+#: templates/js/translated/stock.js:1983
msgid "Purchase Order"
msgstr "Bestellung"
@@ -3133,7 +3105,7 @@ msgstr "Zuliefererteil"
#: order/models.py:797 order/templates/order/order_base.html:147
#: order/templates/order/sales_order_base.html:154
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:954
msgid "Received"
msgstr "Empfangen"
@@ -3143,7 +3115,7 @@ msgstr "Empfangene Objekt-Anzahl"
#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1324
+#: templates/js/translated/stock.js:1354
msgid "Purchase Price"
msgstr "Preis"
@@ -3204,47 +3176,47 @@ msgstr "Lagerartikel für Zuordnung auswählen"
msgid "Enter stock allocation quantity"
msgstr "Anzahl für Bestandszuordnung eingeben"
-#: order/serializers.py:167
+#: order/serializers.py:169
msgid "Purchase price currency"
msgstr "Kaufpreiswährung"
-#: order/serializers.py:202
+#: order/serializers.py:204
msgid "Line Item"
msgstr "Position"
-#: order/serializers.py:208
+#: order/serializers.py:210
msgid "Line item does not match purchase order"
msgstr "Position stimmt nicht mit Kaufauftrag überein"
-#: order/serializers.py:218 order/serializers.py:286
+#: order/serializers.py:220 order/serializers.py:288
msgid "Select destination location for received items"
msgstr "Zielort für empfangene Teile auswählen"
-#: order/serializers.py:242
+#: order/serializers.py:244
msgid "Barcode Hash"
msgstr "Barcode-Hash"
-#: order/serializers.py:243
+#: order/serializers.py:245
msgid "Unique identifier field"
msgstr "Einzigartiger Identifikator"
-#: order/serializers.py:260
+#: order/serializers.py:262
msgid "Barcode is already in use"
msgstr "Barcode ist bereits in Verwendung"
-#: order/serializers.py:298
+#: order/serializers.py:300
msgid "Line items must be provided"
msgstr "Positionen müssen angegeben werden"
-#: order/serializers.py:315
+#: order/serializers.py:317
msgid "Destination location must be specified"
msgstr "Ziel-Lagerort muss angegeben werden"
-#: order/serializers.py:326
+#: order/serializers.py:328
msgid "Supplied barcode values must be unique"
msgstr "Barcode muss eindeutig sein"
-#: order/serializers.py:568
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr "Verkaufspreis-Währung"
@@ -3390,19 +3362,23 @@ msgstr "Zeile"
msgid "Select Supplier Part"
msgstr "Zulieferer-Teil auswählen"
-#: order/templates/order/order_wizard/po_upload.html:11
+#: order/templates/order/order_wizard/po_upload.html:8
+msgid "Return to Orders"
+msgstr "Zurück zu Bestellungen"
+
+#: order/templates/order/order_wizard/po_upload.html:17
msgid "Upload File for Purchase Order"
msgstr "Datei zur Bestellung hochladen"
-#: order/templates/order/order_wizard/po_upload.html:18
+#: order/templates/order/order_wizard/po_upload.html:25
#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:21
+#: part/templates/part/import_wizard/part_upload.html:23
#, python-format
msgid "Step %(step)s of %(count)s"
msgstr "Schritt %(step)s von %(count)s"
-#: order/templates/order/order_wizard/po_upload.html:48
+#: order/templates/order/order_wizard/po_upload.html:55
msgid "Order is already processed. Files cannot be uploaded."
msgstr "Bestellung ist bereits verarbeitet. Dateien können nicht hochgeladen werden."
@@ -3445,7 +3421,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:695 templates/js/translated/order.js:1097
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1119
msgid "Items"
msgstr "Positionen"
@@ -3463,31 +3439,6 @@ msgstr "Neue Bestellung für %(name)s anlegen"
msgid "Select a purchase order for %(name)s"
msgstr "Bestellung für %(name)s auswählen"
-#: order/templates/order/po_attachments.html:12
-#: order/templates/order/po_navbar.html:32
-msgid "Purchase Order Attachments"
-msgstr "Bestellungs-Anhänge"
-
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr "Bestellungs-Details"
-
-#: order/templates/order/po_navbar.html:15
-#: part/templates/part/part_sidebar.html:8
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr "Details"
-
-#: order/templates/order/po_navbar.html:26
-msgid "Received Stock Items"
-msgstr "Lagerartikel empfangen"
-
-#: order/templates/order/po_navbar.html:29
-#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr "Empfangene Teile"
-
#: order/templates/order/po_sidebar.html:5
#: order/templates/order/so_sidebar.html:5
#: report/templates/report/inventree_po_report.html:85
@@ -3497,16 +3448,16 @@ msgstr "Positionen"
#: order/templates/order/po_sidebar.html:7
msgid "Received Stock"
-msgstr ""
+msgstr "Empfangene Lagerartikel"
#: order/templates/order/purchase_order_detail.html:18
msgid "Purchase Order Items"
msgstr "Bestellungs-Positionen"
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:216
+#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:191
+#: order/templates/order/sales_order_detail.html:157
msgid "Add Line Item"
msgstr "Position hinzufügen"
@@ -3518,6 +3469,10 @@ msgstr "Ausgewählte Positionen erhalten"
msgid "Receive Items"
msgstr "Teile empfangen"
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr "Empfangene Teile"
+
#: order/templates/order/purchase_order_detail.html:76
#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
@@ -3546,7 +3501,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr "Dieser Auftrag ist nicht vollständig zugeordnet"
#: order/templates/order/sales_order_base.html:121
-#: templates/js/translated/order.js:1064
+#: templates/js/translated/order.js:1086
msgid "Customer Reference"
msgstr "Kundenreferenz"
@@ -3700,19 +3655,19 @@ msgstr "Stückpreis für {part} auf {price} aktualisiert"
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:731
+#: part/api.py:758
msgid "Must be greater than zero"
msgstr "Muss größer als 0 sein"
-#: part/api.py:735
+#: part/api.py:762
msgid "Must be a valid quantity"
msgstr "Muss eine gültige Nummer sein"
-#: part/api.py:750
+#: part/api.py:777
msgid "Specify location for initial part stock"
msgstr "Standort für anfänglichen Bestand angeben"
-#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
+#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
msgid "This field is required"
msgstr "Dieses Feld ist erforderlich"
@@ -3926,7 +3881,7 @@ msgstr "Teile-Kategorie"
#: part/models.py:784 part/templates/part/detail.html:45
#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
-#: templates/js/translated/stock.js:1104
+#: templates/js/translated/stock.js:1134
msgid "IPN"
msgstr "IPN (Interne Produktnummer)"
@@ -4047,7 +4002,7 @@ 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:2310 templates/js/translated/part.js:1467
-#: templates/js/translated/stock.js:828
+#: templates/js/translated/stock.js:858
msgid "Test Name"
msgstr "Test-Name"
@@ -4276,7 +4231,7 @@ msgstr "Teil auswählen"
#: part/templates/part/bom_upload/upload_file.html:8
msgid "Return to BOM"
-msgstr ""
+msgstr "Zurück zur Stückliste"
#: part/templates/part/bom_upload/upload_file.html:13
msgid "Upload Bill of Materials"
@@ -4445,7 +4400,7 @@ msgstr "Wenn diese Kat. gelöscht wird, werden diese Teile in die oberste Kat. v
#: part/templates/part/category_sidebar.html:13
msgid "Import Parts"
-msgstr ""
+msgstr "Teile importieren"
#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
msgid "Duplicate Part"
@@ -4552,7 +4507,7 @@ msgstr "Stückliste hochladen"
msgid "Copy BOM"
msgstr "Stückliste kopieren"
-#: part/templates/part/detail.html:365 part/views.py:751
+#: part/templates/part/detail.html:365 part/views.py:755
msgid "Validate BOM"
msgstr "Stückliste überprüfen"
@@ -4604,44 +4559,48 @@ msgstr "Stücklisten-Position anlegen"
msgid "Related Part"
msgstr "verknüpftes Teil"
-#: part/templates/part/detail.html:770
+#: part/templates/part/detail.html:772
msgid "Add Related Part"
msgstr "verknüpftes Teil hinzufügen"
-#: part/templates/part/detail.html:867
+#: part/templates/part/detail.html:869
msgid "Add Test Result Template"
msgstr "Testergebnis-Vorlage hinzufügen"
-#: part/templates/part/detail.html:924
+#: part/templates/part/detail.html:926
msgid "Edit Part Notes"
msgstr "Teilenotizen bearbeiten"
-#: part/templates/part/detail.html:1076
+#: part/templates/part/detail.html:1039
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr "Stückpreis Einkauf - %(currency)s"
-#: part/templates/part/detail.html:1088
+#: part/templates/part/detail.html:1051
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr "Stückpreis Differenz - %(currency)s"
-#: part/templates/part/detail.html:1100
+#: part/templates/part/detail.html:1063
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr "Stückpreis Zulieferer - %(currency)s"
-#: part/templates/part/detail.html:1189
+#: part/templates/part/detail.html:1152
#, python-format
msgid "Unit Price - %(currency)s"
msgstr "Stückpreis - %(currency)s"
#: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:51
+#: part/templates/part/import_wizard/part_upload.html:53
msgid "Unsuffitient privileges."
msgstr "Unzureichende Benutzerrechte."
-#: part/templates/part/import_wizard/part_upload.html:14
+#: part/templates/part/import_wizard/part_upload.html:8
+msgid "Return to Parts"
+msgstr "Zurück zu Teilen"
+
+#: part/templates/part/import_wizard/part_upload.html:16
msgid "Import Parts from File"
msgstr "Teile aus Datei importieren"
@@ -4751,7 +4710,7 @@ msgstr "Inaktiv"
msgid "This part is a variant of %(link)s"
msgstr "Dieses Teil ist eine Variante von %(link)s"
-#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1546
#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr "Auf Lager"
@@ -4846,17 +4805,22 @@ msgstr "Interner Preis"
msgid "No pricing information is available for this part."
msgstr "Keine Preise für dieses Teil verfügbar"
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1949
+msgid "Details"
+msgstr "Details"
+
#: part/templates/part/part_sidebar.html:13
msgid "Variants"
-msgstr ""
+msgstr "Varianten"
#: part/templates/part/part_sidebar.html:27
msgid "Used In"
-msgstr ""
+msgstr "Benutzt in"
#: part/templates/part/part_sidebar.html:43
msgid "Test Templates"
-msgstr ""
+msgstr "Testvorlagen"
#: part/templates/part/part_thumb.html:11
msgid "Select from existing images"
@@ -4951,7 +4915,7 @@ msgstr "Für dieses Teil sind keine Bestandspreise verfügbar."
msgid "Internal Cost"
msgstr "Interne Kosten"
-#: part/templates/part/prices.html:215 part/views.py:1784
+#: part/templates/part/prices.html:215 part/views.py:1788
msgid "Add Internal Price Break"
msgstr "Interne Preisspanne hinzufügen"
@@ -5007,110 +4971,115 @@ msgstr "Kategorie für {n} Teile setzen"
msgid "Match References"
msgstr "Referenzen zuteilen"
-#: part/views.py:498
+#: part/views.py:502
msgid "None"
msgstr "Kein(e)"
-#: part/views.py:557
+#: part/views.py:561
msgid "Part QR Code"
msgstr "Teil-QR-Code"
-#: part/views.py:659
+#: part/views.py:663
msgid "Select Part Image"
msgstr "Teilbild auswählen"
-#: part/views.py:685
+#: part/views.py:689
msgid "Updated part image"
msgstr "Teilbild aktualisiert"
-#: part/views.py:688
+#: part/views.py:692
msgid "Part image not found"
msgstr "Teilbild nicht gefunden"
-#: part/views.py:700
+#: part/views.py:704
msgid "Duplicate BOM"
msgstr "Stückliste duplizieren"
-#: part/views.py:730
+#: part/views.py:734
msgid "Confirm duplication of BOM from parent"
msgstr "bestätige Duplizierung Stückliste von übergeordneter Stückliste"
-#: part/views.py:772
+#: part/views.py:776
msgid "Confirm that the BOM is valid"
msgstr "Bestätigen, dass Stückliste korrekt ist"
-#: part/views.py:783
+#: part/views.py:787
msgid "Validated Bill of Materials"
msgstr "überprüfte Stückliste"
-#: part/views.py:856
+#: part/views.py:860
msgid "Match Parts"
msgstr "Teile zuordnen"
-#: part/views.py:1192
+#: part/views.py:1196
msgid "Export Bill of Materials"
msgstr "Stückliste exportieren"
-#: part/views.py:1244
+#: part/views.py:1248
msgid "Confirm Part Deletion"
msgstr "Löschen des Teils bestätigen"
-#: part/views.py:1251
+#: part/views.py:1255
msgid "Part was deleted"
msgstr "Teil wurde gelöscht"
-#: part/views.py:1260
+#: part/views.py:1264
msgid "Part Pricing"
msgstr "Teilbepreisung"
-#: part/views.py:1409
+#: part/views.py:1413
msgid "Create Part Parameter Template"
msgstr "Teilparametervorlage anlegen"
-#: part/views.py:1419
+#: part/views.py:1423
msgid "Edit Part Parameter Template"
msgstr "Teilparametervorlage bearbeiten"
-#: part/views.py:1426
+#: part/views.py:1430
msgid "Delete Part Parameter Template"
msgstr "Teilparametervorlage löschen"
-#: part/views.py:1485 templates/js/translated/part.js:310
+#: part/views.py:1489 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr "Teil-Kategorie bearbeiten"
-#: part/views.py:1523
+#: part/views.py:1527
msgid "Delete Part Category"
msgstr "Teil-Kategorie löschen"
-#: part/views.py:1529
+#: part/views.py:1533
msgid "Part category was deleted"
msgstr "Teil-Kategorie wurde gelöscht"
-#: part/views.py:1538
+#: part/views.py:1542
msgid "Create Category Parameter Template"
msgstr "Kategorieparametervorlage anlegen"
-#: part/views.py:1639
+#: part/views.py:1643
msgid "Edit Category Parameter Template"
msgstr "Kategorieparametervorlage bearbeiten"
-#: part/views.py:1695
+#: part/views.py:1699
msgid "Delete Category Parameter Template"
msgstr "Kategorieparametervorlage löschen"
-#: part/views.py:1717
+#: part/views.py:1721
msgid "Added new price break"
msgstr "neue Preisstaffel hinzufügt"
-#: part/views.py:1793
+#: part/views.py:1797
msgid "Edit Internal Price Break"
msgstr "Interne Preisspanne bearbeiten"
-#: part/views.py:1801
+#: part/views.py:1805
msgid "Delete Internal Price Break"
msgstr "Interne Preisspanne löschen"
+#: report/api.py:234 report/api.py:278
+#, python-brace-format
+msgid "Template file '{filename}' is missing or does not exist"
+msgstr "Vorlagendatei '{filename}' fehlt oder existiert nicht"
+
#: report/models.py:182
msgid "Template name"
msgstr "Vorlagen Name"
@@ -5147,51 +5116,51 @@ msgstr "einfügen Installiert in Tests"
msgid "Include test results for stock items installed inside assembled item"
msgstr "Test-Ergebnisse für Lagerartikel in Baugruppen einschließen"
-#: report/models.py:380
+#: report/models.py:382
msgid "Build Filters"
msgstr "Bauauftrag Filter"
-#: report/models.py:381
+#: report/models.py:383
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr "Bau-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
-#: report/models.py:423
+#: report/models.py:425
msgid "Part Filters"
msgstr "Teil Filter"
-#: report/models.py:424
+#: report/models.py:426
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr "Teile-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
-#: report/models.py:458
+#: report/models.py:460
msgid "Purchase order query filters"
msgstr "Bestellungs-Abfragefilter"
-#: report/models.py:496
+#: report/models.py:498
msgid "Sales order query filters"
msgstr "Auftrags-Abfragefilter"
-#: report/models.py:546
+#: report/models.py:548
msgid "Snippet"
msgstr "Snippet"
-#: report/models.py:547
+#: report/models.py:549
msgid "Report snippet file"
msgstr "Berichts-Snippet"
-#: report/models.py:551
+#: report/models.py:553
msgid "Snippet file description"
msgstr "Snippet-Beschreibung"
-#: report/models.py:586
+#: report/models.py:588
msgid "Asset"
msgstr "Ressource"
-#: report/models.py:587
+#: report/models.py:589
msgid "Report asset file"
msgstr "Berichts-Ressource"
-#: report/models.py:590
+#: report/models.py:592
msgid "Asset file description"
msgstr "Ressource-Beschreibung"
@@ -5203,49 +5172,59 @@ msgstr "benötigt für"
msgid "Stock Item Test Report"
msgstr "Lagerartikel Test-Bericht"
-#: report/templates/report/inventree_test_report_base.html:75
+#: report/templates/report/inventree_test_report_base.html:79
#: stock/models.py:530 stock/templates/stock/item_base.html:238
#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
#: templates/js/translated/build.js:1013
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+#: templates/js/translated/order.js:1288 templates/js/translated/order.js:1377
msgid "Serial Number"
msgstr "Seriennummer"
-#: report/templates/report/inventree_test_report_base.html:83
+#: report/templates/report/inventree_test_report_base.html:88
msgid "Test Results"
msgstr "Testergebnisse"
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:93
#: stock/models.py:1855
msgid "Test"
msgstr "Test"
-#: report/templates/report/inventree_test_report_base.html:89
+#: report/templates/report/inventree_test_report_base.html:94
#: stock/models.py:1861
msgid "Result"
msgstr "Ergebnis"
-#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917
msgid "Date"
msgstr "Datum"
-#: report/templates/report/inventree_test_report_base.html:103
+#: report/templates/report/inventree_test_report_base.html:108
msgid "Pass"
msgstr "bestanden"
-#: report/templates/report/inventree_test_report_base.html:105
+#: report/templates/report/inventree_test_report_base.html:110
msgid "Fail"
msgstr "fehlgeschlagen"
+#: report/templates/report/inventree_test_report_base.html:123
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr "Verbaute Objekte"
+
+#: report/templates/report/inventree_test_report_base.html:137
+#: templates/js/translated/stock.js:2177
+msgid "Serial"
+msgstr "Seriennummer"
+
#: stock/api.py:422
msgid "Quantity is required"
msgstr "Menge ist erforderlich"
#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
#: stock/templates/stock/item_base.html:382
-#: templates/js/translated/stock.js:1246
+#: templates/js/translated/stock.js:1276
msgid "Expiry Date"
msgstr "Ablaufdatum"
@@ -5507,7 +5486,7 @@ msgstr "Anzahl darf nicht die verfügbare Menge überschreiten ({q})"
msgid "Enter serial numbers for new items"
msgstr "Seriennummern für neue Teile eingeben"
-#: stock/serializers.py:319 stock/serializers.py:687
+#: stock/serializers.py:319 stock/serializers.py:686
msgid "Destination stock location"
msgstr "Ziel-Bestand"
@@ -5519,15 +5498,15 @@ msgstr "Optionales Notizfeld"
msgid "Serial numbers cannot be assigned to this part"
msgstr "Seriennummern können diesem Teil nicht zugewiesen werden"
-#: stock/serializers.py:557
+#: stock/serializers.py:556
msgid "StockItem primary key value"
msgstr "Primärschlüssel Lagerelement"
-#: stock/serializers.py:585
+#: stock/serializers.py:584
msgid "Stock transaction notes"
msgstr "Bestandsbewegungsnotizen"
-#: stock/serializers.py:595
+#: stock/serializers.py:594
msgid "A list of stock items must be provided"
msgstr "Eine Liste der Lagerbestände muss angegeben werden"
@@ -5572,15 +5551,15 @@ msgstr "Installierte Lagerartikel"
msgid "Install Stock Item"
msgstr "Lagerartikel installieren"
-#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
+#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
msgid "Add Test Result"
msgstr "Testergebnis hinzufügen"
-#: stock/templates/stock/item.html:363
+#: stock/templates/stock/item.html:324
msgid "Edit Test Result"
msgstr "Testergebnis bearbeiten"
-#: stock/templates/stock/item.html:377
+#: stock/templates/stock/item.html:338
msgid "Delete Test Result"
msgstr "Testergebnis löschen"
@@ -5754,7 +5733,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr "Dieser Lagerartikel läuft am %(item.expiry_date)s ab"
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:1259
+#: templates/js/translated/stock.js:1289
msgid "Last Updated"
msgstr "Zuletzt aktualisiert"
@@ -5770,7 +5749,7 @@ msgstr "Keine Inventur ausgeführt"
msgid "Tests"
msgstr "Tests"
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:505
msgid "Edit Stock Status"
msgstr "Bestandsstatus bearbeiten"
@@ -5885,15 +5864,11 @@ msgstr "Lade..."
#: stock/templates/stock/stock_sidebar.html:5
msgid "Stock Tracking"
-msgstr ""
-
-#: stock/templates/stock/stock_sidebar.html:12
-msgid "Installed Items"
-msgstr ""
+msgstr "Lagerartikel-Verfolgung"
#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
-msgstr ""
+msgstr "Untergeordnete Objekte"
#: stock/templates/stock/stock_uninstall.html:8
msgid "The following stock items will be uninstalled"
@@ -5969,7 +5944,7 @@ msgstr "Lagerartikel-QR-Code"
msgid "Uninstall Stock Items"
msgstr "Lagerartikel deinstallieren"
-#: stock/views.py:760 templates/js/translated/stock.js:618
+#: stock/views.py:760 templates/js/translated/stock.js:648
msgid "Confirm stock adjustment"
msgstr "Bestands-Anpassung bestätigen"
@@ -5977,7 +5952,7 @@ msgstr "Bestands-Anpassung bestätigen"
msgid "Uninstalled stock items"
msgstr "Lagerartikel deinstalliert"
-#: stock/views.py:793 templates/js/translated/stock.js:288
+#: stock/views.py:793 templates/js/translated/stock.js:318
msgid "Edit Stock Item"
msgstr "Lagerartikel bearbeiten"
@@ -5989,7 +5964,7 @@ msgstr "Neuen Lagerort erstellen"
msgid "Create new Stock Item"
msgstr "Neuen Lagerartikel hinzufügen"
-#: stock/views.py:1186 templates/js/translated/stock.js:268
+#: stock/views.py:1186 templates/js/translated/stock.js:298
msgid "Duplicate Stock Item"
msgstr "Bestand duplizieren"
@@ -6166,11 +6141,11 @@ msgstr "Teil importieren"
msgid "Part Parameter Templates"
msgstr "Teil-Parametervorlage"
-#: templates/InvenTree/settings/po.html:9
+#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr "Bestellungs-Einstellungen"
-#: templates/InvenTree/settings/report.html:10
+#: templates/InvenTree/settings/report.html:8
#: templates/InvenTree/settings/user_reports.html:9
msgid "Report Settings"
msgstr "Berichts-Einstellungen"
@@ -6215,7 +6190,7 @@ msgstr "Keine Teilparametervorlagen gefunden"
#: templates/InvenTree/settings/settings.html:253
msgid "ID"
-msgstr ""
+msgstr "ID"
#: templates/InvenTree/settings/sidebar.html:5
#: templates/InvenTree/settings/user_settings.html:9
@@ -6223,7 +6198,7 @@ msgid "User Settings"
msgstr "Benutzer-Einstellungen"
#: templates/InvenTree/settings/sidebar.html:8
-#: templates/InvenTree/settings/user.html:11
+#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr "Kontoeinstellungen"
@@ -6234,7 +6209,7 @@ msgstr "Anzeigeeinstellungen"
#: templates/InvenTree/settings/sidebar.html:12
msgid "Home Page"
-msgstr ""
+msgstr "Startseite"
#: templates/InvenTree/settings/sidebar.html:14
#: templates/InvenTree/settings/user_search.html:9
@@ -6243,28 +6218,28 @@ msgstr "Sucheinstellungen"
#: templates/InvenTree/settings/sidebar.html:16
msgid "Label Printing"
-msgstr ""
+msgstr "Etikettendruck"
#: templates/InvenTree/settings/sidebar.html:18
#: templates/InvenTree/settings/sidebar.html:34
msgid "Reporting"
-msgstr ""
+msgstr "Berichte"
#: templates/InvenTree/settings/sidebar.html:23
msgid "Global Settings"
-msgstr ""
+msgstr "Allgemeine Einstellungen"
#: templates/InvenTree/settings/sidebar.html:26
msgid "Server Configuration"
-msgstr ""
+msgstr "Serverkonfiguration"
#: templates/InvenTree/settings/sidebar.html:32
msgid "Currencies"
-msgstr ""
+msgstr "Währungen"
#: templates/InvenTree/settings/sidebar.html:38
msgid "Categories"
-msgstr ""
+msgstr "Kategorien"
#: templates/InvenTree/settings/so.html:7
msgid "Sales Order Settings"
@@ -6275,140 +6250,136 @@ msgid "Stock Settings"
msgstr "Bestands-Einstellungen"
#: templates/InvenTree/settings/user.html:18
-#: templates/js/translated/helpers.js:26
-msgid "Edit"
-msgstr "Bearbeiten"
-
-#: templates/InvenTree/settings/user.html:20
#: 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:31
+#: templates/InvenTree/settings/user.html:22
+#: templates/js/translated/helpers.js:26
+msgid "Edit"
+msgstr "Bearbeiten"
+
+#: templates/InvenTree/settings/user.html:32
msgid "Username"
msgstr "Benutzername"
-#: templates/InvenTree/settings/user.html:35
+#: templates/InvenTree/settings/user.html:36
msgid "First Name"
msgstr "Vorname"
-#: templates/InvenTree/settings/user.html:39
+#: templates/InvenTree/settings/user.html:40
msgid "Last Name"
msgstr "Nachname"
-#: templates/InvenTree/settings/user.html:54
+#: templates/InvenTree/settings/user.html:55
msgid "The following email addresses are associated with your account:"
msgstr "Die folgenden E-Mail-Adressen sind mit deinem Konto verknüpft:"
-#: templates/InvenTree/settings/user.html:74
+#: templates/InvenTree/settings/user.html:75
msgid "Verified"
msgstr "Verifiziert"
-#: templates/InvenTree/settings/user.html:76
+#: templates/InvenTree/settings/user.html:77
msgid "Unverified"
msgstr "Nicht verifiziert"
-#: templates/InvenTree/settings/user.html:78
+#: templates/InvenTree/settings/user.html:79
msgid "Primary"
msgstr "Primär"
-#: templates/InvenTree/settings/user.html:84
+#: templates/InvenTree/settings/user.html:85
msgid "Make Primary"
msgstr "Als Primär Festlegen"
-#: templates/InvenTree/settings/user.html:85
+#: templates/InvenTree/settings/user.html:86
msgid "Re-send Verification"
msgstr "Verifikation erneut senden"
-#: templates/InvenTree/settings/user.html:86
-#: templates/InvenTree/settings/user.html:153
+#: templates/InvenTree/settings/user.html:87
+#: templates/InvenTree/settings/user.html:154
msgid "Remove"
msgstr "Entfernen"
-#: templates/InvenTree/settings/user.html:93
+#: templates/InvenTree/settings/user.html:94
msgid "Warning:"
msgstr "Warnung:"
-#: templates/InvenTree/settings/user.html:94
+#: templates/InvenTree/settings/user.html:95
msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr "Sie haben derzeit keine E-Mail-Adressen eingerichtet. Sie sollten wirklich eine hinzufügen, damit Sie Benachrichtigungen erhalten, ihr Konto Zurücksetzen können usw."
-#: templates/InvenTree/settings/user.html:101
+#: templates/InvenTree/settings/user.html:102
msgid "Add Email Address"
msgstr "E-Mail-Adresse hinzufügen"
-#: templates/InvenTree/settings/user.html:111
+#: templates/InvenTree/settings/user.html:112
msgid "Enter e-mail address"
msgstr "Geben Sie Ihre Email-Adresse ein"
-#: templates/InvenTree/settings/user.html:113
+#: templates/InvenTree/settings/user.html:114
msgid "Add Email"
msgstr "E-Mail-Adresse hinzufügen"
-#: templates/InvenTree/settings/user.html:123
+#: templates/InvenTree/settings/user.html:124
msgid "Social Accounts"
msgstr "Soziale Konten"
-#: templates/InvenTree/settings/user.html:128
+#: templates/InvenTree/settings/user.html:129
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr "Sie können sich mit einem der folgenden Drittanbieterkonten bei Ihrem Konto anmelden:"
-#: templates/InvenTree/settings/user.html:162
+#: templates/InvenTree/settings/user.html:163
msgid "There are no social network accounts connected to your InvenTree account"
msgstr "Es sind keine sozialen Netzwerke mit Ihrem InvenTree-Konto verbunden"
-#: templates/InvenTree/settings/user.html:167
+#: templates/InvenTree/settings/user.html:168
msgid "Add a 3rd Party Account"
msgstr "Drittanbieter-Konto hinzufügen"
-#: templates/InvenTree/settings/user.html:177
-msgid "Language Settings"
-msgstr "Spracheinstellung"
+#: templates/InvenTree/settings/user.html:179
+msgid "Active Sessions"
+msgstr "Aktive Sitzungen"
+
+#: templates/InvenTree/settings/user.html:185
+msgid "Log out active sessions (except this one)"
+msgstr "Aktive Sitzungen abmelden (ausgenommen diese)"
#: templates/InvenTree/settings/user.html:186
-msgid "Select language"
-msgstr "Sprache festlegen"
+msgid "Log Out Active Sessions"
+msgstr "Aktive Sitzungen abmelden"
+
+#: templates/InvenTree/settings/user.html:195
+msgid "unknown on unknown"
+msgstr "unbekannt auf unbekanntem"
+
+#: templates/InvenTree/settings/user.html:196
+msgid "unknown"
+msgstr "unbekannt"
+
+#: templates/InvenTree/settings/user.html:200
+msgid "IP Address"
+msgstr "IP Adresse"
+
+#: templates/InvenTree/settings/user.html:201
+msgid "Device"
+msgstr "Gerät"
#: templates/InvenTree/settings/user.html:202
-#, python-format
-msgid "%(lang_translated)s%% translated"
-msgstr "%(lang_translated)s%% übersetzt"
-
-#: templates/InvenTree/settings/user.html:204
-msgid "No translations available"
-msgstr "Keine Übersetzungen verfügbar"
+msgid "Last Activity"
+msgstr "Letzte Aktivität"
#: templates/InvenTree/settings/user.html:211
-msgid "Set Language"
-msgstr "Sprache festlegen"
+#, python-format
+msgid "%(time)s ago (this session)"
+msgstr "%(time)s vor (diese Sitzung)"
#: templates/InvenTree/settings/user.html:213
-msgid "Some languages are not complete"
-msgstr "Einige Sprachen sind nicht vollständig übersetzt"
-
-#: templates/InvenTree/settings/user.html:215
-msgid "Show only sufficent"
-msgstr "Zeige nur ausreichende"
-
-#: templates/InvenTree/settings/user.html:217
-msgid "and hidden."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "Show them too"
-msgstr "Auch unvollständige anzeigen"
+#, python-format
+msgid "%(time)s ago"
+msgstr "%(time)s vor"
#: templates/InvenTree/settings/user.html:224
-msgid "Help the translation efforts!"
-msgstr "Hilf bei der Übersetzung!"
-
-#: templates/InvenTree/settings/user.html:225
-#, 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:233
msgid "Do you really want to remove the selected email address?"
msgstr "Möchten Sie die ausgewählte E-Mail-Adresse wirklich entfernen?"
@@ -6424,6 +6395,52 @@ msgstr "Stil auswählen"
msgid "Set Theme"
msgstr "Design auswählen"
+#: templates/InvenTree/settings/user_display.html:54
+msgid "Language Settings"
+msgstr "Spracheinstellung"
+
+#: templates/InvenTree/settings/user_display.html:63
+msgid "Select language"
+msgstr "Sprache festlegen"
+
+#: templates/InvenTree/settings/user_display.html:79
+#, python-format
+msgid "%(lang_translated)s%% translated"
+msgstr "%(lang_translated)s%% übersetzt"
+
+#: templates/InvenTree/settings/user_display.html:81
+msgid "No translations available"
+msgstr "Keine Übersetzungen verfügbar"
+
+#: templates/InvenTree/settings/user_display.html:88
+msgid "Set Language"
+msgstr "Sprache festlegen"
+
+#: templates/InvenTree/settings/user_display.html:91
+msgid "Some languages are not complete"
+msgstr "Einige Sprachen sind nicht vollständig übersetzt"
+
+#: templates/InvenTree/settings/user_display.html:93
+msgid "Show only sufficent"
+msgstr "Zeige nur ausreichende"
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr "und versteckt."
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "Show them too"
+msgstr "Auch unvollständige anzeigen"
+
+#: templates/InvenTree/settings/user_display.html:101
+msgid "Help the translation efforts!"
+msgstr "Hilf bei der Übersetzung!"
+
+#: templates/InvenTree/settings/user_display.html:102
+#, 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_homepage.html:9
msgid "Home Page Settings"
msgstr "Startseite-Einstellungen"
@@ -6621,6 +6638,14 @@ msgstr "Oder verwenden Sie einen SSO-Anbieter für die Anmeldung"
msgid "View in administration panel"
msgstr "Im Administrationsbereich anzeigen"
+#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54
+msgid "Add Link"
+msgstr "Link hinzufügen"
+
+#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36
+msgid "Add Attachment"
+msgstr "Anhang hinzufügen"
+
#: templates/base.html:96
msgid "Server Restart Required"
msgstr "Server-Neustart erforderlich"
@@ -6704,154 +6729,87 @@ msgstr "Der angegebene Server muss erreichbar sein"
msgid "Remote image must not exceed maximum allowable file size"
msgstr "Das Bild darf nicht größer als die maximal-erlaubte Größe sein"
-#: templates/js/report.js:47 templates/js/translated/report.js:67
-msgid "items selected"
-msgstr "Lagerartikel ausgewählt"
-
-#: templates/js/report.js:55 templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr "Bericht-Vorlage auswählen"
-
-#: templates/js/report.js:70 templates/js/translated/report.js:90
-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:594
-msgid "Select Stock Items"
-msgstr "Lagerartikel auswählen"
-
-#: templates/js/report.js:99 templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr "Lagerartikel müssen vor dem Berichtsdruck ausgewählt werden"
-
-#: templates/js/report.js:116 templates/js/report.js:169
-#: templates/js/report.js:223 templates/js/report.js:277
-#: templates/js/report.js:331 templates/js/translated/report.js:136
-#: 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 "Keine Berichte gefunden"
-
-#: templates/js/report.js:117 templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr "Keine Berichtsvorlagen für ausgewählte Lagerartikel gefunden"
-
-#: templates/js/report.js:152 templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr "Bauauftrag auswählen"
-
-#: templates/js/report.js:153 templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr "Bauauftrag muss vor dem Berichtsdruck ausgewählt werden"
-
-#: templates/js/report.js:170 templates/js/translated/report.js:190
-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/build.js:1333
-#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr "Teile auswählen"
-
-#: templates/js/report.js:206 templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr "Teil muss vor dem Berichtsdruck ausgewählt werden"
-
-#: templates/js/report.js:224 templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr "Keine Berichtvorlagen für ausgewählte Teile gefunden"
-
-#: templates/js/report.js:259 templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr "Bestellungen auswählen"
-
-#: templates/js/report.js:260 templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr "Bestellung muss vor dem Berichtsdruck ausgewählt werden"
-
-#: templates/js/report.js:278 templates/js/report.js:332
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr "Keine Berichtvorlagen für ausgewählte Bestellungen gefunden"
-
-#: templates/js/report.js:313 templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr "Aufträge auswählen"
-
-#: templates/js/report.js:314 templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr "Auftrag muss vor dem Berichtsdruck ausgewählt werden"
-
-#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr "Keine Antwort"
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr "keine Antwort vom InvenTree Server"
-#: templates/js/translated/api.js:191
+#: templates/js/translated/api.js:192
msgid "Error 400: Bad request"
msgstr "Fehler 400: Fehlerhafte Anfrage"
-#: templates/js/translated/api.js:192
+#: templates/js/translated/api.js:193
msgid "API request returned error code 400"
msgstr "Fehler-Code 400 zurückgegeben"
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr "Fehler 401: Nicht Angemeldet"
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr "Authentication Kredentials nicht angegeben"
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr "Fehler 403: keine Berechtigung"
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr "Fehlende Berechtigung für diese Aktion"
-#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr "Fehler 404: Ressource nicht gefunden"
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
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:211 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr "Fehler 408: Zeitüberschreitung"
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr "Verbindungszeitüberschreitung bei der Datenanforderung"
-#: templates/js/translated/api.js:215
+#: templates/js/translated/api.js:216
msgid "Unhandled Error Code"
msgstr "Unbehandelter Fehler-Code"
-#: templates/js/translated/api.js:216
+#: templates/js/translated/api.js:217
msgid "Error code"
msgstr "Fehler-Code"
-#: templates/js/translated/attachment.js:27
+#: templates/js/translated/attachment.js:76
msgid "No attachments found"
msgstr "Keine Anhänge gefunden"
-#: templates/js/translated/attachment.js:95
+#: templates/js/translated/attachment.js:98
+msgid "Edit Attachment"
+msgstr "Anhang bearbeiten"
+
+#: templates/js/translated/attachment.js:108
+msgid "Confirm Delete"
+msgstr "Löschen bestätigen"
+
+#: templates/js/translated/attachment.js:109
+msgid "Delete Attachment"
+msgstr "Anhang löschen"
+
+#: templates/js/translated/attachment.js:165
msgid "Upload Date"
msgstr "Hochladedatum"
-#: templates/js/translated/attachment.js:108
+#: templates/js/translated/attachment.js:178
msgid "Edit attachment"
msgstr "Anhang bearbeiten"
-#: templates/js/translated/attachment.js:115
+#: templates/js/translated/attachment.js:185
msgid "Delete attachment"
msgstr "Anhang löschen"
@@ -6912,7 +6870,7 @@ msgstr "Dadurch wird die Verknüpfung zwischen diesem Lagerartikel und dem Barco
msgid "Unlink"
msgstr "Entfernen"
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:600
msgid "Remove stock item"
msgstr "Lagerartikel entfernen"
@@ -6960,7 +6918,7 @@ msgstr "Ersatzteil entfernen"
#: templates/js/translated/bom.js:228
msgid "Select and add a new variant item using the input below"
-msgstr ""
+msgstr "Wählen Sie eine neue Variante aus und fügen Sie sie mit den folgenden Eingaben hinzu"
#: templates/js/translated/bom.js:239
msgid "Are you sure you wish to remove this substitute part link?"
@@ -7007,7 +6965,7 @@ msgid "View BOM"
msgstr "Stückliste anzeigen"
#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1320
msgid "Actions"
msgstr "Aktionen"
@@ -7099,7 +7057,7 @@ msgstr "Endprodukte fertigstellen"
msgid "No build order allocations found"
msgstr "Keine Allokationen für Bauauftrag gefunden"
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1194
msgid "Location not specified"
msgstr "Standort nicht angegeben"
@@ -7108,12 +7066,12 @@ msgid "No active build outputs found"
msgstr "Keine aktiven Endprodukte gefunden"
#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1305
+#: templates/js/translated/order.js:1327
msgid "Edit stock allocation"
msgstr "Bestands-Zuordnung bearbeiten"
#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1306
+#: templates/js/translated/order.js:1328
msgid "Delete stock allocation"
msgstr "Bestands-Zuordnung löschen"
@@ -7134,11 +7092,11 @@ msgid "Quantity Per"
msgstr "Anzahl pro"
#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1557
msgid "Allocated"
msgstr "Zugeordnet"
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1611
msgid "Build stock"
msgstr "Bestand bauen"
@@ -7146,7 +7104,7 @@ msgstr "Bestand bauen"
msgid "Order stock"
msgstr "Bestand bestellen"
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1604
msgid "Allocate stock"
msgstr "Bestand zuweisen"
@@ -7154,6 +7112,11 @@ msgstr "Bestand zuweisen"
msgid "Specify stock allocation quantity"
msgstr "Anzahl für Bestandszuordnung eingeben"
+#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
+#: templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr "Teile auswählen"
+
#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr "Sie müssen mindestens ein Teil auswählen"
@@ -7183,8 +7146,8 @@ msgid "No builds matching query"
msgstr "Keine Bauaufträge passen zur Anfrage"
#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
-#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
-#: templates/js/translated/stock.js:1841
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1094
+#: templates/js/translated/stock.js:1871
msgid "Select"
msgstr "Auswählen"
@@ -7192,7 +7155,7 @@ msgstr "Auswählen"
msgid "Build order is overdue"
msgstr "Bauauftrag ist überfällig"
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2090
msgid "No user information"
msgstr "Keine Benutzerinformation"
@@ -7334,45 +7297,45 @@ msgstr "Filter entfernen"
msgid "Create filter"
msgstr "Filter anlegen"
-#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
-#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
+#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365
+#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393
msgid "Action Prohibited"
msgstr "Aktion verboten"
-#: templates/js/translated/forms.js:351
+#: templates/js/translated/forms.js:352
msgid "Create operation not allowed"
msgstr "Erstellvorgang nicht erlaubt"
-#: templates/js/translated/forms.js:366
+#: templates/js/translated/forms.js:367
msgid "Update operation not allowed"
msgstr "Updatevorgang nicht erlaubt"
-#: templates/js/translated/forms.js:380
+#: templates/js/translated/forms.js:381
msgid "Delete operation not allowed"
msgstr "Löschvorgang nicht erlaubt"
-#: templates/js/translated/forms.js:394
+#: templates/js/translated/forms.js:395
msgid "View operation not allowed"
msgstr "Anzeigevorgang nicht erlaubt"
-#: templates/js/translated/forms.js:679
+#: templates/js/translated/forms.js:680
msgid "Enter a valid number"
msgstr "Gib eine gültige Nummer ein"
-#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/js/translated/forms.js:1072 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr "Fehler in Formular"
-#: templates/js/translated/forms.js:1457
+#: templates/js/translated/forms.js:1463
msgid "No results found"
msgstr "Keine Ergebnisse gefunden"
-#: templates/js/translated/forms.js:1661
+#: templates/js/translated/forms.js:1667
msgid "Searching"
msgstr "Suche"
-#: templates/js/translated/forms.js:1878
+#: templates/js/translated/forms.js:1884
msgid "Clear input"
msgstr "Eingabe leeren"
@@ -7384,6 +7347,11 @@ msgstr "JA"
msgid "NO"
msgstr "NEIN"
+#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
+#: templates/js/translated/stock.js:624
+msgid "Select Stock Items"
+msgstr "Lagerartikel auswählen"
+
#: templates/js/translated/label.js:30
msgid "Stock item(s) must be selected before printing labels"
msgstr "Lagerartikel müssen ausgewählt sein bevor Labels gedruckt werden können"
@@ -7536,11 +7504,11 @@ msgstr "Auftrag anlegen"
msgid "Export Order"
msgstr "Bestellung exportieren"
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:423
msgid "Format"
msgstr "Format"
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:424
msgid "Select file format"
msgstr "Dateiformat auswählen"
@@ -7556,7 +7524,7 @@ msgstr "Mindestens eine Position muss ausgewählt werden"
msgid "Quantity to receive"
msgstr "Zu erhaltende Menge"
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1673
msgid "Stock Status"
msgstr "Status"
@@ -7584,100 +7552,104 @@ msgstr "Bestellpositionen erhalten"
msgid "No purchase orders found"
msgstr "Keine Bestellungen gefunden"
-#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1063
msgid "Order is overdue"
msgstr "Bestellung überfällig"
-#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
+#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646
msgid "Edit Line Item"
msgstr "Position bearbeiten"
-#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
+#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657
msgid "Delete Line Item"
msgstr "Position löschen"
-#: templates/js/translated/order.js:801
+#: templates/js/translated/order.js:823
msgid "No line items found"
msgstr "Keine Positionen gefunden"
-#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
+#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467
msgid "Total"
msgstr "Summe"
-#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:904 templates/js/translated/order.js:1492
#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr "Stück-Preis"
-#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+#: templates/js/translated/order.js:919 templates/js/translated/order.js:1508
msgid "Total Price"
msgstr "Gesamtpreis"
-#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
+#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617
msgid "Edit line item"
msgstr "Position bearbeiten"
-#: templates/js/translated/order.js:976
+#: templates/js/translated/order.js:998
msgid "Delete line item"
msgstr "Position löschen"
-#: templates/js/translated/order.js:980
+#: templates/js/translated/order.js:1002
msgid "Receive line item"
msgstr "Position empfangen"
-#: templates/js/translated/order.js:1017
+#: templates/js/translated/order.js:1039
msgid "No sales orders found"
msgstr "Keine Aufträge gefunden"
-#: templates/js/translated/order.js:1055
+#: templates/js/translated/order.js:1077
msgid "Invalid Customer"
msgstr "Ungültiger Kunde"
-#: templates/js/translated/order.js:1133
+#: templates/js/translated/order.js:1155
msgid "No sales order allocations found"
msgstr "Keine Allokationen für Verkaufsaufträge gefunden"
-#: templates/js/translated/order.js:1226
+#: templates/js/translated/order.js:1248
msgid "Edit Stock Allocation"
msgstr "Bestandszuordnung bearbeiten"
-#: templates/js/translated/order.js:1244
+#: templates/js/translated/order.js:1265
+msgid "Confirm Delete Operation"
+msgstr "Löschvorgang bestätigen"
+
+#: templates/js/translated/order.js:1266
msgid "Delete Stock Allocation"
msgstr "Bestands-Zuordnung löschen"
-#: templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1308
msgid "Stock location not specified"
msgstr "Lagerstandort nicht angegeben"
-#: templates/js/translated/order.js:1535
+#: templates/js/translated/order.js:1557
msgid "Fulfilled"
msgstr "Erledigt"
-#: templates/js/translated/order.js:1579
+#: templates/js/translated/order.js:1601
msgid "Allocate serial numbers"
msgstr "Seriennummern zuweisen"
-#: templates/js/translated/order.js:1585
+#: templates/js/translated/order.js:1607
msgid "Purchase stock"
msgstr "Bestand kaufen"
-#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
+#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793
msgid "Calculate price"
msgstr "Preis berechnen"
-#: templates/js/translated/order.js:1596
+#: templates/js/translated/order.js:1618
msgid "Delete line item "
msgstr "Position löschen "
-#: templates/js/translated/order.js:1719
+#: templates/js/translated/order.js:1741
msgid "Allocate Stock Item"
msgstr "Bestand zuweisen"
-#: templates/js/translated/order.js:1779
+#: templates/js/translated/order.js:1801
msgid "Update Unit Price"
msgstr "Stückpreis aktualisieren"
-#: templates/js/translated/order.js:1793
+#: templates/js/translated/order.js:1815
msgid "No matching line items"
msgstr "Keine passenden Positionen gefunden"
@@ -7807,11 +7779,11 @@ msgstr "Keine Varianten gefunden"
#: templates/js/translated/part.js:765
msgid "Delete part relationship"
-msgstr ""
+msgstr "Teile-Beziehung löschen"
#: templates/js/translated/part.js:789
msgid "Delete Part Relationship"
-msgstr ""
+msgstr "Teile-Beziehung löschen"
#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
msgid "No parts found"
@@ -7827,7 +7799,7 @@ msgid "Low stock"
msgstr "Bestand niedrig"
#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
-#: templates/js/translated/stock.js:1802
+#: templates/js/translated/stock.js:1832
msgid "Display as list"
msgstr "Listenansicht"
@@ -7835,7 +7807,7 @@ msgstr "Listenansicht"
msgid "Display as grid"
msgstr "Rasteransicht"
-#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1851
msgid "Display as tree"
msgstr "Baumansicht"
@@ -7843,7 +7815,7 @@ msgstr "Baumansicht"
msgid "Subscribed category"
msgstr "Abonnierte Kategorie"
-#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1895
msgid "Path"
msgstr "Pfad"
@@ -7851,11 +7823,11 @@ msgstr "Pfad"
msgid "No test templates matching query"
msgstr "Keine zur Anfrage passenden Testvorlagen"
-#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:816
msgid "Edit test result"
msgstr "Testergebnis bearbeiten"
-#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:817
msgid "Delete test result"
msgstr "Testergebnis löschen"
@@ -7894,268 +7866,342 @@ msgstr "Einzelpreis"
msgid "Single Price Difference"
msgstr "Einzelpreisdifferenz"
+#: templates/js/translated/report.js:67
+msgid "items selected"
+msgstr "Lagerartikel ausgewählt"
+
+#: templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr "Bericht-Vorlage auswählen"
+
+#: templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr "Test-Bericht-Vorlage auswählen"
+
+#: templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr "Lagerartikel müssen vor dem Berichtsdruck ausgewählt werden"
+
+#: templates/js/translated/report.js:136 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 "Keine Berichte gefunden"
+
+#: templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr "Keine Berichtsvorlagen für ausgewählte Lagerartikel gefunden"
+
+#: templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr "Bauauftrag auswählen"
+
+#: templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr "Bauauftrag muss vor dem Berichtsdruck ausgewählt werden"
+
+#: templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr "Keine Berichtvorlagen für ausgewählten Bauauftrag gefunden"
+
+#: templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr "Teil muss vor dem Berichtsdruck ausgewählt werden"
+
+#: templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr "Keine Berichtvorlagen für ausgewählte Teile gefunden"
+
+#: templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr "Bestellungen auswählen"
+
+#: templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr "Bestellung muss vor dem Berichtsdruck ausgewählt werden"
+
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr "Keine Berichtvorlagen für ausgewählte Bestellungen gefunden"
+
+#: templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr "Aufträge auswählen"
+
+#: templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr "Auftrag muss vor dem Berichtsdruck ausgewählt werden"
+
#: templates/js/translated/stock.js:70
msgid "Serialize Stock Item"
msgstr "Lagerartikel serialisieren"
-#: templates/js/translated/stock.js:90
+#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167
+msgid "Next available serial number"
+msgstr "Nächste verfügbare Seriennummer"
+
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169
+msgid "Latest serial number"
+msgstr "Letzte Seriennummer"
+
+#: templates/js/translated/stock.js:104
msgid "Parent stock location"
msgstr "Übergeordneter Lagerort"
-#: templates/js/translated/stock.js:126
+#: templates/js/translated/stock.js:140
msgid "New Stock Location"
msgstr "Neuer Lagerstandort"
-#: templates/js/translated/stock.js:189
+#: templates/js/translated/stock.js:180
+msgid "This part cannot be serialized"
+msgstr "Dieser Teil kann nicht serialisiert werden"
+
+#: templates/js/translated/stock.js:219
msgid "Enter initial quantity for this stock item"
msgstr "Ausgangsmenge für diesen Lagerartikel eingeben"
-#: templates/js/translated/stock.js:195
+#: templates/js/translated/stock.js:225
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Seriennummern für neue Lagerartikel eingeben (oder leer lassen)"
-#: templates/js/translated/stock.js:338
+#: templates/js/translated/stock.js:368
msgid "Created new stock item"
msgstr "Neuer Lagerartikel erstellt"
-#: templates/js/translated/stock.js:351
+#: templates/js/translated/stock.js:381
msgid "Created multiple stock items"
msgstr "Mehrere Lagerartikel erstellt"
-#: templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:420
msgid "Export Stock"
msgstr "Bestand exportieren"
-#: templates/js/translated/stock.js:401
+#: templates/js/translated/stock.js:431
msgid "Include Sublocations"
msgstr "Einschließlich Unterstandorte"
-#: templates/js/translated/stock.js:402
+#: templates/js/translated/stock.js:432
msgid "Include stock items in sublocations"
msgstr "Lagerartikel in untergeordneten Lagerorten einschließen"
-#: templates/js/translated/stock.js:444
+#: templates/js/translated/stock.js:474
msgid "Transfer Stock"
msgstr "Bestand verschieben"
-#: templates/js/translated/stock.js:445
+#: templates/js/translated/stock.js:475
msgid "Move"
msgstr "Verschieben"
-#: templates/js/translated/stock.js:451
+#: templates/js/translated/stock.js:481
msgid "Count Stock"
msgstr "Bestand zählen"
-#: templates/js/translated/stock.js:452
+#: templates/js/translated/stock.js:482
msgid "Count"
msgstr "Anzahl"
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:486
msgid "Remove Stock"
msgstr "Bestand entfernen"
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:487
msgid "Take"
msgstr "Entfernen"
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:491
msgid "Add Stock"
msgstr "Bestand hinzufügen"
-#: templates/js/translated/stock.js:462 users/models.py:200
+#: templates/js/translated/stock.js:492 users/models.py:200
msgid "Add"
msgstr "Hinzufügen"
-#: templates/js/translated/stock.js:466 templates/stock_table.html:56
+#: templates/js/translated/stock.js:496 templates/stock_table.html:56
msgid "Delete Stock"
msgstr "Bestand löschen"
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Quantity cannot be adjusted for serialized stock"
msgstr "Menge von serialisiertem Bestand kann nicht bearbeitet werden"
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Specify stock quantity"
msgstr "Bestandsanzahl angeben"
-#: templates/js/translated/stock.js:595
+#: templates/js/translated/stock.js:625
msgid "You must select at least one available stock item"
msgstr "Sie müssen mindestens einen Lagerartikel auswählen"
-#: templates/js/translated/stock.js:753
+#: templates/js/translated/stock.js:783
msgid "PASS"
msgstr "ERFOLGREICH"
-#: templates/js/translated/stock.js:755
+#: templates/js/translated/stock.js:785
msgid "FAIL"
msgstr "FEHLGESCHLAGEN"
-#: templates/js/translated/stock.js:760
+#: templates/js/translated/stock.js:790
msgid "NO RESULT"
msgstr "KEIN ERGEBNIS"
-#: templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:812
msgid "Add test result"
msgstr "Testergebnis hinzufügen"
-#: templates/js/translated/stock.js:808
+#: templates/js/translated/stock.js:838
msgid "No test results found"
msgstr "Keine Testergebnisse gefunden"
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:895
msgid "Test Date"
msgstr "Testdatum"
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:1002
msgid "In production"
msgstr "In Arbeit"
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:1006
msgid "Installed in Stock Item"
msgstr "In Lagerartikel installiert"
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:1010
msgid "Shipped to customer"
msgstr "an Kunde versand"
-#: templates/js/translated/stock.js:984
+#: templates/js/translated/stock.js:1014
msgid "Assigned to Sales Order"
msgstr "Auftrag zugewiesen"
-#: templates/js/translated/stock.js:990
+#: templates/js/translated/stock.js:1020
msgid "No stock location set"
msgstr "Kein Lagerort gesetzt"
-#: templates/js/translated/stock.js:1148
+#: templates/js/translated/stock.js:1178
msgid "Stock item is in production"
msgstr "Lagerartikel wird produziert"
-#: templates/js/translated/stock.js:1153
+#: templates/js/translated/stock.js:1183
msgid "Stock item assigned to sales order"
msgstr "Lagerartikel wurde Auftrag zugewiesen"
-#: templates/js/translated/stock.js:1156
+#: templates/js/translated/stock.js:1186
msgid "Stock item assigned to customer"
msgstr "Lagerartikel wurde Kunden zugewiesen"
-#: templates/js/translated/stock.js:1160
+#: templates/js/translated/stock.js:1190
msgid "Stock item has expired"
msgstr "Lagerartikel ist abgelaufen"
-#: templates/js/translated/stock.js:1162
+#: templates/js/translated/stock.js:1192
msgid "Stock item will expire soon"
msgstr "Lagerartikel läuft demnächst ab"
-#: templates/js/translated/stock.js:1166
+#: templates/js/translated/stock.js:1196
msgid "Stock item has been allocated"
msgstr "Lagerartikel zugewiesen"
-#: templates/js/translated/stock.js:1170
+#: templates/js/translated/stock.js:1200
msgid "Stock item has been installed in another item"
msgstr "Lagerartikel in anderem Element verbaut"
-#: templates/js/translated/stock.js:1177
+#: templates/js/translated/stock.js:1207
msgid "Stock item has been rejected"
msgstr "Lagerartikel abgewiesen"
-#: templates/js/translated/stock.js:1179
+#: templates/js/translated/stock.js:1209
msgid "Stock item is lost"
msgstr "Lagerartikel verloren"
-#: templates/js/translated/stock.js:1181
+#: templates/js/translated/stock.js:1211
msgid "Stock item is destroyed"
msgstr "Lagerartikel zerstört"
-#: templates/js/translated/stock.js:1185
+#: templates/js/translated/stock.js:1215
#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr "gelöscht"
-#: templates/js/translated/stock.js:1235
+#: templates/js/translated/stock.js:1265
msgid "Stocktake"
msgstr "Inventur"
-#: templates/js/translated/stock.js:1308
+#: templates/js/translated/stock.js:1338
msgid "Supplier part not specified"
msgstr "Zuliefererteil nicht angegeben"
-#: templates/js/translated/stock.js:1346
+#: templates/js/translated/stock.js:1376
msgid "No stock items matching query"
msgstr "Keine zur Anfrage passenden Lagerartikel"
-#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
+#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445
msgid "items"
msgstr "Teile"
-#: templates/js/translated/stock.js:1455
+#: templates/js/translated/stock.js:1485
msgid "batches"
msgstr "lose"
-#: templates/js/translated/stock.js:1482
+#: templates/js/translated/stock.js:1512
msgid "locations"
msgstr "Lagerorte"
-#: templates/js/translated/stock.js:1484
+#: templates/js/translated/stock.js:1514
msgid "Undefined location"
msgstr "unbekannter Lagerort"
-#: templates/js/translated/stock.js:1658
+#: templates/js/translated/stock.js:1688
msgid "Set Stock Status"
msgstr "Status setzen"
-#: templates/js/translated/stock.js:1672
+#: templates/js/translated/stock.js:1702
msgid "Select Status Code"
msgstr "Status Code setzen"
-#: templates/js/translated/stock.js:1673
+#: templates/js/translated/stock.js:1703
msgid "Status code must be selected"
msgstr "Status Code muss ausgewählt werden"
-#: templates/js/translated/stock.js:1897
+#: templates/js/translated/stock.js:1927
msgid "Invalid date"
msgstr "Ungültiges Datum"
-#: templates/js/translated/stock.js:1944
+#: templates/js/translated/stock.js:1974
msgid "Location no longer exists"
msgstr "Standort nicht mehr vorhanden"
-#: templates/js/translated/stock.js:1963
+#: templates/js/translated/stock.js:1993
msgid "Purchase order no longer exists"
msgstr "Bestellung existiert nicht mehr"
-#: templates/js/translated/stock.js:1982
+#: templates/js/translated/stock.js:2012
msgid "Customer no longer exists"
msgstr "Kunde existiert nicht mehr"
-#: templates/js/translated/stock.js:2000
+#: templates/js/translated/stock.js:2030
msgid "Stock item no longer exists"
msgstr "Lagerartikel existiert nicht mehr"
-#: templates/js/translated/stock.js:2023
+#: templates/js/translated/stock.js:2053
msgid "Added"
msgstr "Hinzugefügt"
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2061
msgid "Removed"
msgstr "Entfernt"
-#: templates/js/translated/stock.js:2072
+#: templates/js/translated/stock.js:2102
msgid "Edit tracking entry"
msgstr "Tracking-Eintrag bearbeiten"
-#: templates/js/translated/stock.js:2073
+#: templates/js/translated/stock.js:2103
msgid "Delete tracking entry"
msgstr "Tracking-Eintrag löschen"
-#: templates/js/translated/stock.js:2124
+#: templates/js/translated/stock.js:2154
msgid "No installed items"
msgstr "Keine installierten Elemente"
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr "Seriennummer"
-
-#: templates/js/translated/stock.js:2175
+#: templates/js/translated/stock.js:2205
msgid "Uninstall Stock Item"
msgstr "Lagerartikel entfernen"
diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po
index b68d49ba34..2c99640814 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-11-25 04:46+0000\n"
-"PO-Revision-Date: 2021-11-25 05:07\n"
+"POT-Creation-Date: 2021-11-30 21:49+0000\n"
+"PO-Revision-Date: 2021-11-30 21:52\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
"Language: el_GR\n"
@@ -36,7 +36,7 @@ msgstr ""
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:594
+#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr ""
@@ -114,99 +114,121 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:109 stock/models.py:1874
+#: InvenTree/models.py:114
+msgid "Missing file"
+msgstr ""
+
+#: InvenTree/models.py:115
+msgid "Missing external link"
+msgstr ""
+
+#: InvenTree/models.py:126 stock/models.py:1874
+#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:110
+#: InvenTree/models.py:127
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
+#: InvenTree/models.py:133 company/models.py:131 company/models.py:348
+#: company/models.py:564 order/models.py:163 part/models.py:797
+#: report/templates/report/inventree_build_order_base.html:165
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
+msgid "Link"
+msgstr ""
+
+#: InvenTree/models.py:134 build/models.py:330 part/models.py:798
+#: stock/models.py:540
+msgid "Link to external URL"
+msgstr ""
+
+#: InvenTree/models.py:137 templates/js/translated/attachment.js:161
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:112
+#: InvenTree/models.py:137
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185
#: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:2054
+#: report/templates/report/inventree_test_report_base.html:96
+#: templates/js/translated/stock.js:2084
msgid "User"
msgstr ""
-#: InvenTree/models.py:122
+#: InvenTree/models.py:147
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:142
+#: InvenTree/models.py:170
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:165
+#: InvenTree/models.py:193
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:175
+#: InvenTree/models.py:203
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:178
+#: InvenTree/models.py:206
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:185
+#: InvenTree/models.py:213
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:192
+#: InvenTree/models.py:220
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:227
+#: InvenTree/models.py:255
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: InvenTree/models.py:271 InvenTree/models.py:272 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
#: part/templates/part/detail.html:25 report/models.py:181
#: templates/InvenTree/settings/settings.html:259
#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
-#: templates/js/translated/stock.js:1847
+#: templates/js/translated/stock.js:1877
msgid "Name"
msgstr ""
-#: InvenTree/models.py:250 build/models.py:207
+#: InvenTree/models.py:278 build/models.py:207
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:80
#: company/templates/company/supplier_part.html:81 label/models.py:119
#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:551 report/models.py:590
+#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
#: templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
-#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/order.js:855 templates/js/translated/order.js:1091
#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
-#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
-#: templates/js/translated/stock.js:1904
+#: templates/js/translated/stock.js:1151 templates/js/translated/stock.js:1889
+#: templates/js/translated/stock.js:1934
msgid "Description"
msgstr ""
-#: InvenTree/models.py:251
+#: InvenTree/models.py:279
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:259
+#: InvenTree/models.py:287
msgid "parent"
msgstr ""
@@ -214,87 +236,87 @@ msgstr ""
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:251
+#: InvenTree/serializers.py:285
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:670
msgid "German"
msgstr ""
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:671
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:672
msgid "English"
msgstr ""
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:673
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:674
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:675
msgid "French"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:676
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:683
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:684
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:685
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:686
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:687
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:688
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:689
msgid "Chinese"
msgstr ""
@@ -479,27 +501,27 @@ msgstr ""
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:536
+#: InvenTree/views.py:538
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:585
+#: InvenTree/views.py:587
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
+#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
+#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:630
+#: InvenTree/views.py:632
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:863 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:101
msgid "System Information"
msgstr ""
@@ -552,12 +574,13 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
+#: part/templates/part/detail.html:1076 part/templates/part/detail.html:1162
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:77
+#: report/templates/report/inventree_test_report_base.html:81
+#: report/templates/report/inventree_test_report_base.html:139
#: stock/forms.py:156 stock/serializers.py:286
#: stock/templates/stock/item_base.html:256
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
@@ -565,12 +588,12 @@ msgstr ""
#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
-#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
-#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/order.js:892 templates/js/translated/order.js:1205
+#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290
+#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479
#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
-#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
-#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377
+#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171
msgid "Quantity"
msgstr ""
@@ -579,8 +602,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:307 templates/js/translated/stock.js:194
-#: templates/js/translated/stock.js:348
+#: stock/serializers.py:307 templates/js/translated/stock.js:224
+#: templates/js/translated/stock.js:378
msgid "Serial Numbers"
msgstr ""
@@ -639,7 +662,7 @@ msgstr ""
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
+#: templates/js/translated/order.js:886 templates/js/translated/order.js:1473
msgid "Reference"
msgstr ""
@@ -677,10 +700,10 @@ msgstr ""
#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/order.js:840 templates/js/translated/order.js:1457
#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
-#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
-#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508
+#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159
msgid "Part"
msgstr ""
@@ -745,7 +768,7 @@ msgid "Batch code for this build output"
msgstr ""
#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1104
msgid "Creation Date"
msgstr ""
@@ -779,7 +802,7 @@ msgstr ""
#: order/templates/order/order_base.html:154
#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680
+#: templates/js/translated/build.js:1680 templates/js/translated/order.js:700
msgid "Responsible"
msgstr ""
@@ -795,27 +818,21 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:330 part/models.py:798 stock/models.py:540
-msgid "Link to external URL"
-msgstr ""
-
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:183 order/models.py:738
-#: order/templates/order/po_navbar.html:38
-#: order/templates/order/po_navbar.html:41
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:11 part/models.py:925
#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: stock/serializers.py:583 stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
-#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
-#: templates/js/translated/stock.js:1340
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:985
+#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1370
msgid "Notes"
msgstr ""
@@ -876,8 +893,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:340
#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
-#: templates/js/translated/stock.js:1990
+#: templates/js/translated/order.js:1178 templates/js/translated/order.js:1183
+#: templates/js/translated/stock.js:2020
msgid "Stock Item"
msgstr ""
@@ -917,16 +934,16 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
-#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: build/serializers.py:190 order/serializers.py:219 order/serializers.py:287
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685
#: stock/templates/stock/item_base.html:286
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
-#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
-#: templates/js/translated/stock.js:1931
+#: templates/js/translated/order.js:1190 templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251
+#: templates/js/translated/stock.js:1961
msgid "Location"
msgstr ""
@@ -936,11 +953,11 @@ msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:129
#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: order/serializers.py:240 stock/templates/stock/item_base.html:409
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
-#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
-#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+#: templates/js/translated/order.js:1096 templates/js/translated/stock.js:1226
+#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187
msgid "Status"
msgstr ""
@@ -969,7 +986,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:233
#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1060,7 +1077,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:140
#: report/templates/report/inventree_build_order_base.html:126
#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
-#: templates/js/translated/order.js:1087
+#: templates/js/translated/order.js:1109
msgid "Target Date"
msgstr ""
@@ -1096,7 +1113,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/order.js:1029
+#: templates/js/translated/order.js:1051
msgid "Sales Order"
msgstr ""
@@ -1171,7 +1188,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:974
msgid "Destination"
msgstr ""
@@ -1185,7 +1202,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:304
-#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/stock.js:1240 templates/js/translated/stock.js:2194
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:233
msgid "Batch"
@@ -1286,7 +1303,6 @@ msgid "Completed Build Outputs"
msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
-#: order/templates/order/po_navbar.html:35
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:52
@@ -1300,7 +1316,7 @@ msgstr ""
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:453
#: company/templates/company/detail.html:188
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
@@ -1312,45 +1328,11 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:448
-#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
-#: templates/attachment_button.html:4
-msgid "Add Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:467
-#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:142
-#: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
-msgid "Edit Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:474
-#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:149
-#: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
-#: templates/js/translated/order.js:1243
-msgid "Confirm Delete Operation"
-msgstr ""
-
-#: build/templates/build/detail.html:475
-#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:150
-#: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
-msgid "Delete Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:513
+#: build/templates/build/detail.html:477
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:514
+#: build/templates/build/detail.html:478
msgid "All untracked stock items have been allocated"
msgstr ""
@@ -1466,7 +1448,7 @@ msgstr ""
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:34 templates/js/translated/attachment.js:54
+#: common/forms.py:34
msgid "File"
msgstr ""
@@ -2168,13 +2150,11 @@ msgstr ""
msgid "Unit price at specified quantity"
msgstr ""
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
-#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
-#: part/views.py:854
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
+#: part/views.py:858
msgid "Upload File"
msgstr ""
@@ -2182,7 +2162,7 @@ msgstr ""
#: 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:213
-#: part/views.py:855
+#: part/views.py:859
msgid "Match Fields"
msgstr ""
@@ -2200,13 +2180,13 @@ msgstr ""
#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:40
+#: order/templates/order/order_wizard/po_upload.html:47
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:43
+#: part/templates/part/import_wizard/part_upload.html:45
msgid "Previous Step"
msgstr ""
@@ -2252,7 +2232,7 @@ msgid "Contact phone number"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:102
-#: templates/InvenTree/settings/user.html:46
+#: templates/InvenTree/settings/user.html:47
msgid "Email"
msgstr ""
@@ -2268,14 +2248,6 @@ msgstr ""
msgid "Point of contact"
msgstr ""
-#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:163 part/models.py:797
-#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:537
-#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
-msgid "Link"
-msgstr ""
-
#: company/models.py:131
msgid "Link to external company information"
msgstr ""
@@ -2343,7 +2315,7 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:97
#: company/templates/company/supplier_part.html:112
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:874
#: templates/js/translated/part.js:240
msgid "MPN"
msgstr ""
@@ -2372,9 +2344,9 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:90
+#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:1867 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878
msgid "Value"
msgstr ""
@@ -2413,7 +2385,7 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:98
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:861
#: templates/js/translated/part.js:221
msgid "SKU"
msgstr ""
@@ -2450,7 +2422,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:119
#: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1366
msgid "Packaging"
msgstr ""
@@ -2515,8 +2487,8 @@ msgstr ""
#: company/templates/company/company_base.html:126 order/models.py:567
#: order/templates/order/sales_order_base.html:114 stock/models.py:525
#: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
-#: templates/js/translated/stock.js:1972
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1073
+#: templates/js/translated/stock.js:2002
msgid "Customer"
msgstr ""
@@ -2721,7 +2693,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:974
+#: part/templates/part/detail.html:976
msgid "Add Parameter"
msgstr ""
@@ -2752,7 +2724,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:492
#: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1323
msgid "Supplier Part"
msgstr ""
@@ -2778,7 +2750,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
-#: templates/js/translated/stock.js:324
+#: templates/js/translated/stock.js:354
msgid "New Stock Item"
msgstr ""
@@ -2799,7 +2771,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1713
+#: part/templates/part/prices.html:271 part/views.py:1717
msgid "Add Price Break"
msgstr ""
@@ -2807,11 +2779,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1775
+#: company/templates/company/supplier_part.html:224 part/views.py:1779
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1761
+#: company/templates/company/supplier_part.html:238 part/views.py:1765
msgid "Edit Price Break"
msgstr ""
@@ -2831,8 +2803,8 @@ msgstr ""
#: templates/InvenTree/settings/sidebar.html:40
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
-#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
-#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:509
+#: templates/js/translated/stock.js:1162 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2855,7 +2827,7 @@ msgstr ""
#: stock/templates/stock/location.html:132
#: stock/templates/stock/location.html:144
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1901
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2885,24 +2857,24 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:580
+#: company/views.py:129 part/views.py:584
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:612
+#: company/views.py:158 part/views.py:616
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:619
+#: company/views.py:165 part/views.py:623
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:628
+#: company/views.py:174 part/views.py:632
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/api.py:57 report/api.py:201
+#: label/api.py:57 report/api.py:203
msgid "No valid objects provided to template"
msgstr ""
@@ -2959,7 +2931,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
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
+#: report/models.py:322 report/models.py:459 report/models.py:497
msgid "Filters"
msgstr ""
@@ -3089,7 +3061,7 @@ msgstr ""
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1092
+#: order/models.py:582 templates/js/translated/order.js:1114
msgid "Shipment Date"
msgstr ""
@@ -3114,7 +3086,7 @@ msgid "Line item notes"
msgstr ""
#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1144
+#: templates/js/translated/order.js:1166
msgid "Order"
msgstr ""
@@ -3122,8 +3094,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:325
-#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1300
+#: templates/js/translated/stock.js:1983
msgid "Purchase Order"
msgstr ""
@@ -3133,7 +3105,7 @@ msgstr ""
#: order/models.py:797 order/templates/order/order_base.html:147
#: order/templates/order/sales_order_base.html:154
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:954
msgid "Received"
msgstr ""
@@ -3143,7 +3115,7 @@ msgstr ""
#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1324
+#: templates/js/translated/stock.js:1354
msgid "Purchase Price"
msgstr ""
@@ -3204,47 +3176,47 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:167
+#: order/serializers.py:169
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:202
+#: order/serializers.py:204
msgid "Line Item"
msgstr ""
-#: order/serializers.py:208
+#: order/serializers.py:210
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:286
+#: order/serializers.py:220 order/serializers.py:288
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:242
+#: order/serializers.py:244
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:243
+#: order/serializers.py:245
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:260
+#: order/serializers.py:262
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:298
+#: order/serializers.py:300
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:315
+#: order/serializers.py:317
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:328
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:568
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3390,19 +3362,23 @@ msgstr ""
msgid "Select Supplier Part"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:11
+#: order/templates/order/order_wizard/po_upload.html:8
+msgid "Return to Orders"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:17
msgid "Upload File for Purchase Order"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:18
+#: order/templates/order/order_wizard/po_upload.html:25
#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:21
+#: part/templates/part/import_wizard/part_upload.html:23
#, python-format
msgid "Step %(step)s of %(count)s"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:48
+#: order/templates/order/order_wizard/po_upload.html:55
msgid "Order is already processed. Files cannot be uploaded."
msgstr ""
@@ -3445,7 +3421,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:695 templates/js/translated/order.js:1097
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1119
msgid "Items"
msgstr ""
@@ -3463,31 +3439,6 @@ msgstr ""
msgid "Select a purchase order for %(name)s"
msgstr ""
-#: order/templates/order/po_attachments.html:12
-#: order/templates/order/po_navbar.html:32
-msgid "Purchase Order Attachments"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:15
-#: part/templates/part/part_sidebar.html:8
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:26
-msgid "Received Stock Items"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:29
-#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
#: order/templates/order/po_sidebar.html:5
#: order/templates/order/so_sidebar.html:5
#: report/templates/report/inventree_po_report.html:85
@@ -3504,9 +3455,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:216
+#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:191
+#: order/templates/order/sales_order_detail.html:157
msgid "Add Line Item"
msgstr ""
@@ -3518,6 +3469,10 @@ msgstr ""
msgid "Receive Items"
msgstr ""
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
#: order/templates/order/purchase_order_detail.html:76
#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
@@ -3546,7 +3501,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:121
-#: templates/js/translated/order.js:1064
+#: templates/js/translated/order.js:1086
msgid "Customer Reference"
msgstr ""
@@ -3700,19 +3655,19 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:731
+#: part/api.py:758
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:735
+#: part/api.py:762
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:750
+#: part/api.py:777
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
+#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
msgid "This field is required"
msgstr ""
@@ -3926,7 +3881,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/detail.html:45
#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
-#: templates/js/translated/stock.js:1104
+#: templates/js/translated/stock.js:1134
msgid "IPN"
msgstr ""
@@ -4047,7 +4002,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1467
-#: templates/js/translated/stock.js:828
+#: templates/js/translated/stock.js:858
msgid "Test Name"
msgstr ""
@@ -4552,7 +4507,7 @@ msgstr ""
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:365 part/views.py:751
+#: part/templates/part/detail.html:365 part/views.py:755
msgid "Validate BOM"
msgstr ""
@@ -4604,44 +4559,48 @@ msgstr ""
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:770
+#: part/templates/part/detail.html:772
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:867
+#: part/templates/part/detail.html:869
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:924
+#: part/templates/part/detail.html:926
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:1076
+#: part/templates/part/detail.html:1039
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1088
+#: part/templates/part/detail.html:1051
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1100
+#: part/templates/part/detail.html:1063
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1189
+#: part/templates/part/detail.html:1152
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:51
+#: part/templates/part/import_wizard/part_upload.html:53
msgid "Unsuffitient privileges."
msgstr ""
-#: part/templates/part/import_wizard/part_upload.html:14
+#: part/templates/part/import_wizard/part_upload.html:8
+msgid "Return to Parts"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:16
msgid "Import Parts from File"
msgstr ""
@@ -4751,7 +4710,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1546
#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
@@ -4846,6 +4805,11 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1949
+msgid "Details"
+msgstr ""
+
#: part/templates/part/part_sidebar.html:13
msgid "Variants"
msgstr ""
@@ -4949,7 +4913,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1784
+#: part/templates/part/prices.html:215 part/views.py:1788
msgid "Add Internal Price Break"
msgstr ""
@@ -5005,110 +4969,115 @@ msgstr ""
msgid "Match References"
msgstr ""
-#: part/views.py:498
+#: part/views.py:502
msgid "None"
msgstr ""
-#: part/views.py:557
+#: part/views.py:561
msgid "Part QR Code"
msgstr ""
-#: part/views.py:659
+#: part/views.py:663
msgid "Select Part Image"
msgstr ""
-#: part/views.py:685
+#: part/views.py:689
msgid "Updated part image"
msgstr ""
-#: part/views.py:688
+#: part/views.py:692
msgid "Part image not found"
msgstr ""
-#: part/views.py:700
+#: part/views.py:704
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:730
+#: part/views.py:734
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:772
+#: part/views.py:776
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:783
+#: part/views.py:787
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:856
+#: part/views.py:860
msgid "Match Parts"
msgstr ""
-#: part/views.py:1192
+#: part/views.py:1196
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1244
+#: part/views.py:1248
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1251
+#: part/views.py:1255
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1260
+#: part/views.py:1264
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1409
+#: part/views.py:1413
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1419
+#: part/views.py:1423
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1426
+#: part/views.py:1430
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1485 templates/js/translated/part.js:310
+#: part/views.py:1489 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1523
+#: part/views.py:1527
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1529
+#: part/views.py:1533
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1538
+#: part/views.py:1542
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1639
+#: part/views.py:1643
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1695
+#: part/views.py:1699
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1717
+#: part/views.py:1721
msgid "Added new price break"
msgstr ""
-#: part/views.py:1793
+#: part/views.py:1797
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1801
+#: part/views.py:1805
msgid "Delete Internal Price Break"
msgstr ""
+#: report/api.py:234 report/api.py:278
+#, python-brace-format
+msgid "Template file '{filename}' is missing or does not exist"
+msgstr ""
+
#: report/models.py:182
msgid "Template name"
msgstr ""
@@ -5145,51 +5114,51 @@ msgstr ""
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:380
+#: report/models.py:382
msgid "Build Filters"
msgstr ""
-#: report/models.py:381
+#: report/models.py:383
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:423
+#: report/models.py:425
msgid "Part Filters"
msgstr ""
-#: report/models.py:424
+#: report/models.py:426
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:458
+#: report/models.py:460
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:496
+#: report/models.py:498
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:546
+#: report/models.py:548
msgid "Snippet"
msgstr ""
-#: report/models.py:547
+#: report/models.py:549
msgid "Report snippet file"
msgstr ""
-#: report/models.py:551
+#: report/models.py:553
msgid "Snippet file description"
msgstr ""
-#: report/models.py:586
+#: report/models.py:588
msgid "Asset"
msgstr ""
-#: report/models.py:587
+#: report/models.py:589
msgid "Report asset file"
msgstr ""
-#: report/models.py:590
+#: report/models.py:592
msgid "Asset file description"
msgstr ""
@@ -5201,49 +5170,59 @@ msgstr ""
msgid "Stock Item Test Report"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:75
+#: report/templates/report/inventree_test_report_base.html:79
#: stock/models.py:530 stock/templates/stock/item_base.html:238
#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
#: templates/js/translated/build.js:1013
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+#: templates/js/translated/order.js:1288 templates/js/translated/order.js:1377
msgid "Serial Number"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:83
+#: report/templates/report/inventree_test_report_base.html:88
msgid "Test Results"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:93
#: stock/models.py:1855
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:89
+#: report/templates/report/inventree_test_report_base.html:94
#: stock/models.py:1861
msgid "Result"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917
msgid "Date"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:103
+#: report/templates/report/inventree_test_report_base.html:108
msgid "Pass"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:105
+#: report/templates/report/inventree_test_report_base.html:110
msgid "Fail"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:123
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:137
+#: templates/js/translated/stock.js:2177
+msgid "Serial"
+msgstr ""
+
#: stock/api.py:422
msgid "Quantity is required"
msgstr ""
#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
#: stock/templates/stock/item_base.html:382
-#: templates/js/translated/stock.js:1246
+#: templates/js/translated/stock.js:1276
msgid "Expiry Date"
msgstr ""
@@ -5505,7 +5484,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:319 stock/serializers.py:687
+#: stock/serializers.py:319 stock/serializers.py:686
msgid "Destination stock location"
msgstr ""
@@ -5517,15 +5496,15 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:557
+#: stock/serializers.py:556
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:585
+#: stock/serializers.py:584
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:595
+#: stock/serializers.py:594
msgid "A list of stock items must be provided"
msgstr ""
@@ -5570,15 +5549,15 @@ msgstr ""
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
+#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:363
+#: stock/templates/stock/item.html:324
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:377
+#: stock/templates/stock/item.html:338
msgid "Delete Test Result"
msgstr ""
@@ -5752,7 +5731,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:1259
+#: templates/js/translated/stock.js:1289
msgid "Last Updated"
msgstr ""
@@ -5768,7 +5747,7 @@ msgstr ""
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:505
msgid "Edit Stock Status"
msgstr ""
@@ -5885,10 +5864,6 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:12
-msgid "Installed Items"
-msgstr ""
-
#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
@@ -5967,7 +5942,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:618
+#: stock/views.py:760 templates/js/translated/stock.js:648
msgid "Confirm stock adjustment"
msgstr ""
@@ -5975,7 +5950,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:288
+#: stock/views.py:793 templates/js/translated/stock.js:318
msgid "Edit Stock Item"
msgstr ""
@@ -5987,7 +5962,7 @@ msgstr ""
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:268
+#: stock/views.py:1186 templates/js/translated/stock.js:298
msgid "Duplicate Stock Item"
msgstr ""
@@ -6164,11 +6139,11 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/po.html:9
+#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
-#: templates/InvenTree/settings/report.html:10
+#: templates/InvenTree/settings/report.html:8
#: templates/InvenTree/settings/user_reports.html:9
msgid "Report Settings"
msgstr ""
@@ -6221,7 +6196,7 @@ msgid "User Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:8
-#: templates/InvenTree/settings/user.html:11
+#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
@@ -6273,140 +6248,136 @@ msgid "Stock Settings"
msgstr ""
#: templates/InvenTree/settings/user.html:18
-#: templates/js/translated/helpers.js:26
-msgid "Edit"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:20
#: 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:31
+#: templates/InvenTree/settings/user.html:22
+#: templates/js/translated/helpers.js:26
+msgid "Edit"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:32
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:35
+#: templates/InvenTree/settings/user.html:36
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:39
+#: templates/InvenTree/settings/user.html:40
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:54
+#: templates/InvenTree/settings/user.html:55
msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:74
+#: templates/InvenTree/settings/user.html:75
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:76
+#: templates/InvenTree/settings/user.html:77
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:78
+#: templates/InvenTree/settings/user.html:79
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:84
+#: templates/InvenTree/settings/user.html:85
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:85
+#: templates/InvenTree/settings/user.html:86
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:86
-#: templates/InvenTree/settings/user.html:153
+#: templates/InvenTree/settings/user.html:87
+#: templates/InvenTree/settings/user.html:154
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
+#: templates/InvenTree/settings/user.html:94
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:94
+#: templates/InvenTree/settings/user.html:95
msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:101
+#: templates/InvenTree/settings/user.html:102
msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:111
+#: templates/InvenTree/settings/user.html:112
msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:113
+#: templates/InvenTree/settings/user.html:114
msgid "Add Email"
msgstr ""
-#: templates/InvenTree/settings/user.html:123
+#: templates/InvenTree/settings/user.html:124
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:128
+#: templates/InvenTree/settings/user.html:129
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:162
+#: templates/InvenTree/settings/user.html:163
msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:167
+#: templates/InvenTree/settings/user.html:168
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:177
-msgid "Language Settings"
+#: templates/InvenTree/settings/user.html:179
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:185
+msgid "Log out active sessions (except this one)"
msgstr ""
#: templates/InvenTree/settings/user.html:186
-msgid "Select language"
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:195
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:196
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:200
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:201
+msgid "Device"
msgstr ""
#: templates/InvenTree/settings/user.html:202
-#, python-format
-msgid "%(lang_translated)s%% translated"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:204
-msgid "No translations available"
+msgid "Last Activity"
msgstr ""
#: templates/InvenTree/settings/user.html:211
-msgid "Set Language"
+#, python-format
+msgid "%(time)s ago (this session)"
msgstr ""
#: templates/InvenTree/settings/user.html:213
-msgid "Some languages are not complete"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:215
-msgid "Show only sufficent"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "and hidden."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "Show them too"
+#, python-format
+msgid "%(time)s ago"
msgstr ""
#: templates/InvenTree/settings/user.html:224
-msgid "Help the translation efforts!"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:225
-#, 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:233
msgid "Do you really want to remove the selected email address?"
msgstr ""
@@ -6422,6 +6393,52 @@ msgstr ""
msgid "Set Theme"
msgstr ""
+#: templates/InvenTree/settings/user_display.html:54
+msgid "Language Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:63
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:79
+#, python-format
+msgid "%(lang_translated)s%% translated"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:81
+msgid "No translations available"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:88
+msgid "Set Language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:91
+msgid "Some languages are not complete"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:93
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:101
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:102
+#, 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_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6619,6 +6636,14 @@ msgstr ""
msgid "View in administration panel"
msgstr ""
+#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54
+msgid "Add Link"
+msgstr ""
+
+#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36
+msgid "Add Attachment"
+msgstr ""
+
#: templates/base.html:96
msgid "Server Restart Required"
msgstr ""
@@ -6702,154 +6727,87 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/report.js:47 templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/report.js:55 templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/report.js:70 templates/js/translated/report.js:90
-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:594
-msgid "Select Stock Items"
-msgstr ""
-
-#: templates/js/report.js:99 templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:116 templates/js/report.js:169
-#: templates/js/report.js:223 templates/js/report.js:277
-#: templates/js/report.js:331 templates/js/translated/report.js:136
-#: 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 ""
-
-#: templates/js/report.js:117 templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/report.js:152 templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/report.js:153 templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: 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/build.js:1333
-#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
-#: templates/js/report.js:206 templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:224 templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/report.js:259 templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/report.js:260 templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/report.js:278 templates/js/report.js:332
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/report.js:313 templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/report.js:314 templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:191
+#: templates/js/translated/api.js:192
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:192
+#: templates/js/translated/api.js:193
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:215
+#: templates/js/translated/api.js:216
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:216
+#: templates/js/translated/api.js:217
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:27
+#: templates/js/translated/attachment.js:76
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:95
-msgid "Upload Date"
+#: templates/js/translated/attachment.js:98
+msgid "Edit Attachment"
msgstr ""
#: templates/js/translated/attachment.js:108
+msgid "Confirm Delete"
+msgstr ""
+
+#: templates/js/translated/attachment.js:109
+msgid "Delete Attachment"
+msgstr ""
+
+#: templates/js/translated/attachment.js:165
+msgid "Upload Date"
+msgstr ""
+
+#: templates/js/translated/attachment.js:178
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:115
+#: templates/js/translated/attachment.js:185
msgid "Delete attachment"
msgstr ""
@@ -6910,7 +6868,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:600
msgid "Remove stock item"
msgstr ""
@@ -7005,7 +6963,7 @@ msgid "View BOM"
msgstr ""
#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1320
msgid "Actions"
msgstr ""
@@ -7097,7 +7055,7 @@ msgstr ""
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1194
msgid "Location not specified"
msgstr ""
@@ -7106,12 +7064,12 @@ msgid "No active build outputs found"
msgstr ""
#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1305
+#: templates/js/translated/order.js:1327
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1306
+#: templates/js/translated/order.js:1328
msgid "Delete stock allocation"
msgstr ""
@@ -7132,11 +7090,11 @@ msgid "Quantity Per"
msgstr ""
#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1557
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1611
msgid "Build stock"
msgstr ""
@@ -7144,7 +7102,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1604
msgid "Allocate stock"
msgstr ""
@@ -7152,6 +7110,11 @@ msgstr ""
msgid "Specify stock allocation quantity"
msgstr ""
+#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
+#: templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
@@ -7181,8 +7144,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
-#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
-#: templates/js/translated/stock.js:1841
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1094
+#: templates/js/translated/stock.js:1871
msgid "Select"
msgstr ""
@@ -7190,7 +7153,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2090
msgid "No user information"
msgstr ""
@@ -7332,45 +7295,45 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
-#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
+#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365
+#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:351
+#: templates/js/translated/forms.js:352
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:366
+#: templates/js/translated/forms.js:367
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:380
+#: templates/js/translated/forms.js:381
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:394
+#: templates/js/translated/forms.js:395
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:679
+#: templates/js/translated/forms.js:680
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/js/translated/forms.js:1072 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1457
+#: templates/js/translated/forms.js:1463
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1661
+#: templates/js/translated/forms.js:1667
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1878
+#: templates/js/translated/forms.js:1884
msgid "Clear input"
msgstr ""
@@ -7382,6 +7345,11 @@ msgstr ""
msgid "NO"
msgstr ""
+#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
+#: templates/js/translated/stock.js:624
+msgid "Select Stock Items"
+msgstr ""
+
#: templates/js/translated/label.js:30
msgid "Stock item(s) must be selected before printing labels"
msgstr ""
@@ -7534,11 +7502,11 @@ msgstr ""
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:423
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:424
msgid "Select file format"
msgstr ""
@@ -7554,7 +7522,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1673
msgid "Stock Status"
msgstr ""
@@ -7582,100 +7550,104 @@ msgstr ""
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1063
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
+#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
+#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:801
+#: templates/js/translated/order.js:823
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
+#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:904 templates/js/translated/order.js:1492
#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+#: templates/js/translated/order.js:919 templates/js/translated/order.js:1508
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
+#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:976
+#: templates/js/translated/order.js:998
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:980
+#: templates/js/translated/order.js:1002
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1017
+#: templates/js/translated/order.js:1039
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1055
+#: templates/js/translated/order.js:1077
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1133
+#: templates/js/translated/order.js:1155
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1226
+#: templates/js/translated/order.js:1248
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1244
+#: templates/js/translated/order.js:1265
+msgid "Confirm Delete Operation"
+msgstr ""
+
+#: templates/js/translated/order.js:1266
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1308
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1535
+#: templates/js/translated/order.js:1557
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1579
+#: templates/js/translated/order.js:1601
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1585
+#: templates/js/translated/order.js:1607
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
+#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1596
+#: templates/js/translated/order.js:1618
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1719
+#: templates/js/translated/order.js:1741
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1779
+#: templates/js/translated/order.js:1801
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1793
+#: templates/js/translated/order.js:1815
msgid "No matching line items"
msgstr ""
@@ -7825,7 +7797,7 @@ msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
-#: templates/js/translated/stock.js:1802
+#: templates/js/translated/stock.js:1832
msgid "Display as list"
msgstr ""
@@ -7833,7 +7805,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1851
msgid "Display as tree"
msgstr ""
@@ -7841,7 +7813,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1895
msgid "Path"
msgstr ""
@@ -7849,11 +7821,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:816
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:817
msgid "Delete test result"
msgstr ""
@@ -7892,268 +7864,342 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:136 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 ""
+
+#: templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
#: templates/js/translated/stock.js:70
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:90
+#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167
+msgid "Next available serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169
+msgid "Latest serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:104
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:126
+#: templates/js/translated/stock.js:140
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:189
+#: templates/js/translated/stock.js:180
+msgid "This part cannot be serialized"
+msgstr ""
+
+#: templates/js/translated/stock.js:219
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:195
+#: templates/js/translated/stock.js:225
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:338
+#: templates/js/translated/stock.js:368
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:351
+#: templates/js/translated/stock.js:381
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:420
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:401
+#: templates/js/translated/stock.js:431
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:402
+#: templates/js/translated/stock.js:432
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:444
+#: templates/js/translated/stock.js:474
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:445
+#: templates/js/translated/stock.js:475
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:451
+#: templates/js/translated/stock.js:481
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:452
+#: templates/js/translated/stock.js:482
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:486
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:487
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:491
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:462 users/models.py:200
+#: templates/js/translated/stock.js:492 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:466 templates/stock_table.html:56
+#: templates/js/translated/stock.js:496 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:595
+#: templates/js/translated/stock.js:625
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:753
+#: templates/js/translated/stock.js:783
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:755
+#: templates/js/translated/stock.js:785
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:760
+#: templates/js/translated/stock.js:790
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:812
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:808
+#: templates/js/translated/stock.js:838
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:895
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:1002
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:1006
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:1010
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:984
+#: templates/js/translated/stock.js:1014
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:990
+#: templates/js/translated/stock.js:1020
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1148
+#: templates/js/translated/stock.js:1178
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1153
+#: templates/js/translated/stock.js:1183
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1156
+#: templates/js/translated/stock.js:1186
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1160
+#: templates/js/translated/stock.js:1190
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1162
+#: templates/js/translated/stock.js:1192
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1166
+#: templates/js/translated/stock.js:1196
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1170
+#: templates/js/translated/stock.js:1200
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1177
+#: templates/js/translated/stock.js:1207
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1179
+#: templates/js/translated/stock.js:1209
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1181
+#: templates/js/translated/stock.js:1211
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1185
+#: templates/js/translated/stock.js:1215
#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1235
+#: templates/js/translated/stock.js:1265
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1308
+#: templates/js/translated/stock.js:1338
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1346
+#: templates/js/translated/stock.js:1376
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
+#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1455
+#: templates/js/translated/stock.js:1485
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1482
+#: templates/js/translated/stock.js:1512
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1484
+#: templates/js/translated/stock.js:1514
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1658
+#: templates/js/translated/stock.js:1688
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1672
+#: templates/js/translated/stock.js:1702
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1673
+#: templates/js/translated/stock.js:1703
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1897
+#: templates/js/translated/stock.js:1927
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1944
+#: templates/js/translated/stock.js:1974
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1963
+#: templates/js/translated/stock.js:1993
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1982
+#: templates/js/translated/stock.js:2012
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2000
+#: templates/js/translated/stock.js:2030
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2023
+#: templates/js/translated/stock.js:2053
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2061
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2072
+#: templates/js/translated/stock.js:2102
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2073
+#: templates/js/translated/stock.js:2103
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2124
+#: templates/js/translated/stock.js:2154
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
-#: templates/js/translated/stock.js:2175
+#: templates/js/translated/stock.js:2205
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po
index cf4017d955..11cca2ebb9 100644
--- a/InvenTree/locale/en/LC_MESSAGES/django.po
+++ b/InvenTree/locale/en/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"POT-Creation-Date: 2021-11-30 21:49+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -37,7 +37,7 @@ msgstr ""
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:594
+#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr ""
@@ -115,99 +115,121 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:109 stock/models.py:1874
+#: InvenTree/models.py:114
+msgid "Missing file"
+msgstr ""
+
+#: InvenTree/models.py:115
+msgid "Missing external link"
+msgstr ""
+
+#: InvenTree/models.py:126 stock/models.py:1874
+#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:110
+#: InvenTree/models.py:127
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
+#: InvenTree/models.py:133 company/models.py:131 company/models.py:348
+#: company/models.py:564 order/models.py:163 part/models.py:797
+#: report/templates/report/inventree_build_order_base.html:165
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
+msgid "Link"
+msgstr ""
+
+#: InvenTree/models.py:134 build/models.py:330 part/models.py:798
+#: stock/models.py:540
+msgid "Link to external URL"
+msgstr ""
+
+#: InvenTree/models.py:137 templates/js/translated/attachment.js:161
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:112
+#: InvenTree/models.py:137
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185
#: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:2054
+#: report/templates/report/inventree_test_report_base.html:96
+#: templates/js/translated/stock.js:2084
msgid "User"
msgstr ""
-#: InvenTree/models.py:122
+#: InvenTree/models.py:147
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:142
+#: InvenTree/models.py:170
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:165
+#: InvenTree/models.py:193
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:175
+#: InvenTree/models.py:203
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:178
+#: InvenTree/models.py:206
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:185
+#: InvenTree/models.py:213
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:192
+#: InvenTree/models.py:220
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:227
+#: InvenTree/models.py:255
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: InvenTree/models.py:271 InvenTree/models.py:272 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
#: part/templates/part/detail.html:25 report/models.py:181
#: templates/InvenTree/settings/settings.html:259
#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
-#: templates/js/translated/stock.js:1847
+#: templates/js/translated/stock.js:1877
msgid "Name"
msgstr ""
-#: InvenTree/models.py:250 build/models.py:207
+#: InvenTree/models.py:278 build/models.py:207
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:80
#: company/templates/company/supplier_part.html:81 label/models.py:119
#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:551 report/models.py:590
+#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
#: templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
-#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/order.js:855 templates/js/translated/order.js:1091
#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
-#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
-#: templates/js/translated/stock.js:1904
+#: templates/js/translated/stock.js:1151 templates/js/translated/stock.js:1889
+#: templates/js/translated/stock.js:1934
msgid "Description"
msgstr ""
-#: InvenTree/models.py:251
+#: InvenTree/models.py:279
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:259
+#: InvenTree/models.py:287
msgid "parent"
msgstr ""
@@ -215,87 +237,87 @@ msgstr ""
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:251
+#: InvenTree/serializers.py:285
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:670
msgid "German"
msgstr ""
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:671
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:672
msgid "English"
msgstr ""
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:673
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:674
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:675
msgid "French"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:676
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:683
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:684
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:685
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:686
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:687
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:688
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:689
msgid "Chinese"
msgstr ""
@@ -480,27 +502,27 @@ msgstr ""
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:536
+#: InvenTree/views.py:538
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:585
+#: InvenTree/views.py:587
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
+#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
+#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:630
+#: InvenTree/views.py:632
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:863 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:101
msgid "System Information"
msgstr ""
@@ -553,12 +575,13 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
+#: part/templates/part/detail.html:1076 part/templates/part/detail.html:1162
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:77
+#: report/templates/report/inventree_test_report_base.html:81
+#: report/templates/report/inventree_test_report_base.html:139
#: stock/forms.py:156 stock/serializers.py:286
#: stock/templates/stock/item_base.html:256
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
@@ -566,12 +589,12 @@ msgstr ""
#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
-#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
-#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/order.js:892 templates/js/translated/order.js:1205
+#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290
+#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479
#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
-#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
-#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377
+#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171
msgid "Quantity"
msgstr ""
@@ -580,8 +603,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:307 templates/js/translated/stock.js:194
-#: templates/js/translated/stock.js:348
+#: stock/serializers.py:307 templates/js/translated/stock.js:224
+#: templates/js/translated/stock.js:378
msgid "Serial Numbers"
msgstr ""
@@ -640,7 +663,7 @@ msgstr ""
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
+#: templates/js/translated/order.js:886 templates/js/translated/order.js:1473
msgid "Reference"
msgstr ""
@@ -678,10 +701,10 @@ msgstr ""
#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/order.js:840 templates/js/translated/order.js:1457
#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
-#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
-#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508
+#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159
msgid "Part"
msgstr ""
@@ -746,7 +769,7 @@ msgid "Batch code for this build output"
msgstr ""
#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1104
msgid "Creation Date"
msgstr ""
@@ -780,7 +803,7 @@ msgstr ""
#: order/templates/order/order_base.html:154
#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680
+#: templates/js/translated/build.js:1680 templates/js/translated/order.js:700
msgid "Responsible"
msgstr ""
@@ -796,27 +819,21 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:330 part/models.py:798 stock/models.py:540
-msgid "Link to external URL"
-msgstr ""
-
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:183 order/models.py:738
-#: order/templates/order/po_navbar.html:38
-#: order/templates/order/po_navbar.html:41
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:11 part/models.py:925
#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: stock/serializers.py:583 stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
-#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
-#: templates/js/translated/stock.js:1340
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:985
+#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1370
msgid "Notes"
msgstr ""
@@ -877,8 +894,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:340
#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
-#: templates/js/translated/stock.js:1990
+#: templates/js/translated/order.js:1178 templates/js/translated/order.js:1183
+#: templates/js/translated/stock.js:2020
msgid "Stock Item"
msgstr ""
@@ -918,16 +935,16 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
-#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: build/serializers.py:190 order/serializers.py:219 order/serializers.py:287
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685
#: stock/templates/stock/item_base.html:286
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
-#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
-#: templates/js/translated/stock.js:1931
+#: templates/js/translated/order.js:1190 templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251
+#: templates/js/translated/stock.js:1961
msgid "Location"
msgstr ""
@@ -937,11 +954,11 @@ msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:129
#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: order/serializers.py:240 stock/templates/stock/item_base.html:409
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
-#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
-#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+#: templates/js/translated/order.js:1096 templates/js/translated/stock.js:1226
+#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187
msgid "Status"
msgstr ""
@@ -970,7 +987,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:233
#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1061,7 +1078,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:140
#: report/templates/report/inventree_build_order_base.html:126
#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
-#: templates/js/translated/order.js:1087
+#: templates/js/translated/order.js:1109
msgid "Target Date"
msgstr ""
@@ -1097,7 +1114,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/order.js:1029
+#: templates/js/translated/order.js:1051
msgid "Sales Order"
msgstr ""
@@ -1172,7 +1189,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:974
msgid "Destination"
msgstr ""
@@ -1186,7 +1203,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:304
-#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/stock.js:1240 templates/js/translated/stock.js:2194
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:233
msgid "Batch"
@@ -1287,7 +1304,6 @@ msgid "Completed Build Outputs"
msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
-#: order/templates/order/po_navbar.html:35
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:52
@@ -1301,7 +1317,7 @@ msgstr ""
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:453
#: company/templates/company/detail.html:188
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
@@ -1313,45 +1329,11 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:448
-#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
-#: templates/attachment_button.html:4
-msgid "Add Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:467
-#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:142
-#: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
-msgid "Edit Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:474
-#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:149
-#: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
-#: templates/js/translated/order.js:1243
-msgid "Confirm Delete Operation"
-msgstr ""
-
-#: build/templates/build/detail.html:475
-#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:150
-#: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
-msgid "Delete Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:513
+#: build/templates/build/detail.html:477
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:514
+#: build/templates/build/detail.html:478
msgid "All untracked stock items have been allocated"
msgstr ""
@@ -1467,7 +1449,7 @@ msgstr ""
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:34 templates/js/translated/attachment.js:54
+#: common/forms.py:34
msgid "File"
msgstr ""
@@ -2169,13 +2151,11 @@ msgstr ""
msgid "Unit price at specified quantity"
msgstr ""
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
-#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
-#: part/views.py:854
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
+#: part/views.py:858
msgid "Upload File"
msgstr ""
@@ -2183,7 +2163,7 @@ msgstr ""
#: 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:213
-#: part/views.py:855
+#: part/views.py:859
msgid "Match Fields"
msgstr ""
@@ -2201,13 +2181,13 @@ msgstr ""
#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:40
+#: order/templates/order/order_wizard/po_upload.html:47
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:43
+#: part/templates/part/import_wizard/part_upload.html:45
msgid "Previous Step"
msgstr ""
@@ -2253,7 +2233,7 @@ msgid "Contact phone number"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:102
-#: templates/InvenTree/settings/user.html:46
+#: templates/InvenTree/settings/user.html:47
msgid "Email"
msgstr ""
@@ -2269,14 +2249,6 @@ msgstr ""
msgid "Point of contact"
msgstr ""
-#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:163 part/models.py:797
-#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:537
-#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
-msgid "Link"
-msgstr ""
-
#: company/models.py:131
msgid "Link to external company information"
msgstr ""
@@ -2344,7 +2316,7 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:97
#: company/templates/company/supplier_part.html:112
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:874
#: templates/js/translated/part.js:240
msgid "MPN"
msgstr ""
@@ -2373,9 +2345,9 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:90
+#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:1867 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878
msgid "Value"
msgstr ""
@@ -2414,7 +2386,7 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:98
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:861
#: templates/js/translated/part.js:221
msgid "SKU"
msgstr ""
@@ -2451,7 +2423,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:119
#: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1366
msgid "Packaging"
msgstr ""
@@ -2516,8 +2488,8 @@ msgstr ""
#: company/templates/company/company_base.html:126 order/models.py:567
#: order/templates/order/sales_order_base.html:114 stock/models.py:525
#: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
-#: templates/js/translated/stock.js:1972
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1073
+#: templates/js/translated/stock.js:2002
msgid "Customer"
msgstr ""
@@ -2722,7 +2694,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:974
+#: part/templates/part/detail.html:976
msgid "Add Parameter"
msgstr ""
@@ -2753,7 +2725,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:492
#: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1323
msgid "Supplier Part"
msgstr ""
@@ -2779,7 +2751,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
-#: templates/js/translated/stock.js:324
+#: templates/js/translated/stock.js:354
msgid "New Stock Item"
msgstr ""
@@ -2800,7 +2772,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1713
+#: part/templates/part/prices.html:271 part/views.py:1717
msgid "Add Price Break"
msgstr ""
@@ -2808,11 +2780,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1775
+#: company/templates/company/supplier_part.html:224 part/views.py:1779
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1761
+#: company/templates/company/supplier_part.html:238 part/views.py:1765
msgid "Edit Price Break"
msgstr ""
@@ -2832,8 +2804,8 @@ msgstr ""
#: templates/InvenTree/settings/sidebar.html:40
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
-#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
-#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:509
+#: templates/js/translated/stock.js:1162 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2856,7 +2828,7 @@ msgstr ""
#: stock/templates/stock/location.html:132
#: stock/templates/stock/location.html:144
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1901
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2886,24 +2858,24 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:580
+#: company/views.py:129 part/views.py:584
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:612
+#: company/views.py:158 part/views.py:616
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:619
+#: company/views.py:165 part/views.py:623
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:628
+#: company/views.py:174 part/views.py:632
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/api.py:57 report/api.py:201
+#: label/api.py:57 report/api.py:203
msgid "No valid objects provided to template"
msgstr ""
@@ -2960,7 +2932,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
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
+#: report/models.py:322 report/models.py:459 report/models.py:497
msgid "Filters"
msgstr ""
@@ -3090,7 +3062,7 @@ msgstr ""
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1092
+#: order/models.py:582 templates/js/translated/order.js:1114
msgid "Shipment Date"
msgstr ""
@@ -3115,7 +3087,7 @@ msgid "Line item notes"
msgstr ""
#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1144
+#: templates/js/translated/order.js:1166
msgid "Order"
msgstr ""
@@ -3123,8 +3095,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:325
-#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1300
+#: templates/js/translated/stock.js:1983
msgid "Purchase Order"
msgstr ""
@@ -3134,7 +3106,7 @@ msgstr ""
#: order/models.py:797 order/templates/order/order_base.html:147
#: order/templates/order/sales_order_base.html:154
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:954
msgid "Received"
msgstr ""
@@ -3144,7 +3116,7 @@ msgstr ""
#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1324
+#: templates/js/translated/stock.js:1354
msgid "Purchase Price"
msgstr ""
@@ -3205,47 +3177,47 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:167
+#: order/serializers.py:169
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:202
+#: order/serializers.py:204
msgid "Line Item"
msgstr ""
-#: order/serializers.py:208
+#: order/serializers.py:210
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:286
+#: order/serializers.py:220 order/serializers.py:288
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:242
+#: order/serializers.py:244
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:243
+#: order/serializers.py:245
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:260
+#: order/serializers.py:262
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:298
+#: order/serializers.py:300
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:315
+#: order/serializers.py:317
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:328
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:568
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3391,19 +3363,23 @@ msgstr ""
msgid "Select Supplier Part"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:11
+#: order/templates/order/order_wizard/po_upload.html:8
+msgid "Return to Orders"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:17
msgid "Upload File for Purchase Order"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:18
+#: order/templates/order/order_wizard/po_upload.html:25
#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:21
+#: part/templates/part/import_wizard/part_upload.html:23
#, python-format
msgid "Step %(step)s of %(count)s"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:48
+#: order/templates/order/order_wizard/po_upload.html:55
msgid "Order is already processed. Files cannot be uploaded."
msgstr ""
@@ -3446,7 +3422,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:695 templates/js/translated/order.js:1097
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1119
msgid "Items"
msgstr ""
@@ -3464,31 +3440,6 @@ msgstr ""
msgid "Select a purchase order for %(name)s"
msgstr ""
-#: order/templates/order/po_attachments.html:12
-#: order/templates/order/po_navbar.html:32
-msgid "Purchase Order Attachments"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:15
-#: part/templates/part/part_sidebar.html:8
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:26
-msgid "Received Stock Items"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:29
-#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
#: order/templates/order/po_sidebar.html:5
#: order/templates/order/so_sidebar.html:5
#: report/templates/report/inventree_po_report.html:85
@@ -3505,9 +3456,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:216
+#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:191
+#: order/templates/order/sales_order_detail.html:157
msgid "Add Line Item"
msgstr ""
@@ -3519,6 +3470,10 @@ msgstr ""
msgid "Receive Items"
msgstr ""
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
#: order/templates/order/purchase_order_detail.html:76
#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
@@ -3547,7 +3502,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:121
-#: templates/js/translated/order.js:1064
+#: templates/js/translated/order.js:1086
msgid "Customer Reference"
msgstr ""
@@ -3701,19 +3656,19 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:731
+#: part/api.py:758
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:735
+#: part/api.py:762
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:750
+#: part/api.py:777
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
+#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
msgid "This field is required"
msgstr ""
@@ -3927,7 +3882,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/detail.html:45
#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
-#: templates/js/translated/stock.js:1104
+#: templates/js/translated/stock.js:1134
msgid "IPN"
msgstr ""
@@ -4048,7 +4003,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1467
-#: templates/js/translated/stock.js:828
+#: templates/js/translated/stock.js:858
msgid "Test Name"
msgstr ""
@@ -4553,7 +4508,7 @@ msgstr ""
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:365 part/views.py:751
+#: part/templates/part/detail.html:365 part/views.py:755
msgid "Validate BOM"
msgstr ""
@@ -4605,44 +4560,48 @@ msgstr ""
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:770
+#: part/templates/part/detail.html:772
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:867
+#: part/templates/part/detail.html:869
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:924
+#: part/templates/part/detail.html:926
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:1076
+#: part/templates/part/detail.html:1039
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1088
+#: part/templates/part/detail.html:1051
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1100
+#: part/templates/part/detail.html:1063
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1189
+#: part/templates/part/detail.html:1152
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:51
+#: part/templates/part/import_wizard/part_upload.html:53
msgid "Unsuffitient privileges."
msgstr ""
-#: part/templates/part/import_wizard/part_upload.html:14
+#: part/templates/part/import_wizard/part_upload.html:8
+msgid "Return to Parts"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:16
msgid "Import Parts from File"
msgstr ""
@@ -4752,7 +4711,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1546
#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
@@ -4847,6 +4806,11 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1949
+msgid "Details"
+msgstr ""
+
#: part/templates/part/part_sidebar.html:13
msgid "Variants"
msgstr ""
@@ -4951,7 +4915,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1784
+#: part/templates/part/prices.html:215 part/views.py:1788
msgid "Add Internal Price Break"
msgstr ""
@@ -5007,110 +4971,115 @@ msgstr ""
msgid "Match References"
msgstr ""
-#: part/views.py:498
+#: part/views.py:502
msgid "None"
msgstr ""
-#: part/views.py:557
+#: part/views.py:561
msgid "Part QR Code"
msgstr ""
-#: part/views.py:659
+#: part/views.py:663
msgid "Select Part Image"
msgstr ""
-#: part/views.py:685
+#: part/views.py:689
msgid "Updated part image"
msgstr ""
-#: part/views.py:688
+#: part/views.py:692
msgid "Part image not found"
msgstr ""
-#: part/views.py:700
+#: part/views.py:704
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:730
+#: part/views.py:734
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:772
+#: part/views.py:776
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:783
+#: part/views.py:787
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:856
+#: part/views.py:860
msgid "Match Parts"
msgstr ""
-#: part/views.py:1192
+#: part/views.py:1196
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1244
+#: part/views.py:1248
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1251
+#: part/views.py:1255
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1260
+#: part/views.py:1264
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1409
+#: part/views.py:1413
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1419
+#: part/views.py:1423
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1426
+#: part/views.py:1430
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1485 templates/js/translated/part.js:310
+#: part/views.py:1489 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1523
+#: part/views.py:1527
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1529
+#: part/views.py:1533
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1538
+#: part/views.py:1542
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1639
+#: part/views.py:1643
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1695
+#: part/views.py:1699
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1717
+#: part/views.py:1721
msgid "Added new price break"
msgstr ""
-#: part/views.py:1793
+#: part/views.py:1797
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1801
+#: part/views.py:1805
msgid "Delete Internal Price Break"
msgstr ""
+#: report/api.py:234 report/api.py:278
+#, python-brace-format
+msgid "Template file '{filename}' is missing or does not exist"
+msgstr ""
+
#: report/models.py:182
msgid "Template name"
msgstr ""
@@ -5147,51 +5116,51 @@ msgstr ""
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:380
+#: report/models.py:382
msgid "Build Filters"
msgstr ""
-#: report/models.py:381
+#: report/models.py:383
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:423
+#: report/models.py:425
msgid "Part Filters"
msgstr ""
-#: report/models.py:424
+#: report/models.py:426
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:458
+#: report/models.py:460
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:496
+#: report/models.py:498
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:546
+#: report/models.py:548
msgid "Snippet"
msgstr ""
-#: report/models.py:547
+#: report/models.py:549
msgid "Report snippet file"
msgstr ""
-#: report/models.py:551
+#: report/models.py:553
msgid "Snippet file description"
msgstr ""
-#: report/models.py:586
+#: report/models.py:588
msgid "Asset"
msgstr ""
-#: report/models.py:587
+#: report/models.py:589
msgid "Report asset file"
msgstr ""
-#: report/models.py:590
+#: report/models.py:592
msgid "Asset file description"
msgstr ""
@@ -5203,49 +5172,59 @@ msgstr ""
msgid "Stock Item Test Report"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:75
+#: report/templates/report/inventree_test_report_base.html:79
#: stock/models.py:530 stock/templates/stock/item_base.html:238
#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
#: templates/js/translated/build.js:1013
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+#: templates/js/translated/order.js:1288 templates/js/translated/order.js:1377
msgid "Serial Number"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:83
+#: report/templates/report/inventree_test_report_base.html:88
msgid "Test Results"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:93
#: stock/models.py:1855
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:89
+#: report/templates/report/inventree_test_report_base.html:94
#: stock/models.py:1861
msgid "Result"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917
msgid "Date"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:103
+#: report/templates/report/inventree_test_report_base.html:108
msgid "Pass"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:105
+#: report/templates/report/inventree_test_report_base.html:110
msgid "Fail"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:123
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:137
+#: templates/js/translated/stock.js:2177
+msgid "Serial"
+msgstr ""
+
#: stock/api.py:422
msgid "Quantity is required"
msgstr ""
#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
#: stock/templates/stock/item_base.html:382
-#: templates/js/translated/stock.js:1246
+#: templates/js/translated/stock.js:1276
msgid "Expiry Date"
msgstr ""
@@ -5507,7 +5486,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:319 stock/serializers.py:687
+#: stock/serializers.py:319 stock/serializers.py:686
msgid "Destination stock location"
msgstr ""
@@ -5519,15 +5498,15 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:557
+#: stock/serializers.py:556
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:585
+#: stock/serializers.py:584
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:595
+#: stock/serializers.py:594
msgid "A list of stock items must be provided"
msgstr ""
@@ -5572,15 +5551,15 @@ msgstr ""
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
+#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:363
+#: stock/templates/stock/item.html:324
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:377
+#: stock/templates/stock/item.html:338
msgid "Delete Test Result"
msgstr ""
@@ -5754,7 +5733,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:1259
+#: templates/js/translated/stock.js:1289
msgid "Last Updated"
msgstr ""
@@ -5770,7 +5749,7 @@ msgstr ""
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:505
msgid "Edit Stock Status"
msgstr ""
@@ -5887,10 +5866,6 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:12
-msgid "Installed Items"
-msgstr ""
-
#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
@@ -5969,7 +5944,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:618
+#: stock/views.py:760 templates/js/translated/stock.js:648
msgid "Confirm stock adjustment"
msgstr ""
@@ -5977,7 +5952,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:288
+#: stock/views.py:793 templates/js/translated/stock.js:318
msgid "Edit Stock Item"
msgstr ""
@@ -5989,7 +5964,7 @@ msgstr ""
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:268
+#: stock/views.py:1186 templates/js/translated/stock.js:298
msgid "Duplicate Stock Item"
msgstr ""
@@ -6166,11 +6141,11 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/po.html:9
+#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
-#: templates/InvenTree/settings/report.html:10
+#: templates/InvenTree/settings/report.html:8
#: templates/InvenTree/settings/user_reports.html:9
msgid "Report Settings"
msgstr ""
@@ -6223,7 +6198,7 @@ msgid "User Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:8
-#: templates/InvenTree/settings/user.html:11
+#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
@@ -6275,140 +6250,136 @@ msgid "Stock Settings"
msgstr ""
#: templates/InvenTree/settings/user.html:18
-#: templates/js/translated/helpers.js:26
-msgid "Edit"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:20
#: 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:31
+#: templates/InvenTree/settings/user.html:22
+#: templates/js/translated/helpers.js:26
+msgid "Edit"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:32
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:35
+#: templates/InvenTree/settings/user.html:36
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:39
+#: templates/InvenTree/settings/user.html:40
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:54
+#: templates/InvenTree/settings/user.html:55
msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:74
+#: templates/InvenTree/settings/user.html:75
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:76
+#: templates/InvenTree/settings/user.html:77
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:78
+#: templates/InvenTree/settings/user.html:79
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:84
+#: templates/InvenTree/settings/user.html:85
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:85
+#: templates/InvenTree/settings/user.html:86
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:86
-#: templates/InvenTree/settings/user.html:153
+#: templates/InvenTree/settings/user.html:87
+#: templates/InvenTree/settings/user.html:154
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
+#: templates/InvenTree/settings/user.html:94
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:94
+#: templates/InvenTree/settings/user.html:95
msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:101
+#: templates/InvenTree/settings/user.html:102
msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:111
+#: templates/InvenTree/settings/user.html:112
msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:113
+#: templates/InvenTree/settings/user.html:114
msgid "Add Email"
msgstr ""
-#: templates/InvenTree/settings/user.html:123
+#: templates/InvenTree/settings/user.html:124
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:128
+#: templates/InvenTree/settings/user.html:129
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:162
+#: templates/InvenTree/settings/user.html:163
msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:167
+#: templates/InvenTree/settings/user.html:168
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:177
-msgid "Language Settings"
+#: templates/InvenTree/settings/user.html:179
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:185
+msgid "Log out active sessions (except this one)"
msgstr ""
#: templates/InvenTree/settings/user.html:186
-msgid "Select language"
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:195
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:196
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:200
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:201
+msgid "Device"
msgstr ""
#: templates/InvenTree/settings/user.html:202
-#, python-format
-msgid "%(lang_translated)s%% translated"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:204
-msgid "No translations available"
+msgid "Last Activity"
msgstr ""
#: templates/InvenTree/settings/user.html:211
-msgid "Set Language"
+#, python-format
+msgid "%(time)s ago (this session)"
msgstr ""
#: templates/InvenTree/settings/user.html:213
-msgid "Some languages are not complete"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:215
-msgid "Show only sufficent"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "and hidden."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "Show them too"
+#, python-format
+msgid "%(time)s ago"
msgstr ""
#: templates/InvenTree/settings/user.html:224
-msgid "Help the translation efforts!"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:225
-#, 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:233
msgid "Do you really want to remove the selected email address?"
msgstr ""
@@ -6424,6 +6395,52 @@ msgstr ""
msgid "Set Theme"
msgstr ""
+#: templates/InvenTree/settings/user_display.html:54
+msgid "Language Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:63
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:79
+#, python-format
+msgid "%(lang_translated)s%% translated"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:81
+msgid "No translations available"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:88
+msgid "Set Language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:91
+msgid "Some languages are not complete"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:93
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:101
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:102
+#, 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_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6623,6 +6640,14 @@ msgstr ""
msgid "View in administration panel"
msgstr ""
+#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54
+msgid "Add Link"
+msgstr ""
+
+#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36
+msgid "Add Attachment"
+msgstr ""
+
#: templates/base.html:96
msgid "Server Restart Required"
msgstr ""
@@ -6706,154 +6731,87 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/report.js:47 templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/report.js:55 templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/report.js:70 templates/js/translated/report.js:90
-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:594
-msgid "Select Stock Items"
-msgstr ""
-
-#: templates/js/report.js:99 templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:116 templates/js/report.js:169
-#: templates/js/report.js:223 templates/js/report.js:277
-#: templates/js/report.js:331 templates/js/translated/report.js:136
-#: 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 ""
-
-#: templates/js/report.js:117 templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/report.js:152 templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/report.js:153 templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: 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/build.js:1333
-#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
-#: templates/js/report.js:206 templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:224 templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/report.js:259 templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/report.js:260 templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/report.js:278 templates/js/report.js:332
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/report.js:313 templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/report.js:314 templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:191
+#: templates/js/translated/api.js:192
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:192
+#: templates/js/translated/api.js:193
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:215
+#: templates/js/translated/api.js:216
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:216
+#: templates/js/translated/api.js:217
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:27
+#: templates/js/translated/attachment.js:76
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:95
-msgid "Upload Date"
+#: templates/js/translated/attachment.js:98
+msgid "Edit Attachment"
msgstr ""
#: templates/js/translated/attachment.js:108
+msgid "Confirm Delete"
+msgstr ""
+
+#: templates/js/translated/attachment.js:109
+msgid "Delete Attachment"
+msgstr ""
+
+#: templates/js/translated/attachment.js:165
+msgid "Upload Date"
+msgstr ""
+
+#: templates/js/translated/attachment.js:178
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:115
+#: templates/js/translated/attachment.js:185
msgid "Delete attachment"
msgstr ""
@@ -6914,7 +6872,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:600
msgid "Remove stock item"
msgstr ""
@@ -7009,7 +6967,7 @@ msgid "View BOM"
msgstr ""
#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1320
msgid "Actions"
msgstr ""
@@ -7101,7 +7059,7 @@ msgstr ""
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1194
msgid "Location not specified"
msgstr ""
@@ -7110,12 +7068,12 @@ msgid "No active build outputs found"
msgstr ""
#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1305
+#: templates/js/translated/order.js:1327
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1306
+#: templates/js/translated/order.js:1328
msgid "Delete stock allocation"
msgstr ""
@@ -7136,11 +7094,11 @@ msgid "Quantity Per"
msgstr ""
#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1557
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1611
msgid "Build stock"
msgstr ""
@@ -7148,7 +7106,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1604
msgid "Allocate stock"
msgstr ""
@@ -7156,6 +7114,11 @@ msgstr ""
msgid "Specify stock allocation quantity"
msgstr ""
+#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
+#: templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
@@ -7185,8 +7148,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
-#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
-#: templates/js/translated/stock.js:1841
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1094
+#: templates/js/translated/stock.js:1871
msgid "Select"
msgstr ""
@@ -7194,7 +7157,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2090
msgid "No user information"
msgstr ""
@@ -7336,45 +7299,45 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
-#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
+#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365
+#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:351
+#: templates/js/translated/forms.js:352
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:366
+#: templates/js/translated/forms.js:367
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:380
+#: templates/js/translated/forms.js:381
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:394
+#: templates/js/translated/forms.js:395
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:679
+#: templates/js/translated/forms.js:680
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/js/translated/forms.js:1072 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1457
+#: templates/js/translated/forms.js:1463
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1661
+#: templates/js/translated/forms.js:1667
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1878
+#: templates/js/translated/forms.js:1884
msgid "Clear input"
msgstr ""
@@ -7386,6 +7349,11 @@ msgstr ""
msgid "NO"
msgstr ""
+#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
+#: templates/js/translated/stock.js:624
+msgid "Select Stock Items"
+msgstr ""
+
#: templates/js/translated/label.js:30
msgid "Stock item(s) must be selected before printing labels"
msgstr ""
@@ -7538,11 +7506,11 @@ msgstr ""
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:423
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:424
msgid "Select file format"
msgstr ""
@@ -7558,7 +7526,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1673
msgid "Stock Status"
msgstr ""
@@ -7586,100 +7554,104 @@ msgstr ""
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1063
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
+#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
+#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:801
+#: templates/js/translated/order.js:823
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
+#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:904 templates/js/translated/order.js:1492
#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+#: templates/js/translated/order.js:919 templates/js/translated/order.js:1508
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
+#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:976
+#: templates/js/translated/order.js:998
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:980
+#: templates/js/translated/order.js:1002
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1017
+#: templates/js/translated/order.js:1039
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1055
+#: templates/js/translated/order.js:1077
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1133
+#: templates/js/translated/order.js:1155
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1226
+#: templates/js/translated/order.js:1248
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1244
+#: templates/js/translated/order.js:1265
+msgid "Confirm Delete Operation"
+msgstr ""
+
+#: templates/js/translated/order.js:1266
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1308
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1535
+#: templates/js/translated/order.js:1557
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1579
+#: templates/js/translated/order.js:1601
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1585
+#: templates/js/translated/order.js:1607
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
+#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1596
+#: templates/js/translated/order.js:1618
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1719
+#: templates/js/translated/order.js:1741
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1779
+#: templates/js/translated/order.js:1801
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1793
+#: templates/js/translated/order.js:1815
msgid "No matching line items"
msgstr ""
@@ -7829,7 +7801,7 @@ msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
-#: templates/js/translated/stock.js:1802
+#: templates/js/translated/stock.js:1832
msgid "Display as list"
msgstr ""
@@ -7837,7 +7809,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1851
msgid "Display as tree"
msgstr ""
@@ -7845,7 +7817,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1895
msgid "Path"
msgstr ""
@@ -7853,11 +7825,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:816
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:817
msgid "Delete test result"
msgstr ""
@@ -7896,268 +7868,342 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:136 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 ""
+
+#: templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
#: templates/js/translated/stock.js:70
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:90
+#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167
+msgid "Next available serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169
+msgid "Latest serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:104
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:126
+#: templates/js/translated/stock.js:140
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:189
+#: templates/js/translated/stock.js:180
+msgid "This part cannot be serialized"
+msgstr ""
+
+#: templates/js/translated/stock.js:219
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:195
+#: templates/js/translated/stock.js:225
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:338
+#: templates/js/translated/stock.js:368
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:351
+#: templates/js/translated/stock.js:381
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:420
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:401
+#: templates/js/translated/stock.js:431
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:402
+#: templates/js/translated/stock.js:432
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:444
+#: templates/js/translated/stock.js:474
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:445
+#: templates/js/translated/stock.js:475
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:451
+#: templates/js/translated/stock.js:481
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:452
+#: templates/js/translated/stock.js:482
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:486
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:487
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:491
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:462 users/models.py:200
+#: templates/js/translated/stock.js:492 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:466 templates/stock_table.html:56
+#: templates/js/translated/stock.js:496 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:595
+#: templates/js/translated/stock.js:625
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:753
+#: templates/js/translated/stock.js:783
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:755
+#: templates/js/translated/stock.js:785
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:760
+#: templates/js/translated/stock.js:790
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:812
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:808
+#: templates/js/translated/stock.js:838
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:895
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:1002
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:1006
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:1010
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:984
+#: templates/js/translated/stock.js:1014
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:990
+#: templates/js/translated/stock.js:1020
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1148
+#: templates/js/translated/stock.js:1178
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1153
+#: templates/js/translated/stock.js:1183
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1156
+#: templates/js/translated/stock.js:1186
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1160
+#: templates/js/translated/stock.js:1190
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1162
+#: templates/js/translated/stock.js:1192
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1166
+#: templates/js/translated/stock.js:1196
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1170
+#: templates/js/translated/stock.js:1200
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1177
+#: templates/js/translated/stock.js:1207
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1179
+#: templates/js/translated/stock.js:1209
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1181
+#: templates/js/translated/stock.js:1211
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1185
+#: templates/js/translated/stock.js:1215
#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1235
+#: templates/js/translated/stock.js:1265
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1308
+#: templates/js/translated/stock.js:1338
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1346
+#: templates/js/translated/stock.js:1376
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
+#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1455
+#: templates/js/translated/stock.js:1485
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1482
+#: templates/js/translated/stock.js:1512
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1484
+#: templates/js/translated/stock.js:1514
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1658
+#: templates/js/translated/stock.js:1688
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1672
+#: templates/js/translated/stock.js:1702
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1673
+#: templates/js/translated/stock.js:1703
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1897
+#: templates/js/translated/stock.js:1927
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1944
+#: templates/js/translated/stock.js:1974
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1963
+#: templates/js/translated/stock.js:1993
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1982
+#: templates/js/translated/stock.js:2012
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2000
+#: templates/js/translated/stock.js:2030
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2023
+#: templates/js/translated/stock.js:2053
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2061
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2072
+#: templates/js/translated/stock.js:2102
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2073
+#: templates/js/translated/stock.js:2103
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2124
+#: templates/js/translated/stock.js:2154
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
-#: templates/js/translated/stock.js:2175
+#: templates/js/translated/stock.js:2205
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po
index cf4528aca5..db90b2d66d 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-11-25 04:46+0000\n"
-"PO-Revision-Date: 2021-11-25 05:07\n"
+"POT-Creation-Date: 2021-11-30 21:49+0000\n"
+"PO-Revision-Date: 2021-11-30 21:52\n"
"Last-Translator: \n"
"Language-Team: Spanish, Mexico\n"
"Language: es_MX\n"
@@ -19,282 +19,304 @@ msgstr ""
#: InvenTree/api.py:64
msgid "API endpoint not found"
-msgstr ""
+msgstr "Endpoint de API no encontrado"
#: InvenTree/api.py:110
msgid "No action specified"
-msgstr ""
+msgstr "Ninguna acción especificada"
#: InvenTree/api.py:124
msgid "No matching action found"
-msgstr ""
+msgstr "No se encontró ninguna acción coincidente"
#: InvenTree/fields.py:100
msgid "Enter date"
-msgstr ""
+msgstr "Ingrese fecha"
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:594
+#: templates/js/translated/forms.js:595
msgid "Confirm"
-msgstr ""
+msgstr "Confirmar"
#: InvenTree/forms.py:136
msgid "Confirm delete"
-msgstr ""
+msgstr "Confirmar eliminación"
#: InvenTree/forms.py:137
msgid "Confirm item deletion"
-msgstr ""
+msgstr "Confirmar borrado de artículo"
#: InvenTree/forms.py:168
msgid "Enter password"
-msgstr ""
+msgstr "Ingrese contraseña"
#: InvenTree/forms.py:169
msgid "Enter new password"
-msgstr ""
+msgstr "Ingrese nueva contraseña"
#: InvenTree/forms.py:176
msgid "Confirm password"
-msgstr ""
+msgstr "Confirmar contraseña"
#: InvenTree/forms.py:177
msgid "Confirm new password"
-msgstr ""
+msgstr "Confirmar nueva contraseña"
#: InvenTree/forms.py:209
msgid "Select Category"
-msgstr ""
+msgstr "Seleccionar Categoría"
#: InvenTree/forms.py:230
msgid "Email (again)"
-msgstr ""
+msgstr "Email (de nuevo)"
#: InvenTree/forms.py:234
msgid "Email address confirmation"
-msgstr ""
+msgstr "Confirmación de email"
#: InvenTree/forms.py:254
msgid "You must type the same email each time."
-msgstr ""
+msgstr "Debe escribir el mismo correo electrónico cada vez."
#: InvenTree/helpers.py:430
#, python-brace-format
msgid "Duplicate serial: {n}"
-msgstr ""
+msgstr "Duplicar serie: {n}"
#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
#: stock/views.py:1264
msgid "Invalid quantity provided"
-msgstr ""
+msgstr "Cantidad proporcionada no válida"
#: InvenTree/helpers.py:440
msgid "Empty serial number string"
-msgstr ""
+msgstr "Cadena de número de serie vacía"
#: InvenTree/helpers.py:462 InvenTree/helpers.py:465 InvenTree/helpers.py:468
#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Invalid group: {g}"
-msgstr ""
+msgstr "Grupo inválido: {g}"
#: InvenTree/helpers.py:498
#, python-brace-format
msgid "Duplicate serial: {g}"
-msgstr ""
+msgstr "Serie duplicada: {g}"
#: InvenTree/helpers.py:506
msgid "No serial numbers found"
-msgstr ""
+msgstr "No se encontraron números de serie"
#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
-msgstr ""
+msgstr "Número único de número de serie ({s}) debe coincidir con la cantidad ({q})"
-#: InvenTree/models.py:109 stock/models.py:1874
+#: InvenTree/models.py:114
+msgid "Missing file"
+msgstr "Falta archivo"
+
+#: InvenTree/models.py:115
+msgid "Missing external link"
+msgstr "Falta enlace externo"
+
+#: InvenTree/models.py:126 stock/models.py:1874
+#: templates/js/translated/attachment.js:117
msgid "Attachment"
-msgstr ""
+msgstr "Adjunto"
-#: InvenTree/models.py:110
+#: InvenTree/models.py:127
msgid "Select file to attach"
-msgstr ""
+msgstr "Seleccionar archivo a adjuntar"
-#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
+#: InvenTree/models.py:133 company/models.py:131 company/models.py:348
+#: company/models.py:564 order/models.py:163 part/models.py:797
+#: report/templates/report/inventree_build_order_base.html:165
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
+msgid "Link"
+msgstr "Enlace"
+
+#: InvenTree/models.py:134 build/models.py:330 part/models.py:798
+#: stock/models.py:540
+msgid "Link to external URL"
+msgstr "Enlace a URL externa"
+
+#: InvenTree/models.py:137 templates/js/translated/attachment.js:161
msgid "Comment"
-msgstr ""
+msgstr "Comentario"
-#: InvenTree/models.py:112
+#: InvenTree/models.py:137
msgid "File comment"
-msgstr ""
+msgstr "Comentario de archivo"
-#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185
#: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:2054
+#: report/templates/report/inventree_test_report_base.html:96
+#: templates/js/translated/stock.js:2084
msgid "User"
-msgstr ""
+msgstr "Usuario"
-#: InvenTree/models.py:122
+#: InvenTree/models.py:147
msgid "upload date"
-msgstr ""
+msgstr "fecha de subida"
-#: InvenTree/models.py:142
+#: InvenTree/models.py:170
msgid "Filename must not be empty"
-msgstr ""
+msgstr "El nombre del archivo no debe estar vacío"
-#: InvenTree/models.py:165
+#: InvenTree/models.py:193
msgid "Invalid attachment directory"
-msgstr ""
+msgstr "Directorio adjunto inválido"
-#: InvenTree/models.py:175
+#: InvenTree/models.py:203
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
-msgstr ""
+msgstr "El nombre de archivo contiene caracteres no válidos '{c}'"
-#: InvenTree/models.py:178
+#: InvenTree/models.py:206
msgid "Filename missing extension"
-msgstr ""
+msgstr "Falta extensión del nombre de archivo"
-#: InvenTree/models.py:185
+#: InvenTree/models.py:213
msgid "Attachment with this filename already exists"
-msgstr ""
+msgstr "Ya existe un adjunto con este nombre de archivo"
-#: InvenTree/models.py:192
+#: InvenTree/models.py:220
msgid "Error renaming file"
-msgstr ""
+msgstr "Error renombrando archivo"
-#: InvenTree/models.py:227
+#: InvenTree/models.py:255
msgid "Invalid choice"
-msgstr ""
+msgstr "Elección no válida"
-#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: InvenTree/models.py:271 InvenTree/models.py:272 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
#: part/templates/part/detail.html:25 report/models.py:181
#: templates/InvenTree/settings/settings.html:259
#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
-#: templates/js/translated/stock.js:1847
+#: templates/js/translated/stock.js:1877
msgid "Name"
-msgstr ""
+msgstr "Nombre"
-#: InvenTree/models.py:250 build/models.py:207
+#: InvenTree/models.py:278 build/models.py:207
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:80
#: company/templates/company/supplier_part.html:81 label/models.py:119
#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:551 report/models.py:590
+#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
#: templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
-#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/order.js:855 templates/js/translated/order.js:1091
#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
-#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
-#: templates/js/translated/stock.js:1904
+#: templates/js/translated/stock.js:1151 templates/js/translated/stock.js:1889
+#: templates/js/translated/stock.js:1934
msgid "Description"
-msgstr ""
+msgstr "Descripción"
-#: InvenTree/models.py:251
+#: InvenTree/models.py:279
msgid "Description (optional)"
-msgstr ""
+msgstr "Descripción (opcional)"
-#: InvenTree/models.py:259
+#: InvenTree/models.py:287
msgid "parent"
-msgstr ""
+msgstr "principal"
#: InvenTree/serializers.py:62 part/models.py:2674
msgid "Must be a valid number"
-msgstr ""
+msgstr "Debe ser un número válido"
-#: InvenTree/serializers.py:251
+#: InvenTree/serializers.py:285
msgid "Filename"
-msgstr ""
+msgstr "Nombre de archivo"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:670
msgid "German"
-msgstr ""
+msgstr "Alemán"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:671
msgid "Greek"
-msgstr ""
+msgstr "Griego"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:672
msgid "English"
-msgstr ""
+msgstr "Inglés"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:673
msgid "Spanish"
-msgstr ""
+msgstr "Español"
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:674
msgid "Spanish (Mexican)"
-msgstr ""
+msgstr "Español (México)"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:675
msgid "French"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:676
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:683
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:684
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:685
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:686
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:687
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:688
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:689
msgid "Chinese"
msgstr ""
@@ -413,7 +435,7 @@ msgstr ""
#: InvenTree/status_codes.py:288
msgid "Split from parent item"
-msgstr ""
+msgstr "Separar del artículo principal"
#: InvenTree/status_codes.py:289
msgid "Split child item"
@@ -479,27 +501,27 @@ msgstr ""
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:536
+#: InvenTree/views.py:538
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:585
+#: InvenTree/views.py:587
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
+#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
+#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:630
+#: InvenTree/views.py:632
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:863 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:101
msgid "System Information"
msgstr ""
@@ -552,12 +574,13 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
+#: part/templates/part/detail.html:1076 part/templates/part/detail.html:1162
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:77
+#: report/templates/report/inventree_test_report_base.html:81
+#: report/templates/report/inventree_test_report_base.html:139
#: stock/forms.py:156 stock/serializers.py:286
#: stock/templates/stock/item_base.html:256
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
@@ -565,12 +588,12 @@ msgstr ""
#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
-#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
-#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/order.js:892 templates/js/translated/order.js:1205
+#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290
+#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479
#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
-#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
-#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377
+#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171
msgid "Quantity"
msgstr ""
@@ -579,8 +602,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:307 templates/js/translated/stock.js:194
-#: templates/js/translated/stock.js:348
+#: stock/serializers.py:307 templates/js/translated/stock.js:224
+#: templates/js/translated/stock.js:378
msgid "Serial Numbers"
msgstr ""
@@ -610,7 +633,7 @@ msgstr ""
#: build/models.py:133
msgid "Invalid choice for parent build"
-msgstr ""
+msgstr "Opción no válida para el armado principal"
#: build/models.py:137 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
@@ -639,7 +662,7 @@ msgstr ""
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
+#: templates/js/translated/order.js:886 templates/js/translated/order.js:1473
msgid "Reference"
msgstr ""
@@ -650,7 +673,7 @@ msgstr ""
#: build/models.py:219 build/templates/build/build_base.html:156
#: build/templates/build/detail.html:88
msgid "Parent Build"
-msgstr ""
+msgstr "Armado Principal"
#: build/models.py:220
msgid "BuildOrder to which this build is allocated"
@@ -677,10 +700,10 @@ msgstr ""
#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/order.js:840 templates/js/translated/order.js:1457
#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
-#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
-#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508
+#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159
msgid "Part"
msgstr ""
@@ -710,7 +733,7 @@ msgstr ""
#: build/models.py:260
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:264
msgid "Build Quantity"
@@ -718,15 +741,15 @@ msgstr ""
#: build/models.py:267
msgid "Number of stock items to build"
-msgstr ""
+msgstr "Número de elementos de stock a construir"
#: build/models.py:271
msgid "Completed items"
-msgstr ""
+msgstr "Elementos completados"
#: build/models.py:273
msgid "Number of stock items which have been completed"
-msgstr ""
+msgstr "Número de artículos de stock que han sido completados"
#: build/models.py:277 part/templates/part/part_base.html:216
msgid "Build Status"
@@ -745,7 +768,7 @@ msgid "Batch code for this build output"
msgstr ""
#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1104
msgid "Creation Date"
msgstr ""
@@ -779,7 +802,7 @@ msgstr ""
#: order/templates/order/order_base.html:154
#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680
+#: templates/js/translated/build.js:1680 templates/js/translated/order.js:700
msgid "Responsible"
msgstr ""
@@ -795,27 +818,21 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:330 part/models.py:798 stock/models.py:540
-msgid "Link to external URL"
-msgstr ""
-
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:183 order/models.py:738
-#: order/templates/order/po_navbar.html:38
-#: order/templates/order/po_navbar.html:41
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:11 part/models.py:925
#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: stock/serializers.py:583 stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
-#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
-#: templates/js/translated/stock.js:1340
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:985
+#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1370
msgid "Notes"
msgstr ""
@@ -876,8 +893,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:340
#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
-#: templates/js/translated/stock.js:1990
+#: templates/js/translated/order.js:1178 templates/js/translated/order.js:1183
+#: templates/js/translated/stock.js:2020
msgid "Stock Item"
msgstr ""
@@ -917,16 +934,16 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
-#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: build/serializers.py:190 order/serializers.py:219 order/serializers.py:287
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685
#: stock/templates/stock/item_base.html:286
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
-#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
-#: templates/js/translated/stock.js:1931
+#: templates/js/translated/order.js:1190 templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251
+#: templates/js/translated/stock.js:1961
msgid "Location"
msgstr ""
@@ -936,11 +953,11 @@ msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:129
#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: order/serializers.py:240 stock/templates/stock/item_base.html:409
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
-#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
-#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+#: templates/js/translated/order.js:1096 templates/js/translated/stock.js:1226
+#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187
msgid "Status"
msgstr ""
@@ -969,7 +986,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:233
#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
msgid "Quantity must be greater than zero"
msgstr ""
@@ -989,7 +1006,7 @@ msgstr ""
#: build/serializers.py:431
msgid "Allocation items must be provided"
-msgstr ""
+msgstr "Debe proporcionar adjudicación de artículos"
#: build/tasks.py:92
msgid "Stock required for build order"
@@ -1060,7 +1077,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:140
#: report/templates/report/inventree_build_order_base.html:126
#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
-#: templates/js/translated/order.js:1087
+#: templates/js/translated/order.js:1109
msgid "Target Date"
msgstr ""
@@ -1096,7 +1113,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/order.js:1029
+#: templates/js/translated/order.js:1051
msgid "Sales Order"
msgstr ""
@@ -1171,7 +1188,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:974
msgid "Destination"
msgstr ""
@@ -1185,7 +1202,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:304
-#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/stock.js:1240 templates/js/translated/stock.js:2194
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:233
msgid "Batch"
@@ -1251,11 +1268,11 @@ msgstr ""
#: build/templates/build/detail.html:208
msgid "Allocate selected items"
-msgstr ""
+msgstr "Asignar elementos seleccionados"
#: build/templates/build/detail.html:218
msgid "This Build Order does not have any associated untracked BOM items"
-msgstr ""
+msgstr "Esta orden de trabajo no tiene ningún objeto BOM asociado sin seguimiento"
#: build/templates/build/detail.html:227
msgid "Incomplete Build Outputs"
@@ -1275,7 +1292,7 @@ msgstr ""
#: build/templates/build/detail.html:250
msgid "Complete selected items"
-msgstr ""
+msgstr "Completar elementos seleccionados"
#: build/templates/build/detail.html:251
msgid "Complete outputs"
@@ -1286,7 +1303,6 @@ msgid "Completed Build Outputs"
msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
-#: order/templates/order/po_navbar.html:35
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:52
@@ -1300,7 +1316,7 @@ msgstr ""
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:453
#: company/templates/company/detail.html:188
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
@@ -1312,47 +1328,13 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:448
-#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
-#: templates/attachment_button.html:4
-msgid "Add Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:467
-#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:142
-#: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
-msgid "Edit Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:474
-#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:149
-#: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
-#: templates/js/translated/order.js:1243
-msgid "Confirm Delete Operation"
-msgstr ""
-
-#: build/templates/build/detail.html:475
-#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:150
-#: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
-msgid "Delete Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:513
+#: build/templates/build/detail.html:477
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:514
+#: build/templates/build/detail.html:478
msgid "All untracked stock items have been allocated"
-msgstr ""
+msgstr "Todos los artículos de stock no rastreados han sido asignados"
#: build/templates/build/index.html:18 part/templates/part/detail.html:407
msgid "New Build Order"
@@ -1380,11 +1362,11 @@ msgstr ""
#: build/templates/build/sidebar.html:12
msgid "Pending Items"
-msgstr ""
+msgstr "Artículos Pendientes"
#: build/templates/build/sidebar.html:15
msgid "Completed Items"
-msgstr ""
+msgstr "Artículos Completados"
#: build/views.py:76
msgid "Build was cancelled"
@@ -1466,7 +1448,7 @@ msgstr ""
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:34 templates/js/translated/attachment.js:54
+#: common/forms.py:34
msgid "File"
msgstr ""
@@ -1820,7 +1802,7 @@ msgstr ""
#: common/models.py:861
msgid "Number of days stock items are considered stale before expiring"
-msgstr ""
+msgstr "Número de días en que artículos de stock se consideran obsoletos antes de caducar"
#: common/models.py:863
msgid "days"
@@ -1840,7 +1822,7 @@ msgstr ""
#: common/models.py:876
msgid "Enable ownership control over stock locations and items"
-msgstr ""
+msgstr "Habilitar control de propiedad sobre ubicaciones de stock y artículos"
#: common/models.py:882
msgid "Group by Part"
@@ -1848,7 +1830,7 @@ msgstr ""
#: common/models.py:883
msgid "Group stock items by part reference in table views"
-msgstr ""
+msgstr "Agrupar artículos de stock por referencia de parte en vistas de tabla"
#: common/models.py:889
msgid "Build Order Reference Prefix"
@@ -1992,7 +1974,7 @@ msgstr ""
#: common/models.py:1033
msgid "Show recently changed stock items on the homepage"
-msgstr ""
+msgstr "Mostrar artículos de stock recientemente modificados en la página de inicio"
#: common/models.py:1038
msgid "Recent Stock Count"
@@ -2000,7 +1982,7 @@ msgstr ""
#: common/models.py:1039
msgid "Number of recent stock items to display on index page"
-msgstr ""
+msgstr "Número de elementos de stock recientes a mostrar en la página de índice"
#: common/models.py:1044
msgid "Show low stock"
@@ -2008,7 +1990,7 @@ msgstr ""
#: common/models.py:1045
msgid "Show low stock items on the homepage"
-msgstr ""
+msgstr "Mostrar artículos de stock bajo en la página de inicio"
#: common/models.py:1050
msgid "Show depleted stock"
@@ -2016,7 +1998,7 @@ msgstr ""
#: common/models.py:1051
msgid "Show depleted stock items on the homepage"
-msgstr ""
+msgstr "Mostrar artículos agotados en la página de inicio"
#: common/models.py:1056
msgid "Show needed stock"
@@ -2024,7 +2006,7 @@ msgstr ""
#: common/models.py:1057
msgid "Show stock items needed for builds on the homepage"
-msgstr ""
+msgstr "Mostrar elementos de stock necesarios para construir en la página de inicio"
#: common/models.py:1062
msgid "Show expired stock"
@@ -2032,7 +2014,7 @@ msgstr ""
#: common/models.py:1063
msgid "Show expired stock items on the homepage"
-msgstr ""
+msgstr "Mostrar artículos de stock caducados en la página de inicio"
#: common/models.py:1068
msgid "Show stale stock"
@@ -2040,7 +2022,7 @@ msgstr ""
#: common/models.py:1069
msgid "Show stale stock items on the homepage"
-msgstr ""
+msgstr "Mostrar elementos de stock obsoletos en la página de inicio"
#: common/models.py:1074
msgid "Show pending builds"
@@ -2168,13 +2150,11 @@ msgstr ""
msgid "Unit price at specified quantity"
msgstr ""
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
-#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
-#: part/views.py:854
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
+#: part/views.py:858
msgid "Upload File"
msgstr ""
@@ -2182,13 +2162,13 @@ msgstr ""
#: 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:213
-#: part/views.py:855
+#: part/views.py:859
msgid "Match Fields"
msgstr ""
#: common/views.py:95
msgid "Match Items"
-msgstr ""
+msgstr "Coincidir artículos"
#: common/views.py:440
msgid "Fields matching failed"
@@ -2200,13 +2180,13 @@ msgstr ""
#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:40
+#: order/templates/order/order_wizard/po_upload.html:47
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:43
+#: part/templates/part/import_wizard/part_upload.html:45
msgid "Previous Step"
msgstr ""
@@ -2252,7 +2232,7 @@ msgid "Contact phone number"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:102
-#: templates/InvenTree/settings/user.html:46
+#: templates/InvenTree/settings/user.html:47
msgid "Email"
msgstr ""
@@ -2268,14 +2248,6 @@ msgstr ""
msgid "Point of contact"
msgstr ""
-#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:163 part/models.py:797
-#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:537
-#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
-msgid "Link"
-msgstr ""
-
#: company/models.py:131
msgid "Link to external company information"
msgstr ""
@@ -2290,7 +2262,7 @@ msgstr ""
#: company/models.py:144
msgid "Do you sell items to this company?"
-msgstr ""
+msgstr "¿Vendes artículos a esta empresa?"
#: company/models.py:146
msgid "is supplier"
@@ -2298,7 +2270,7 @@ msgstr ""
#: company/models.py:146
msgid "Do you purchase items from this company?"
-msgstr ""
+msgstr "¿Compras artículos de esta empresa?"
#: company/models.py:148
msgid "is manufacturer"
@@ -2343,7 +2315,7 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:97
#: company/templates/company/supplier_part.html:112
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:874
#: templates/js/translated/part.js:240
msgid "MPN"
msgstr ""
@@ -2372,9 +2344,9 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:90
+#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:1867 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878
msgid "Value"
msgstr ""
@@ -2413,7 +2385,7 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:98
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:861
#: templates/js/translated/part.js:221
msgid "SKU"
msgstr ""
@@ -2450,7 +2422,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:119
#: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1366
msgid "Packaging"
msgstr ""
@@ -2515,8 +2487,8 @@ msgstr ""
#: company/templates/company/company_base.html:126 order/models.py:567
#: order/templates/order/sales_order_base.html:114 stock/models.py:525
#: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
-#: templates/js/translated/stock.js:1972
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1073
+#: templates/js/translated/stock.js:2002
msgid "Customer"
msgstr ""
@@ -2721,7 +2693,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:974
+#: part/templates/part/detail.html:976
msgid "Add Parameter"
msgstr ""
@@ -2743,16 +2715,16 @@ msgstr ""
#: company/templates/company/sidebar.html:16
msgid "Supplied Stock Items"
-msgstr ""
+msgstr "Artículos de stock suministrados"
#: company/templates/company/sidebar.html:22
msgid "Assigned Stock Items"
-msgstr ""
+msgstr "Artículos de Stock Asignados"
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:492
#: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1323
msgid "Supplier Part"
msgstr ""
@@ -2778,7 +2750,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
-#: templates/js/translated/stock.js:324
+#: templates/js/translated/stock.js:354
msgid "New Stock Item"
msgstr ""
@@ -2799,7 +2771,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1713
+#: part/templates/part/prices.html:271 part/views.py:1717
msgid "Add Price Break"
msgstr ""
@@ -2807,11 +2779,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1775
+#: company/templates/company/supplier_part.html:224 part/views.py:1779
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1761
+#: company/templates/company/supplier_part.html:238 part/views.py:1765
msgid "Edit Price Break"
msgstr ""
@@ -2831,8 +2803,8 @@ msgstr ""
#: templates/InvenTree/settings/sidebar.html:40
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
-#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
-#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:509
+#: templates/js/translated/stock.js:1162 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2855,10 +2827,10 @@ msgstr ""
#: stock/templates/stock/location.html:132
#: stock/templates/stock/location.html:144
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1901
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
-msgstr ""
+msgstr "Artículos de Stock"
#: company/views.py:50
msgid "New Supplier"
@@ -2885,24 +2857,24 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:580
+#: company/views.py:129 part/views.py:584
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:612
+#: company/views.py:158 part/views.py:616
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:619
+#: company/views.py:165 part/views.py:623
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:628
+#: company/views.py:174 part/views.py:632
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/api.py:57 report/api.py:201
+#: label/api.py:57 report/api.py:203
msgid "No valid objects provided to template"
msgstr ""
@@ -2959,7 +2931,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
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
+#: report/models.py:322 report/models.py:459 report/models.py:497
msgid "Filters"
msgstr ""
@@ -2994,7 +2966,7 @@ msgstr ""
#: order/forms.py:104
msgid "Enter quantity of stock items"
-msgstr ""
+msgstr "Introducir cantidad de artículos de stock"
#: order/models.py:161
msgid "Order description"
@@ -3026,7 +2998,7 @@ msgstr ""
#: order/models.py:264
msgid "Company from which the items are being ordered"
-msgstr ""
+msgstr "Empresa de la que se están pidiendo los artículos"
#: order/models.py:267 order/templates/order/order_base.html:114
#: templates/js/translated/order.js:669
@@ -3075,7 +3047,7 @@ msgstr ""
#: order/models.py:568
msgid "Company to which the items are being sold"
-msgstr ""
+msgstr "Empresa a la que se venden los artículos"
#: order/models.py:574
msgid "Customer Reference "
@@ -3089,7 +3061,7 @@ msgstr ""
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1092
+#: order/models.py:582 templates/js/translated/order.js:1114
msgid "Shipment Date"
msgstr ""
@@ -3114,7 +3086,7 @@ msgid "Line item notes"
msgstr ""
#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1144
+#: templates/js/translated/order.js:1166
msgid "Order"
msgstr ""
@@ -3122,8 +3094,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:325
-#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1300
+#: templates/js/translated/stock.js:1983
msgid "Purchase Order"
msgstr ""
@@ -3133,17 +3105,17 @@ msgstr ""
#: order/models.py:797 order/templates/order/order_base.html:147
#: order/templates/order/sales_order_base.html:154
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:954
msgid "Received"
msgstr ""
#: order/models.py:798
msgid "Number of items received"
-msgstr ""
+msgstr "Número de artículos recibidos"
#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1324
+#: templates/js/translated/stock.js:1354
msgid "Purchase Price"
msgstr ""
@@ -3204,47 +3176,47 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:167
+#: order/serializers.py:169
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:202
+#: order/serializers.py:204
msgid "Line Item"
msgstr ""
-#: order/serializers.py:208
+#: order/serializers.py:210
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:286
+#: order/serializers.py:220 order/serializers.py:288
msgid "Select destination location for received items"
-msgstr ""
+msgstr "Seleccione la ubicación de destino para los artículos recibidos"
-#: order/serializers.py:242
+#: order/serializers.py:244
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:243
+#: order/serializers.py:245
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:260
+#: order/serializers.py:262
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:298
+#: order/serializers.py:300
msgid "Line items must be provided"
-msgstr ""
+msgstr "Debe proporcionar elementos de línea"
-#: order/serializers.py:315
+#: order/serializers.py:317
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:328
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:568
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3274,7 +3246,7 @@ msgstr ""
#: order/templates/order/order_base.html:56
msgid "Receive items"
-msgstr ""
+msgstr "Recibir artículos"
#: order/templates/order/order_base.html:93
#: order/templates/order/sales_order_base.html:98
@@ -3297,7 +3269,7 @@ 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 ""
+msgstr "Cancelar este pedido significa que la orden y los elementos de línea ya no serán editables."
#: order/templates/order/order_complete.html:7
msgid "Mark this order as complete?"
@@ -3305,15 +3277,15 @@ msgstr ""
#: order/templates/order/order_complete.html:10
msgid "This order has line items which have not been marked as received."
-msgstr ""
+msgstr "Este pedido tiene artículos de línea que no han sido marcados como recibidos."
#: order/templates/order/order_complete.html:11
msgid "Completing this order means that the order and line items will no longer be editable."
-msgstr ""
+msgstr "Completar este pedido significa que los artículos de orden y línea ya no serán editables."
#: order/templates/order/order_issue.html:8
msgid "After placing this purchase order, line items will no longer be editable."
-msgstr ""
+msgstr "Después de realizar esta orden de compra, los artículos de línea ya no serán editables."
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/bom_upload/match_fields.html:9
@@ -3390,19 +3362,23 @@ msgstr ""
msgid "Select Supplier Part"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:11
+#: order/templates/order/order_wizard/po_upload.html:8
+msgid "Return to Orders"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:17
msgid "Upload File for Purchase Order"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:18
+#: order/templates/order/order_wizard/po_upload.html:25
#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:21
+#: part/templates/part/import_wizard/part_upload.html:23
#, python-format
msgid "Step %(step)s of %(count)s"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:48
+#: order/templates/order/order_wizard/po_upload.html:55
msgid "Order is already processed. Files cannot be uploaded."
msgstr ""
@@ -3445,9 +3421,9 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:695 templates/js/translated/order.js:1097
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1119
msgid "Items"
-msgstr ""
+msgstr "Artículos"
#: order/templates/order/order_wizard/select_pos.html:32
msgid "Select Purchase Order"
@@ -3463,37 +3439,12 @@ msgstr ""
msgid "Select a purchase order for %(name)s"
msgstr ""
-#: order/templates/order/po_attachments.html:12
-#: order/templates/order/po_navbar.html:32
-msgid "Purchase Order Attachments"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:15
-#: part/templates/part/part_sidebar.html:8
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:26
-msgid "Received Stock Items"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:29
-#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
#: order/templates/order/po_sidebar.html:5
#: order/templates/order/so_sidebar.html:5
#: report/templates/report/inventree_po_report.html:85
#: report/templates/report/inventree_so_report.html:85
msgid "Line Items"
-msgstr ""
+msgstr "Artículos de Línea"
#: order/templates/order/po_sidebar.html:7
msgid "Received Stock"
@@ -3501,22 +3452,26 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:18
msgid "Purchase Order Items"
-msgstr ""
+msgstr "Comprar Artículos de Orden"
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:216
+#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:191
+#: order/templates/order/sales_order_detail.html:157
msgid "Add Line Item"
msgstr ""
#: order/templates/order/purchase_order_detail.html:30
msgid "Receive selected items"
-msgstr ""
+msgstr "Recibir artículos seleccionados"
#: order/templates/order/purchase_order_detail.html:31
msgid "Receive Items"
-msgstr ""
+msgstr "Recibir Artículos"
+
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr "Artículos Recibidos"
#: order/templates/order/purchase_order_detail.html:76
#: order/templates/order/sales_order_detail.html:68
@@ -3546,7 +3501,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:121
-#: templates/js/translated/order.js:1064
+#: templates/js/translated/order.js:1086
msgid "Customer Reference"
msgstr ""
@@ -3567,7 +3522,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:18
msgid "Sales Order Items"
-msgstr ""
+msgstr "Artículos de Orden de Venta"
#: 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."
@@ -3579,7 +3534,7 @@ msgstr ""
#: order/templates/order/sales_order_ship.html:18
msgid "Some line items in this order have been over-allocated"
-msgstr ""
+msgstr "Algunos artículos de línea en este pedido han sido sobreasignados"
#: order/templates/order/sales_order_ship.html:20
msgid "Ensure that this is correct before shipping the order."
@@ -3591,7 +3546,7 @@ msgstr ""
#: order/templates/order/so_allocate_by_serial.html:9
msgid "Allocate stock items by serial number"
-msgstr ""
+msgstr "Asignar artículos de stock por número de serie"
#: order/views.py:103
msgid "Cancel Order"
@@ -3661,7 +3616,7 @@ msgstr ""
#: order/views.py:891
#, python-brace-format
msgid "Allocated {n} items"
-msgstr ""
+msgstr "Asignados {n} artículos"
#: order/views.py:907
msgid "Select line item"
@@ -3700,19 +3655,19 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:731
+#: part/api.py:758
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:735
+#: part/api.py:762
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:750
+#: part/api.py:777
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
+#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
msgid "This field is required"
msgstr ""
@@ -3791,7 +3746,7 @@ msgstr ""
#: part/forms.py:103
msgid "Clear existing BOM items"
-msgstr ""
+msgstr "Borrar elementos BOM existentes"
#: part/forms.py:109
msgid "Confirm BOM duplication"
@@ -3926,7 +3881,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/detail.html:45
#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
-#: templates/js/translated/stock.js:1104
+#: templates/js/translated/stock.js:1134
msgid "IPN"
msgstr ""
@@ -3961,7 +3916,7 @@ msgstr ""
#: part/models.py:870
msgid "Expiry time (in days) for stock items of this part"
-msgstr ""
+msgstr "Tiempo de expiración (en días) para los artículos de stock de esta parte"
#: part/models.py:875 part/templates/part/part_base.html:178
msgid "Minimum Stock"
@@ -4047,7 +4002,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1467
-#: templates/js/translated/stock.js:828
+#: templates/js/translated/stock.js:858
msgid "Test Name"
msgstr ""
@@ -4552,7 +4507,7 @@ msgstr ""
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:365 part/views.py:751
+#: part/templates/part/detail.html:365 part/views.py:755
msgid "Validate BOM"
msgstr ""
@@ -4604,44 +4559,48 @@ msgstr ""
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:770
+#: part/templates/part/detail.html:772
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:867
+#: part/templates/part/detail.html:869
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:924
+#: part/templates/part/detail.html:926
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:1076
+#: part/templates/part/detail.html:1039
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1088
+#: part/templates/part/detail.html:1051
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1100
+#: part/templates/part/detail.html:1063
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1189
+#: part/templates/part/detail.html:1152
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:51
+#: part/templates/part/import_wizard/part_upload.html:53
msgid "Unsuffitient privileges."
msgstr ""
-#: part/templates/part/import_wizard/part_upload.html:14
+#: part/templates/part/import_wizard/part_upload.html:8
+msgid "Return to Parts"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:16
msgid "Import Parts from File"
msgstr ""
@@ -4751,7 +4710,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1546
#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
@@ -4846,6 +4805,11 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1949
+msgid "Details"
+msgstr ""
+
#: part/templates/part/part_sidebar.html:13
msgid "Variants"
msgstr ""
@@ -4949,7 +4913,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1784
+#: part/templates/part/prices.html:215 part/views.py:1788
msgid "Add Internal Price Break"
msgstr ""
@@ -5005,110 +4969,115 @@ msgstr ""
msgid "Match References"
msgstr ""
-#: part/views.py:498
+#: part/views.py:502
msgid "None"
msgstr ""
-#: part/views.py:557
+#: part/views.py:561
msgid "Part QR Code"
msgstr ""
-#: part/views.py:659
+#: part/views.py:663
msgid "Select Part Image"
msgstr ""
-#: part/views.py:685
+#: part/views.py:689
msgid "Updated part image"
msgstr ""
-#: part/views.py:688
+#: part/views.py:692
msgid "Part image not found"
msgstr ""
-#: part/views.py:700
+#: part/views.py:704
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:730
+#: part/views.py:734
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:772
+#: part/views.py:776
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:783
+#: part/views.py:787
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:856
+#: part/views.py:860
msgid "Match Parts"
msgstr ""
-#: part/views.py:1192
+#: part/views.py:1196
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1244
+#: part/views.py:1248
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1251
+#: part/views.py:1255
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1260
+#: part/views.py:1264
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1409
+#: part/views.py:1413
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1419
+#: part/views.py:1423
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1426
+#: part/views.py:1430
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1485 templates/js/translated/part.js:310
+#: part/views.py:1489 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1523
+#: part/views.py:1527
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1529
+#: part/views.py:1533
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1538
+#: part/views.py:1542
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1639
+#: part/views.py:1643
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1695
+#: part/views.py:1699
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1717
+#: part/views.py:1721
msgid "Added new price break"
msgstr ""
-#: part/views.py:1793
+#: part/views.py:1797
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1801
+#: part/views.py:1805
msgid "Delete Internal Price Break"
msgstr ""
+#: report/api.py:234 report/api.py:278
+#, python-brace-format
+msgid "Template file '{filename}' is missing or does not exist"
+msgstr ""
+
#: report/models.py:182
msgid "Template name"
msgstr ""
@@ -5145,51 +5114,51 @@ msgstr ""
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:380
+#: report/models.py:382
msgid "Build Filters"
msgstr ""
-#: report/models.py:381
+#: report/models.py:383
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:423
+#: report/models.py:425
msgid "Part Filters"
msgstr ""
-#: report/models.py:424
+#: report/models.py:426
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:458
+#: report/models.py:460
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:496
+#: report/models.py:498
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:546
+#: report/models.py:548
msgid "Snippet"
msgstr ""
-#: report/models.py:547
+#: report/models.py:549
msgid "Report snippet file"
msgstr ""
-#: report/models.py:551
+#: report/models.py:553
msgid "Snippet file description"
msgstr ""
-#: report/models.py:586
+#: report/models.py:588
msgid "Asset"
msgstr ""
-#: report/models.py:587
+#: report/models.py:589
msgid "Report asset file"
msgstr ""
-#: report/models.py:590
+#: report/models.py:592
msgid "Asset file description"
msgstr ""
@@ -5201,49 +5170,59 @@ msgstr ""
msgid "Stock Item Test Report"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:75
+#: report/templates/report/inventree_test_report_base.html:79
#: stock/models.py:530 stock/templates/stock/item_base.html:238
#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
#: templates/js/translated/build.js:1013
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+#: templates/js/translated/order.js:1288 templates/js/translated/order.js:1377
msgid "Serial Number"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:83
+#: report/templates/report/inventree_test_report_base.html:88
msgid "Test Results"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:93
#: stock/models.py:1855
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:89
+#: report/templates/report/inventree_test_report_base.html:94
#: stock/models.py:1861
msgid "Result"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917
msgid "Date"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:103
+#: report/templates/report/inventree_test_report_base.html:108
msgid "Pass"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:105
+#: report/templates/report/inventree_test_report_base.html:110
msgid "Fail"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:123
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:137
+#: templates/js/translated/stock.js:2177
+msgid "Serial"
+msgstr ""
+
#: stock/api.py:422
msgid "Quantity is required"
msgstr ""
#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
#: stock/templates/stock/item_base.html:382
-#: templates/js/translated/stock.js:1246
+#: templates/js/translated/stock.js:1276
msgid "Expiry Date"
msgstr ""
@@ -5505,7 +5484,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:319 stock/serializers.py:687
+#: stock/serializers.py:319 stock/serializers.py:686
msgid "Destination stock location"
msgstr ""
@@ -5517,15 +5496,15 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:557
+#: stock/serializers.py:556
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:585
+#: stock/serializers.py:584
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:595
+#: stock/serializers.py:594
msgid "A list of stock items must be provided"
msgstr ""
@@ -5570,15 +5549,15 @@ msgstr ""
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
+#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:363
+#: stock/templates/stock/item.html:324
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:377
+#: stock/templates/stock/item.html:338
msgid "Delete Test Result"
msgstr ""
@@ -5752,23 +5731,23 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:1259
+#: templates/js/translated/stock.js:1289
msgid "Last Updated"
msgstr ""
#: stock/templates/stock/item_base.html:400
msgid "Last Stocktake"
-msgstr ""
+msgstr "Último Inventario"
#: stock/templates/stock/item_base.html:404
msgid "No stocktake performed"
-msgstr ""
+msgstr "Ningún inventario realizado"
#: stock/templates/stock/item_base.html:415
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:505
msgid "Edit Stock Status"
msgstr ""
@@ -5885,10 +5864,6 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:12
-msgid "Installed Items"
-msgstr ""
-
#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
@@ -5967,7 +5942,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:618
+#: stock/views.py:760 templates/js/translated/stock.js:648
msgid "Confirm stock adjustment"
msgstr ""
@@ -5975,7 +5950,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:288
+#: stock/views.py:793 templates/js/translated/stock.js:318
msgid "Edit Stock Item"
msgstr ""
@@ -5987,7 +5962,7 @@ msgstr ""
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:268
+#: stock/views.py:1186 templates/js/translated/stock.js:298
msgid "Duplicate Stock Item"
msgstr ""
@@ -6164,11 +6139,11 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/po.html:9
+#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
-#: templates/InvenTree/settings/report.html:10
+#: templates/InvenTree/settings/report.html:8
#: templates/InvenTree/settings/user_reports.html:9
msgid "Report Settings"
msgstr ""
@@ -6221,7 +6196,7 @@ msgid "User Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:8
-#: templates/InvenTree/settings/user.html:11
+#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
@@ -6273,140 +6248,136 @@ msgid "Stock Settings"
msgstr ""
#: templates/InvenTree/settings/user.html:18
-#: templates/js/translated/helpers.js:26
-msgid "Edit"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:20
#: 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:31
+#: templates/InvenTree/settings/user.html:22
+#: templates/js/translated/helpers.js:26
+msgid "Edit"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:32
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:35
+#: templates/InvenTree/settings/user.html:36
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:39
+#: templates/InvenTree/settings/user.html:40
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:54
+#: templates/InvenTree/settings/user.html:55
msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:74
+#: templates/InvenTree/settings/user.html:75
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:76
+#: templates/InvenTree/settings/user.html:77
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:78
+#: templates/InvenTree/settings/user.html:79
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:84
+#: templates/InvenTree/settings/user.html:85
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:85
+#: templates/InvenTree/settings/user.html:86
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:86
-#: templates/InvenTree/settings/user.html:153
+#: templates/InvenTree/settings/user.html:87
+#: templates/InvenTree/settings/user.html:154
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
+#: templates/InvenTree/settings/user.html:94
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:94
+#: templates/InvenTree/settings/user.html:95
msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:101
+#: templates/InvenTree/settings/user.html:102
msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:111
+#: templates/InvenTree/settings/user.html:112
msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:113
+#: templates/InvenTree/settings/user.html:114
msgid "Add Email"
msgstr ""
-#: templates/InvenTree/settings/user.html:123
+#: templates/InvenTree/settings/user.html:124
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:128
+#: templates/InvenTree/settings/user.html:129
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:162
+#: templates/InvenTree/settings/user.html:163
msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:167
+#: templates/InvenTree/settings/user.html:168
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:177
-msgid "Language Settings"
+#: templates/InvenTree/settings/user.html:179
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:185
+msgid "Log out active sessions (except this one)"
msgstr ""
#: templates/InvenTree/settings/user.html:186
-msgid "Select language"
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:195
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:196
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:200
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:201
+msgid "Device"
msgstr ""
#: templates/InvenTree/settings/user.html:202
-#, python-format
-msgid "%(lang_translated)s%% translated"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:204
-msgid "No translations available"
+msgid "Last Activity"
msgstr ""
#: templates/InvenTree/settings/user.html:211
-msgid "Set Language"
+#, python-format
+msgid "%(time)s ago (this session)"
msgstr ""
#: templates/InvenTree/settings/user.html:213
-msgid "Some languages are not complete"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:215
-msgid "Show only sufficent"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "and hidden."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "Show them too"
+#, python-format
+msgid "%(time)s ago"
msgstr ""
#: templates/InvenTree/settings/user.html:224
-msgid "Help the translation efforts!"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:225
-#, 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:233
msgid "Do you really want to remove the selected email address?"
msgstr ""
@@ -6422,6 +6393,52 @@ msgstr ""
msgid "Set Theme"
msgstr ""
+#: templates/InvenTree/settings/user_display.html:54
+msgid "Language Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:63
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:79
+#, python-format
+msgid "%(lang_translated)s%% translated"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:81
+msgid "No translations available"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:88
+msgid "Set Language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:91
+msgid "Some languages are not complete"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:93
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:101
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:102
+#, 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_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6619,6 +6636,14 @@ msgstr ""
msgid "View in administration panel"
msgstr ""
+#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54
+msgid "Add Link"
+msgstr ""
+
+#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36
+msgid "Add Attachment"
+msgstr ""
+
#: templates/base.html:96
msgid "Server Restart Required"
msgstr ""
@@ -6702,154 +6727,87 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/report.js:47 templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/report.js:55 templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/report.js:70 templates/js/translated/report.js:90
-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:594
-msgid "Select Stock Items"
-msgstr ""
-
-#: templates/js/report.js:99 templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:116 templates/js/report.js:169
-#: templates/js/report.js:223 templates/js/report.js:277
-#: templates/js/report.js:331 templates/js/translated/report.js:136
-#: 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 ""
-
-#: templates/js/report.js:117 templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/report.js:152 templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/report.js:153 templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: 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/build.js:1333
-#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
-#: templates/js/report.js:206 templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:224 templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/report.js:259 templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/report.js:260 templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/report.js:278 templates/js/report.js:332
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/report.js:313 templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/report.js:314 templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:191
+#: templates/js/translated/api.js:192
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:192
+#: templates/js/translated/api.js:193
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:215
+#: templates/js/translated/api.js:216
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:216
+#: templates/js/translated/api.js:217
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:27
+#: templates/js/translated/attachment.js:76
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:95
-msgid "Upload Date"
+#: templates/js/translated/attachment.js:98
+msgid "Edit Attachment"
msgstr ""
#: templates/js/translated/attachment.js:108
+msgid "Confirm Delete"
+msgstr ""
+
+#: templates/js/translated/attachment.js:109
+msgid "Delete Attachment"
+msgstr ""
+
+#: templates/js/translated/attachment.js:165
+msgid "Upload Date"
+msgstr ""
+
+#: templates/js/translated/attachment.js:178
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:115
+#: templates/js/translated/attachment.js:185
msgid "Delete attachment"
msgstr ""
@@ -6910,7 +6868,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:600
msgid "Remove stock item"
msgstr ""
@@ -7005,7 +6963,7 @@ msgid "View BOM"
msgstr ""
#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1320
msgid "Actions"
msgstr ""
@@ -7097,7 +7055,7 @@ msgstr ""
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1194
msgid "Location not specified"
msgstr ""
@@ -7106,12 +7064,12 @@ msgid "No active build outputs found"
msgstr ""
#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1305
+#: templates/js/translated/order.js:1327
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1306
+#: templates/js/translated/order.js:1328
msgid "Delete stock allocation"
msgstr ""
@@ -7132,11 +7090,11 @@ msgid "Quantity Per"
msgstr ""
#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1557
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1611
msgid "Build stock"
msgstr ""
@@ -7144,7 +7102,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1604
msgid "Allocate stock"
msgstr ""
@@ -7152,6 +7110,11 @@ msgstr ""
msgid "Specify stock allocation quantity"
msgstr ""
+#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
+#: templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
@@ -7181,8 +7144,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
-#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
-#: templates/js/translated/stock.js:1841
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1094
+#: templates/js/translated/stock.js:1871
msgid "Select"
msgstr ""
@@ -7190,7 +7153,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2090
msgid "No user information"
msgstr ""
@@ -7332,45 +7295,45 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
-#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
+#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365
+#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:351
+#: templates/js/translated/forms.js:352
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:366
+#: templates/js/translated/forms.js:367
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:380
+#: templates/js/translated/forms.js:381
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:394
+#: templates/js/translated/forms.js:395
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:679
+#: templates/js/translated/forms.js:680
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/js/translated/forms.js:1072 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1457
+#: templates/js/translated/forms.js:1463
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1661
+#: templates/js/translated/forms.js:1667
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1878
+#: templates/js/translated/forms.js:1884
msgid "Clear input"
msgstr ""
@@ -7382,6 +7345,11 @@ msgstr ""
msgid "NO"
msgstr ""
+#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
+#: templates/js/translated/stock.js:624
+msgid "Select Stock Items"
+msgstr ""
+
#: templates/js/translated/label.js:30
msgid "Stock item(s) must be selected before printing labels"
msgstr ""
@@ -7534,11 +7502,11 @@ msgstr ""
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:423
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:424
msgid "Select file format"
msgstr ""
@@ -7554,7 +7522,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1673
msgid "Stock Status"
msgstr ""
@@ -7582,100 +7550,104 @@ msgstr ""
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1063
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
+#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
+#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:801
+#: templates/js/translated/order.js:823
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
+#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:904 templates/js/translated/order.js:1492
#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+#: templates/js/translated/order.js:919 templates/js/translated/order.js:1508
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
+#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:976
+#: templates/js/translated/order.js:998
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:980
+#: templates/js/translated/order.js:1002
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1017
+#: templates/js/translated/order.js:1039
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1055
+#: templates/js/translated/order.js:1077
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1133
+#: templates/js/translated/order.js:1155
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1226
+#: templates/js/translated/order.js:1248
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1244
+#: templates/js/translated/order.js:1265
+msgid "Confirm Delete Operation"
+msgstr ""
+
+#: templates/js/translated/order.js:1266
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1308
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1535
+#: templates/js/translated/order.js:1557
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1579
+#: templates/js/translated/order.js:1601
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1585
+#: templates/js/translated/order.js:1607
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
+#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1596
+#: templates/js/translated/order.js:1618
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1719
+#: templates/js/translated/order.js:1741
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1779
+#: templates/js/translated/order.js:1801
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1793
+#: templates/js/translated/order.js:1815
msgid "No matching line items"
msgstr ""
@@ -7825,7 +7797,7 @@ msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
-#: templates/js/translated/stock.js:1802
+#: templates/js/translated/stock.js:1832
msgid "Display as list"
msgstr ""
@@ -7833,7 +7805,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1851
msgid "Display as tree"
msgstr ""
@@ -7841,7 +7813,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1895
msgid "Path"
msgstr ""
@@ -7849,11 +7821,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:816
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:817
msgid "Delete test result"
msgstr ""
@@ -7892,268 +7864,342 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:136 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 ""
+
+#: templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
#: templates/js/translated/stock.js:70
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:90
+#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167
+msgid "Next available serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169
+msgid "Latest serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:104
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:126
+#: templates/js/translated/stock.js:140
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:189
+#: templates/js/translated/stock.js:180
+msgid "This part cannot be serialized"
+msgstr ""
+
+#: templates/js/translated/stock.js:219
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:195
+#: templates/js/translated/stock.js:225
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:338
+#: templates/js/translated/stock.js:368
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:351
+#: templates/js/translated/stock.js:381
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:420
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:401
+#: templates/js/translated/stock.js:431
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:402
+#: templates/js/translated/stock.js:432
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:444
+#: templates/js/translated/stock.js:474
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:445
+#: templates/js/translated/stock.js:475
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:451
+#: templates/js/translated/stock.js:481
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:452
+#: templates/js/translated/stock.js:482
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:486
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:487
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:491
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:462 users/models.py:200
+#: templates/js/translated/stock.js:492 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:466 templates/stock_table.html:56
+#: templates/js/translated/stock.js:496 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:595
+#: templates/js/translated/stock.js:625
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:753
+#: templates/js/translated/stock.js:783
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:755
+#: templates/js/translated/stock.js:785
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:760
+#: templates/js/translated/stock.js:790
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:812
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:808
+#: templates/js/translated/stock.js:838
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:895
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:1002
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:1006
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:1010
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:984
+#: templates/js/translated/stock.js:1014
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:990
+#: templates/js/translated/stock.js:1020
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1148
+#: templates/js/translated/stock.js:1178
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1153
+#: templates/js/translated/stock.js:1183
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1156
+#: templates/js/translated/stock.js:1186
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1160
+#: templates/js/translated/stock.js:1190
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1162
+#: templates/js/translated/stock.js:1192
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1166
+#: templates/js/translated/stock.js:1196
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1170
+#: templates/js/translated/stock.js:1200
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1177
+#: templates/js/translated/stock.js:1207
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1179
+#: templates/js/translated/stock.js:1209
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1181
+#: templates/js/translated/stock.js:1211
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1185
+#: templates/js/translated/stock.js:1215
#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1235
+#: templates/js/translated/stock.js:1265
msgid "Stocktake"
-msgstr ""
+msgstr "Inventario"
-#: templates/js/translated/stock.js:1308
+#: templates/js/translated/stock.js:1338
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1346
+#: templates/js/translated/stock.js:1376
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
+#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1455
+#: templates/js/translated/stock.js:1485
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1482
+#: templates/js/translated/stock.js:1512
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1484
+#: templates/js/translated/stock.js:1514
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1658
+#: templates/js/translated/stock.js:1688
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1672
+#: templates/js/translated/stock.js:1702
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1673
+#: templates/js/translated/stock.js:1703
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1897
+#: templates/js/translated/stock.js:1927
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1944
+#: templates/js/translated/stock.js:1974
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1963
+#: templates/js/translated/stock.js:1993
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1982
+#: templates/js/translated/stock.js:2012
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2000
+#: templates/js/translated/stock.js:2030
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2023
+#: templates/js/translated/stock.js:2053
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2061
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2072
+#: templates/js/translated/stock.js:2102
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2073
+#: templates/js/translated/stock.js:2103
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2124
+#: templates/js/translated/stock.js:2154
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
-#: templates/js/translated/stock.js:2175
+#: templates/js/translated/stock.js:2205
msgid "Uninstall Stock Item"
msgstr ""
@@ -8306,7 +8352,7 @@ msgstr ""
#: templates/js/translated/table_filters.js:248
msgid "Show stock items which have expired"
-msgstr ""
+msgstr "Mostrar artículos de stock que han caducado"
#: templates/js/translated/table_filters.js:254
msgid "Show stock which is close to expiring"
@@ -8513,19 +8559,19 @@ msgstr ""
#: templates/stock_table.html:48
msgid "Add to selected stock items"
-msgstr ""
+msgstr "Añadir a los artículos de stock seleccionados"
#: templates/stock_table.html:49
msgid "Remove from selected stock items"
-msgstr ""
+msgstr "Eliminar de los artículos de stock seleccionados"
#: templates/stock_table.html:50
msgid "Stocktake selected stock items"
-msgstr ""
+msgstr "Inventario de artículos de stock seleccionados"
#: templates/stock_table.html:51
msgid "Move selected stock items"
-msgstr ""
+msgstr "Mover artículos de stock seleccionados"
#: templates/stock_table.html:51
msgid "Move stock"
@@ -8533,7 +8579,7 @@ msgstr ""
#: templates/stock_table.html:52
msgid "Order selected items"
-msgstr ""
+msgstr "Pedir artículos seleccionados"
#: templates/stock_table.html:53
msgid "Change status"
@@ -8545,7 +8591,7 @@ msgstr ""
#: templates/stock_table.html:56
msgid "Delete selected items"
-msgstr ""
+msgstr "Eliminar artículos seleccionados"
#: templates/yesnolabel.html:4
msgid "Yes"
@@ -8593,11 +8639,11 @@ msgstr ""
#: users/models.py:198
msgid "Permission to view items"
-msgstr ""
+msgstr "Permiso para ver artículos"
#: users/models.py:200
msgid "Permission to add items"
-msgstr ""
+msgstr "Permiso para añadir artículos"
#: users/models.py:202
msgid "Change"
@@ -8605,9 +8651,9 @@ msgstr ""
#: users/models.py:202
msgid "Permissions to edit items"
-msgstr ""
+msgstr "Permisos para editar artículos"
#: users/models.py:204
msgid "Permission to delete items"
-msgstr ""
+msgstr "Permiso para eliminar artículos"
diff --git a/InvenTree/locale/es_MX/LC_MESSAGES/django.po b/InvenTree/locale/es_MX/LC_MESSAGES/django.po
index cf4017d955..11cca2ebb9 100644
--- a/InvenTree/locale/es_MX/LC_MESSAGES/django.po
+++ b/InvenTree/locale/es_MX/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"POT-Creation-Date: 2021-11-30 21:49+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -37,7 +37,7 @@ msgstr ""
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:594
+#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr ""
@@ -115,99 +115,121 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:109 stock/models.py:1874
+#: InvenTree/models.py:114
+msgid "Missing file"
+msgstr ""
+
+#: InvenTree/models.py:115
+msgid "Missing external link"
+msgstr ""
+
+#: InvenTree/models.py:126 stock/models.py:1874
+#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:110
+#: InvenTree/models.py:127
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
+#: InvenTree/models.py:133 company/models.py:131 company/models.py:348
+#: company/models.py:564 order/models.py:163 part/models.py:797
+#: report/templates/report/inventree_build_order_base.html:165
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
+msgid "Link"
+msgstr ""
+
+#: InvenTree/models.py:134 build/models.py:330 part/models.py:798
+#: stock/models.py:540
+msgid "Link to external URL"
+msgstr ""
+
+#: InvenTree/models.py:137 templates/js/translated/attachment.js:161
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:112
+#: InvenTree/models.py:137
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185
#: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:2054
+#: report/templates/report/inventree_test_report_base.html:96
+#: templates/js/translated/stock.js:2084
msgid "User"
msgstr ""
-#: InvenTree/models.py:122
+#: InvenTree/models.py:147
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:142
+#: InvenTree/models.py:170
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:165
+#: InvenTree/models.py:193
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:175
+#: InvenTree/models.py:203
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:178
+#: InvenTree/models.py:206
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:185
+#: InvenTree/models.py:213
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:192
+#: InvenTree/models.py:220
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:227
+#: InvenTree/models.py:255
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: InvenTree/models.py:271 InvenTree/models.py:272 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
#: part/templates/part/detail.html:25 report/models.py:181
#: templates/InvenTree/settings/settings.html:259
#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
-#: templates/js/translated/stock.js:1847
+#: templates/js/translated/stock.js:1877
msgid "Name"
msgstr ""
-#: InvenTree/models.py:250 build/models.py:207
+#: InvenTree/models.py:278 build/models.py:207
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:80
#: company/templates/company/supplier_part.html:81 label/models.py:119
#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:551 report/models.py:590
+#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
#: templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
-#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/order.js:855 templates/js/translated/order.js:1091
#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
-#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
-#: templates/js/translated/stock.js:1904
+#: templates/js/translated/stock.js:1151 templates/js/translated/stock.js:1889
+#: templates/js/translated/stock.js:1934
msgid "Description"
msgstr ""
-#: InvenTree/models.py:251
+#: InvenTree/models.py:279
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:259
+#: InvenTree/models.py:287
msgid "parent"
msgstr ""
@@ -215,87 +237,87 @@ msgstr ""
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:251
+#: InvenTree/serializers.py:285
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:670
msgid "German"
msgstr ""
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:671
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:672
msgid "English"
msgstr ""
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:673
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:674
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:675
msgid "French"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:676
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:683
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:684
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:685
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:686
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:687
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:688
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:689
msgid "Chinese"
msgstr ""
@@ -480,27 +502,27 @@ msgstr ""
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:536
+#: InvenTree/views.py:538
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:585
+#: InvenTree/views.py:587
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
+#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
+#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:630
+#: InvenTree/views.py:632
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:863 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:101
msgid "System Information"
msgstr ""
@@ -553,12 +575,13 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
+#: part/templates/part/detail.html:1076 part/templates/part/detail.html:1162
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:77
+#: report/templates/report/inventree_test_report_base.html:81
+#: report/templates/report/inventree_test_report_base.html:139
#: stock/forms.py:156 stock/serializers.py:286
#: stock/templates/stock/item_base.html:256
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
@@ -566,12 +589,12 @@ msgstr ""
#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
-#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
-#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/order.js:892 templates/js/translated/order.js:1205
+#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290
+#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479
#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
-#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
-#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377
+#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171
msgid "Quantity"
msgstr ""
@@ -580,8 +603,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:307 templates/js/translated/stock.js:194
-#: templates/js/translated/stock.js:348
+#: stock/serializers.py:307 templates/js/translated/stock.js:224
+#: templates/js/translated/stock.js:378
msgid "Serial Numbers"
msgstr ""
@@ -640,7 +663,7 @@ msgstr ""
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
+#: templates/js/translated/order.js:886 templates/js/translated/order.js:1473
msgid "Reference"
msgstr ""
@@ -678,10 +701,10 @@ msgstr ""
#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/order.js:840 templates/js/translated/order.js:1457
#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
-#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
-#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508
+#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159
msgid "Part"
msgstr ""
@@ -746,7 +769,7 @@ msgid "Batch code for this build output"
msgstr ""
#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1104
msgid "Creation Date"
msgstr ""
@@ -780,7 +803,7 @@ msgstr ""
#: order/templates/order/order_base.html:154
#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680
+#: templates/js/translated/build.js:1680 templates/js/translated/order.js:700
msgid "Responsible"
msgstr ""
@@ -796,27 +819,21 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:330 part/models.py:798 stock/models.py:540
-msgid "Link to external URL"
-msgstr ""
-
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:183 order/models.py:738
-#: order/templates/order/po_navbar.html:38
-#: order/templates/order/po_navbar.html:41
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:11 part/models.py:925
#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: stock/serializers.py:583 stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
-#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
-#: templates/js/translated/stock.js:1340
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:985
+#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1370
msgid "Notes"
msgstr ""
@@ -877,8 +894,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:340
#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
-#: templates/js/translated/stock.js:1990
+#: templates/js/translated/order.js:1178 templates/js/translated/order.js:1183
+#: templates/js/translated/stock.js:2020
msgid "Stock Item"
msgstr ""
@@ -918,16 +935,16 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
-#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: build/serializers.py:190 order/serializers.py:219 order/serializers.py:287
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685
#: stock/templates/stock/item_base.html:286
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
-#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
-#: templates/js/translated/stock.js:1931
+#: templates/js/translated/order.js:1190 templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251
+#: templates/js/translated/stock.js:1961
msgid "Location"
msgstr ""
@@ -937,11 +954,11 @@ msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:129
#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: order/serializers.py:240 stock/templates/stock/item_base.html:409
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
-#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
-#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+#: templates/js/translated/order.js:1096 templates/js/translated/stock.js:1226
+#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187
msgid "Status"
msgstr ""
@@ -970,7 +987,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:233
#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1061,7 +1078,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:140
#: report/templates/report/inventree_build_order_base.html:126
#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
-#: templates/js/translated/order.js:1087
+#: templates/js/translated/order.js:1109
msgid "Target Date"
msgstr ""
@@ -1097,7 +1114,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/order.js:1029
+#: templates/js/translated/order.js:1051
msgid "Sales Order"
msgstr ""
@@ -1172,7 +1189,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:974
msgid "Destination"
msgstr ""
@@ -1186,7 +1203,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:304
-#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/stock.js:1240 templates/js/translated/stock.js:2194
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:233
msgid "Batch"
@@ -1287,7 +1304,6 @@ msgid "Completed Build Outputs"
msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
-#: order/templates/order/po_navbar.html:35
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:52
@@ -1301,7 +1317,7 @@ msgstr ""
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:453
#: company/templates/company/detail.html:188
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
@@ -1313,45 +1329,11 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:448
-#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
-#: templates/attachment_button.html:4
-msgid "Add Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:467
-#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:142
-#: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
-msgid "Edit Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:474
-#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:149
-#: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
-#: templates/js/translated/order.js:1243
-msgid "Confirm Delete Operation"
-msgstr ""
-
-#: build/templates/build/detail.html:475
-#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:150
-#: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
-msgid "Delete Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:513
+#: build/templates/build/detail.html:477
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:514
+#: build/templates/build/detail.html:478
msgid "All untracked stock items have been allocated"
msgstr ""
@@ -1467,7 +1449,7 @@ msgstr ""
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:34 templates/js/translated/attachment.js:54
+#: common/forms.py:34
msgid "File"
msgstr ""
@@ -2169,13 +2151,11 @@ msgstr ""
msgid "Unit price at specified quantity"
msgstr ""
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
-#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
-#: part/views.py:854
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
+#: part/views.py:858
msgid "Upload File"
msgstr ""
@@ -2183,7 +2163,7 @@ msgstr ""
#: 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:213
-#: part/views.py:855
+#: part/views.py:859
msgid "Match Fields"
msgstr ""
@@ -2201,13 +2181,13 @@ msgstr ""
#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:40
+#: order/templates/order/order_wizard/po_upload.html:47
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:43
+#: part/templates/part/import_wizard/part_upload.html:45
msgid "Previous Step"
msgstr ""
@@ -2253,7 +2233,7 @@ msgid "Contact phone number"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:102
-#: templates/InvenTree/settings/user.html:46
+#: templates/InvenTree/settings/user.html:47
msgid "Email"
msgstr ""
@@ -2269,14 +2249,6 @@ msgstr ""
msgid "Point of contact"
msgstr ""
-#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:163 part/models.py:797
-#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:537
-#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
-msgid "Link"
-msgstr ""
-
#: company/models.py:131
msgid "Link to external company information"
msgstr ""
@@ -2344,7 +2316,7 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:97
#: company/templates/company/supplier_part.html:112
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:874
#: templates/js/translated/part.js:240
msgid "MPN"
msgstr ""
@@ -2373,9 +2345,9 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:90
+#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:1867 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878
msgid "Value"
msgstr ""
@@ -2414,7 +2386,7 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:98
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:861
#: templates/js/translated/part.js:221
msgid "SKU"
msgstr ""
@@ -2451,7 +2423,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:119
#: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1366
msgid "Packaging"
msgstr ""
@@ -2516,8 +2488,8 @@ msgstr ""
#: company/templates/company/company_base.html:126 order/models.py:567
#: order/templates/order/sales_order_base.html:114 stock/models.py:525
#: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
-#: templates/js/translated/stock.js:1972
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1073
+#: templates/js/translated/stock.js:2002
msgid "Customer"
msgstr ""
@@ -2722,7 +2694,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:974
+#: part/templates/part/detail.html:976
msgid "Add Parameter"
msgstr ""
@@ -2753,7 +2725,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:492
#: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1323
msgid "Supplier Part"
msgstr ""
@@ -2779,7 +2751,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
-#: templates/js/translated/stock.js:324
+#: templates/js/translated/stock.js:354
msgid "New Stock Item"
msgstr ""
@@ -2800,7 +2772,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1713
+#: part/templates/part/prices.html:271 part/views.py:1717
msgid "Add Price Break"
msgstr ""
@@ -2808,11 +2780,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1775
+#: company/templates/company/supplier_part.html:224 part/views.py:1779
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1761
+#: company/templates/company/supplier_part.html:238 part/views.py:1765
msgid "Edit Price Break"
msgstr ""
@@ -2832,8 +2804,8 @@ msgstr ""
#: templates/InvenTree/settings/sidebar.html:40
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
-#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
-#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:509
+#: templates/js/translated/stock.js:1162 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2856,7 +2828,7 @@ msgstr ""
#: stock/templates/stock/location.html:132
#: stock/templates/stock/location.html:144
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1901
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2886,24 +2858,24 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:580
+#: company/views.py:129 part/views.py:584
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:612
+#: company/views.py:158 part/views.py:616
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:619
+#: company/views.py:165 part/views.py:623
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:628
+#: company/views.py:174 part/views.py:632
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/api.py:57 report/api.py:201
+#: label/api.py:57 report/api.py:203
msgid "No valid objects provided to template"
msgstr ""
@@ -2960,7 +2932,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
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
+#: report/models.py:322 report/models.py:459 report/models.py:497
msgid "Filters"
msgstr ""
@@ -3090,7 +3062,7 @@ msgstr ""
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1092
+#: order/models.py:582 templates/js/translated/order.js:1114
msgid "Shipment Date"
msgstr ""
@@ -3115,7 +3087,7 @@ msgid "Line item notes"
msgstr ""
#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1144
+#: templates/js/translated/order.js:1166
msgid "Order"
msgstr ""
@@ -3123,8 +3095,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:325
-#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1300
+#: templates/js/translated/stock.js:1983
msgid "Purchase Order"
msgstr ""
@@ -3134,7 +3106,7 @@ msgstr ""
#: order/models.py:797 order/templates/order/order_base.html:147
#: order/templates/order/sales_order_base.html:154
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:954
msgid "Received"
msgstr ""
@@ -3144,7 +3116,7 @@ msgstr ""
#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1324
+#: templates/js/translated/stock.js:1354
msgid "Purchase Price"
msgstr ""
@@ -3205,47 +3177,47 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:167
+#: order/serializers.py:169
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:202
+#: order/serializers.py:204
msgid "Line Item"
msgstr ""
-#: order/serializers.py:208
+#: order/serializers.py:210
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:286
+#: order/serializers.py:220 order/serializers.py:288
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:242
+#: order/serializers.py:244
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:243
+#: order/serializers.py:245
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:260
+#: order/serializers.py:262
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:298
+#: order/serializers.py:300
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:315
+#: order/serializers.py:317
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:328
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:568
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3391,19 +3363,23 @@ msgstr ""
msgid "Select Supplier Part"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:11
+#: order/templates/order/order_wizard/po_upload.html:8
+msgid "Return to Orders"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:17
msgid "Upload File for Purchase Order"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:18
+#: order/templates/order/order_wizard/po_upload.html:25
#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:21
+#: part/templates/part/import_wizard/part_upload.html:23
#, python-format
msgid "Step %(step)s of %(count)s"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:48
+#: order/templates/order/order_wizard/po_upload.html:55
msgid "Order is already processed. Files cannot be uploaded."
msgstr ""
@@ -3446,7 +3422,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:695 templates/js/translated/order.js:1097
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1119
msgid "Items"
msgstr ""
@@ -3464,31 +3440,6 @@ msgstr ""
msgid "Select a purchase order for %(name)s"
msgstr ""
-#: order/templates/order/po_attachments.html:12
-#: order/templates/order/po_navbar.html:32
-msgid "Purchase Order Attachments"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:15
-#: part/templates/part/part_sidebar.html:8
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:26
-msgid "Received Stock Items"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:29
-#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
#: order/templates/order/po_sidebar.html:5
#: order/templates/order/so_sidebar.html:5
#: report/templates/report/inventree_po_report.html:85
@@ -3505,9 +3456,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:216
+#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:191
+#: order/templates/order/sales_order_detail.html:157
msgid "Add Line Item"
msgstr ""
@@ -3519,6 +3470,10 @@ msgstr ""
msgid "Receive Items"
msgstr ""
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
#: order/templates/order/purchase_order_detail.html:76
#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
@@ -3547,7 +3502,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:121
-#: templates/js/translated/order.js:1064
+#: templates/js/translated/order.js:1086
msgid "Customer Reference"
msgstr ""
@@ -3701,19 +3656,19 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:731
+#: part/api.py:758
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:735
+#: part/api.py:762
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:750
+#: part/api.py:777
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
+#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
msgid "This field is required"
msgstr ""
@@ -3927,7 +3882,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/detail.html:45
#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
-#: templates/js/translated/stock.js:1104
+#: templates/js/translated/stock.js:1134
msgid "IPN"
msgstr ""
@@ -4048,7 +4003,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1467
-#: templates/js/translated/stock.js:828
+#: templates/js/translated/stock.js:858
msgid "Test Name"
msgstr ""
@@ -4553,7 +4508,7 @@ msgstr ""
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:365 part/views.py:751
+#: part/templates/part/detail.html:365 part/views.py:755
msgid "Validate BOM"
msgstr ""
@@ -4605,44 +4560,48 @@ msgstr ""
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:770
+#: part/templates/part/detail.html:772
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:867
+#: part/templates/part/detail.html:869
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:924
+#: part/templates/part/detail.html:926
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:1076
+#: part/templates/part/detail.html:1039
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1088
+#: part/templates/part/detail.html:1051
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1100
+#: part/templates/part/detail.html:1063
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1189
+#: part/templates/part/detail.html:1152
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:51
+#: part/templates/part/import_wizard/part_upload.html:53
msgid "Unsuffitient privileges."
msgstr ""
-#: part/templates/part/import_wizard/part_upload.html:14
+#: part/templates/part/import_wizard/part_upload.html:8
+msgid "Return to Parts"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:16
msgid "Import Parts from File"
msgstr ""
@@ -4752,7 +4711,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1546
#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
@@ -4847,6 +4806,11 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1949
+msgid "Details"
+msgstr ""
+
#: part/templates/part/part_sidebar.html:13
msgid "Variants"
msgstr ""
@@ -4951,7 +4915,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1784
+#: part/templates/part/prices.html:215 part/views.py:1788
msgid "Add Internal Price Break"
msgstr ""
@@ -5007,110 +4971,115 @@ msgstr ""
msgid "Match References"
msgstr ""
-#: part/views.py:498
+#: part/views.py:502
msgid "None"
msgstr ""
-#: part/views.py:557
+#: part/views.py:561
msgid "Part QR Code"
msgstr ""
-#: part/views.py:659
+#: part/views.py:663
msgid "Select Part Image"
msgstr ""
-#: part/views.py:685
+#: part/views.py:689
msgid "Updated part image"
msgstr ""
-#: part/views.py:688
+#: part/views.py:692
msgid "Part image not found"
msgstr ""
-#: part/views.py:700
+#: part/views.py:704
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:730
+#: part/views.py:734
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:772
+#: part/views.py:776
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:783
+#: part/views.py:787
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:856
+#: part/views.py:860
msgid "Match Parts"
msgstr ""
-#: part/views.py:1192
+#: part/views.py:1196
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1244
+#: part/views.py:1248
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1251
+#: part/views.py:1255
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1260
+#: part/views.py:1264
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1409
+#: part/views.py:1413
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1419
+#: part/views.py:1423
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1426
+#: part/views.py:1430
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1485 templates/js/translated/part.js:310
+#: part/views.py:1489 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1523
+#: part/views.py:1527
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1529
+#: part/views.py:1533
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1538
+#: part/views.py:1542
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1639
+#: part/views.py:1643
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1695
+#: part/views.py:1699
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1717
+#: part/views.py:1721
msgid "Added new price break"
msgstr ""
-#: part/views.py:1793
+#: part/views.py:1797
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1801
+#: part/views.py:1805
msgid "Delete Internal Price Break"
msgstr ""
+#: report/api.py:234 report/api.py:278
+#, python-brace-format
+msgid "Template file '{filename}' is missing or does not exist"
+msgstr ""
+
#: report/models.py:182
msgid "Template name"
msgstr ""
@@ -5147,51 +5116,51 @@ msgstr ""
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:380
+#: report/models.py:382
msgid "Build Filters"
msgstr ""
-#: report/models.py:381
+#: report/models.py:383
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:423
+#: report/models.py:425
msgid "Part Filters"
msgstr ""
-#: report/models.py:424
+#: report/models.py:426
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:458
+#: report/models.py:460
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:496
+#: report/models.py:498
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:546
+#: report/models.py:548
msgid "Snippet"
msgstr ""
-#: report/models.py:547
+#: report/models.py:549
msgid "Report snippet file"
msgstr ""
-#: report/models.py:551
+#: report/models.py:553
msgid "Snippet file description"
msgstr ""
-#: report/models.py:586
+#: report/models.py:588
msgid "Asset"
msgstr ""
-#: report/models.py:587
+#: report/models.py:589
msgid "Report asset file"
msgstr ""
-#: report/models.py:590
+#: report/models.py:592
msgid "Asset file description"
msgstr ""
@@ -5203,49 +5172,59 @@ msgstr ""
msgid "Stock Item Test Report"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:75
+#: report/templates/report/inventree_test_report_base.html:79
#: stock/models.py:530 stock/templates/stock/item_base.html:238
#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
#: templates/js/translated/build.js:1013
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+#: templates/js/translated/order.js:1288 templates/js/translated/order.js:1377
msgid "Serial Number"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:83
+#: report/templates/report/inventree_test_report_base.html:88
msgid "Test Results"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:93
#: stock/models.py:1855
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:89
+#: report/templates/report/inventree_test_report_base.html:94
#: stock/models.py:1861
msgid "Result"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917
msgid "Date"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:103
+#: report/templates/report/inventree_test_report_base.html:108
msgid "Pass"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:105
+#: report/templates/report/inventree_test_report_base.html:110
msgid "Fail"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:123
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:137
+#: templates/js/translated/stock.js:2177
+msgid "Serial"
+msgstr ""
+
#: stock/api.py:422
msgid "Quantity is required"
msgstr ""
#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
#: stock/templates/stock/item_base.html:382
-#: templates/js/translated/stock.js:1246
+#: templates/js/translated/stock.js:1276
msgid "Expiry Date"
msgstr ""
@@ -5507,7 +5486,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:319 stock/serializers.py:687
+#: stock/serializers.py:319 stock/serializers.py:686
msgid "Destination stock location"
msgstr ""
@@ -5519,15 +5498,15 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:557
+#: stock/serializers.py:556
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:585
+#: stock/serializers.py:584
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:595
+#: stock/serializers.py:594
msgid "A list of stock items must be provided"
msgstr ""
@@ -5572,15 +5551,15 @@ msgstr ""
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
+#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:363
+#: stock/templates/stock/item.html:324
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:377
+#: stock/templates/stock/item.html:338
msgid "Delete Test Result"
msgstr ""
@@ -5754,7 +5733,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:1259
+#: templates/js/translated/stock.js:1289
msgid "Last Updated"
msgstr ""
@@ -5770,7 +5749,7 @@ msgstr ""
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:505
msgid "Edit Stock Status"
msgstr ""
@@ -5887,10 +5866,6 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:12
-msgid "Installed Items"
-msgstr ""
-
#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
@@ -5969,7 +5944,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:618
+#: stock/views.py:760 templates/js/translated/stock.js:648
msgid "Confirm stock adjustment"
msgstr ""
@@ -5977,7 +5952,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:288
+#: stock/views.py:793 templates/js/translated/stock.js:318
msgid "Edit Stock Item"
msgstr ""
@@ -5989,7 +5964,7 @@ msgstr ""
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:268
+#: stock/views.py:1186 templates/js/translated/stock.js:298
msgid "Duplicate Stock Item"
msgstr ""
@@ -6166,11 +6141,11 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/po.html:9
+#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
-#: templates/InvenTree/settings/report.html:10
+#: templates/InvenTree/settings/report.html:8
#: templates/InvenTree/settings/user_reports.html:9
msgid "Report Settings"
msgstr ""
@@ -6223,7 +6198,7 @@ msgid "User Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:8
-#: templates/InvenTree/settings/user.html:11
+#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
@@ -6275,140 +6250,136 @@ msgid "Stock Settings"
msgstr ""
#: templates/InvenTree/settings/user.html:18
-#: templates/js/translated/helpers.js:26
-msgid "Edit"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:20
#: 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:31
+#: templates/InvenTree/settings/user.html:22
+#: templates/js/translated/helpers.js:26
+msgid "Edit"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:32
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:35
+#: templates/InvenTree/settings/user.html:36
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:39
+#: templates/InvenTree/settings/user.html:40
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:54
+#: templates/InvenTree/settings/user.html:55
msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:74
+#: templates/InvenTree/settings/user.html:75
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:76
+#: templates/InvenTree/settings/user.html:77
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:78
+#: templates/InvenTree/settings/user.html:79
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:84
+#: templates/InvenTree/settings/user.html:85
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:85
+#: templates/InvenTree/settings/user.html:86
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:86
-#: templates/InvenTree/settings/user.html:153
+#: templates/InvenTree/settings/user.html:87
+#: templates/InvenTree/settings/user.html:154
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
+#: templates/InvenTree/settings/user.html:94
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:94
+#: templates/InvenTree/settings/user.html:95
msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:101
+#: templates/InvenTree/settings/user.html:102
msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:111
+#: templates/InvenTree/settings/user.html:112
msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:113
+#: templates/InvenTree/settings/user.html:114
msgid "Add Email"
msgstr ""
-#: templates/InvenTree/settings/user.html:123
+#: templates/InvenTree/settings/user.html:124
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:128
+#: templates/InvenTree/settings/user.html:129
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:162
+#: templates/InvenTree/settings/user.html:163
msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:167
+#: templates/InvenTree/settings/user.html:168
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:177
-msgid "Language Settings"
+#: templates/InvenTree/settings/user.html:179
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:185
+msgid "Log out active sessions (except this one)"
msgstr ""
#: templates/InvenTree/settings/user.html:186
-msgid "Select language"
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:195
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:196
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:200
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:201
+msgid "Device"
msgstr ""
#: templates/InvenTree/settings/user.html:202
-#, python-format
-msgid "%(lang_translated)s%% translated"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:204
-msgid "No translations available"
+msgid "Last Activity"
msgstr ""
#: templates/InvenTree/settings/user.html:211
-msgid "Set Language"
+#, python-format
+msgid "%(time)s ago (this session)"
msgstr ""
#: templates/InvenTree/settings/user.html:213
-msgid "Some languages are not complete"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:215
-msgid "Show only sufficent"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "and hidden."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "Show them too"
+#, python-format
+msgid "%(time)s ago"
msgstr ""
#: templates/InvenTree/settings/user.html:224
-msgid "Help the translation efforts!"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:225
-#, 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:233
msgid "Do you really want to remove the selected email address?"
msgstr ""
@@ -6424,6 +6395,52 @@ msgstr ""
msgid "Set Theme"
msgstr ""
+#: templates/InvenTree/settings/user_display.html:54
+msgid "Language Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:63
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:79
+#, python-format
+msgid "%(lang_translated)s%% translated"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:81
+msgid "No translations available"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:88
+msgid "Set Language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:91
+msgid "Some languages are not complete"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:93
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:101
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:102
+#, 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_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6623,6 +6640,14 @@ msgstr ""
msgid "View in administration panel"
msgstr ""
+#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54
+msgid "Add Link"
+msgstr ""
+
+#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36
+msgid "Add Attachment"
+msgstr ""
+
#: templates/base.html:96
msgid "Server Restart Required"
msgstr ""
@@ -6706,154 +6731,87 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/report.js:47 templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/report.js:55 templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/report.js:70 templates/js/translated/report.js:90
-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:594
-msgid "Select Stock Items"
-msgstr ""
-
-#: templates/js/report.js:99 templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:116 templates/js/report.js:169
-#: templates/js/report.js:223 templates/js/report.js:277
-#: templates/js/report.js:331 templates/js/translated/report.js:136
-#: 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 ""
-
-#: templates/js/report.js:117 templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/report.js:152 templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/report.js:153 templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: 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/build.js:1333
-#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
-#: templates/js/report.js:206 templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:224 templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/report.js:259 templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/report.js:260 templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/report.js:278 templates/js/report.js:332
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/report.js:313 templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/report.js:314 templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:191
+#: templates/js/translated/api.js:192
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:192
+#: templates/js/translated/api.js:193
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:215
+#: templates/js/translated/api.js:216
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:216
+#: templates/js/translated/api.js:217
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:27
+#: templates/js/translated/attachment.js:76
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:95
-msgid "Upload Date"
+#: templates/js/translated/attachment.js:98
+msgid "Edit Attachment"
msgstr ""
#: templates/js/translated/attachment.js:108
+msgid "Confirm Delete"
+msgstr ""
+
+#: templates/js/translated/attachment.js:109
+msgid "Delete Attachment"
+msgstr ""
+
+#: templates/js/translated/attachment.js:165
+msgid "Upload Date"
+msgstr ""
+
+#: templates/js/translated/attachment.js:178
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:115
+#: templates/js/translated/attachment.js:185
msgid "Delete attachment"
msgstr ""
@@ -6914,7 +6872,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:600
msgid "Remove stock item"
msgstr ""
@@ -7009,7 +6967,7 @@ msgid "View BOM"
msgstr ""
#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1320
msgid "Actions"
msgstr ""
@@ -7101,7 +7059,7 @@ msgstr ""
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1194
msgid "Location not specified"
msgstr ""
@@ -7110,12 +7068,12 @@ msgid "No active build outputs found"
msgstr ""
#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1305
+#: templates/js/translated/order.js:1327
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1306
+#: templates/js/translated/order.js:1328
msgid "Delete stock allocation"
msgstr ""
@@ -7136,11 +7094,11 @@ msgid "Quantity Per"
msgstr ""
#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1557
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1611
msgid "Build stock"
msgstr ""
@@ -7148,7 +7106,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1604
msgid "Allocate stock"
msgstr ""
@@ -7156,6 +7114,11 @@ msgstr ""
msgid "Specify stock allocation quantity"
msgstr ""
+#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
+#: templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
@@ -7185,8 +7148,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
-#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
-#: templates/js/translated/stock.js:1841
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1094
+#: templates/js/translated/stock.js:1871
msgid "Select"
msgstr ""
@@ -7194,7 +7157,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2090
msgid "No user information"
msgstr ""
@@ -7336,45 +7299,45 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
-#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
+#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365
+#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:351
+#: templates/js/translated/forms.js:352
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:366
+#: templates/js/translated/forms.js:367
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:380
+#: templates/js/translated/forms.js:381
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:394
+#: templates/js/translated/forms.js:395
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:679
+#: templates/js/translated/forms.js:680
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/js/translated/forms.js:1072 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1457
+#: templates/js/translated/forms.js:1463
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1661
+#: templates/js/translated/forms.js:1667
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1878
+#: templates/js/translated/forms.js:1884
msgid "Clear input"
msgstr ""
@@ -7386,6 +7349,11 @@ msgstr ""
msgid "NO"
msgstr ""
+#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
+#: templates/js/translated/stock.js:624
+msgid "Select Stock Items"
+msgstr ""
+
#: templates/js/translated/label.js:30
msgid "Stock item(s) must be selected before printing labels"
msgstr ""
@@ -7538,11 +7506,11 @@ msgstr ""
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:423
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:424
msgid "Select file format"
msgstr ""
@@ -7558,7 +7526,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1673
msgid "Stock Status"
msgstr ""
@@ -7586,100 +7554,104 @@ msgstr ""
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1063
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
+#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
+#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:801
+#: templates/js/translated/order.js:823
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
+#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:904 templates/js/translated/order.js:1492
#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+#: templates/js/translated/order.js:919 templates/js/translated/order.js:1508
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
+#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:976
+#: templates/js/translated/order.js:998
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:980
+#: templates/js/translated/order.js:1002
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1017
+#: templates/js/translated/order.js:1039
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1055
+#: templates/js/translated/order.js:1077
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1133
+#: templates/js/translated/order.js:1155
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1226
+#: templates/js/translated/order.js:1248
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1244
+#: templates/js/translated/order.js:1265
+msgid "Confirm Delete Operation"
+msgstr ""
+
+#: templates/js/translated/order.js:1266
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1308
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1535
+#: templates/js/translated/order.js:1557
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1579
+#: templates/js/translated/order.js:1601
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1585
+#: templates/js/translated/order.js:1607
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
+#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1596
+#: templates/js/translated/order.js:1618
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1719
+#: templates/js/translated/order.js:1741
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1779
+#: templates/js/translated/order.js:1801
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1793
+#: templates/js/translated/order.js:1815
msgid "No matching line items"
msgstr ""
@@ -7829,7 +7801,7 @@ msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
-#: templates/js/translated/stock.js:1802
+#: templates/js/translated/stock.js:1832
msgid "Display as list"
msgstr ""
@@ -7837,7 +7809,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1851
msgid "Display as tree"
msgstr ""
@@ -7845,7 +7817,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1895
msgid "Path"
msgstr ""
@@ -7853,11 +7825,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:816
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:817
msgid "Delete test result"
msgstr ""
@@ -7896,268 +7868,342 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:136 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 ""
+
+#: templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
#: templates/js/translated/stock.js:70
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:90
+#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167
+msgid "Next available serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169
+msgid "Latest serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:104
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:126
+#: templates/js/translated/stock.js:140
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:189
+#: templates/js/translated/stock.js:180
+msgid "This part cannot be serialized"
+msgstr ""
+
+#: templates/js/translated/stock.js:219
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:195
+#: templates/js/translated/stock.js:225
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:338
+#: templates/js/translated/stock.js:368
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:351
+#: templates/js/translated/stock.js:381
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:420
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:401
+#: templates/js/translated/stock.js:431
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:402
+#: templates/js/translated/stock.js:432
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:444
+#: templates/js/translated/stock.js:474
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:445
+#: templates/js/translated/stock.js:475
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:451
+#: templates/js/translated/stock.js:481
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:452
+#: templates/js/translated/stock.js:482
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:486
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:487
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:491
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:462 users/models.py:200
+#: templates/js/translated/stock.js:492 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:466 templates/stock_table.html:56
+#: templates/js/translated/stock.js:496 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:595
+#: templates/js/translated/stock.js:625
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:753
+#: templates/js/translated/stock.js:783
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:755
+#: templates/js/translated/stock.js:785
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:760
+#: templates/js/translated/stock.js:790
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:812
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:808
+#: templates/js/translated/stock.js:838
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:895
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:1002
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:1006
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:1010
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:984
+#: templates/js/translated/stock.js:1014
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:990
+#: templates/js/translated/stock.js:1020
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1148
+#: templates/js/translated/stock.js:1178
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1153
+#: templates/js/translated/stock.js:1183
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1156
+#: templates/js/translated/stock.js:1186
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1160
+#: templates/js/translated/stock.js:1190
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1162
+#: templates/js/translated/stock.js:1192
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1166
+#: templates/js/translated/stock.js:1196
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1170
+#: templates/js/translated/stock.js:1200
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1177
+#: templates/js/translated/stock.js:1207
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1179
+#: templates/js/translated/stock.js:1209
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1181
+#: templates/js/translated/stock.js:1211
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1185
+#: templates/js/translated/stock.js:1215
#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1235
+#: templates/js/translated/stock.js:1265
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1308
+#: templates/js/translated/stock.js:1338
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1346
+#: templates/js/translated/stock.js:1376
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
+#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1455
+#: templates/js/translated/stock.js:1485
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1482
+#: templates/js/translated/stock.js:1512
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1484
+#: templates/js/translated/stock.js:1514
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1658
+#: templates/js/translated/stock.js:1688
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1672
+#: templates/js/translated/stock.js:1702
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1673
+#: templates/js/translated/stock.js:1703
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1897
+#: templates/js/translated/stock.js:1927
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1944
+#: templates/js/translated/stock.js:1974
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1963
+#: templates/js/translated/stock.js:1993
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1982
+#: templates/js/translated/stock.js:2012
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2000
+#: templates/js/translated/stock.js:2030
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2023
+#: templates/js/translated/stock.js:2053
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2061
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2072
+#: templates/js/translated/stock.js:2102
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2073
+#: templates/js/translated/stock.js:2103
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2124
+#: templates/js/translated/stock.js:2154
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
-#: templates/js/translated/stock.js:2175
+#: templates/js/translated/stock.js:2205
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po
index 6287e77763..235abaafb7 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-11-25 04:46+0000\n"
-"PO-Revision-Date: 2021-11-25 05:07\n"
+"POT-Creation-Date: 2021-11-30 21:49+0000\n"
+"PO-Revision-Date: 2021-11-30 21:51\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Language: fr_FR\n"
@@ -36,7 +36,7 @@ msgstr "Entrer la date"
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:594
+#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr "Confirmer"
@@ -114,99 +114,121 @@ 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:109 stock/models.py:1874
+#: InvenTree/models.py:114
+msgid "Missing file"
+msgstr ""
+
+#: InvenTree/models.py:115
+msgid "Missing external link"
+msgstr ""
+
+#: InvenTree/models.py:126 stock/models.py:1874
+#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr "Pièce jointe"
-#: InvenTree/models.py:110
+#: InvenTree/models.py:127
msgid "Select file to attach"
msgstr "Sélectionnez un fichier à joindre"
-#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
+#: InvenTree/models.py:133 company/models.py:131 company/models.py:348
+#: company/models.py:564 order/models.py:163 part/models.py:797
+#: report/templates/report/inventree_build_order_base.html:165
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
+msgid "Link"
+msgstr "Lien"
+
+#: InvenTree/models.py:134 build/models.py:330 part/models.py:798
+#: stock/models.py:540
+msgid "Link to external URL"
+msgstr "Lien vers une url externe"
+
+#: InvenTree/models.py:137 templates/js/translated/attachment.js:161
msgid "Comment"
msgstr "Commentaire"
-#: InvenTree/models.py:112
+#: InvenTree/models.py:137
msgid "File comment"
msgstr "Commentaire du fichier"
-#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185
#: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:2054
+#: report/templates/report/inventree_test_report_base.html:96
+#: templates/js/translated/stock.js:2084
msgid "User"
msgstr "Utilisateur"
-#: InvenTree/models.py:122
+#: InvenTree/models.py:147
msgid "upload date"
msgstr "date de chargement"
-#: InvenTree/models.py:142
+#: InvenTree/models.py:170
msgid "Filename must not be empty"
msgstr "Le nom de fichier ne doit pas être vide"
-#: InvenTree/models.py:165
+#: InvenTree/models.py:193
msgid "Invalid attachment directory"
msgstr "Répertoire de pièce jointe invalide"
-#: InvenTree/models.py:175
+#: InvenTree/models.py:203
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Le nom de fichier contient le caractère illégal '{c}'"
-#: InvenTree/models.py:178
+#: InvenTree/models.py:206
msgid "Filename missing extension"
msgstr "Extension manquante du nom de fichier"
-#: InvenTree/models.py:185
+#: InvenTree/models.py:213
msgid "Attachment with this filename already exists"
msgstr "Une pièce jointe avec ce nom de fichier existe déjà"
-#: InvenTree/models.py:192
+#: InvenTree/models.py:220
msgid "Error renaming file"
msgstr "Erreur lors du renommage du fichier"
-#: InvenTree/models.py:227
+#: InvenTree/models.py:255
msgid "Invalid choice"
msgstr "Choix invalide"
-#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: InvenTree/models.py:271 InvenTree/models.py:272 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
#: part/templates/part/detail.html:25 report/models.py:181
#: templates/InvenTree/settings/settings.html:259
#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
-#: templates/js/translated/stock.js:1847
+#: templates/js/translated/stock.js:1877
msgid "Name"
msgstr "Nom"
-#: InvenTree/models.py:250 build/models.py:207
+#: InvenTree/models.py:278 build/models.py:207
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:80
#: company/templates/company/supplier_part.html:81 label/models.py:119
#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:551 report/models.py:590
+#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
#: templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
-#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/order.js:855 templates/js/translated/order.js:1091
#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
-#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
-#: templates/js/translated/stock.js:1904
+#: templates/js/translated/stock.js:1151 templates/js/translated/stock.js:1889
+#: templates/js/translated/stock.js:1934
msgid "Description"
msgstr "Description"
-#: InvenTree/models.py:251
+#: InvenTree/models.py:279
msgid "Description (optional)"
msgstr "Description (facultative)"
-#: InvenTree/models.py:259
+#: InvenTree/models.py:287
msgid "parent"
msgstr "parent"
@@ -214,87 +236,87 @@ msgstr "parent"
msgid "Must be a valid number"
msgstr "Doit être un nombre valide"
-#: InvenTree/serializers.py:251
+#: InvenTree/serializers.py:285
msgid "Filename"
msgstr "Nom du fichier"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:670
msgid "German"
msgstr "Allemand"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:671
msgid "Greek"
msgstr "Greek"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:672
msgid "English"
msgstr "Anglais"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:673
msgid "Spanish"
msgstr "Spanish"
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:674
msgid "Spanish (Mexican)"
msgstr "Espagnol (Mexique)"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:675
msgid "French"
msgstr "Français"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:676
msgid "Hebrew"
msgstr "Hebrew"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr "Italian"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr "Japanese"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr "Korean"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr "Dutch"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr "Norwegian"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr "Polonais"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:683
msgid "Portugese"
msgstr "Portugais"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:684
msgid "Russian"
msgstr "Russian"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:685
msgid "Swedish"
msgstr "Swedish"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:686
msgid "Thai"
msgstr "Thai"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:687
msgid "Turkish"
msgstr "Turc"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:688
msgid "Vietnamese"
msgstr "Vietnamese"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:689
msgid "Chinese"
msgstr "Chinese"
@@ -479,27 +501,27 @@ msgstr ""
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:536
+#: InvenTree/views.py:538
msgid "Delete Item"
msgstr "Supprimer cet élément"
-#: InvenTree/views.py:585
+#: InvenTree/views.py:587
msgid "Check box to confirm item deletion"
msgstr "Cochez la case pour confirmer la suppression de l'élément"
-#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
+#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21
msgid "Edit User Information"
msgstr "Modifier les informations utilisateur"
-#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
+#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr "Définir le mot de passe"
-#: InvenTree/views.py:630
+#: InvenTree/views.py:632
msgid "Password fields must match"
msgstr "Les mots de passe doivent correspondre"
-#: InvenTree/views.py:863 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:101
msgid "System Information"
msgstr "Informations système"
@@ -552,12 +574,13 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
+#: part/templates/part/detail.html:1076 part/templates/part/detail.html:1162
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:77
+#: report/templates/report/inventree_test_report_base.html:81
+#: report/templates/report/inventree_test_report_base.html:139
#: stock/forms.py:156 stock/serializers.py:286
#: stock/templates/stock/item_base.html:256
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
@@ -565,12 +588,12 @@ msgstr ""
#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
-#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
-#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/order.js:892 templates/js/translated/order.js:1205
+#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290
+#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479
#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
-#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
-#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377
+#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171
msgid "Quantity"
msgstr "Quantité"
@@ -579,8 +602,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:307 templates/js/translated/stock.js:194
-#: templates/js/translated/stock.js:348
+#: stock/serializers.py:307 templates/js/translated/stock.js:224
+#: templates/js/translated/stock.js:378
msgid "Serial Numbers"
msgstr "Numéros de série"
@@ -639,7 +662,7 @@ msgstr "Référence de l' Ordre de Fabrication"
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
+#: templates/js/translated/order.js:886 templates/js/translated/order.js:1473
msgid "Reference"
msgstr "Référence"
@@ -677,10 +700,10 @@ msgstr ""
#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/order.js:840 templates/js/translated/order.js:1457
#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
-#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
-#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508
+#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159
msgid "Part"
msgstr "Pièce"
@@ -745,7 +768,7 @@ msgid "Batch code for this build output"
msgstr ""
#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1104
msgid "Creation Date"
msgstr "Date de création"
@@ -779,7 +802,7 @@ msgstr ""
#: order/templates/order/order_base.html:154
#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680
+#: templates/js/translated/build.js:1680 templates/js/translated/order.js:700
msgid "Responsible"
msgstr ""
@@ -795,27 +818,21 @@ msgstr ""
msgid "External Link"
msgstr "Lien Externe"
-#: build/models.py:330 part/models.py:798 stock/models.py:540
-msgid "Link to external URL"
-msgstr "Lien vers une url externe"
-
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:183 order/models.py:738
-#: order/templates/order/po_navbar.html:38
-#: order/templates/order/po_navbar.html:41
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:11 part/models.py:925
#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: stock/serializers.py:583 stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
-#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
-#: templates/js/translated/stock.js:1340
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:985
+#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1370
msgid "Notes"
msgstr "Notes"
@@ -876,8 +893,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:340
#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
-#: templates/js/translated/stock.js:1990
+#: templates/js/translated/order.js:1178 templates/js/translated/order.js:1183
+#: templates/js/translated/stock.js:2020
msgid "Stock Item"
msgstr "Article en stock"
@@ -917,16 +934,16 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
-#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: build/serializers.py:190 order/serializers.py:219 order/serializers.py:287
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685
#: stock/templates/stock/item_base.html:286
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
-#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
-#: templates/js/translated/stock.js:1931
+#: templates/js/translated/order.js:1190 templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251
+#: templates/js/translated/stock.js:1961
msgid "Location"
msgstr "Emplacement"
@@ -936,11 +953,11 @@ msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:129
#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: order/serializers.py:240 stock/templates/stock/item_base.html:409
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
-#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
-#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+#: templates/js/translated/order.js:1096 templates/js/translated/stock.js:1226
+#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187
msgid "Status"
msgstr "État"
@@ -969,7 +986,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr "L'article doit être en stock"
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:233
#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
msgid "Quantity must be greater than zero"
msgstr "La quantité doit être supérieure à zéro"
@@ -1060,7 +1077,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:140
#: report/templates/report/inventree_build_order_base.html:126
#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
-#: templates/js/translated/order.js:1087
+#: templates/js/translated/order.js:1109
msgid "Target Date"
msgstr "Date Cible"
@@ -1096,7 +1113,7 @@ msgstr "Terminé"
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/order.js:1029
+#: templates/js/translated/order.js:1051
msgid "Sales Order"
msgstr "Commandes"
@@ -1171,7 +1188,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:974
msgid "Destination"
msgstr "Destination"
@@ -1185,7 +1202,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:304
-#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/stock.js:1240 templates/js/translated/stock.js:2194
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:233
msgid "Batch"
@@ -1286,7 +1303,6 @@ msgid "Completed Build Outputs"
msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
-#: order/templates/order/po_navbar.html:35
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:52
@@ -1300,7 +1316,7 @@ msgstr "Pieces jointes"
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:453
#: company/templates/company/detail.html:188
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
@@ -1312,45 +1328,11 @@ msgstr ""
msgid "Edit Notes"
msgstr "Modifier les notes"
-#: build/templates/build/detail.html:448
-#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
-#: templates/attachment_button.html:4
-msgid "Add Attachment"
-msgstr "Ajouter une pièce jointe"
-
-#: build/templates/build/detail.html:467
-#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:142
-#: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
-msgid "Edit Attachment"
-msgstr "Modifier la pièce jointe"
-
-#: build/templates/build/detail.html:474
-#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:149
-#: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
-#: templates/js/translated/order.js:1243
-msgid "Confirm Delete Operation"
-msgstr ""
-
-#: build/templates/build/detail.html:475
-#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:150
-#: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
-msgid "Delete Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:513
+#: build/templates/build/detail.html:477
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:514
+#: build/templates/build/detail.html:478
msgid "All untracked stock items have been allocated"
msgstr ""
@@ -1466,7 +1448,7 @@ msgstr ""
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:34 templates/js/translated/attachment.js:54
+#: common/forms.py:34
msgid "File"
msgstr "Fichier"
@@ -2168,13 +2150,11 @@ msgstr ""
msgid "Unit price at specified quantity"
msgstr ""
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
-#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
-#: part/views.py:854
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
+#: part/views.py:858
msgid "Upload File"
msgstr ""
@@ -2182,7 +2162,7 @@ msgstr ""
#: 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:213
-#: part/views.py:855
+#: part/views.py:859
msgid "Match Fields"
msgstr ""
@@ -2200,13 +2180,13 @@ msgstr ""
#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:40
+#: order/templates/order/order_wizard/po_upload.html:47
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:43
+#: part/templates/part/import_wizard/part_upload.html:45
msgid "Previous Step"
msgstr ""
@@ -2252,7 +2232,7 @@ msgid "Contact phone number"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:102
-#: templates/InvenTree/settings/user.html:46
+#: templates/InvenTree/settings/user.html:47
msgid "Email"
msgstr "E-mail"
@@ -2268,14 +2248,6 @@ msgstr "Contact"
msgid "Point of contact"
msgstr "Point de contact"
-#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:163 part/models.py:797
-#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:537
-#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
-msgid "Link"
-msgstr "Lien"
-
#: company/models.py:131
msgid "Link to external company information"
msgstr "Lien externe vers les informations de l'entreprise"
@@ -2343,7 +2315,7 @@ msgstr "Sélectionner un fabricant"
#: company/models.py:342 company/templates/company/manufacturer_part.html:97
#: company/templates/company/supplier_part.html:112
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:874
#: templates/js/translated/part.js:240
msgid "MPN"
msgstr ""
@@ -2372,9 +2344,9 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:90
+#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:1867 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878
msgid "Value"
msgstr "Valeur"
@@ -2413,7 +2385,7 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:98
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:861
#: templates/js/translated/part.js:221
msgid "SKU"
msgstr ""
@@ -2450,7 +2422,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:119
#: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1366
msgid "Packaging"
msgstr ""
@@ -2515,8 +2487,8 @@ msgstr ""
#: company/templates/company/company_base.html:126 order/models.py:567
#: order/templates/order/sales_order_base.html:114 stock/models.py:525
#: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
-#: templates/js/translated/stock.js:1972
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1073
+#: templates/js/translated/stock.js:2002
msgid "Customer"
msgstr ""
@@ -2721,7 +2693,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:974
+#: part/templates/part/detail.html:976
msgid "Add Parameter"
msgstr ""
@@ -2752,7 +2724,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:492
#: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1323
msgid "Supplier Part"
msgstr ""
@@ -2778,7 +2750,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
-#: templates/js/translated/stock.js:324
+#: templates/js/translated/stock.js:354
msgid "New Stock Item"
msgstr ""
@@ -2799,7 +2771,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1713
+#: part/templates/part/prices.html:271 part/views.py:1717
msgid "Add Price Break"
msgstr ""
@@ -2807,11 +2779,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1775
+#: company/templates/company/supplier_part.html:224 part/views.py:1779
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1761
+#: company/templates/company/supplier_part.html:238 part/views.py:1765
msgid "Edit Price Break"
msgstr ""
@@ -2831,8 +2803,8 @@ msgstr ""
#: templates/InvenTree/settings/sidebar.html:40
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
-#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
-#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:509
+#: templates/js/translated/stock.js:1162 templates/navbar.html:26
msgid "Stock"
msgstr "Stock"
@@ -2855,7 +2827,7 @@ msgstr "Tarif"
#: stock/templates/stock/location.html:132
#: stock/templates/stock/location.html:144
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1901
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr "Éléments en stock"
@@ -2885,24 +2857,24 @@ msgstr "Entreprises"
msgid "New Company"
msgstr "Nouvelle Entreprise"
-#: company/views.py:129 part/views.py:580
+#: company/views.py:129 part/views.py:584
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:612
+#: company/views.py:158 part/views.py:616
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:619
+#: company/views.py:165 part/views.py:623
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:628
+#: company/views.py:174 part/views.py:632
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/api.py:57 report/api.py:201
+#: label/api.py:57 report/api.py:203
msgid "No valid objects provided to template"
msgstr ""
@@ -2959,7 +2931,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
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
+#: report/models.py:322 report/models.py:459 report/models.py:497
msgid "Filters"
msgstr "Filtres"
@@ -3089,7 +3061,7 @@ msgstr ""
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1092
+#: order/models.py:582 templates/js/translated/order.js:1114
msgid "Shipment Date"
msgstr ""
@@ -3114,7 +3086,7 @@ msgid "Line item notes"
msgstr ""
#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1144
+#: templates/js/translated/order.js:1166
msgid "Order"
msgstr "Commande"
@@ -3122,8 +3094,8 @@ msgstr "Commande"
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:325
-#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1300
+#: templates/js/translated/stock.js:1983
msgid "Purchase Order"
msgstr "Commande d’achat"
@@ -3133,7 +3105,7 @@ msgstr "Pièce fournisseur"
#: order/models.py:797 order/templates/order/order_base.html:147
#: order/templates/order/sales_order_base.html:154
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:954
msgid "Received"
msgstr "Reçu"
@@ -3143,7 +3115,7 @@ msgstr "Nombre d'éléments reçus"
#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1324
+#: templates/js/translated/stock.js:1354
msgid "Purchase Price"
msgstr "Prix d'achat"
@@ -3204,47 +3176,47 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:167
+#: order/serializers.py:169
msgid "Purchase price currency"
msgstr "Devise du prix d'achat"
-#: order/serializers.py:202
+#: order/serializers.py:204
msgid "Line Item"
msgstr ""
-#: order/serializers.py:208
+#: order/serializers.py:210
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:286
+#: order/serializers.py:220 order/serializers.py:288
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:242
+#: order/serializers.py:244
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:243
+#: order/serializers.py:245
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:260
+#: order/serializers.py:262
msgid "Barcode is already in use"
msgstr "Le code-barres est déjà utilisé"
-#: order/serializers.py:298
+#: order/serializers.py:300
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:315
+#: order/serializers.py:317
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:328
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:568
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3390,19 +3362,23 @@ msgstr "Ligne"
msgid "Select Supplier Part"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:11
+#: order/templates/order/order_wizard/po_upload.html:8
+msgid "Return to Orders"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:17
msgid "Upload File for Purchase Order"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:18
+#: order/templates/order/order_wizard/po_upload.html:25
#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:21
+#: part/templates/part/import_wizard/part_upload.html:23
#, python-format
msgid "Step %(step)s of %(count)s"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:48
+#: order/templates/order/order_wizard/po_upload.html:55
msgid "Order is already processed. Files cannot be uploaded."
msgstr ""
@@ -3445,7 +3421,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:695 templates/js/translated/order.js:1097
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1119
msgid "Items"
msgstr ""
@@ -3463,31 +3439,6 @@ msgstr ""
msgid "Select a purchase order for %(name)s"
msgstr ""
-#: order/templates/order/po_attachments.html:12
-#: order/templates/order/po_navbar.html:32
-msgid "Purchase Order Attachments"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:15
-#: part/templates/part/part_sidebar.html:8
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr "Détails"
-
-#: order/templates/order/po_navbar.html:26
-msgid "Received Stock Items"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:29
-#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
#: order/templates/order/po_sidebar.html:5
#: order/templates/order/so_sidebar.html:5
#: report/templates/report/inventree_po_report.html:85
@@ -3504,9 +3455,9 @@ msgid "Purchase Order Items"
msgstr "Articles de la commande d'achat"
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:216
+#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:191
+#: order/templates/order/sales_order_detail.html:157
msgid "Add Line Item"
msgstr ""
@@ -3518,6 +3469,10 @@ msgstr ""
msgid "Receive Items"
msgstr ""
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
#: order/templates/order/purchase_order_detail.html:76
#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
@@ -3546,7 +3501,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:121
-#: templates/js/translated/order.js:1064
+#: templates/js/translated/order.js:1086
msgid "Customer Reference"
msgstr ""
@@ -3700,19 +3655,19 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:731
+#: part/api.py:758
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:735
+#: part/api.py:762
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:750
+#: part/api.py:777
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
+#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
msgid "This field is required"
msgstr ""
@@ -3926,7 +3881,7 @@ msgstr "Catégorie de la pièce"
#: part/models.py:784 part/templates/part/detail.html:45
#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
-#: templates/js/translated/stock.js:1104
+#: templates/js/translated/stock.js:1134
msgid "IPN"
msgstr "IPN"
@@ -4047,7 +4002,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1467
-#: templates/js/translated/stock.js:828
+#: templates/js/translated/stock.js:858
msgid "Test Name"
msgstr "Nom de test"
@@ -4552,7 +4507,7 @@ msgstr ""
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:365 part/views.py:751
+#: part/templates/part/detail.html:365 part/views.py:755
msgid "Validate BOM"
msgstr ""
@@ -4604,44 +4559,48 @@ msgstr ""
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:770
+#: part/templates/part/detail.html:772
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:867
+#: part/templates/part/detail.html:869
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:924
+#: part/templates/part/detail.html:926
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:1076
+#: part/templates/part/detail.html:1039
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1088
+#: part/templates/part/detail.html:1051
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1100
+#: part/templates/part/detail.html:1063
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1189
+#: part/templates/part/detail.html:1152
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:51
+#: part/templates/part/import_wizard/part_upload.html:53
msgid "Unsuffitient privileges."
msgstr ""
-#: part/templates/part/import_wizard/part_upload.html:14
+#: part/templates/part/import_wizard/part_upload.html:8
+msgid "Return to Parts"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:16
msgid "Import Parts from File"
msgstr ""
@@ -4751,7 +4710,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1546
#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
@@ -4846,6 +4805,11 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1949
+msgid "Details"
+msgstr "Détails"
+
#: part/templates/part/part_sidebar.html:13
msgid "Variants"
msgstr ""
@@ -4949,7 +4913,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1784
+#: part/templates/part/prices.html:215 part/views.py:1788
msgid "Add Internal Price Break"
msgstr ""
@@ -5005,110 +4969,115 @@ msgstr ""
msgid "Match References"
msgstr ""
-#: part/views.py:498
+#: part/views.py:502
msgid "None"
msgstr ""
-#: part/views.py:557
+#: part/views.py:561
msgid "Part QR Code"
msgstr ""
-#: part/views.py:659
+#: part/views.py:663
msgid "Select Part Image"
msgstr ""
-#: part/views.py:685
+#: part/views.py:689
msgid "Updated part image"
msgstr ""
-#: part/views.py:688
+#: part/views.py:692
msgid "Part image not found"
msgstr ""
-#: part/views.py:700
+#: part/views.py:704
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:730
+#: part/views.py:734
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:772
+#: part/views.py:776
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:783
+#: part/views.py:787
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:856
+#: part/views.py:860
msgid "Match Parts"
msgstr ""
-#: part/views.py:1192
+#: part/views.py:1196
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1244
+#: part/views.py:1248
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1251
+#: part/views.py:1255
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1260
+#: part/views.py:1264
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1409
+#: part/views.py:1413
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1419
+#: part/views.py:1423
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1426
+#: part/views.py:1430
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1485 templates/js/translated/part.js:310
+#: part/views.py:1489 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1523
+#: part/views.py:1527
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1529
+#: part/views.py:1533
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1538
+#: part/views.py:1542
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1639
+#: part/views.py:1643
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1695
+#: part/views.py:1699
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1717
+#: part/views.py:1721
msgid "Added new price break"
msgstr ""
-#: part/views.py:1793
+#: part/views.py:1797
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1801
+#: part/views.py:1805
msgid "Delete Internal Price Break"
msgstr ""
+#: report/api.py:234 report/api.py:278
+#, python-brace-format
+msgid "Template file '{filename}' is missing or does not exist"
+msgstr ""
+
#: report/models.py:182
msgid "Template name"
msgstr "Nom du modèle"
@@ -5145,51 +5114,51 @@ msgstr ""
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:380
+#: report/models.py:382
msgid "Build Filters"
msgstr ""
-#: report/models.py:381
+#: report/models.py:383
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:423
+#: report/models.py:425
msgid "Part Filters"
msgstr ""
-#: report/models.py:424
+#: report/models.py:426
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:458
+#: report/models.py:460
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:496
+#: report/models.py:498
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:546
+#: report/models.py:548
msgid "Snippet"
msgstr "Extrait "
-#: report/models.py:547
+#: report/models.py:549
msgid "Report snippet file"
msgstr ""
-#: report/models.py:551
+#: report/models.py:553
msgid "Snippet file description"
msgstr ""
-#: report/models.py:586
+#: report/models.py:588
msgid "Asset"
msgstr "Elément"
-#: report/models.py:587
+#: report/models.py:589
msgid "Report asset file"
msgstr ""
-#: report/models.py:590
+#: report/models.py:592
msgid "Asset file description"
msgstr ""
@@ -5201,49 +5170,59 @@ msgstr "Requis pour"
msgid "Stock Item Test Report"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:75
+#: report/templates/report/inventree_test_report_base.html:79
#: stock/models.py:530 stock/templates/stock/item_base.html:238
#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
#: templates/js/translated/build.js:1013
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+#: templates/js/translated/order.js:1288 templates/js/translated/order.js:1377
msgid "Serial Number"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:83
+#: report/templates/report/inventree_test_report_base.html:88
msgid "Test Results"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:93
#: stock/models.py:1855
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:89
+#: report/templates/report/inventree_test_report_base.html:94
#: stock/models.py:1861
msgid "Result"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917
msgid "Date"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:103
+#: report/templates/report/inventree_test_report_base.html:108
msgid "Pass"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:105
+#: report/templates/report/inventree_test_report_base.html:110
msgid "Fail"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:123
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:137
+#: templates/js/translated/stock.js:2177
+msgid "Serial"
+msgstr ""
+
#: stock/api.py:422
msgid "Quantity is required"
msgstr ""
#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
#: stock/templates/stock/item_base.html:382
-#: templates/js/translated/stock.js:1246
+#: templates/js/translated/stock.js:1276
msgid "Expiry Date"
msgstr ""
@@ -5505,7 +5484,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:319 stock/serializers.py:687
+#: stock/serializers.py:319 stock/serializers.py:686
msgid "Destination stock location"
msgstr ""
@@ -5517,15 +5496,15 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:557
+#: stock/serializers.py:556
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:585
+#: stock/serializers.py:584
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:595
+#: stock/serializers.py:594
msgid "A list of stock items must be provided"
msgstr ""
@@ -5570,15 +5549,15 @@ msgstr ""
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
+#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:363
+#: stock/templates/stock/item.html:324
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:377
+#: stock/templates/stock/item.html:338
msgid "Delete Test Result"
msgstr ""
@@ -5752,7 +5731,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:1259
+#: templates/js/translated/stock.js:1289
msgid "Last Updated"
msgstr ""
@@ -5768,7 +5747,7 @@ msgstr ""
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:505
msgid "Edit Stock Status"
msgstr ""
@@ -5885,10 +5864,6 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:12
-msgid "Installed Items"
-msgstr ""
-
#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
@@ -5967,7 +5942,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:618
+#: stock/views.py:760 templates/js/translated/stock.js:648
msgid "Confirm stock adjustment"
msgstr ""
@@ -5975,7 +5950,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:288
+#: stock/views.py:793 templates/js/translated/stock.js:318
msgid "Edit Stock Item"
msgstr ""
@@ -5987,7 +5962,7 @@ msgstr ""
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:268
+#: stock/views.py:1186 templates/js/translated/stock.js:298
msgid "Duplicate Stock Item"
msgstr ""
@@ -6164,11 +6139,11 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/po.html:9
+#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
-#: templates/InvenTree/settings/report.html:10
+#: templates/InvenTree/settings/report.html:8
#: templates/InvenTree/settings/user_reports.html:9
msgid "Report Settings"
msgstr ""
@@ -6221,7 +6196,7 @@ msgid "User Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:8
-#: templates/InvenTree/settings/user.html:11
+#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
@@ -6273,140 +6248,136 @@ msgid "Stock Settings"
msgstr ""
#: templates/InvenTree/settings/user.html:18
-#: templates/js/translated/helpers.js:26
-msgid "Edit"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:20
#: 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:31
+#: templates/InvenTree/settings/user.html:22
+#: templates/js/translated/helpers.js:26
+msgid "Edit"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:32
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:35
+#: templates/InvenTree/settings/user.html:36
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:39
+#: templates/InvenTree/settings/user.html:40
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:54
+#: templates/InvenTree/settings/user.html:55
msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:74
+#: templates/InvenTree/settings/user.html:75
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:76
+#: templates/InvenTree/settings/user.html:77
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:78
+#: templates/InvenTree/settings/user.html:79
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:84
+#: templates/InvenTree/settings/user.html:85
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:85
+#: templates/InvenTree/settings/user.html:86
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:86
-#: templates/InvenTree/settings/user.html:153
+#: templates/InvenTree/settings/user.html:87
+#: templates/InvenTree/settings/user.html:154
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
+#: templates/InvenTree/settings/user.html:94
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:94
+#: templates/InvenTree/settings/user.html:95
msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:101
+#: templates/InvenTree/settings/user.html:102
msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:111
+#: templates/InvenTree/settings/user.html:112
msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:113
+#: templates/InvenTree/settings/user.html:114
msgid "Add Email"
msgstr ""
-#: templates/InvenTree/settings/user.html:123
+#: templates/InvenTree/settings/user.html:124
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:128
+#: templates/InvenTree/settings/user.html:129
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:162
+#: templates/InvenTree/settings/user.html:163
msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:167
+#: templates/InvenTree/settings/user.html:168
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:177
-msgid "Language Settings"
+#: templates/InvenTree/settings/user.html:179
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:185
+msgid "Log out active sessions (except this one)"
msgstr ""
#: templates/InvenTree/settings/user.html:186
-msgid "Select language"
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:195
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:196
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:200
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:201
+msgid "Device"
msgstr ""
#: templates/InvenTree/settings/user.html:202
-#, python-format
-msgid "%(lang_translated)s%% translated"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:204
-msgid "No translations available"
+msgid "Last Activity"
msgstr ""
#: templates/InvenTree/settings/user.html:211
-msgid "Set Language"
+#, python-format
+msgid "%(time)s ago (this session)"
msgstr ""
#: templates/InvenTree/settings/user.html:213
-msgid "Some languages are not complete"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:215
-msgid "Show only sufficent"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "and hidden."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "Show them too"
+#, python-format
+msgid "%(time)s ago"
msgstr ""
#: templates/InvenTree/settings/user.html:224
-msgid "Help the translation efforts!"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:225
-#, 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:233
msgid "Do you really want to remove the selected email address?"
msgstr ""
@@ -6422,6 +6393,52 @@ msgstr ""
msgid "Set Theme"
msgstr ""
+#: templates/InvenTree/settings/user_display.html:54
+msgid "Language Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:63
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:79
+#, python-format
+msgid "%(lang_translated)s%% translated"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:81
+msgid "No translations available"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:88
+msgid "Set Language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:91
+msgid "Some languages are not complete"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:93
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:101
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:102
+#, 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_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6619,6 +6636,14 @@ msgstr ""
msgid "View in administration panel"
msgstr ""
+#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54
+msgid "Add Link"
+msgstr ""
+
+#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36
+msgid "Add Attachment"
+msgstr "Ajouter une pièce jointe"
+
#: templates/base.html:96
msgid "Server Restart Required"
msgstr ""
@@ -6702,154 +6727,87 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/report.js:47 templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/report.js:55 templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/report.js:70 templates/js/translated/report.js:90
-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:594
-msgid "Select Stock Items"
-msgstr ""
-
-#: templates/js/report.js:99 templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:116 templates/js/report.js:169
-#: templates/js/report.js:223 templates/js/report.js:277
-#: templates/js/report.js:331 templates/js/translated/report.js:136
-#: 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 ""
-
-#: templates/js/report.js:117 templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/report.js:152 templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/report.js:153 templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: 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/build.js:1333
-#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
-#: templates/js/report.js:206 templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:224 templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/report.js:259 templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/report.js:260 templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/report.js:278 templates/js/report.js:332
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/report.js:313 templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/report.js:314 templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:191
+#: templates/js/translated/api.js:192
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:192
+#: templates/js/translated/api.js:193
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:215
+#: templates/js/translated/api.js:216
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:216
+#: templates/js/translated/api.js:217
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:27
+#: templates/js/translated/attachment.js:76
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:95
+#: templates/js/translated/attachment.js:98
+msgid "Edit Attachment"
+msgstr "Modifier la pièce jointe"
+
+#: templates/js/translated/attachment.js:108
+msgid "Confirm Delete"
+msgstr ""
+
+#: templates/js/translated/attachment.js:109
+msgid "Delete Attachment"
+msgstr ""
+
+#: templates/js/translated/attachment.js:165
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:108
+#: templates/js/translated/attachment.js:178
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:115
+#: templates/js/translated/attachment.js:185
msgid "Delete attachment"
msgstr ""
@@ -6910,7 +6868,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:600
msgid "Remove stock item"
msgstr ""
@@ -7005,7 +6963,7 @@ msgid "View BOM"
msgstr ""
#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1320
msgid "Actions"
msgstr ""
@@ -7097,7 +7055,7 @@ msgstr ""
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1194
msgid "Location not specified"
msgstr ""
@@ -7106,12 +7064,12 @@ msgid "No active build outputs found"
msgstr ""
#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1305
+#: templates/js/translated/order.js:1327
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1306
+#: templates/js/translated/order.js:1328
msgid "Delete stock allocation"
msgstr ""
@@ -7132,11 +7090,11 @@ msgid "Quantity Per"
msgstr ""
#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1557
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1611
msgid "Build stock"
msgstr ""
@@ -7144,7 +7102,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1604
msgid "Allocate stock"
msgstr ""
@@ -7152,6 +7110,11 @@ msgstr ""
msgid "Specify stock allocation quantity"
msgstr ""
+#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
+#: templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
@@ -7181,8 +7144,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
-#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
-#: templates/js/translated/stock.js:1841
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1094
+#: templates/js/translated/stock.js:1871
msgid "Select"
msgstr ""
@@ -7190,7 +7153,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2090
msgid "No user information"
msgstr ""
@@ -7332,45 +7295,45 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
-#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
+#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365
+#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:351
+#: templates/js/translated/forms.js:352
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:366
+#: templates/js/translated/forms.js:367
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:380
+#: templates/js/translated/forms.js:381
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:394
+#: templates/js/translated/forms.js:395
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:679
+#: templates/js/translated/forms.js:680
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/js/translated/forms.js:1072 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1457
+#: templates/js/translated/forms.js:1463
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1661
+#: templates/js/translated/forms.js:1667
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1878
+#: templates/js/translated/forms.js:1884
msgid "Clear input"
msgstr ""
@@ -7382,6 +7345,11 @@ msgstr ""
msgid "NO"
msgstr ""
+#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
+#: templates/js/translated/stock.js:624
+msgid "Select Stock Items"
+msgstr ""
+
#: templates/js/translated/label.js:30
msgid "Stock item(s) must be selected before printing labels"
msgstr ""
@@ -7534,11 +7502,11 @@ msgstr ""
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:423
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:424
msgid "Select file format"
msgstr ""
@@ -7554,7 +7522,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1673
msgid "Stock Status"
msgstr ""
@@ -7582,100 +7550,104 @@ msgstr ""
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1063
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
+#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
+#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:801
+#: templates/js/translated/order.js:823
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
+#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:904 templates/js/translated/order.js:1492
#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+#: templates/js/translated/order.js:919 templates/js/translated/order.js:1508
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
+#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:976
+#: templates/js/translated/order.js:998
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:980
+#: templates/js/translated/order.js:1002
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1017
+#: templates/js/translated/order.js:1039
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1055
+#: templates/js/translated/order.js:1077
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1133
+#: templates/js/translated/order.js:1155
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1226
+#: templates/js/translated/order.js:1248
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1244
+#: templates/js/translated/order.js:1265
+msgid "Confirm Delete Operation"
+msgstr ""
+
+#: templates/js/translated/order.js:1266
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1308
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1535
+#: templates/js/translated/order.js:1557
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1579
+#: templates/js/translated/order.js:1601
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1585
+#: templates/js/translated/order.js:1607
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
+#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1596
+#: templates/js/translated/order.js:1618
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1719
+#: templates/js/translated/order.js:1741
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1779
+#: templates/js/translated/order.js:1801
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1793
+#: templates/js/translated/order.js:1815
msgid "No matching line items"
msgstr ""
@@ -7825,7 +7797,7 @@ msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
-#: templates/js/translated/stock.js:1802
+#: templates/js/translated/stock.js:1832
msgid "Display as list"
msgstr ""
@@ -7833,7 +7805,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1851
msgid "Display as tree"
msgstr ""
@@ -7841,7 +7813,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1895
msgid "Path"
msgstr ""
@@ -7849,11 +7821,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:816
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:817
msgid "Delete test result"
msgstr ""
@@ -7892,268 +7864,342 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:136 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 ""
+
+#: templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
#: templates/js/translated/stock.js:70
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:90
+#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167
+msgid "Next available serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169
+msgid "Latest serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:104
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:126
+#: templates/js/translated/stock.js:140
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:189
+#: templates/js/translated/stock.js:180
+msgid "This part cannot be serialized"
+msgstr ""
+
+#: templates/js/translated/stock.js:219
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:195
+#: templates/js/translated/stock.js:225
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:338
+#: templates/js/translated/stock.js:368
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:351
+#: templates/js/translated/stock.js:381
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:420
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:401
+#: templates/js/translated/stock.js:431
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:402
+#: templates/js/translated/stock.js:432
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:444
+#: templates/js/translated/stock.js:474
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:445
+#: templates/js/translated/stock.js:475
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:451
+#: templates/js/translated/stock.js:481
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:452
+#: templates/js/translated/stock.js:482
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:486
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:487
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:491
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:462 users/models.py:200
+#: templates/js/translated/stock.js:492 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:466 templates/stock_table.html:56
+#: templates/js/translated/stock.js:496 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:595
+#: templates/js/translated/stock.js:625
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:753
+#: templates/js/translated/stock.js:783
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:755
+#: templates/js/translated/stock.js:785
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:760
+#: templates/js/translated/stock.js:790
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:812
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:808
+#: templates/js/translated/stock.js:838
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:895
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:1002
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:1006
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:1010
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:984
+#: templates/js/translated/stock.js:1014
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:990
+#: templates/js/translated/stock.js:1020
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1148
+#: templates/js/translated/stock.js:1178
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1153
+#: templates/js/translated/stock.js:1183
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1156
+#: templates/js/translated/stock.js:1186
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1160
+#: templates/js/translated/stock.js:1190
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1162
+#: templates/js/translated/stock.js:1192
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1166
+#: templates/js/translated/stock.js:1196
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1170
+#: templates/js/translated/stock.js:1200
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1177
+#: templates/js/translated/stock.js:1207
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1179
+#: templates/js/translated/stock.js:1209
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1181
+#: templates/js/translated/stock.js:1211
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1185
+#: templates/js/translated/stock.js:1215
#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1235
+#: templates/js/translated/stock.js:1265
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1308
+#: templates/js/translated/stock.js:1338
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1346
+#: templates/js/translated/stock.js:1376
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
+#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1455
+#: templates/js/translated/stock.js:1485
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1482
+#: templates/js/translated/stock.js:1512
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1484
+#: templates/js/translated/stock.js:1514
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1658
+#: templates/js/translated/stock.js:1688
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1672
+#: templates/js/translated/stock.js:1702
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1673
+#: templates/js/translated/stock.js:1703
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1897
+#: templates/js/translated/stock.js:1927
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1944
+#: templates/js/translated/stock.js:1974
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1963
+#: templates/js/translated/stock.js:1993
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1982
+#: templates/js/translated/stock.js:2012
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2000
+#: templates/js/translated/stock.js:2030
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2023
+#: templates/js/translated/stock.js:2053
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2061
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2072
+#: templates/js/translated/stock.js:2102
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2073
+#: templates/js/translated/stock.js:2103
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2124
+#: templates/js/translated/stock.js:2154
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
-#: templates/js/translated/stock.js:2175
+#: templates/js/translated/stock.js:2205
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po
index d000923de9..19508cb053 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-11-25 04:46+0000\n"
-"PO-Revision-Date: 2021-11-25 05:07\n"
+"POT-Creation-Date: 2021-11-30 21:49+0000\n"
+"PO-Revision-Date: 2021-11-30 21:52\n"
"Last-Translator: \n"
"Language-Team: Hebrew\n"
"Language: he_IL\n"
@@ -36,7 +36,7 @@ msgstr ""
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:594
+#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr ""
@@ -114,99 +114,121 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:109 stock/models.py:1874
+#: InvenTree/models.py:114
+msgid "Missing file"
+msgstr ""
+
+#: InvenTree/models.py:115
+msgid "Missing external link"
+msgstr ""
+
+#: InvenTree/models.py:126 stock/models.py:1874
+#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:110
+#: InvenTree/models.py:127
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
+#: InvenTree/models.py:133 company/models.py:131 company/models.py:348
+#: company/models.py:564 order/models.py:163 part/models.py:797
+#: report/templates/report/inventree_build_order_base.html:165
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
+msgid "Link"
+msgstr ""
+
+#: InvenTree/models.py:134 build/models.py:330 part/models.py:798
+#: stock/models.py:540
+msgid "Link to external URL"
+msgstr ""
+
+#: InvenTree/models.py:137 templates/js/translated/attachment.js:161
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:112
+#: InvenTree/models.py:137
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185
#: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:2054
+#: report/templates/report/inventree_test_report_base.html:96
+#: templates/js/translated/stock.js:2084
msgid "User"
msgstr ""
-#: InvenTree/models.py:122
+#: InvenTree/models.py:147
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:142
+#: InvenTree/models.py:170
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:165
+#: InvenTree/models.py:193
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:175
+#: InvenTree/models.py:203
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:178
+#: InvenTree/models.py:206
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:185
+#: InvenTree/models.py:213
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:192
+#: InvenTree/models.py:220
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:227
+#: InvenTree/models.py:255
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: InvenTree/models.py:271 InvenTree/models.py:272 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
#: part/templates/part/detail.html:25 report/models.py:181
#: templates/InvenTree/settings/settings.html:259
#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
-#: templates/js/translated/stock.js:1847
+#: templates/js/translated/stock.js:1877
msgid "Name"
msgstr ""
-#: InvenTree/models.py:250 build/models.py:207
+#: InvenTree/models.py:278 build/models.py:207
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:80
#: company/templates/company/supplier_part.html:81 label/models.py:119
#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:551 report/models.py:590
+#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
#: templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
-#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/order.js:855 templates/js/translated/order.js:1091
#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
-#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
-#: templates/js/translated/stock.js:1904
+#: templates/js/translated/stock.js:1151 templates/js/translated/stock.js:1889
+#: templates/js/translated/stock.js:1934
msgid "Description"
msgstr ""
-#: InvenTree/models.py:251
+#: InvenTree/models.py:279
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:259
+#: InvenTree/models.py:287
msgid "parent"
msgstr ""
@@ -214,87 +236,87 @@ msgstr ""
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:251
+#: InvenTree/serializers.py:285
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:670
msgid "German"
msgstr ""
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:671
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:672
msgid "English"
msgstr ""
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:673
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:674
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:675
msgid "French"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:676
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:683
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:684
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:685
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:686
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:687
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:688
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:689
msgid "Chinese"
msgstr ""
@@ -479,27 +501,27 @@ msgstr ""
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:536
+#: InvenTree/views.py:538
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:585
+#: InvenTree/views.py:587
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
+#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
+#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:630
+#: InvenTree/views.py:632
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:863 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:101
msgid "System Information"
msgstr ""
@@ -552,12 +574,13 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
+#: part/templates/part/detail.html:1076 part/templates/part/detail.html:1162
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:77
+#: report/templates/report/inventree_test_report_base.html:81
+#: report/templates/report/inventree_test_report_base.html:139
#: stock/forms.py:156 stock/serializers.py:286
#: stock/templates/stock/item_base.html:256
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
@@ -565,12 +588,12 @@ msgstr ""
#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
-#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
-#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/order.js:892 templates/js/translated/order.js:1205
+#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290
+#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479
#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
-#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
-#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377
+#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171
msgid "Quantity"
msgstr ""
@@ -579,8 +602,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:307 templates/js/translated/stock.js:194
-#: templates/js/translated/stock.js:348
+#: stock/serializers.py:307 templates/js/translated/stock.js:224
+#: templates/js/translated/stock.js:378
msgid "Serial Numbers"
msgstr ""
@@ -639,7 +662,7 @@ msgstr ""
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
+#: templates/js/translated/order.js:886 templates/js/translated/order.js:1473
msgid "Reference"
msgstr ""
@@ -677,10 +700,10 @@ msgstr ""
#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/order.js:840 templates/js/translated/order.js:1457
#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
-#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
-#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508
+#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159
msgid "Part"
msgstr ""
@@ -745,7 +768,7 @@ msgid "Batch code for this build output"
msgstr ""
#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1104
msgid "Creation Date"
msgstr ""
@@ -779,7 +802,7 @@ msgstr ""
#: order/templates/order/order_base.html:154
#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680
+#: templates/js/translated/build.js:1680 templates/js/translated/order.js:700
msgid "Responsible"
msgstr ""
@@ -795,27 +818,21 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:330 part/models.py:798 stock/models.py:540
-msgid "Link to external URL"
-msgstr ""
-
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:183 order/models.py:738
-#: order/templates/order/po_navbar.html:38
-#: order/templates/order/po_navbar.html:41
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:11 part/models.py:925
#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: stock/serializers.py:583 stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
-#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
-#: templates/js/translated/stock.js:1340
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:985
+#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1370
msgid "Notes"
msgstr ""
@@ -876,8 +893,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:340
#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
-#: templates/js/translated/stock.js:1990
+#: templates/js/translated/order.js:1178 templates/js/translated/order.js:1183
+#: templates/js/translated/stock.js:2020
msgid "Stock Item"
msgstr ""
@@ -917,16 +934,16 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
-#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: build/serializers.py:190 order/serializers.py:219 order/serializers.py:287
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685
#: stock/templates/stock/item_base.html:286
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
-#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
-#: templates/js/translated/stock.js:1931
+#: templates/js/translated/order.js:1190 templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251
+#: templates/js/translated/stock.js:1961
msgid "Location"
msgstr ""
@@ -936,11 +953,11 @@ msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:129
#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: order/serializers.py:240 stock/templates/stock/item_base.html:409
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
-#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
-#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+#: templates/js/translated/order.js:1096 templates/js/translated/stock.js:1226
+#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187
msgid "Status"
msgstr ""
@@ -969,7 +986,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:233
#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1060,7 +1077,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:140
#: report/templates/report/inventree_build_order_base.html:126
#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
-#: templates/js/translated/order.js:1087
+#: templates/js/translated/order.js:1109
msgid "Target Date"
msgstr ""
@@ -1096,7 +1113,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/order.js:1029
+#: templates/js/translated/order.js:1051
msgid "Sales Order"
msgstr ""
@@ -1171,7 +1188,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:974
msgid "Destination"
msgstr ""
@@ -1185,7 +1202,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:304
-#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/stock.js:1240 templates/js/translated/stock.js:2194
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:233
msgid "Batch"
@@ -1286,7 +1303,6 @@ msgid "Completed Build Outputs"
msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
-#: order/templates/order/po_navbar.html:35
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:52
@@ -1300,7 +1316,7 @@ msgstr ""
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:453
#: company/templates/company/detail.html:188
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
@@ -1312,45 +1328,11 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:448
-#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
-#: templates/attachment_button.html:4
-msgid "Add Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:467
-#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:142
-#: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
-msgid "Edit Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:474
-#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:149
-#: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
-#: templates/js/translated/order.js:1243
-msgid "Confirm Delete Operation"
-msgstr ""
-
-#: build/templates/build/detail.html:475
-#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:150
-#: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
-msgid "Delete Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:513
+#: build/templates/build/detail.html:477
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:514
+#: build/templates/build/detail.html:478
msgid "All untracked stock items have been allocated"
msgstr ""
@@ -1466,7 +1448,7 @@ msgstr ""
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:34 templates/js/translated/attachment.js:54
+#: common/forms.py:34
msgid "File"
msgstr ""
@@ -2168,13 +2150,11 @@ msgstr ""
msgid "Unit price at specified quantity"
msgstr ""
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
-#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
-#: part/views.py:854
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
+#: part/views.py:858
msgid "Upload File"
msgstr ""
@@ -2182,7 +2162,7 @@ msgstr ""
#: 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:213
-#: part/views.py:855
+#: part/views.py:859
msgid "Match Fields"
msgstr ""
@@ -2200,13 +2180,13 @@ msgstr ""
#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:40
+#: order/templates/order/order_wizard/po_upload.html:47
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:43
+#: part/templates/part/import_wizard/part_upload.html:45
msgid "Previous Step"
msgstr ""
@@ -2252,7 +2232,7 @@ msgid "Contact phone number"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:102
-#: templates/InvenTree/settings/user.html:46
+#: templates/InvenTree/settings/user.html:47
msgid "Email"
msgstr ""
@@ -2268,14 +2248,6 @@ msgstr ""
msgid "Point of contact"
msgstr ""
-#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:163 part/models.py:797
-#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:537
-#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
-msgid "Link"
-msgstr ""
-
#: company/models.py:131
msgid "Link to external company information"
msgstr ""
@@ -2343,7 +2315,7 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:97
#: company/templates/company/supplier_part.html:112
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:874
#: templates/js/translated/part.js:240
msgid "MPN"
msgstr ""
@@ -2372,9 +2344,9 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:90
+#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:1867 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878
msgid "Value"
msgstr ""
@@ -2413,7 +2385,7 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:98
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:861
#: templates/js/translated/part.js:221
msgid "SKU"
msgstr ""
@@ -2450,7 +2422,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:119
#: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1366
msgid "Packaging"
msgstr ""
@@ -2515,8 +2487,8 @@ msgstr ""
#: company/templates/company/company_base.html:126 order/models.py:567
#: order/templates/order/sales_order_base.html:114 stock/models.py:525
#: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
-#: templates/js/translated/stock.js:1972
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1073
+#: templates/js/translated/stock.js:2002
msgid "Customer"
msgstr ""
@@ -2721,7 +2693,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:974
+#: part/templates/part/detail.html:976
msgid "Add Parameter"
msgstr ""
@@ -2752,7 +2724,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:492
#: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1323
msgid "Supplier Part"
msgstr ""
@@ -2778,7 +2750,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
-#: templates/js/translated/stock.js:324
+#: templates/js/translated/stock.js:354
msgid "New Stock Item"
msgstr ""
@@ -2799,7 +2771,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1713
+#: part/templates/part/prices.html:271 part/views.py:1717
msgid "Add Price Break"
msgstr ""
@@ -2807,11 +2779,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1775
+#: company/templates/company/supplier_part.html:224 part/views.py:1779
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1761
+#: company/templates/company/supplier_part.html:238 part/views.py:1765
msgid "Edit Price Break"
msgstr ""
@@ -2831,8 +2803,8 @@ msgstr ""
#: templates/InvenTree/settings/sidebar.html:40
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
-#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
-#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:509
+#: templates/js/translated/stock.js:1162 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2855,7 +2827,7 @@ msgstr ""
#: stock/templates/stock/location.html:132
#: stock/templates/stock/location.html:144
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1901
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2885,24 +2857,24 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:580
+#: company/views.py:129 part/views.py:584
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:612
+#: company/views.py:158 part/views.py:616
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:619
+#: company/views.py:165 part/views.py:623
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:628
+#: company/views.py:174 part/views.py:632
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/api.py:57 report/api.py:201
+#: label/api.py:57 report/api.py:203
msgid "No valid objects provided to template"
msgstr ""
@@ -2959,7 +2931,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
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
+#: report/models.py:322 report/models.py:459 report/models.py:497
msgid "Filters"
msgstr ""
@@ -3089,7 +3061,7 @@ msgstr ""
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1092
+#: order/models.py:582 templates/js/translated/order.js:1114
msgid "Shipment Date"
msgstr ""
@@ -3114,7 +3086,7 @@ msgid "Line item notes"
msgstr ""
#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1144
+#: templates/js/translated/order.js:1166
msgid "Order"
msgstr ""
@@ -3122,8 +3094,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:325
-#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1300
+#: templates/js/translated/stock.js:1983
msgid "Purchase Order"
msgstr ""
@@ -3133,7 +3105,7 @@ msgstr ""
#: order/models.py:797 order/templates/order/order_base.html:147
#: order/templates/order/sales_order_base.html:154
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:954
msgid "Received"
msgstr ""
@@ -3143,7 +3115,7 @@ msgstr ""
#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1324
+#: templates/js/translated/stock.js:1354
msgid "Purchase Price"
msgstr ""
@@ -3204,47 +3176,47 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:167
+#: order/serializers.py:169
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:202
+#: order/serializers.py:204
msgid "Line Item"
msgstr ""
-#: order/serializers.py:208
+#: order/serializers.py:210
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:286
+#: order/serializers.py:220 order/serializers.py:288
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:242
+#: order/serializers.py:244
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:243
+#: order/serializers.py:245
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:260
+#: order/serializers.py:262
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:298
+#: order/serializers.py:300
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:315
+#: order/serializers.py:317
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:328
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:568
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3390,19 +3362,23 @@ msgstr ""
msgid "Select Supplier Part"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:11
+#: order/templates/order/order_wizard/po_upload.html:8
+msgid "Return to Orders"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:17
msgid "Upload File for Purchase Order"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:18
+#: order/templates/order/order_wizard/po_upload.html:25
#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:21
+#: part/templates/part/import_wizard/part_upload.html:23
#, python-format
msgid "Step %(step)s of %(count)s"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:48
+#: order/templates/order/order_wizard/po_upload.html:55
msgid "Order is already processed. Files cannot be uploaded."
msgstr ""
@@ -3445,7 +3421,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:695 templates/js/translated/order.js:1097
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1119
msgid "Items"
msgstr ""
@@ -3463,31 +3439,6 @@ msgstr ""
msgid "Select a purchase order for %(name)s"
msgstr ""
-#: order/templates/order/po_attachments.html:12
-#: order/templates/order/po_navbar.html:32
-msgid "Purchase Order Attachments"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:15
-#: part/templates/part/part_sidebar.html:8
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:26
-msgid "Received Stock Items"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:29
-#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
#: order/templates/order/po_sidebar.html:5
#: order/templates/order/so_sidebar.html:5
#: report/templates/report/inventree_po_report.html:85
@@ -3504,9 +3455,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:216
+#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:191
+#: order/templates/order/sales_order_detail.html:157
msgid "Add Line Item"
msgstr ""
@@ -3518,6 +3469,10 @@ msgstr ""
msgid "Receive Items"
msgstr ""
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
#: order/templates/order/purchase_order_detail.html:76
#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
@@ -3546,7 +3501,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:121
-#: templates/js/translated/order.js:1064
+#: templates/js/translated/order.js:1086
msgid "Customer Reference"
msgstr ""
@@ -3700,19 +3655,19 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:731
+#: part/api.py:758
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:735
+#: part/api.py:762
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:750
+#: part/api.py:777
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
+#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
msgid "This field is required"
msgstr ""
@@ -3926,7 +3881,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/detail.html:45
#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
-#: templates/js/translated/stock.js:1104
+#: templates/js/translated/stock.js:1134
msgid "IPN"
msgstr ""
@@ -4047,7 +4002,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1467
-#: templates/js/translated/stock.js:828
+#: templates/js/translated/stock.js:858
msgid "Test Name"
msgstr ""
@@ -4552,7 +4507,7 @@ msgstr ""
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:365 part/views.py:751
+#: part/templates/part/detail.html:365 part/views.py:755
msgid "Validate BOM"
msgstr ""
@@ -4604,44 +4559,48 @@ msgstr ""
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:770
+#: part/templates/part/detail.html:772
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:867
+#: part/templates/part/detail.html:869
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:924
+#: part/templates/part/detail.html:926
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:1076
+#: part/templates/part/detail.html:1039
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1088
+#: part/templates/part/detail.html:1051
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1100
+#: part/templates/part/detail.html:1063
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1189
+#: part/templates/part/detail.html:1152
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:51
+#: part/templates/part/import_wizard/part_upload.html:53
msgid "Unsuffitient privileges."
msgstr ""
-#: part/templates/part/import_wizard/part_upload.html:14
+#: part/templates/part/import_wizard/part_upload.html:8
+msgid "Return to Parts"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:16
msgid "Import Parts from File"
msgstr ""
@@ -4751,7 +4710,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1546
#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
@@ -4846,6 +4805,11 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1949
+msgid "Details"
+msgstr ""
+
#: part/templates/part/part_sidebar.html:13
msgid "Variants"
msgstr ""
@@ -4949,7 +4913,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1784
+#: part/templates/part/prices.html:215 part/views.py:1788
msgid "Add Internal Price Break"
msgstr ""
@@ -5005,110 +4969,115 @@ msgstr ""
msgid "Match References"
msgstr ""
-#: part/views.py:498
+#: part/views.py:502
msgid "None"
msgstr ""
-#: part/views.py:557
+#: part/views.py:561
msgid "Part QR Code"
msgstr ""
-#: part/views.py:659
+#: part/views.py:663
msgid "Select Part Image"
msgstr ""
-#: part/views.py:685
+#: part/views.py:689
msgid "Updated part image"
msgstr ""
-#: part/views.py:688
+#: part/views.py:692
msgid "Part image not found"
msgstr ""
-#: part/views.py:700
+#: part/views.py:704
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:730
+#: part/views.py:734
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:772
+#: part/views.py:776
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:783
+#: part/views.py:787
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:856
+#: part/views.py:860
msgid "Match Parts"
msgstr ""
-#: part/views.py:1192
+#: part/views.py:1196
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1244
+#: part/views.py:1248
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1251
+#: part/views.py:1255
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1260
+#: part/views.py:1264
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1409
+#: part/views.py:1413
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1419
+#: part/views.py:1423
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1426
+#: part/views.py:1430
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1485 templates/js/translated/part.js:310
+#: part/views.py:1489 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1523
+#: part/views.py:1527
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1529
+#: part/views.py:1533
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1538
+#: part/views.py:1542
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1639
+#: part/views.py:1643
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1695
+#: part/views.py:1699
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1717
+#: part/views.py:1721
msgid "Added new price break"
msgstr ""
-#: part/views.py:1793
+#: part/views.py:1797
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1801
+#: part/views.py:1805
msgid "Delete Internal Price Break"
msgstr ""
+#: report/api.py:234 report/api.py:278
+#, python-brace-format
+msgid "Template file '{filename}' is missing or does not exist"
+msgstr ""
+
#: report/models.py:182
msgid "Template name"
msgstr ""
@@ -5145,51 +5114,51 @@ msgstr ""
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:380
+#: report/models.py:382
msgid "Build Filters"
msgstr ""
-#: report/models.py:381
+#: report/models.py:383
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:423
+#: report/models.py:425
msgid "Part Filters"
msgstr ""
-#: report/models.py:424
+#: report/models.py:426
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:458
+#: report/models.py:460
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:496
+#: report/models.py:498
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:546
+#: report/models.py:548
msgid "Snippet"
msgstr ""
-#: report/models.py:547
+#: report/models.py:549
msgid "Report snippet file"
msgstr ""
-#: report/models.py:551
+#: report/models.py:553
msgid "Snippet file description"
msgstr ""
-#: report/models.py:586
+#: report/models.py:588
msgid "Asset"
msgstr ""
-#: report/models.py:587
+#: report/models.py:589
msgid "Report asset file"
msgstr ""
-#: report/models.py:590
+#: report/models.py:592
msgid "Asset file description"
msgstr ""
@@ -5201,49 +5170,59 @@ msgstr ""
msgid "Stock Item Test Report"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:75
+#: report/templates/report/inventree_test_report_base.html:79
#: stock/models.py:530 stock/templates/stock/item_base.html:238
#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
#: templates/js/translated/build.js:1013
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+#: templates/js/translated/order.js:1288 templates/js/translated/order.js:1377
msgid "Serial Number"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:83
+#: report/templates/report/inventree_test_report_base.html:88
msgid "Test Results"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:93
#: stock/models.py:1855
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:89
+#: report/templates/report/inventree_test_report_base.html:94
#: stock/models.py:1861
msgid "Result"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917
msgid "Date"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:103
+#: report/templates/report/inventree_test_report_base.html:108
msgid "Pass"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:105
+#: report/templates/report/inventree_test_report_base.html:110
msgid "Fail"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:123
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:137
+#: templates/js/translated/stock.js:2177
+msgid "Serial"
+msgstr ""
+
#: stock/api.py:422
msgid "Quantity is required"
msgstr ""
#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
#: stock/templates/stock/item_base.html:382
-#: templates/js/translated/stock.js:1246
+#: templates/js/translated/stock.js:1276
msgid "Expiry Date"
msgstr ""
@@ -5505,7 +5484,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:319 stock/serializers.py:687
+#: stock/serializers.py:319 stock/serializers.py:686
msgid "Destination stock location"
msgstr ""
@@ -5517,15 +5496,15 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:557
+#: stock/serializers.py:556
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:585
+#: stock/serializers.py:584
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:595
+#: stock/serializers.py:594
msgid "A list of stock items must be provided"
msgstr ""
@@ -5570,15 +5549,15 @@ msgstr ""
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
+#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:363
+#: stock/templates/stock/item.html:324
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:377
+#: stock/templates/stock/item.html:338
msgid "Delete Test Result"
msgstr ""
@@ -5752,7 +5731,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:1259
+#: templates/js/translated/stock.js:1289
msgid "Last Updated"
msgstr ""
@@ -5768,7 +5747,7 @@ msgstr ""
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:505
msgid "Edit Stock Status"
msgstr ""
@@ -5885,10 +5864,6 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:12
-msgid "Installed Items"
-msgstr ""
-
#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
@@ -5967,7 +5942,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:618
+#: stock/views.py:760 templates/js/translated/stock.js:648
msgid "Confirm stock adjustment"
msgstr ""
@@ -5975,7 +5950,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:288
+#: stock/views.py:793 templates/js/translated/stock.js:318
msgid "Edit Stock Item"
msgstr ""
@@ -5987,7 +5962,7 @@ msgstr ""
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:268
+#: stock/views.py:1186 templates/js/translated/stock.js:298
msgid "Duplicate Stock Item"
msgstr ""
@@ -6164,11 +6139,11 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/po.html:9
+#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
-#: templates/InvenTree/settings/report.html:10
+#: templates/InvenTree/settings/report.html:8
#: templates/InvenTree/settings/user_reports.html:9
msgid "Report Settings"
msgstr ""
@@ -6221,7 +6196,7 @@ msgid "User Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:8
-#: templates/InvenTree/settings/user.html:11
+#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
@@ -6273,140 +6248,136 @@ msgid "Stock Settings"
msgstr ""
#: templates/InvenTree/settings/user.html:18
-#: templates/js/translated/helpers.js:26
-msgid "Edit"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:20
#: 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:31
+#: templates/InvenTree/settings/user.html:22
+#: templates/js/translated/helpers.js:26
+msgid "Edit"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:32
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:35
+#: templates/InvenTree/settings/user.html:36
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:39
+#: templates/InvenTree/settings/user.html:40
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:54
+#: templates/InvenTree/settings/user.html:55
msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:74
+#: templates/InvenTree/settings/user.html:75
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:76
+#: templates/InvenTree/settings/user.html:77
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:78
+#: templates/InvenTree/settings/user.html:79
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:84
+#: templates/InvenTree/settings/user.html:85
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:85
+#: templates/InvenTree/settings/user.html:86
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:86
-#: templates/InvenTree/settings/user.html:153
+#: templates/InvenTree/settings/user.html:87
+#: templates/InvenTree/settings/user.html:154
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
+#: templates/InvenTree/settings/user.html:94
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:94
+#: templates/InvenTree/settings/user.html:95
msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:101
+#: templates/InvenTree/settings/user.html:102
msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:111
+#: templates/InvenTree/settings/user.html:112
msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:113
+#: templates/InvenTree/settings/user.html:114
msgid "Add Email"
msgstr ""
-#: templates/InvenTree/settings/user.html:123
+#: templates/InvenTree/settings/user.html:124
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:128
+#: templates/InvenTree/settings/user.html:129
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:162
+#: templates/InvenTree/settings/user.html:163
msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:167
+#: templates/InvenTree/settings/user.html:168
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:177
-msgid "Language Settings"
+#: templates/InvenTree/settings/user.html:179
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:185
+msgid "Log out active sessions (except this one)"
msgstr ""
#: templates/InvenTree/settings/user.html:186
-msgid "Select language"
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:195
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:196
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:200
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:201
+msgid "Device"
msgstr ""
#: templates/InvenTree/settings/user.html:202
-#, python-format
-msgid "%(lang_translated)s%% translated"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:204
-msgid "No translations available"
+msgid "Last Activity"
msgstr ""
#: templates/InvenTree/settings/user.html:211
-msgid "Set Language"
+#, python-format
+msgid "%(time)s ago (this session)"
msgstr ""
#: templates/InvenTree/settings/user.html:213
-msgid "Some languages are not complete"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:215
-msgid "Show only sufficent"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "and hidden."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "Show them too"
+#, python-format
+msgid "%(time)s ago"
msgstr ""
#: templates/InvenTree/settings/user.html:224
-msgid "Help the translation efforts!"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:225
-#, 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:233
msgid "Do you really want to remove the selected email address?"
msgstr ""
@@ -6422,6 +6393,52 @@ msgstr ""
msgid "Set Theme"
msgstr ""
+#: templates/InvenTree/settings/user_display.html:54
+msgid "Language Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:63
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:79
+#, python-format
+msgid "%(lang_translated)s%% translated"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:81
+msgid "No translations available"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:88
+msgid "Set Language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:91
+msgid "Some languages are not complete"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:93
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:101
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:102
+#, 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_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6619,6 +6636,14 @@ msgstr ""
msgid "View in administration panel"
msgstr ""
+#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54
+msgid "Add Link"
+msgstr ""
+
+#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36
+msgid "Add Attachment"
+msgstr ""
+
#: templates/base.html:96
msgid "Server Restart Required"
msgstr ""
@@ -6702,154 +6727,87 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/report.js:47 templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/report.js:55 templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/report.js:70 templates/js/translated/report.js:90
-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:594
-msgid "Select Stock Items"
-msgstr ""
-
-#: templates/js/report.js:99 templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:116 templates/js/report.js:169
-#: templates/js/report.js:223 templates/js/report.js:277
-#: templates/js/report.js:331 templates/js/translated/report.js:136
-#: 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 ""
-
-#: templates/js/report.js:117 templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/report.js:152 templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/report.js:153 templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: 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/build.js:1333
-#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
-#: templates/js/report.js:206 templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:224 templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/report.js:259 templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/report.js:260 templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/report.js:278 templates/js/report.js:332
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/report.js:313 templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/report.js:314 templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:191
+#: templates/js/translated/api.js:192
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:192
+#: templates/js/translated/api.js:193
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:215
+#: templates/js/translated/api.js:216
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:216
+#: templates/js/translated/api.js:217
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:27
+#: templates/js/translated/attachment.js:76
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:95
-msgid "Upload Date"
+#: templates/js/translated/attachment.js:98
+msgid "Edit Attachment"
msgstr ""
#: templates/js/translated/attachment.js:108
+msgid "Confirm Delete"
+msgstr ""
+
+#: templates/js/translated/attachment.js:109
+msgid "Delete Attachment"
+msgstr ""
+
+#: templates/js/translated/attachment.js:165
+msgid "Upload Date"
+msgstr ""
+
+#: templates/js/translated/attachment.js:178
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:115
+#: templates/js/translated/attachment.js:185
msgid "Delete attachment"
msgstr ""
@@ -6910,7 +6868,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:600
msgid "Remove stock item"
msgstr ""
@@ -7005,7 +6963,7 @@ msgid "View BOM"
msgstr ""
#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1320
msgid "Actions"
msgstr ""
@@ -7097,7 +7055,7 @@ msgstr ""
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1194
msgid "Location not specified"
msgstr ""
@@ -7106,12 +7064,12 @@ msgid "No active build outputs found"
msgstr ""
#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1305
+#: templates/js/translated/order.js:1327
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1306
+#: templates/js/translated/order.js:1328
msgid "Delete stock allocation"
msgstr ""
@@ -7132,11 +7090,11 @@ msgid "Quantity Per"
msgstr ""
#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1557
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1611
msgid "Build stock"
msgstr ""
@@ -7144,7 +7102,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1604
msgid "Allocate stock"
msgstr ""
@@ -7152,6 +7110,11 @@ msgstr ""
msgid "Specify stock allocation quantity"
msgstr ""
+#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
+#: templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
@@ -7181,8 +7144,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
-#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
-#: templates/js/translated/stock.js:1841
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1094
+#: templates/js/translated/stock.js:1871
msgid "Select"
msgstr ""
@@ -7190,7 +7153,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2090
msgid "No user information"
msgstr ""
@@ -7332,45 +7295,45 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
-#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
+#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365
+#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:351
+#: templates/js/translated/forms.js:352
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:366
+#: templates/js/translated/forms.js:367
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:380
+#: templates/js/translated/forms.js:381
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:394
+#: templates/js/translated/forms.js:395
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:679
+#: templates/js/translated/forms.js:680
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/js/translated/forms.js:1072 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1457
+#: templates/js/translated/forms.js:1463
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1661
+#: templates/js/translated/forms.js:1667
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1878
+#: templates/js/translated/forms.js:1884
msgid "Clear input"
msgstr ""
@@ -7382,6 +7345,11 @@ msgstr ""
msgid "NO"
msgstr ""
+#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
+#: templates/js/translated/stock.js:624
+msgid "Select Stock Items"
+msgstr ""
+
#: templates/js/translated/label.js:30
msgid "Stock item(s) must be selected before printing labels"
msgstr ""
@@ -7534,11 +7502,11 @@ msgstr ""
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:423
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:424
msgid "Select file format"
msgstr ""
@@ -7554,7 +7522,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1673
msgid "Stock Status"
msgstr ""
@@ -7582,100 +7550,104 @@ msgstr ""
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1063
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
+#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
+#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:801
+#: templates/js/translated/order.js:823
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
+#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:904 templates/js/translated/order.js:1492
#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+#: templates/js/translated/order.js:919 templates/js/translated/order.js:1508
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
+#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:976
+#: templates/js/translated/order.js:998
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:980
+#: templates/js/translated/order.js:1002
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1017
+#: templates/js/translated/order.js:1039
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1055
+#: templates/js/translated/order.js:1077
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1133
+#: templates/js/translated/order.js:1155
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1226
+#: templates/js/translated/order.js:1248
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1244
+#: templates/js/translated/order.js:1265
+msgid "Confirm Delete Operation"
+msgstr ""
+
+#: templates/js/translated/order.js:1266
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1308
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1535
+#: templates/js/translated/order.js:1557
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1579
+#: templates/js/translated/order.js:1601
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1585
+#: templates/js/translated/order.js:1607
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
+#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1596
+#: templates/js/translated/order.js:1618
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1719
+#: templates/js/translated/order.js:1741
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1779
+#: templates/js/translated/order.js:1801
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1793
+#: templates/js/translated/order.js:1815
msgid "No matching line items"
msgstr ""
@@ -7825,7 +7797,7 @@ msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
-#: templates/js/translated/stock.js:1802
+#: templates/js/translated/stock.js:1832
msgid "Display as list"
msgstr ""
@@ -7833,7 +7805,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1851
msgid "Display as tree"
msgstr ""
@@ -7841,7 +7813,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1895
msgid "Path"
msgstr ""
@@ -7849,11 +7821,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:816
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:817
msgid "Delete test result"
msgstr ""
@@ -7892,268 +7864,342 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:136 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 ""
+
+#: templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
#: templates/js/translated/stock.js:70
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:90
+#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167
+msgid "Next available serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169
+msgid "Latest serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:104
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:126
+#: templates/js/translated/stock.js:140
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:189
+#: templates/js/translated/stock.js:180
+msgid "This part cannot be serialized"
+msgstr ""
+
+#: templates/js/translated/stock.js:219
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:195
+#: templates/js/translated/stock.js:225
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:338
+#: templates/js/translated/stock.js:368
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:351
+#: templates/js/translated/stock.js:381
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:420
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:401
+#: templates/js/translated/stock.js:431
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:402
+#: templates/js/translated/stock.js:432
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:444
+#: templates/js/translated/stock.js:474
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:445
+#: templates/js/translated/stock.js:475
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:451
+#: templates/js/translated/stock.js:481
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:452
+#: templates/js/translated/stock.js:482
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:486
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:487
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:491
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:462 users/models.py:200
+#: templates/js/translated/stock.js:492 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:466 templates/stock_table.html:56
+#: templates/js/translated/stock.js:496 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:595
+#: templates/js/translated/stock.js:625
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:753
+#: templates/js/translated/stock.js:783
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:755
+#: templates/js/translated/stock.js:785
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:760
+#: templates/js/translated/stock.js:790
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:812
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:808
+#: templates/js/translated/stock.js:838
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:895
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:1002
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:1006
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:1010
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:984
+#: templates/js/translated/stock.js:1014
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:990
+#: templates/js/translated/stock.js:1020
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1148
+#: templates/js/translated/stock.js:1178
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1153
+#: templates/js/translated/stock.js:1183
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1156
+#: templates/js/translated/stock.js:1186
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1160
+#: templates/js/translated/stock.js:1190
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1162
+#: templates/js/translated/stock.js:1192
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1166
+#: templates/js/translated/stock.js:1196
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1170
+#: templates/js/translated/stock.js:1200
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1177
+#: templates/js/translated/stock.js:1207
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1179
+#: templates/js/translated/stock.js:1209
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1181
+#: templates/js/translated/stock.js:1211
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1185
+#: templates/js/translated/stock.js:1215
#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1235
+#: templates/js/translated/stock.js:1265
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1308
+#: templates/js/translated/stock.js:1338
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1346
+#: templates/js/translated/stock.js:1376
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
+#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1455
+#: templates/js/translated/stock.js:1485
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1482
+#: templates/js/translated/stock.js:1512
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1484
+#: templates/js/translated/stock.js:1514
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1658
+#: templates/js/translated/stock.js:1688
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1672
+#: templates/js/translated/stock.js:1702
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1673
+#: templates/js/translated/stock.js:1703
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1897
+#: templates/js/translated/stock.js:1927
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1944
+#: templates/js/translated/stock.js:1974
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1963
+#: templates/js/translated/stock.js:1993
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1982
+#: templates/js/translated/stock.js:2012
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2000
+#: templates/js/translated/stock.js:2030
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2023
+#: templates/js/translated/stock.js:2053
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2061
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2072
+#: templates/js/translated/stock.js:2102
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2073
+#: templates/js/translated/stock.js:2103
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2124
+#: templates/js/translated/stock.js:2154
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
-#: templates/js/translated/stock.js:2175
+#: templates/js/translated/stock.js:2205
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po
index 23dc8fdee7..69f7ad51fe 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-11-25 04:46+0000\n"
-"PO-Revision-Date: 2021-11-25 05:07\n"
+"POT-Creation-Date: 2021-11-30 21:49+0000\n"
+"PO-Revision-Date: 2021-11-30 21:51\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
"Language: id_ID\n"
@@ -36,7 +36,7 @@ msgstr "Masukkan tanggal"
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:594
+#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr "Konfirmasi"
@@ -114,99 +114,121 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:109 stock/models.py:1874
+#: InvenTree/models.py:114
+msgid "Missing file"
+msgstr ""
+
+#: InvenTree/models.py:115
+msgid "Missing external link"
+msgstr ""
+
+#: InvenTree/models.py:126 stock/models.py:1874
+#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:110
+#: InvenTree/models.py:127
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
+#: InvenTree/models.py:133 company/models.py:131 company/models.py:348
+#: company/models.py:564 order/models.py:163 part/models.py:797
+#: report/templates/report/inventree_build_order_base.html:165
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
+msgid "Link"
+msgstr ""
+
+#: InvenTree/models.py:134 build/models.py:330 part/models.py:798
+#: stock/models.py:540
+msgid "Link to external URL"
+msgstr ""
+
+#: InvenTree/models.py:137 templates/js/translated/attachment.js:161
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:112
+#: InvenTree/models.py:137
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185
#: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:2054
+#: report/templates/report/inventree_test_report_base.html:96
+#: templates/js/translated/stock.js:2084
msgid "User"
msgstr ""
-#: InvenTree/models.py:122
+#: InvenTree/models.py:147
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:142
+#: InvenTree/models.py:170
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:165
+#: InvenTree/models.py:193
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:175
+#: InvenTree/models.py:203
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:178
+#: InvenTree/models.py:206
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:185
+#: InvenTree/models.py:213
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:192
+#: InvenTree/models.py:220
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:227
+#: InvenTree/models.py:255
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: InvenTree/models.py:271 InvenTree/models.py:272 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
#: part/templates/part/detail.html:25 report/models.py:181
#: templates/InvenTree/settings/settings.html:259
#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
-#: templates/js/translated/stock.js:1847
+#: templates/js/translated/stock.js:1877
msgid "Name"
msgstr ""
-#: InvenTree/models.py:250 build/models.py:207
+#: InvenTree/models.py:278 build/models.py:207
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:80
#: company/templates/company/supplier_part.html:81 label/models.py:119
#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:551 report/models.py:590
+#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
#: templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
-#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/order.js:855 templates/js/translated/order.js:1091
#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
-#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
-#: templates/js/translated/stock.js:1904
+#: templates/js/translated/stock.js:1151 templates/js/translated/stock.js:1889
+#: templates/js/translated/stock.js:1934
msgid "Description"
msgstr ""
-#: InvenTree/models.py:251
+#: InvenTree/models.py:279
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:259
+#: InvenTree/models.py:287
msgid "parent"
msgstr ""
@@ -214,87 +236,87 @@ msgstr ""
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:251
+#: InvenTree/serializers.py:285
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:670
msgid "German"
msgstr ""
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:671
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:672
msgid "English"
msgstr ""
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:673
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:674
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:675
msgid "French"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:676
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:683
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:684
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:685
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:686
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:687
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:688
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:689
msgid "Chinese"
msgstr ""
@@ -479,27 +501,27 @@ msgstr ""
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:536
+#: InvenTree/views.py:538
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:585
+#: InvenTree/views.py:587
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
+#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
+#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:630
+#: InvenTree/views.py:632
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:863 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:101
msgid "System Information"
msgstr ""
@@ -552,12 +574,13 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
+#: part/templates/part/detail.html:1076 part/templates/part/detail.html:1162
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:77
+#: report/templates/report/inventree_test_report_base.html:81
+#: report/templates/report/inventree_test_report_base.html:139
#: stock/forms.py:156 stock/serializers.py:286
#: stock/templates/stock/item_base.html:256
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
@@ -565,12 +588,12 @@ msgstr ""
#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
-#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
-#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/order.js:892 templates/js/translated/order.js:1205
+#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290
+#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479
#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
-#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
-#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377
+#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171
msgid "Quantity"
msgstr ""
@@ -579,8 +602,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:307 templates/js/translated/stock.js:194
-#: templates/js/translated/stock.js:348
+#: stock/serializers.py:307 templates/js/translated/stock.js:224
+#: templates/js/translated/stock.js:378
msgid "Serial Numbers"
msgstr ""
@@ -639,7 +662,7 @@ msgstr ""
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
+#: templates/js/translated/order.js:886 templates/js/translated/order.js:1473
msgid "Reference"
msgstr ""
@@ -677,10 +700,10 @@ msgstr ""
#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/order.js:840 templates/js/translated/order.js:1457
#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
-#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
-#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508
+#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159
msgid "Part"
msgstr ""
@@ -745,7 +768,7 @@ msgid "Batch code for this build output"
msgstr ""
#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1104
msgid "Creation Date"
msgstr ""
@@ -779,7 +802,7 @@ msgstr ""
#: order/templates/order/order_base.html:154
#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680
+#: templates/js/translated/build.js:1680 templates/js/translated/order.js:700
msgid "Responsible"
msgstr ""
@@ -795,27 +818,21 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:330 part/models.py:798 stock/models.py:540
-msgid "Link to external URL"
-msgstr ""
-
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:183 order/models.py:738
-#: order/templates/order/po_navbar.html:38
-#: order/templates/order/po_navbar.html:41
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:11 part/models.py:925
#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: stock/serializers.py:583 stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
-#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
-#: templates/js/translated/stock.js:1340
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:985
+#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1370
msgid "Notes"
msgstr ""
@@ -876,8 +893,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:340
#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
-#: templates/js/translated/stock.js:1990
+#: templates/js/translated/order.js:1178 templates/js/translated/order.js:1183
+#: templates/js/translated/stock.js:2020
msgid "Stock Item"
msgstr ""
@@ -917,16 +934,16 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
-#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: build/serializers.py:190 order/serializers.py:219 order/serializers.py:287
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685
#: stock/templates/stock/item_base.html:286
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
-#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
-#: templates/js/translated/stock.js:1931
+#: templates/js/translated/order.js:1190 templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251
+#: templates/js/translated/stock.js:1961
msgid "Location"
msgstr ""
@@ -936,11 +953,11 @@ msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:129
#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: order/serializers.py:240 stock/templates/stock/item_base.html:409
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
-#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
-#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+#: templates/js/translated/order.js:1096 templates/js/translated/stock.js:1226
+#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187
msgid "Status"
msgstr ""
@@ -969,7 +986,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:233
#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1060,7 +1077,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:140
#: report/templates/report/inventree_build_order_base.html:126
#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
-#: templates/js/translated/order.js:1087
+#: templates/js/translated/order.js:1109
msgid "Target Date"
msgstr ""
@@ -1096,7 +1113,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/order.js:1029
+#: templates/js/translated/order.js:1051
msgid "Sales Order"
msgstr ""
@@ -1171,7 +1188,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:974
msgid "Destination"
msgstr ""
@@ -1185,7 +1202,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:304
-#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/stock.js:1240 templates/js/translated/stock.js:2194
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:233
msgid "Batch"
@@ -1286,7 +1303,6 @@ msgid "Completed Build Outputs"
msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
-#: order/templates/order/po_navbar.html:35
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:52
@@ -1300,7 +1316,7 @@ msgstr ""
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:453
#: company/templates/company/detail.html:188
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
@@ -1312,45 +1328,11 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:448
-#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
-#: templates/attachment_button.html:4
-msgid "Add Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:467
-#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:142
-#: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
-msgid "Edit Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:474
-#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:149
-#: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
-#: templates/js/translated/order.js:1243
-msgid "Confirm Delete Operation"
-msgstr ""
-
-#: build/templates/build/detail.html:475
-#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:150
-#: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
-msgid "Delete Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:513
+#: build/templates/build/detail.html:477
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:514
+#: build/templates/build/detail.html:478
msgid "All untracked stock items have been allocated"
msgstr ""
@@ -1466,7 +1448,7 @@ msgstr ""
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:34 templates/js/translated/attachment.js:54
+#: common/forms.py:34
msgid "File"
msgstr ""
@@ -2168,13 +2150,11 @@ msgstr ""
msgid "Unit price at specified quantity"
msgstr ""
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
-#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
-#: part/views.py:854
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
+#: part/views.py:858
msgid "Upload File"
msgstr ""
@@ -2182,7 +2162,7 @@ msgstr ""
#: 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:213
-#: part/views.py:855
+#: part/views.py:859
msgid "Match Fields"
msgstr ""
@@ -2200,13 +2180,13 @@ msgstr ""
#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:40
+#: order/templates/order/order_wizard/po_upload.html:47
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:43
+#: part/templates/part/import_wizard/part_upload.html:45
msgid "Previous Step"
msgstr ""
@@ -2252,7 +2232,7 @@ msgid "Contact phone number"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:102
-#: templates/InvenTree/settings/user.html:46
+#: templates/InvenTree/settings/user.html:47
msgid "Email"
msgstr ""
@@ -2268,14 +2248,6 @@ msgstr ""
msgid "Point of contact"
msgstr ""
-#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:163 part/models.py:797
-#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:537
-#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
-msgid "Link"
-msgstr ""
-
#: company/models.py:131
msgid "Link to external company information"
msgstr ""
@@ -2343,7 +2315,7 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:97
#: company/templates/company/supplier_part.html:112
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:874
#: templates/js/translated/part.js:240
msgid "MPN"
msgstr ""
@@ -2372,9 +2344,9 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:90
+#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:1867 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878
msgid "Value"
msgstr ""
@@ -2413,7 +2385,7 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:98
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:861
#: templates/js/translated/part.js:221
msgid "SKU"
msgstr ""
@@ -2450,7 +2422,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:119
#: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1366
msgid "Packaging"
msgstr ""
@@ -2515,8 +2487,8 @@ msgstr ""
#: company/templates/company/company_base.html:126 order/models.py:567
#: order/templates/order/sales_order_base.html:114 stock/models.py:525
#: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
-#: templates/js/translated/stock.js:1972
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1073
+#: templates/js/translated/stock.js:2002
msgid "Customer"
msgstr ""
@@ -2721,7 +2693,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:974
+#: part/templates/part/detail.html:976
msgid "Add Parameter"
msgstr ""
@@ -2752,7 +2724,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:492
#: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1323
msgid "Supplier Part"
msgstr ""
@@ -2778,7 +2750,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
-#: templates/js/translated/stock.js:324
+#: templates/js/translated/stock.js:354
msgid "New Stock Item"
msgstr ""
@@ -2799,7 +2771,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1713
+#: part/templates/part/prices.html:271 part/views.py:1717
msgid "Add Price Break"
msgstr ""
@@ -2807,11 +2779,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1775
+#: company/templates/company/supplier_part.html:224 part/views.py:1779
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1761
+#: company/templates/company/supplier_part.html:238 part/views.py:1765
msgid "Edit Price Break"
msgstr ""
@@ -2831,8 +2803,8 @@ msgstr ""
#: templates/InvenTree/settings/sidebar.html:40
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
-#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
-#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:509
+#: templates/js/translated/stock.js:1162 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2855,7 +2827,7 @@ msgstr ""
#: stock/templates/stock/location.html:132
#: stock/templates/stock/location.html:144
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1901
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2885,24 +2857,24 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:580
+#: company/views.py:129 part/views.py:584
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:612
+#: company/views.py:158 part/views.py:616
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:619
+#: company/views.py:165 part/views.py:623
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:628
+#: company/views.py:174 part/views.py:632
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/api.py:57 report/api.py:201
+#: label/api.py:57 report/api.py:203
msgid "No valid objects provided to template"
msgstr ""
@@ -2959,7 +2931,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
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
+#: report/models.py:322 report/models.py:459 report/models.py:497
msgid "Filters"
msgstr ""
@@ -3089,7 +3061,7 @@ msgstr ""
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1092
+#: order/models.py:582 templates/js/translated/order.js:1114
msgid "Shipment Date"
msgstr ""
@@ -3114,7 +3086,7 @@ msgid "Line item notes"
msgstr ""
#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1144
+#: templates/js/translated/order.js:1166
msgid "Order"
msgstr ""
@@ -3122,8 +3094,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:325
-#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1300
+#: templates/js/translated/stock.js:1983
msgid "Purchase Order"
msgstr ""
@@ -3133,7 +3105,7 @@ msgstr ""
#: order/models.py:797 order/templates/order/order_base.html:147
#: order/templates/order/sales_order_base.html:154
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:954
msgid "Received"
msgstr ""
@@ -3143,7 +3115,7 @@ msgstr ""
#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1324
+#: templates/js/translated/stock.js:1354
msgid "Purchase Price"
msgstr ""
@@ -3204,47 +3176,47 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:167
+#: order/serializers.py:169
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:202
+#: order/serializers.py:204
msgid "Line Item"
msgstr ""
-#: order/serializers.py:208
+#: order/serializers.py:210
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:286
+#: order/serializers.py:220 order/serializers.py:288
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:242
+#: order/serializers.py:244
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:243
+#: order/serializers.py:245
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:260
+#: order/serializers.py:262
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:298
+#: order/serializers.py:300
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:315
+#: order/serializers.py:317
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:328
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:568
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3390,19 +3362,23 @@ msgstr ""
msgid "Select Supplier Part"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:11
+#: order/templates/order/order_wizard/po_upload.html:8
+msgid "Return to Orders"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:17
msgid "Upload File for Purchase Order"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:18
+#: order/templates/order/order_wizard/po_upload.html:25
#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:21
+#: part/templates/part/import_wizard/part_upload.html:23
#, python-format
msgid "Step %(step)s of %(count)s"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:48
+#: order/templates/order/order_wizard/po_upload.html:55
msgid "Order is already processed. Files cannot be uploaded."
msgstr ""
@@ -3445,7 +3421,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:695 templates/js/translated/order.js:1097
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1119
msgid "Items"
msgstr ""
@@ -3463,31 +3439,6 @@ msgstr ""
msgid "Select a purchase order for %(name)s"
msgstr ""
-#: order/templates/order/po_attachments.html:12
-#: order/templates/order/po_navbar.html:32
-msgid "Purchase Order Attachments"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:15
-#: part/templates/part/part_sidebar.html:8
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:26
-msgid "Received Stock Items"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:29
-#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
#: order/templates/order/po_sidebar.html:5
#: order/templates/order/so_sidebar.html:5
#: report/templates/report/inventree_po_report.html:85
@@ -3504,9 +3455,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:216
+#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:191
+#: order/templates/order/sales_order_detail.html:157
msgid "Add Line Item"
msgstr ""
@@ -3518,6 +3469,10 @@ msgstr ""
msgid "Receive Items"
msgstr ""
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
#: order/templates/order/purchase_order_detail.html:76
#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
@@ -3546,7 +3501,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:121
-#: templates/js/translated/order.js:1064
+#: templates/js/translated/order.js:1086
msgid "Customer Reference"
msgstr ""
@@ -3700,19 +3655,19 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:731
+#: part/api.py:758
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:735
+#: part/api.py:762
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:750
+#: part/api.py:777
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
+#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
msgid "This field is required"
msgstr ""
@@ -3926,7 +3881,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/detail.html:45
#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
-#: templates/js/translated/stock.js:1104
+#: templates/js/translated/stock.js:1134
msgid "IPN"
msgstr ""
@@ -4047,7 +4002,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1467
-#: templates/js/translated/stock.js:828
+#: templates/js/translated/stock.js:858
msgid "Test Name"
msgstr ""
@@ -4552,7 +4507,7 @@ msgstr ""
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:365 part/views.py:751
+#: part/templates/part/detail.html:365 part/views.py:755
msgid "Validate BOM"
msgstr ""
@@ -4604,44 +4559,48 @@ msgstr ""
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:770
+#: part/templates/part/detail.html:772
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:867
+#: part/templates/part/detail.html:869
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:924
+#: part/templates/part/detail.html:926
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:1076
+#: part/templates/part/detail.html:1039
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1088
+#: part/templates/part/detail.html:1051
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1100
+#: part/templates/part/detail.html:1063
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1189
+#: part/templates/part/detail.html:1152
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:51
+#: part/templates/part/import_wizard/part_upload.html:53
msgid "Unsuffitient privileges."
msgstr ""
-#: part/templates/part/import_wizard/part_upload.html:14
+#: part/templates/part/import_wizard/part_upload.html:8
+msgid "Return to Parts"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:16
msgid "Import Parts from File"
msgstr ""
@@ -4751,7 +4710,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1546
#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
@@ -4846,6 +4805,11 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1949
+msgid "Details"
+msgstr ""
+
#: part/templates/part/part_sidebar.html:13
msgid "Variants"
msgstr ""
@@ -4949,7 +4913,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1784
+#: part/templates/part/prices.html:215 part/views.py:1788
msgid "Add Internal Price Break"
msgstr ""
@@ -5005,110 +4969,115 @@ msgstr ""
msgid "Match References"
msgstr ""
-#: part/views.py:498
+#: part/views.py:502
msgid "None"
msgstr ""
-#: part/views.py:557
+#: part/views.py:561
msgid "Part QR Code"
msgstr ""
-#: part/views.py:659
+#: part/views.py:663
msgid "Select Part Image"
msgstr ""
-#: part/views.py:685
+#: part/views.py:689
msgid "Updated part image"
msgstr ""
-#: part/views.py:688
+#: part/views.py:692
msgid "Part image not found"
msgstr ""
-#: part/views.py:700
+#: part/views.py:704
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:730
+#: part/views.py:734
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:772
+#: part/views.py:776
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:783
+#: part/views.py:787
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:856
+#: part/views.py:860
msgid "Match Parts"
msgstr ""
-#: part/views.py:1192
+#: part/views.py:1196
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1244
+#: part/views.py:1248
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1251
+#: part/views.py:1255
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1260
+#: part/views.py:1264
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1409
+#: part/views.py:1413
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1419
+#: part/views.py:1423
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1426
+#: part/views.py:1430
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1485 templates/js/translated/part.js:310
+#: part/views.py:1489 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1523
+#: part/views.py:1527
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1529
+#: part/views.py:1533
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1538
+#: part/views.py:1542
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1639
+#: part/views.py:1643
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1695
+#: part/views.py:1699
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1717
+#: part/views.py:1721
msgid "Added new price break"
msgstr ""
-#: part/views.py:1793
+#: part/views.py:1797
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1801
+#: part/views.py:1805
msgid "Delete Internal Price Break"
msgstr ""
+#: report/api.py:234 report/api.py:278
+#, python-brace-format
+msgid "Template file '{filename}' is missing or does not exist"
+msgstr ""
+
#: report/models.py:182
msgid "Template name"
msgstr ""
@@ -5145,51 +5114,51 @@ msgstr ""
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:380
+#: report/models.py:382
msgid "Build Filters"
msgstr ""
-#: report/models.py:381
+#: report/models.py:383
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:423
+#: report/models.py:425
msgid "Part Filters"
msgstr ""
-#: report/models.py:424
+#: report/models.py:426
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:458
+#: report/models.py:460
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:496
+#: report/models.py:498
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:546
+#: report/models.py:548
msgid "Snippet"
msgstr ""
-#: report/models.py:547
+#: report/models.py:549
msgid "Report snippet file"
msgstr ""
-#: report/models.py:551
+#: report/models.py:553
msgid "Snippet file description"
msgstr ""
-#: report/models.py:586
+#: report/models.py:588
msgid "Asset"
msgstr ""
-#: report/models.py:587
+#: report/models.py:589
msgid "Report asset file"
msgstr ""
-#: report/models.py:590
+#: report/models.py:592
msgid "Asset file description"
msgstr ""
@@ -5201,49 +5170,59 @@ msgstr ""
msgid "Stock Item Test Report"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:75
+#: report/templates/report/inventree_test_report_base.html:79
#: stock/models.py:530 stock/templates/stock/item_base.html:238
#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
#: templates/js/translated/build.js:1013
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+#: templates/js/translated/order.js:1288 templates/js/translated/order.js:1377
msgid "Serial Number"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:83
+#: report/templates/report/inventree_test_report_base.html:88
msgid "Test Results"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:93
#: stock/models.py:1855
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:89
+#: report/templates/report/inventree_test_report_base.html:94
#: stock/models.py:1861
msgid "Result"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917
msgid "Date"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:103
+#: report/templates/report/inventree_test_report_base.html:108
msgid "Pass"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:105
+#: report/templates/report/inventree_test_report_base.html:110
msgid "Fail"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:123
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:137
+#: templates/js/translated/stock.js:2177
+msgid "Serial"
+msgstr ""
+
#: stock/api.py:422
msgid "Quantity is required"
msgstr ""
#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
#: stock/templates/stock/item_base.html:382
-#: templates/js/translated/stock.js:1246
+#: templates/js/translated/stock.js:1276
msgid "Expiry Date"
msgstr ""
@@ -5505,7 +5484,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:319 stock/serializers.py:687
+#: stock/serializers.py:319 stock/serializers.py:686
msgid "Destination stock location"
msgstr ""
@@ -5517,15 +5496,15 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:557
+#: stock/serializers.py:556
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:585
+#: stock/serializers.py:584
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:595
+#: stock/serializers.py:594
msgid "A list of stock items must be provided"
msgstr ""
@@ -5570,15 +5549,15 @@ msgstr ""
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
+#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:363
+#: stock/templates/stock/item.html:324
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:377
+#: stock/templates/stock/item.html:338
msgid "Delete Test Result"
msgstr ""
@@ -5752,7 +5731,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:1259
+#: templates/js/translated/stock.js:1289
msgid "Last Updated"
msgstr ""
@@ -5768,7 +5747,7 @@ msgstr ""
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:505
msgid "Edit Stock Status"
msgstr ""
@@ -5885,10 +5864,6 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:12
-msgid "Installed Items"
-msgstr ""
-
#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
@@ -5967,7 +5942,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:618
+#: stock/views.py:760 templates/js/translated/stock.js:648
msgid "Confirm stock adjustment"
msgstr ""
@@ -5975,7 +5950,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:288
+#: stock/views.py:793 templates/js/translated/stock.js:318
msgid "Edit Stock Item"
msgstr ""
@@ -5987,7 +5962,7 @@ msgstr ""
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:268
+#: stock/views.py:1186 templates/js/translated/stock.js:298
msgid "Duplicate Stock Item"
msgstr ""
@@ -6164,11 +6139,11 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/po.html:9
+#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
-#: templates/InvenTree/settings/report.html:10
+#: templates/InvenTree/settings/report.html:8
#: templates/InvenTree/settings/user_reports.html:9
msgid "Report Settings"
msgstr ""
@@ -6221,7 +6196,7 @@ msgid "User Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:8
-#: templates/InvenTree/settings/user.html:11
+#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
@@ -6273,140 +6248,136 @@ msgid "Stock Settings"
msgstr ""
#: templates/InvenTree/settings/user.html:18
-#: templates/js/translated/helpers.js:26
-msgid "Edit"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:20
#: 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:31
+#: templates/InvenTree/settings/user.html:22
+#: templates/js/translated/helpers.js:26
+msgid "Edit"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:32
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:35
+#: templates/InvenTree/settings/user.html:36
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:39
+#: templates/InvenTree/settings/user.html:40
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:54
+#: templates/InvenTree/settings/user.html:55
msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:74
+#: templates/InvenTree/settings/user.html:75
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:76
+#: templates/InvenTree/settings/user.html:77
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:78
+#: templates/InvenTree/settings/user.html:79
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:84
+#: templates/InvenTree/settings/user.html:85
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:85
+#: templates/InvenTree/settings/user.html:86
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:86
-#: templates/InvenTree/settings/user.html:153
+#: templates/InvenTree/settings/user.html:87
+#: templates/InvenTree/settings/user.html:154
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
+#: templates/InvenTree/settings/user.html:94
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:94
+#: templates/InvenTree/settings/user.html:95
msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:101
+#: templates/InvenTree/settings/user.html:102
msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:111
+#: templates/InvenTree/settings/user.html:112
msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:113
+#: templates/InvenTree/settings/user.html:114
msgid "Add Email"
msgstr ""
-#: templates/InvenTree/settings/user.html:123
+#: templates/InvenTree/settings/user.html:124
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:128
+#: templates/InvenTree/settings/user.html:129
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:162
+#: templates/InvenTree/settings/user.html:163
msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:167
+#: templates/InvenTree/settings/user.html:168
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:177
-msgid "Language Settings"
+#: templates/InvenTree/settings/user.html:179
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:185
+msgid "Log out active sessions (except this one)"
msgstr ""
#: templates/InvenTree/settings/user.html:186
-msgid "Select language"
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:195
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:196
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:200
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:201
+msgid "Device"
msgstr ""
#: templates/InvenTree/settings/user.html:202
-#, python-format
-msgid "%(lang_translated)s%% translated"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:204
-msgid "No translations available"
+msgid "Last Activity"
msgstr ""
#: templates/InvenTree/settings/user.html:211
-msgid "Set Language"
+#, python-format
+msgid "%(time)s ago (this session)"
msgstr ""
#: templates/InvenTree/settings/user.html:213
-msgid "Some languages are not complete"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:215
-msgid "Show only sufficent"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "and hidden."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "Show them too"
+#, python-format
+msgid "%(time)s ago"
msgstr ""
#: templates/InvenTree/settings/user.html:224
-msgid "Help the translation efforts!"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:225
-#, 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:233
msgid "Do you really want to remove the selected email address?"
msgstr ""
@@ -6422,6 +6393,52 @@ msgstr ""
msgid "Set Theme"
msgstr ""
+#: templates/InvenTree/settings/user_display.html:54
+msgid "Language Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:63
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:79
+#, python-format
+msgid "%(lang_translated)s%% translated"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:81
+msgid "No translations available"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:88
+msgid "Set Language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:91
+msgid "Some languages are not complete"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:93
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:101
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:102
+#, 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_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6619,6 +6636,14 @@ msgstr ""
msgid "View in administration panel"
msgstr ""
+#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54
+msgid "Add Link"
+msgstr ""
+
+#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36
+msgid "Add Attachment"
+msgstr ""
+
#: templates/base.html:96
msgid "Server Restart Required"
msgstr ""
@@ -6702,154 +6727,87 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/report.js:47 templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/report.js:55 templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/report.js:70 templates/js/translated/report.js:90
-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:594
-msgid "Select Stock Items"
-msgstr ""
-
-#: templates/js/report.js:99 templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:116 templates/js/report.js:169
-#: templates/js/report.js:223 templates/js/report.js:277
-#: templates/js/report.js:331 templates/js/translated/report.js:136
-#: 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 ""
-
-#: templates/js/report.js:117 templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/report.js:152 templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/report.js:153 templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: 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/build.js:1333
-#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
-#: templates/js/report.js:206 templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:224 templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/report.js:259 templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/report.js:260 templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/report.js:278 templates/js/report.js:332
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/report.js:313 templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/report.js:314 templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:191
+#: templates/js/translated/api.js:192
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:192
+#: templates/js/translated/api.js:193
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:215
+#: templates/js/translated/api.js:216
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:216
+#: templates/js/translated/api.js:217
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:27
+#: templates/js/translated/attachment.js:76
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:95
-msgid "Upload Date"
+#: templates/js/translated/attachment.js:98
+msgid "Edit Attachment"
msgstr ""
#: templates/js/translated/attachment.js:108
+msgid "Confirm Delete"
+msgstr ""
+
+#: templates/js/translated/attachment.js:109
+msgid "Delete Attachment"
+msgstr ""
+
+#: templates/js/translated/attachment.js:165
+msgid "Upload Date"
+msgstr ""
+
+#: templates/js/translated/attachment.js:178
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:115
+#: templates/js/translated/attachment.js:185
msgid "Delete attachment"
msgstr ""
@@ -6910,7 +6868,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:600
msgid "Remove stock item"
msgstr ""
@@ -7005,7 +6963,7 @@ msgid "View BOM"
msgstr ""
#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1320
msgid "Actions"
msgstr ""
@@ -7097,7 +7055,7 @@ msgstr ""
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1194
msgid "Location not specified"
msgstr ""
@@ -7106,12 +7064,12 @@ msgid "No active build outputs found"
msgstr ""
#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1305
+#: templates/js/translated/order.js:1327
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1306
+#: templates/js/translated/order.js:1328
msgid "Delete stock allocation"
msgstr ""
@@ -7132,11 +7090,11 @@ msgid "Quantity Per"
msgstr ""
#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1557
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1611
msgid "Build stock"
msgstr ""
@@ -7144,7 +7102,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1604
msgid "Allocate stock"
msgstr ""
@@ -7152,6 +7110,11 @@ msgstr ""
msgid "Specify stock allocation quantity"
msgstr ""
+#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
+#: templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
@@ -7181,8 +7144,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
-#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
-#: templates/js/translated/stock.js:1841
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1094
+#: templates/js/translated/stock.js:1871
msgid "Select"
msgstr ""
@@ -7190,7 +7153,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2090
msgid "No user information"
msgstr ""
@@ -7332,45 +7295,45 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
-#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
+#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365
+#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:351
+#: templates/js/translated/forms.js:352
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:366
+#: templates/js/translated/forms.js:367
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:380
+#: templates/js/translated/forms.js:381
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:394
+#: templates/js/translated/forms.js:395
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:679
+#: templates/js/translated/forms.js:680
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/js/translated/forms.js:1072 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1457
+#: templates/js/translated/forms.js:1463
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1661
+#: templates/js/translated/forms.js:1667
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1878
+#: templates/js/translated/forms.js:1884
msgid "Clear input"
msgstr ""
@@ -7382,6 +7345,11 @@ msgstr ""
msgid "NO"
msgstr ""
+#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
+#: templates/js/translated/stock.js:624
+msgid "Select Stock Items"
+msgstr ""
+
#: templates/js/translated/label.js:30
msgid "Stock item(s) must be selected before printing labels"
msgstr ""
@@ -7534,11 +7502,11 @@ msgstr ""
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:423
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:424
msgid "Select file format"
msgstr ""
@@ -7554,7 +7522,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1673
msgid "Stock Status"
msgstr ""
@@ -7582,100 +7550,104 @@ msgstr ""
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1063
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
+#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
+#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:801
+#: templates/js/translated/order.js:823
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
+#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:904 templates/js/translated/order.js:1492
#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+#: templates/js/translated/order.js:919 templates/js/translated/order.js:1508
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
+#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:976
+#: templates/js/translated/order.js:998
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:980
+#: templates/js/translated/order.js:1002
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1017
+#: templates/js/translated/order.js:1039
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1055
+#: templates/js/translated/order.js:1077
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1133
+#: templates/js/translated/order.js:1155
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1226
+#: templates/js/translated/order.js:1248
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1244
+#: templates/js/translated/order.js:1265
+msgid "Confirm Delete Operation"
+msgstr ""
+
+#: templates/js/translated/order.js:1266
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1308
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1535
+#: templates/js/translated/order.js:1557
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1579
+#: templates/js/translated/order.js:1601
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1585
+#: templates/js/translated/order.js:1607
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
+#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1596
+#: templates/js/translated/order.js:1618
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1719
+#: templates/js/translated/order.js:1741
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1779
+#: templates/js/translated/order.js:1801
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1793
+#: templates/js/translated/order.js:1815
msgid "No matching line items"
msgstr ""
@@ -7825,7 +7797,7 @@ msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
-#: templates/js/translated/stock.js:1802
+#: templates/js/translated/stock.js:1832
msgid "Display as list"
msgstr ""
@@ -7833,7 +7805,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1851
msgid "Display as tree"
msgstr ""
@@ -7841,7 +7813,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1895
msgid "Path"
msgstr ""
@@ -7849,11 +7821,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:816
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:817
msgid "Delete test result"
msgstr ""
@@ -7892,268 +7864,342 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:136 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 ""
+
+#: templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
#: templates/js/translated/stock.js:70
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:90
+#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167
+msgid "Next available serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169
+msgid "Latest serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:104
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:126
+#: templates/js/translated/stock.js:140
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:189
+#: templates/js/translated/stock.js:180
+msgid "This part cannot be serialized"
+msgstr ""
+
+#: templates/js/translated/stock.js:219
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:195
+#: templates/js/translated/stock.js:225
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:338
+#: templates/js/translated/stock.js:368
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:351
+#: templates/js/translated/stock.js:381
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:420
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:401
+#: templates/js/translated/stock.js:431
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:402
+#: templates/js/translated/stock.js:432
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:444
+#: templates/js/translated/stock.js:474
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:445
+#: templates/js/translated/stock.js:475
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:451
+#: templates/js/translated/stock.js:481
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:452
+#: templates/js/translated/stock.js:482
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:486
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:487
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:491
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:462 users/models.py:200
+#: templates/js/translated/stock.js:492 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:466 templates/stock_table.html:56
+#: templates/js/translated/stock.js:496 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:595
+#: templates/js/translated/stock.js:625
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:753
+#: templates/js/translated/stock.js:783
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:755
+#: templates/js/translated/stock.js:785
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:760
+#: templates/js/translated/stock.js:790
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:812
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:808
+#: templates/js/translated/stock.js:838
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:895
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:1002
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:1006
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:1010
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:984
+#: templates/js/translated/stock.js:1014
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:990
+#: templates/js/translated/stock.js:1020
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1148
+#: templates/js/translated/stock.js:1178
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1153
+#: templates/js/translated/stock.js:1183
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1156
+#: templates/js/translated/stock.js:1186
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1160
+#: templates/js/translated/stock.js:1190
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1162
+#: templates/js/translated/stock.js:1192
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1166
+#: templates/js/translated/stock.js:1196
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1170
+#: templates/js/translated/stock.js:1200
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1177
+#: templates/js/translated/stock.js:1207
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1179
+#: templates/js/translated/stock.js:1209
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1181
+#: templates/js/translated/stock.js:1211
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1185
+#: templates/js/translated/stock.js:1215
#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1235
+#: templates/js/translated/stock.js:1265
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1308
+#: templates/js/translated/stock.js:1338
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1346
+#: templates/js/translated/stock.js:1376
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
+#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1455
+#: templates/js/translated/stock.js:1485
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1482
+#: templates/js/translated/stock.js:1512
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1484
+#: templates/js/translated/stock.js:1514
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1658
+#: templates/js/translated/stock.js:1688
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1672
+#: templates/js/translated/stock.js:1702
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1673
+#: templates/js/translated/stock.js:1703
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1897
+#: templates/js/translated/stock.js:1927
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1944
+#: templates/js/translated/stock.js:1974
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1963
+#: templates/js/translated/stock.js:1993
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1982
+#: templates/js/translated/stock.js:2012
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2000
+#: templates/js/translated/stock.js:2030
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2023
+#: templates/js/translated/stock.js:2053
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2061
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2072
+#: templates/js/translated/stock.js:2102
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2073
+#: templates/js/translated/stock.js:2103
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2124
+#: templates/js/translated/stock.js:2154
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
-#: templates/js/translated/stock.js:2175
+#: templates/js/translated/stock.js:2205
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po
index 447efc9d11..703859ccbe 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-11-25 04:46+0000\n"
-"PO-Revision-Date: 2021-11-25 05:07\n"
+"POT-Creation-Date: 2021-11-30 21:49+0000\n"
+"PO-Revision-Date: 2021-11-30 21:52\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Language: it_IT\n"
@@ -36,7 +36,7 @@ msgstr "Inserisci la data"
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:594
+#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr "Conferma"
@@ -114,99 +114,121 @@ msgstr "Nessun numero di serie trovato"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Il numero dei numeri seriali univoci ({s}) deve essere uguale alla quantità ({q})"
-#: InvenTree/models.py:109 stock/models.py:1874
+#: InvenTree/models.py:114
+msgid "Missing file"
+msgstr ""
+
+#: InvenTree/models.py:115
+msgid "Missing external link"
+msgstr ""
+
+#: InvenTree/models.py:126 stock/models.py:1874
+#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr "Allegato"
-#: InvenTree/models.py:110
+#: InvenTree/models.py:127
msgid "Select file to attach"
msgstr "Seleziona file da allegare"
-#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
+#: InvenTree/models.py:133 company/models.py:131 company/models.py:348
+#: company/models.py:564 order/models.py:163 part/models.py:797
+#: report/templates/report/inventree_build_order_base.html:165
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
+msgid "Link"
+msgstr "Link"
+
+#: InvenTree/models.py:134 build/models.py:330 part/models.py:798
+#: stock/models.py:540
+msgid "Link to external URL"
+msgstr "Link a URL esterno"
+
+#: InvenTree/models.py:137 templates/js/translated/attachment.js:161
msgid "Comment"
msgstr "Commento"
-#: InvenTree/models.py:112
+#: InvenTree/models.py:137
msgid "File comment"
msgstr "Commento del file"
-#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185
#: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:2054
+#: report/templates/report/inventree_test_report_base.html:96
+#: templates/js/translated/stock.js:2084
msgid "User"
msgstr "Utente"
-#: InvenTree/models.py:122
+#: InvenTree/models.py:147
msgid "upload date"
msgstr "data caricamento"
-#: InvenTree/models.py:142
+#: InvenTree/models.py:170
msgid "Filename must not be empty"
msgstr "Il nome del file non deve essere vuoto"
-#: InvenTree/models.py:165
+#: InvenTree/models.py:193
msgid "Invalid attachment directory"
msgstr "Directory allegati non valida"
-#: InvenTree/models.py:175
+#: InvenTree/models.py:203
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Il nome del file contiene caratteri non validi '{c}'"
-#: InvenTree/models.py:178
+#: InvenTree/models.py:206
msgid "Filename missing extension"
msgstr "Nome file estensione mancante"
-#: InvenTree/models.py:185
+#: InvenTree/models.py:213
msgid "Attachment with this filename already exists"
msgstr "Esiste già un allegato con questo nome di file"
-#: InvenTree/models.py:192
+#: InvenTree/models.py:220
msgid "Error renaming file"
msgstr "Errore nella rinominazione del file"
-#: InvenTree/models.py:227
+#: InvenTree/models.py:255
msgid "Invalid choice"
msgstr "Scelta non valida"
-#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: InvenTree/models.py:271 InvenTree/models.py:272 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
#: part/templates/part/detail.html:25 report/models.py:181
#: templates/InvenTree/settings/settings.html:259
#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
-#: templates/js/translated/stock.js:1847
+#: templates/js/translated/stock.js:1877
msgid "Name"
msgstr "Nome"
-#: InvenTree/models.py:250 build/models.py:207
+#: InvenTree/models.py:278 build/models.py:207
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:80
#: company/templates/company/supplier_part.html:81 label/models.py:119
#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:551 report/models.py:590
+#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
#: templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
-#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/order.js:855 templates/js/translated/order.js:1091
#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
-#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
-#: templates/js/translated/stock.js:1904
+#: templates/js/translated/stock.js:1151 templates/js/translated/stock.js:1889
+#: templates/js/translated/stock.js:1934
msgid "Description"
msgstr "Descrizione"
-#: InvenTree/models.py:251
+#: InvenTree/models.py:279
msgid "Description (optional)"
msgstr "Descrizione (opzionale)"
-#: InvenTree/models.py:259
+#: InvenTree/models.py:287
msgid "parent"
msgstr "genitore"
@@ -214,87 +236,87 @@ msgstr "genitore"
msgid "Must be a valid number"
msgstr "Deve essere un numero valido"
-#: InvenTree/serializers.py:251
+#: InvenTree/serializers.py:285
msgid "Filename"
msgstr "Nome del file"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:670
msgid "German"
msgstr "Tedesco"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:671
msgid "Greek"
msgstr "Greco"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:672
msgid "English"
msgstr "Inglese"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:673
msgid "Spanish"
msgstr "Spagnolo"
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:674
msgid "Spanish (Mexican)"
msgstr "Spagnolo (Messicano)"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:675
msgid "French"
msgstr "Francese"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:676
msgid "Hebrew"
msgstr "Ebraico"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr "Italiano"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr "Giapponese"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr "Coreano"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr "Olandese"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr "Norvegese"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr "Polacco"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:683
msgid "Portugese"
msgstr "Portoghese"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:684
msgid "Russian"
msgstr "Russo"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:685
msgid "Swedish"
msgstr "Svedese"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:686
msgid "Thai"
msgstr "Thailandese"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:687
msgid "Turkish"
msgstr "Turco"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:688
msgid "Vietnamese"
msgstr "Vietnamita"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:689
msgid "Chinese"
msgstr "Cinese"
@@ -479,27 +501,27 @@ msgstr "L'eccesso non deve superare il 100%"
msgid "Overage must be an integer value or a percentage"
msgstr "Il superamento deve essere un valore intero o una percentuale"
-#: InvenTree/views.py:536
+#: InvenTree/views.py:538
msgid "Delete Item"
msgstr "Cancella elemento"
-#: InvenTree/views.py:585
+#: InvenTree/views.py:587
msgid "Check box to confirm item deletion"
msgstr "Spunta la casella per confermare l'eliminazione dell'elemento"
-#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
+#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21
msgid "Edit User Information"
msgstr "Modifica informazioni utente"
-#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
+#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr "Imposta Password"
-#: InvenTree/views.py:630
+#: InvenTree/views.py:632
msgid "Password fields must match"
msgstr "Le password devono coincidere"
-#: InvenTree/views.py:863 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:101
msgid "System Information"
msgstr "Informazioni sistema"
@@ -552,12 +574,13 @@ msgstr "Codice a barre associato all'articolo in giacenza"
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
+#: part/templates/part/detail.html:1076 part/templates/part/detail.html:1162
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:77
+#: report/templates/report/inventree_test_report_base.html:81
+#: report/templates/report/inventree_test_report_base.html:139
#: stock/forms.py:156 stock/serializers.py:286
#: stock/templates/stock/item_base.html:256
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
@@ -565,12 +588,12 @@ msgstr "Codice a barre associato all'articolo in giacenza"
#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
-#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
-#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/order.js:892 templates/js/translated/order.js:1205
+#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290
+#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479
#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
-#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
-#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377
+#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171
msgid "Quantity"
msgstr "Quantità"
@@ -579,8 +602,8 @@ msgid "Enter quantity for build output"
msgstr "Inserisci la quantità per l'output di compilazione"
#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:307 templates/js/translated/stock.js:194
-#: templates/js/translated/stock.js:348
+#: stock/serializers.py:307 templates/js/translated/stock.js:224
+#: templates/js/translated/stock.js:378
msgid "Serial Numbers"
msgstr "Codice Seriale"
@@ -639,7 +662,7 @@ msgstr ""
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
+#: templates/js/translated/order.js:886 templates/js/translated/order.js:1473
msgid "Reference"
msgstr "Riferimento"
@@ -677,10 +700,10 @@ msgstr ""
#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/order.js:840 templates/js/translated/order.js:1457
#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
-#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
-#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508
+#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159
msgid "Part"
msgstr "Articolo"
@@ -745,7 +768,7 @@ msgid "Batch code for this build output"
msgstr ""
#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1104
msgid "Creation Date"
msgstr "Data di creazione"
@@ -779,7 +802,7 @@ msgstr ""
#: order/templates/order/order_base.html:154
#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680
+#: templates/js/translated/build.js:1680 templates/js/translated/order.js:700
msgid "Responsible"
msgstr "Responsabile"
@@ -795,27 +818,21 @@ msgstr ""
msgid "External Link"
msgstr "Collegamento esterno"
-#: build/models.py:330 part/models.py:798 stock/models.py:540
-msgid "Link to external URL"
-msgstr "Link a URL esterno"
-
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:183 order/models.py:738
-#: order/templates/order/po_navbar.html:38
-#: order/templates/order/po_navbar.html:41
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:11 part/models.py:925
#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: stock/serializers.py:583 stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
-#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
-#: templates/js/translated/stock.js:1340
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:985
+#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1370
msgid "Notes"
msgstr "Note"
@@ -876,8 +893,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:340
#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
-#: templates/js/translated/stock.js:1990
+#: templates/js/translated/order.js:1178 templates/js/translated/order.js:1183
+#: templates/js/translated/stock.js:2020
msgid "Stock Item"
msgstr "Articoli in magazzino"
@@ -917,16 +934,16 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
-#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: build/serializers.py:190 order/serializers.py:219 order/serializers.py:287
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685
#: stock/templates/stock/item_base.html:286
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
-#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
-#: templates/js/translated/stock.js:1931
+#: templates/js/translated/order.js:1190 templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251
+#: templates/js/translated/stock.js:1961
msgid "Location"
msgstr "Posizione"
@@ -936,11 +953,11 @@ msgstr "Posizione per gli output di build completati"
#: build/serializers.py:197 build/templates/build/build_base.html:129
#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: order/serializers.py:240 stock/templates/stock/item_base.html:409
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
-#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
-#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+#: templates/js/translated/order.js:1096 templates/js/translated/stock.js:1226
+#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187
msgid "Status"
msgstr "Stato"
@@ -969,7 +986,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr "L'articolo deve essere disponibile"
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:233
#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
msgid "Quantity must be greater than zero"
msgstr "La quantità deve essere maggiore di zero"
@@ -1060,7 +1077,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:140
#: report/templates/report/inventree_build_order_base.html:126
#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
-#: templates/js/translated/order.js:1087
+#: templates/js/translated/order.js:1109
msgid "Target Date"
msgstr "Data scadenza"
@@ -1096,7 +1113,7 @@ msgstr "Completato"
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/order.js:1029
+#: templates/js/translated/order.js:1051
msgid "Sales Order"
msgstr "Ordini di Vendita"
@@ -1171,7 +1188,7 @@ msgid "Stock can be taken from any available location."
msgstr "Lo stock può essere prelevato da qualsiasi posizione disponibile."
#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:974
msgid "Destination"
msgstr "Destinazione"
@@ -1185,7 +1202,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:304
-#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/stock.js:1240 templates/js/translated/stock.js:2194
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:233
msgid "Batch"
@@ -1286,7 +1303,6 @@ msgid "Completed Build Outputs"
msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
-#: order/templates/order/po_navbar.html:35
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:52
@@ -1300,7 +1316,7 @@ msgstr "Allegati"
msgid "Build Notes"
msgstr "Genera Note"
-#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:453
#: company/templates/company/detail.html:188
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
@@ -1312,45 +1328,11 @@ msgstr "Genera Note"
msgid "Edit Notes"
msgstr "Modifica Note"
-#: build/templates/build/detail.html:448
-#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
-#: templates/attachment_button.html:4
-msgid "Add Attachment"
-msgstr "Aggiungi allegato"
-
-#: build/templates/build/detail.html:467
-#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:142
-#: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
-msgid "Edit Attachment"
-msgstr "Modifica allegato"
-
-#: build/templates/build/detail.html:474
-#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:149
-#: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
-#: templates/js/translated/order.js:1243
-msgid "Confirm Delete Operation"
-msgstr "Conferma Operazione Eliminazione"
-
-#: build/templates/build/detail.html:475
-#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:150
-#: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
-msgid "Delete Attachment"
-msgstr "Elimina allegato"
-
-#: build/templates/build/detail.html:513
+#: build/templates/build/detail.html:477
msgid "Allocation Complete"
msgstr "Assegnazione Completa"
-#: build/templates/build/detail.html:514
+#: build/templates/build/detail.html:478
msgid "All untracked stock items have been allocated"
msgstr "Tutte le giacenze non tracciate sono state assegnate"
@@ -1466,7 +1448,7 @@ msgstr "Errore nella lettura del file (dimensione errata)"
msgid "Error reading file (data could be corrupted)"
msgstr "Errore di lettura del file (i dati potrebbero essere danneggiati)"
-#: common/forms.py:34 templates/js/translated/attachment.js:54
+#: common/forms.py:34
msgid "File"
msgstr "File"
@@ -2168,13 +2150,11 @@ msgstr "Prezzo"
msgid "Unit price at specified quantity"
msgstr ""
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
-#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
-#: part/views.py:854
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
+#: part/views.py:858
msgid "Upload File"
msgstr "Carica file"
@@ -2182,7 +2162,7 @@ msgstr "Carica file"
#: 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:213
-#: part/views.py:855
+#: part/views.py:859
msgid "Match Fields"
msgstr "Abbina Campi"
@@ -2200,13 +2180,13 @@ msgstr "Articoli importati"
#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:40
+#: order/templates/order/order_wizard/po_upload.html:47
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:43
+#: part/templates/part/import_wizard/part_upload.html:45
msgid "Previous Step"
msgstr "Passaggio Precedente"
@@ -2252,7 +2232,7 @@ msgid "Contact phone number"
msgstr "Numero di telefono di contatto"
#: company/models.py:125 company/templates/company/company_base.html:102
-#: templates/InvenTree/settings/user.html:46
+#: templates/InvenTree/settings/user.html:47
msgid "Email"
msgstr "Email"
@@ -2268,14 +2248,6 @@ msgstr "Contatto"
msgid "Point of contact"
msgstr "Punto di contatto"
-#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:163 part/models.py:797
-#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:537
-#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
-msgid "Link"
-msgstr "Link"
-
#: company/models.py:131
msgid "Link to external company information"
msgstr "Collegamento alle informazioni aziendali esterne"
@@ -2343,7 +2315,7 @@ msgstr "Seleziona Produttore"
#: company/models.py:342 company/templates/company/manufacturer_part.html:97
#: company/templates/company/supplier_part.html:112
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:874
#: templates/js/translated/part.js:240
msgid "MPN"
msgstr "Codice articolo produttore (MPN)"
@@ -2372,9 +2344,9 @@ msgid "Parameter name"
msgstr "Nome parametro"
#: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:90
+#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:1867 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878
msgid "Value"
msgstr "Valore"
@@ -2413,7 +2385,7 @@ msgid "Select supplier"
msgstr "Seleziona fornitore"
#: company/models.py:551 company/templates/company/supplier_part.html:98
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:861
#: templates/js/translated/part.js:221
msgid "SKU"
msgstr "SKU"
@@ -2450,7 +2422,7 @@ msgstr "Onere minimo (ad esempio tassa di stoccaggio)"
#: company/models.py:582 company/templates/company/supplier_part.html:119
#: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1366
msgid "Packaging"
msgstr "Confezionamento"
@@ -2515,8 +2487,8 @@ msgstr "Telefono"
#: company/templates/company/company_base.html:126 order/models.py:567
#: order/templates/order/sales_order_base.html:114 stock/models.py:525
#: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
-#: templates/js/translated/stock.js:1972
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1073
+#: templates/js/translated/stock.js:2002
msgid "Customer"
msgstr "Cliente"
@@ -2721,7 +2693,7 @@ msgid "Delete parameters"
msgstr "Elimina il parametro"
#: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:974
+#: part/templates/part/detail.html:976
msgid "Add Parameter"
msgstr "Aggiungi parametro"
@@ -2752,7 +2724,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:492
#: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1323
msgid "Supplier Part"
msgstr "Articolo Fornitore"
@@ -2778,7 +2750,7 @@ msgstr "Crea nuova allocazione magazzino"
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
-#: templates/js/translated/stock.js:324
+#: templates/js/translated/stock.js:354
msgid "New Stock Item"
msgstr "Nuovo Elemento in giacenza"
@@ -2799,7 +2771,7 @@ msgstr "Informazioni Prezzi"
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1713
+#: part/templates/part/prices.html:271 part/views.py:1717
msgid "Add Price Break"
msgstr "Aggiungi riduzione prezzo"
@@ -2807,11 +2779,11 @@ msgstr "Aggiungi riduzione prezzo"
msgid "No price break information found"
msgstr "Nessuna informazione di riduzione di prezzo trovata"
-#: company/templates/company/supplier_part.html:224 part/views.py:1775
+#: company/templates/company/supplier_part.html:224 part/views.py:1779
msgid "Delete Price Break"
msgstr "Elimina riduzione di prezzo"
-#: company/templates/company/supplier_part.html:238 part/views.py:1761
+#: company/templates/company/supplier_part.html:238 part/views.py:1765
msgid "Edit Price Break"
msgstr ""
@@ -2831,8 +2803,8 @@ msgstr "Cancella riduzione di prezzo"
#: templates/InvenTree/settings/sidebar.html:40
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
-#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
-#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:509
+#: templates/js/translated/stock.js:1162 templates/navbar.html:26
msgid "Stock"
msgstr "Magazzino"
@@ -2855,7 +2827,7 @@ msgstr "Prezzi"
#: stock/templates/stock/location.html:132
#: stock/templates/stock/location.html:144
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1901
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr "Articoli in magazzino"
@@ -2885,24 +2857,24 @@ msgstr "Aziende"
msgid "New Company"
msgstr "Nuova Azienda"
-#: company/views.py:129 part/views.py:580
+#: company/views.py:129 part/views.py:584
msgid "Download Image"
msgstr "Download Immagine"
-#: company/views.py:158 part/views.py:612
+#: company/views.py:158 part/views.py:616
msgid "Image size exceeds maximum allowable size for download"
msgstr "La dimensione dell'immagine supera la dimensione massima consentita per il download"
-#: company/views.py:165 part/views.py:619
+#: company/views.py:165 part/views.py:623
#, python-brace-format
msgid "Invalid response: {code}"
msgstr "Risposta non valida: {code}"
-#: company/views.py:174 part/views.py:628
+#: company/views.py:174 part/views.py:632
msgid "Supplied URL is not a valid image file"
msgstr "L'URL fornito non è un file immagine valido"
-#: label/api.py:57 report/api.py:201
+#: label/api.py:57 report/api.py:203
msgid "No valid objects provided to template"
msgstr "Nessun oggetto valido fornito nel modello"
@@ -2959,7 +2931,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
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
+#: report/models.py:322 report/models.py:459 report/models.py:497
msgid "Filters"
msgstr "Filtri"
@@ -3089,7 +3061,7 @@ msgstr ""
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1092
+#: order/models.py:582 templates/js/translated/order.js:1114
msgid "Shipment Date"
msgstr ""
@@ -3114,7 +3086,7 @@ msgid "Line item notes"
msgstr ""
#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1144
+#: templates/js/translated/order.js:1166
msgid "Order"
msgstr ""
@@ -3122,8 +3094,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:325
-#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1300
+#: templates/js/translated/stock.js:1983
msgid "Purchase Order"
msgstr ""
@@ -3133,7 +3105,7 @@ msgstr "Articolo Fornitore"
#: order/models.py:797 order/templates/order/order_base.html:147
#: order/templates/order/sales_order_base.html:154
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:954
msgid "Received"
msgstr ""
@@ -3143,7 +3115,7 @@ msgstr ""
#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1324
+#: templates/js/translated/stock.js:1354
msgid "Purchase Price"
msgstr ""
@@ -3204,47 +3176,47 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr "Inserisci la quantità assegnata alla giacenza"
-#: order/serializers.py:167
+#: order/serializers.py:169
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:202
+#: order/serializers.py:204
msgid "Line Item"
msgstr ""
-#: order/serializers.py:208
+#: order/serializers.py:210
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:286
+#: order/serializers.py:220 order/serializers.py:288
msgid "Select destination location for received items"
msgstr "Seleziona la posizione di destinazione per gli elementi ricevuti"
-#: order/serializers.py:242
+#: order/serializers.py:244
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:243
+#: order/serializers.py:245
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:260
+#: order/serializers.py:262
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:298
+#: order/serializers.py:300
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:315
+#: order/serializers.py:317
msgid "Destination location must be specified"
msgstr "La destinazione deve essere specificata"
-#: order/serializers.py:326
+#: order/serializers.py:328
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:568
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3390,19 +3362,23 @@ msgstr "Riga"
msgid "Select Supplier Part"
msgstr "Seleziona l'articolo del fornitore"
-#: order/templates/order/order_wizard/po_upload.html:11
+#: order/templates/order/order_wizard/po_upload.html:8
+msgid "Return to Orders"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:17
msgid "Upload File for Purchase Order"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:18
+#: order/templates/order/order_wizard/po_upload.html:25
#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:21
+#: part/templates/part/import_wizard/part_upload.html:23
#, python-format
msgid "Step %(step)s of %(count)s"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:48
+#: order/templates/order/order_wizard/po_upload.html:55
msgid "Order is already processed. Files cannot be uploaded."
msgstr ""
@@ -3445,7 +3421,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:695 templates/js/translated/order.js:1097
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1119
msgid "Items"
msgstr ""
@@ -3463,31 +3439,6 @@ msgstr ""
msgid "Select a purchase order for %(name)s"
msgstr ""
-#: order/templates/order/po_attachments.html:12
-#: order/templates/order/po_navbar.html:32
-msgid "Purchase Order Attachments"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:15
-#: part/templates/part/part_sidebar.html:8
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:26
-msgid "Received Stock Items"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:29
-#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
#: order/templates/order/po_sidebar.html:5
#: order/templates/order/so_sidebar.html:5
#: report/templates/report/inventree_po_report.html:85
@@ -3504,9 +3455,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:216
+#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:191
+#: order/templates/order/sales_order_detail.html:157
msgid "Add Line Item"
msgstr ""
@@ -3518,6 +3469,10 @@ msgstr ""
msgid "Receive Items"
msgstr ""
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
#: order/templates/order/purchase_order_detail.html:76
#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
@@ -3546,7 +3501,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:121
-#: templates/js/translated/order.js:1064
+#: templates/js/translated/order.js:1086
msgid "Customer Reference"
msgstr ""
@@ -3700,19 +3655,19 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:731
+#: part/api.py:758
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:735
+#: part/api.py:762
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:750
+#: part/api.py:777
msgid "Specify location for initial part stock"
msgstr "Specifica la posizione per lo stock iniziale"
-#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
+#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
msgid "This field is required"
msgstr ""
@@ -3926,7 +3881,7 @@ msgstr "Categoria articolo"
#: part/models.py:784 part/templates/part/detail.html:45
#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
-#: templates/js/translated/stock.js:1104
+#: templates/js/translated/stock.js:1134
msgid "IPN"
msgstr "IPN - Numero di riferimento interno"
@@ -4047,7 +4002,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1467
-#: templates/js/translated/stock.js:828
+#: templates/js/translated/stock.js:858
msgid "Test Name"
msgstr ""
@@ -4552,7 +4507,7 @@ msgstr ""
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:365 part/views.py:751
+#: part/templates/part/detail.html:365 part/views.py:755
msgid "Validate BOM"
msgstr ""
@@ -4604,44 +4559,48 @@ msgstr ""
msgid "Related Part"
msgstr "Articoli correlati"
-#: part/templates/part/detail.html:770
+#: part/templates/part/detail.html:772
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:867
+#: part/templates/part/detail.html:869
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:924
+#: part/templates/part/detail.html:926
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:1076
+#: part/templates/part/detail.html:1039
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1088
+#: part/templates/part/detail.html:1051
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1100
+#: part/templates/part/detail.html:1063
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1189
+#: part/templates/part/detail.html:1152
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:51
+#: part/templates/part/import_wizard/part_upload.html:53
msgid "Unsuffitient privileges."
msgstr ""
-#: part/templates/part/import_wizard/part_upload.html:14
+#: part/templates/part/import_wizard/part_upload.html:8
+msgid "Return to Parts"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:16
msgid "Import Parts from File"
msgstr ""
@@ -4751,7 +4710,7 @@ msgstr "Inattivo"
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1546
#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr "In magazzino"
@@ -4846,6 +4805,11 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1949
+msgid "Details"
+msgstr ""
+
#: part/templates/part/part_sidebar.html:13
msgid "Variants"
msgstr ""
@@ -4949,7 +4913,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1784
+#: part/templates/part/prices.html:215 part/views.py:1788
msgid "Add Internal Price Break"
msgstr ""
@@ -5005,110 +4969,115 @@ msgstr "Imposta categoria per {n} articoli"
msgid "Match References"
msgstr ""
-#: part/views.py:498
+#: part/views.py:502
msgid "None"
msgstr ""
-#: part/views.py:557
+#: part/views.py:561
msgid "Part QR Code"
msgstr ""
-#: part/views.py:659
+#: part/views.py:663
msgid "Select Part Image"
msgstr ""
-#: part/views.py:685
+#: part/views.py:689
msgid "Updated part image"
msgstr ""
-#: part/views.py:688
+#: part/views.py:692
msgid "Part image not found"
msgstr ""
-#: part/views.py:700
+#: part/views.py:704
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:730
+#: part/views.py:734
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:772
+#: part/views.py:776
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:783
+#: part/views.py:787
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:856
+#: part/views.py:860
msgid "Match Parts"
msgstr ""
-#: part/views.py:1192
+#: part/views.py:1196
msgid "Export Bill of Materials"
msgstr "Esporta Distinta base"
-#: part/views.py:1244
+#: part/views.py:1248
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1251
+#: part/views.py:1255
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1260
+#: part/views.py:1264
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1409
+#: part/views.py:1413
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1419
+#: part/views.py:1423
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1426
+#: part/views.py:1430
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1485 templates/js/translated/part.js:310
+#: part/views.py:1489 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr "Modifica Categoria Articoli"
-#: part/views.py:1523
+#: part/views.py:1527
msgid "Delete Part Category"
msgstr "Elimina categoria"
-#: part/views.py:1529
+#: part/views.py:1533
msgid "Part category was deleted"
msgstr "La Categoria articoli è stata eliminata"
-#: part/views.py:1538
+#: part/views.py:1542
msgid "Create Category Parameter Template"
msgstr "Crea Template Parametro Categoria"
-#: part/views.py:1639
+#: part/views.py:1643
msgid "Edit Category Parameter Template"
msgstr "Modifica Modello Parametro Categoria"
-#: part/views.py:1695
+#: part/views.py:1699
msgid "Delete Category Parameter Template"
msgstr "Elimina Modello Parametro Categoria"
-#: part/views.py:1717
+#: part/views.py:1721
msgid "Added new price break"
msgstr ""
-#: part/views.py:1793
+#: part/views.py:1797
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1801
+#: part/views.py:1805
msgid "Delete Internal Price Break"
msgstr ""
+#: report/api.py:234 report/api.py:278
+#, python-brace-format
+msgid "Template file '{filename}' is missing or does not exist"
+msgstr ""
+
#: report/models.py:182
msgid "Template name"
msgstr ""
@@ -5145,51 +5114,51 @@ msgstr ""
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:380
+#: report/models.py:382
msgid "Build Filters"
msgstr ""
-#: report/models.py:381
+#: report/models.py:383
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:423
+#: report/models.py:425
msgid "Part Filters"
msgstr ""
-#: report/models.py:424
+#: report/models.py:426
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:458
+#: report/models.py:460
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:496
+#: report/models.py:498
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:546
+#: report/models.py:548
msgid "Snippet"
msgstr ""
-#: report/models.py:547
+#: report/models.py:549
msgid "Report snippet file"
msgstr ""
-#: report/models.py:551
+#: report/models.py:553
msgid "Snippet file description"
msgstr ""
-#: report/models.py:586
+#: report/models.py:588
msgid "Asset"
msgstr ""
-#: report/models.py:587
+#: report/models.py:589
msgid "Report asset file"
msgstr ""
-#: report/models.py:590
+#: report/models.py:592
msgid "Asset file description"
msgstr ""
@@ -5201,49 +5170,59 @@ msgstr ""
msgid "Stock Item Test Report"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:75
+#: report/templates/report/inventree_test_report_base.html:79
#: stock/models.py:530 stock/templates/stock/item_base.html:238
#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
#: templates/js/translated/build.js:1013
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+#: templates/js/translated/order.js:1288 templates/js/translated/order.js:1377
msgid "Serial Number"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:83
+#: report/templates/report/inventree_test_report_base.html:88
msgid "Test Results"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:93
#: stock/models.py:1855
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:89
+#: report/templates/report/inventree_test_report_base.html:94
#: stock/models.py:1861
msgid "Result"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917
msgid "Date"
msgstr "Data"
-#: report/templates/report/inventree_test_report_base.html:103
+#: report/templates/report/inventree_test_report_base.html:108
msgid "Pass"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:105
+#: report/templates/report/inventree_test_report_base.html:110
msgid "Fail"
msgstr "Fallito"
+#: report/templates/report/inventree_test_report_base.html:123
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:137
+#: templates/js/translated/stock.js:2177
+msgid "Serial"
+msgstr "Seriale"
+
#: stock/api.py:422
msgid "Quantity is required"
msgstr "La quantità è richiesta"
#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
#: stock/templates/stock/item_base.html:382
-#: templates/js/translated/stock.js:1246
+#: templates/js/translated/stock.js:1276
msgid "Expiry Date"
msgstr "Data di Scadenza"
@@ -5505,7 +5484,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:319 stock/serializers.py:687
+#: stock/serializers.py:319 stock/serializers.py:686
msgid "Destination stock location"
msgstr "Posizione magazzino di destinazione"
@@ -5517,15 +5496,15 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:557
+#: stock/serializers.py:556
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:585
+#: stock/serializers.py:584
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:595
+#: stock/serializers.py:594
msgid "A list of stock items must be provided"
msgstr ""
@@ -5570,15 +5549,15 @@ msgstr ""
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
+#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:363
+#: stock/templates/stock/item.html:324
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:377
+#: stock/templates/stock/item.html:338
msgid "Delete Test Result"
msgstr ""
@@ -5752,7 +5731,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:1259
+#: templates/js/translated/stock.js:1289
msgid "Last Updated"
msgstr "Ultimo aggiornamento"
@@ -5768,7 +5747,7 @@ msgstr "Nessun inventario eseguito"
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:505
msgid "Edit Stock Status"
msgstr ""
@@ -5885,10 +5864,6 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:12
-msgid "Installed Items"
-msgstr ""
-
#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
@@ -5967,7 +5942,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:618
+#: stock/views.py:760 templates/js/translated/stock.js:648
msgid "Confirm stock adjustment"
msgstr ""
@@ -5975,7 +5950,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:288
+#: stock/views.py:793 templates/js/translated/stock.js:318
msgid "Edit Stock Item"
msgstr ""
@@ -5987,7 +5962,7 @@ msgstr "Crea una nuova Posizione di Giacenza"
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:268
+#: stock/views.py:1186 templates/js/translated/stock.js:298
msgid "Duplicate Stock Item"
msgstr ""
@@ -6164,11 +6139,11 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/po.html:9
+#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
-#: templates/InvenTree/settings/report.html:10
+#: templates/InvenTree/settings/report.html:8
#: templates/InvenTree/settings/user_reports.html:9
msgid "Report Settings"
msgstr ""
@@ -6221,7 +6196,7 @@ msgid "User Settings"
msgstr "Impostazioni Utente"
#: templates/InvenTree/settings/sidebar.html:8
-#: templates/InvenTree/settings/user.html:11
+#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
@@ -6273,140 +6248,136 @@ msgid "Stock Settings"
msgstr ""
#: templates/InvenTree/settings/user.html:18
-#: templates/js/translated/helpers.js:26
-msgid "Edit"
-msgstr "Modifica"
-
-#: templates/InvenTree/settings/user.html:20
#: templates/account/password_reset_from_key.html:4
#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr "Modifica Password"
-#: templates/InvenTree/settings/user.html:31
+#: templates/InvenTree/settings/user.html:22
+#: templates/js/translated/helpers.js:26
+msgid "Edit"
+msgstr "Modifica"
+
+#: templates/InvenTree/settings/user.html:32
msgid "Username"
msgstr "Nome utente"
-#: templates/InvenTree/settings/user.html:35
+#: templates/InvenTree/settings/user.html:36
msgid "First Name"
msgstr "Nome"
-#: templates/InvenTree/settings/user.html:39
+#: templates/InvenTree/settings/user.html:40
msgid "Last Name"
msgstr "Cognome"
-#: templates/InvenTree/settings/user.html:54
+#: templates/InvenTree/settings/user.html:55
msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:74
+#: templates/InvenTree/settings/user.html:75
msgid "Verified"
msgstr "Verificato"
-#: templates/InvenTree/settings/user.html:76
+#: templates/InvenTree/settings/user.html:77
msgid "Unverified"
msgstr "Non verificato"
-#: templates/InvenTree/settings/user.html:78
+#: templates/InvenTree/settings/user.html:79
msgid "Primary"
msgstr "Principale"
-#: templates/InvenTree/settings/user.html:84
+#: templates/InvenTree/settings/user.html:85
msgid "Make Primary"
msgstr "Rendi principale"
-#: templates/InvenTree/settings/user.html:85
+#: templates/InvenTree/settings/user.html:86
msgid "Re-send Verification"
msgstr "Re-invia il codice di verifica"
-#: templates/InvenTree/settings/user.html:86
-#: templates/InvenTree/settings/user.html:153
+#: templates/InvenTree/settings/user.html:87
+#: templates/InvenTree/settings/user.html:154
msgid "Remove"
msgstr "Rimuovi"
-#: templates/InvenTree/settings/user.html:93
+#: templates/InvenTree/settings/user.html:94
msgid "Warning:"
msgstr "Attenzione:"
-#: templates/InvenTree/settings/user.html:94
+#: templates/InvenTree/settings/user.html:95
msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:101
+#: templates/InvenTree/settings/user.html:102
msgid "Add Email Address"
msgstr "Aggiungi indirizzo email"
-#: templates/InvenTree/settings/user.html:111
+#: templates/InvenTree/settings/user.html:112
msgid "Enter e-mail address"
msgstr "Inserisci il tuo indirizzo email"
-#: templates/InvenTree/settings/user.html:113
+#: templates/InvenTree/settings/user.html:114
msgid "Add Email"
msgstr "Aggiungi Email"
-#: templates/InvenTree/settings/user.html:123
+#: templates/InvenTree/settings/user.html:124
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:128
+#: templates/InvenTree/settings/user.html:129
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:162
+#: templates/InvenTree/settings/user.html:163
msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:167
+#: templates/InvenTree/settings/user.html:168
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:177
-msgid "Language Settings"
+#: templates/InvenTree/settings/user.html:179
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:185
+msgid "Log out active sessions (except this one)"
msgstr ""
#: templates/InvenTree/settings/user.html:186
-msgid "Select language"
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:195
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:196
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:200
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:201
+msgid "Device"
msgstr ""
#: templates/InvenTree/settings/user.html:202
-#, python-format
-msgid "%(lang_translated)s%% translated"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:204
-msgid "No translations available"
+msgid "Last Activity"
msgstr ""
#: templates/InvenTree/settings/user.html:211
-msgid "Set Language"
+#, python-format
+msgid "%(time)s ago (this session)"
msgstr ""
#: templates/InvenTree/settings/user.html:213
-msgid "Some languages are not complete"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:215
-msgid "Show only sufficent"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "and hidden."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "Show them too"
+#, python-format
+msgid "%(time)s ago"
msgstr ""
#: templates/InvenTree/settings/user.html:224
-msgid "Help the translation efforts!"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:225
-#, 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:233
msgid "Do you really want to remove the selected email address?"
msgstr ""
@@ -6422,6 +6393,52 @@ msgstr ""
msgid "Set Theme"
msgstr ""
+#: templates/InvenTree/settings/user_display.html:54
+msgid "Language Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:63
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:79
+#, python-format
+msgid "%(lang_translated)s%% translated"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:81
+msgid "No translations available"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:88
+msgid "Set Language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:91
+msgid "Some languages are not complete"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:93
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:101
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:102
+#, 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_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6620,6 +6637,14 @@ msgstr ""
msgid "View in administration panel"
msgstr "Visualizza nel pannello di amministrazione"
+#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54
+msgid "Add Link"
+msgstr ""
+
+#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36
+msgid "Add Attachment"
+msgstr "Aggiungi allegato"
+
#: templates/base.html:96
msgid "Server Restart Required"
msgstr "È necessario riavviare il server"
@@ -6703,154 +6728,87 @@ msgstr "Il server remoto deve essere accessibile"
msgid "Remote image must not exceed maximum allowable file size"
msgstr "L'immagine remota non deve superare la dimensione massima consentita del file"
-#: templates/js/report.js:47 templates/js/translated/report.js:67
-msgid "items selected"
-msgstr "elementi selezionati"
-
-#: templates/js/report.js:55 templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/report.js:70 templates/js/translated/report.js:90
-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:594
-msgid "Select Stock Items"
-msgstr ""
-
-#: templates/js/report.js:99 templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:116 templates/js/report.js:169
-#: templates/js/report.js:223 templates/js/report.js:277
-#: templates/js/report.js:331 templates/js/translated/report.js:136
-#: 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 ""
-
-#: templates/js/report.js:117 templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/report.js:152 templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/report.js:153 templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: 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/build.js:1333
-#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr "Seleziona Articoli"
-
-#: templates/js/report.js:206 templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:224 templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/report.js:259 templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/report.js:260 templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/report.js:278 templates/js/report.js:332
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/report.js:313 templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/report.js:314 templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:191
+#: templates/js/translated/api.js:192
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:192
+#: templates/js/translated/api.js:193
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:215
+#: templates/js/translated/api.js:216
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:216
+#: templates/js/translated/api.js:217
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:27
+#: templates/js/translated/attachment.js:76
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:95
+#: templates/js/translated/attachment.js:98
+msgid "Edit Attachment"
+msgstr "Modifica allegato"
+
+#: templates/js/translated/attachment.js:108
+msgid "Confirm Delete"
+msgstr ""
+
+#: templates/js/translated/attachment.js:109
+msgid "Delete Attachment"
+msgstr "Elimina allegato"
+
+#: templates/js/translated/attachment.js:165
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:108
+#: templates/js/translated/attachment.js:178
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:115
+#: templates/js/translated/attachment.js:185
msgid "Delete attachment"
msgstr ""
@@ -6911,7 +6869,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:600
msgid "Remove stock item"
msgstr ""
@@ -7006,7 +6964,7 @@ msgid "View BOM"
msgstr ""
#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1320
msgid "Actions"
msgstr ""
@@ -7098,7 +7056,7 @@ msgstr ""
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1194
msgid "Location not specified"
msgstr "Posizione non specificata"
@@ -7107,12 +7065,12 @@ msgid "No active build outputs found"
msgstr ""
#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1305
+#: templates/js/translated/order.js:1327
msgid "Edit stock allocation"
msgstr "Modifica allocazione magazzino"
#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1306
+#: templates/js/translated/order.js:1328
msgid "Delete stock allocation"
msgstr "Elimina posizione giacenza"
@@ -7133,11 +7091,11 @@ msgid "Quantity Per"
msgstr ""
#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1557
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1611
msgid "Build stock"
msgstr ""
@@ -7145,7 +7103,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1604
msgid "Allocate stock"
msgstr ""
@@ -7153,6 +7111,11 @@ msgstr ""
msgid "Specify stock allocation quantity"
msgstr "Specificare il quantitativo assegnato allo stock"
+#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
+#: templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr "Seleziona Articoli"
+
#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
@@ -7182,8 +7145,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
-#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
-#: templates/js/translated/stock.js:1841
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1094
+#: templates/js/translated/stock.js:1871
msgid "Select"
msgstr ""
@@ -7191,7 +7154,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2090
msgid "No user information"
msgstr ""
@@ -7333,45 +7296,45 @@ msgstr "Cancella tutti i filtri"
msgid "Create filter"
msgstr "Crea filtro"
-#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
-#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
+#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365
+#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393
msgid "Action Prohibited"
msgstr "Azione Vietata"
-#: templates/js/translated/forms.js:351
+#: templates/js/translated/forms.js:352
msgid "Create operation not allowed"
msgstr "Crea operazione non consentita"
-#: templates/js/translated/forms.js:366
+#: templates/js/translated/forms.js:367
msgid "Update operation not allowed"
msgstr "Operazione di aggiornamento non consentita"
-#: templates/js/translated/forms.js:380
+#: templates/js/translated/forms.js:381
msgid "Delete operation not allowed"
msgstr "Operazione di eliminazione non consentita"
-#: templates/js/translated/forms.js:394
+#: templates/js/translated/forms.js:395
msgid "View operation not allowed"
msgstr "Mostra operazione non consentita"
-#: templates/js/translated/forms.js:679
+#: templates/js/translated/forms.js:680
msgid "Enter a valid number"
msgstr "Inserisci un numero valido"
-#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/js/translated/forms.js:1072 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1457
+#: templates/js/translated/forms.js:1463
msgid "No results found"
msgstr "Nessun risultato trovato"
-#: templates/js/translated/forms.js:1661
+#: templates/js/translated/forms.js:1667
msgid "Searching"
msgstr "Ricerca"
-#: templates/js/translated/forms.js:1878
+#: templates/js/translated/forms.js:1884
msgid "Clear input"
msgstr "Cancella input"
@@ -7383,6 +7346,11 @@ msgstr "SÌ"
msgid "NO"
msgstr "NO"
+#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
+#: templates/js/translated/stock.js:624
+msgid "Select Stock Items"
+msgstr ""
+
#: templates/js/translated/label.js:30
msgid "Stock item(s) must be selected before printing labels"
msgstr "Gli elementi disponibili devono essere selezionati prima di stampare le etichette"
@@ -7535,11 +7503,11 @@ msgstr ""
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:423
msgid "Format"
msgstr "Formato"
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:424
msgid "Select file format"
msgstr ""
@@ -7555,7 +7523,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr "Quantità da ricevere"
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1673
msgid "Stock Status"
msgstr "Stato giacenza"
@@ -7583,100 +7551,104 @@ msgstr ""
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1063
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
+#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
+#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:801
+#: templates/js/translated/order.js:823
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
+#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467
msgid "Total"
msgstr "Totale"
-#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:904 templates/js/translated/order.js:1492
#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr "Prezzo Unitario"
-#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+#: templates/js/translated/order.js:919 templates/js/translated/order.js:1508
msgid "Total Price"
msgstr "Prezzo Totale"
-#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
+#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:976
+#: templates/js/translated/order.js:998
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:980
+#: templates/js/translated/order.js:1002
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1017
+#: templates/js/translated/order.js:1039
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1055
+#: templates/js/translated/order.js:1077
msgid "Invalid Customer"
msgstr "Cliente non valido"
-#: templates/js/translated/order.js:1133
+#: templates/js/translated/order.js:1155
msgid "No sales order allocations found"
msgstr "Nessun ordine di vendita trovato"
-#: templates/js/translated/order.js:1226
+#: templates/js/translated/order.js:1248
msgid "Edit Stock Allocation"
msgstr "Modifica posizione giacenza"
-#: templates/js/translated/order.js:1244
+#: templates/js/translated/order.js:1265
+msgid "Confirm Delete Operation"
+msgstr "Conferma Operazione Eliminazione"
+
+#: templates/js/translated/order.js:1266
msgid "Delete Stock Allocation"
msgstr "Elimina posizione giacenza"
-#: templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1308
msgid "Stock location not specified"
msgstr "Nessun posizione specificata"
-#: templates/js/translated/order.js:1535
+#: templates/js/translated/order.js:1557
msgid "Fulfilled"
msgstr "Soddisfatto"
-#: templates/js/translated/order.js:1579
+#: templates/js/translated/order.js:1601
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1585
+#: templates/js/translated/order.js:1607
msgid "Purchase stock"
msgstr "Prezzo d'acquisto"
-#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
+#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793
msgid "Calculate price"
msgstr "Calcola il prezzo"
-#: templates/js/translated/order.js:1596
+#: templates/js/translated/order.js:1618
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1719
+#: templates/js/translated/order.js:1741
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1779
+#: templates/js/translated/order.js:1801
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1793
+#: templates/js/translated/order.js:1815
msgid "No matching line items"
msgstr ""
@@ -7826,7 +7798,7 @@ msgid "Low stock"
msgstr "In esaurimento"
#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
-#: templates/js/translated/stock.js:1802
+#: templates/js/translated/stock.js:1832
msgid "Display as list"
msgstr "Visualizza come elenco"
@@ -7834,7 +7806,7 @@ msgstr "Visualizza come elenco"
msgid "Display as grid"
msgstr "Visualizza come griglia"
-#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1851
msgid "Display as tree"
msgstr "Visualizza come struttura ad albero"
@@ -7842,7 +7814,7 @@ msgstr "Visualizza come struttura ad albero"
msgid "Subscribed category"
msgstr "Categoria sottoscritta"
-#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1895
msgid "Path"
msgstr "Percorso"
@@ -7850,11 +7822,11 @@ msgstr "Percorso"
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:816
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:817
msgid "Delete test result"
msgstr ""
@@ -7893,268 +7865,342 @@ msgstr "Prezzo Singolo"
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/report.js:67
+msgid "items selected"
+msgstr "elementi selezionati"
+
+#: templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:136 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 ""
+
+#: templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
#: templates/js/translated/stock.js:70
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:90
+#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167
+msgid "Next available serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169
+msgid "Latest serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:104
msgid "Parent stock location"
msgstr "Posizione giacenza principale"
-#: templates/js/translated/stock.js:126
+#: templates/js/translated/stock.js:140
msgid "New Stock Location"
msgstr "Nuova posizione giacenza"
-#: templates/js/translated/stock.js:189
+#: templates/js/translated/stock.js:180
+msgid "This part cannot be serialized"
+msgstr ""
+
+#: templates/js/translated/stock.js:219
msgid "Enter initial quantity for this stock item"
msgstr "Inserisci quantità iniziale per questo articolo in giacenza"
-#: templates/js/translated/stock.js:195
+#: templates/js/translated/stock.js:225
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Inserire i numeri di serie per la nuova giacenza (o lasciare vuoto)"
-#: templates/js/translated/stock.js:338
+#: templates/js/translated/stock.js:368
msgid "Created new stock item"
msgstr "Crea nuova allocazione magazzino"
-#: templates/js/translated/stock.js:351
+#: templates/js/translated/stock.js:381
msgid "Created multiple stock items"
msgstr "Creato più elementi stock"
-#: templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:420
msgid "Export Stock"
msgstr "Esporta giacenza"
-#: templates/js/translated/stock.js:401
+#: templates/js/translated/stock.js:431
msgid "Include Sublocations"
msgstr "Includi sotto allocazioni"
-#: templates/js/translated/stock.js:402
+#: templates/js/translated/stock.js:432
msgid "Include stock items in sublocations"
msgstr "Includi elementi in giacenza nelle sottoallocazioni"
-#: templates/js/translated/stock.js:444
+#: templates/js/translated/stock.js:474
msgid "Transfer Stock"
msgstr "Trasferisci giacenza"
-#: templates/js/translated/stock.js:445
+#: templates/js/translated/stock.js:475
msgid "Move"
msgstr "Sposta"
-#: templates/js/translated/stock.js:451
+#: templates/js/translated/stock.js:481
msgid "Count Stock"
msgstr "Conta giacenza"
-#: templates/js/translated/stock.js:452
+#: templates/js/translated/stock.js:482
msgid "Count"
msgstr "Conta"
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:486
msgid "Remove Stock"
msgstr "Rimuovi giacenza"
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:487
msgid "Take"
msgstr "Prendi"
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:491
msgid "Add Stock"
msgstr "Aggiungi giacenza"
-#: templates/js/translated/stock.js:462 users/models.py:200
+#: templates/js/translated/stock.js:492 users/models.py:200
msgid "Add"
msgstr "Aggiungi"
-#: templates/js/translated/stock.js:466 templates/stock_table.html:56
+#: templates/js/translated/stock.js:496 templates/stock_table.html:56
msgid "Delete Stock"
msgstr "Elimina Stock"
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Specify stock quantity"
msgstr "Specificare la quantità di magazzino"
-#: templates/js/translated/stock.js:595
+#: templates/js/translated/stock.js:625
msgid "You must select at least one available stock item"
msgstr "Devi selezionare almeno un articolo disponibile"
-#: templates/js/translated/stock.js:753
+#: templates/js/translated/stock.js:783
msgid "PASS"
msgstr "PASS"
-#: templates/js/translated/stock.js:755
+#: templates/js/translated/stock.js:785
msgid "FAIL"
msgstr "FAIL"
-#: templates/js/translated/stock.js:760
+#: templates/js/translated/stock.js:790
msgid "NO RESULT"
msgstr "NESSUN RISULTATO"
-#: templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:812
msgid "Add test result"
msgstr "Aggiungi risultato test"
-#: templates/js/translated/stock.js:808
+#: templates/js/translated/stock.js:838
msgid "No test results found"
msgstr "Nessun risultato di prova trovato"
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:895
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:1002
msgid "In production"
msgstr "In produzione"
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:1006
msgid "Installed in Stock Item"
msgstr "Installato nell'elemento stock"
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:1010
msgid "Shipped to customer"
msgstr "Spedito al cliente"
-#: templates/js/translated/stock.js:984
+#: templates/js/translated/stock.js:1014
msgid "Assigned to Sales Order"
msgstr "Assegnato all'ordine di vendita"
-#: templates/js/translated/stock.js:990
+#: templates/js/translated/stock.js:1020
msgid "No stock location set"
msgstr "Nessuna giacenza impostata"
-#: templates/js/translated/stock.js:1148
+#: templates/js/translated/stock.js:1178
msgid "Stock item is in production"
msgstr "L'articolo di magazzino è in produzione"
-#: templates/js/translated/stock.js:1153
+#: templates/js/translated/stock.js:1183
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1156
+#: templates/js/translated/stock.js:1186
msgid "Stock item assigned to customer"
msgstr "Articolo stock assegnato al cliente"
-#: templates/js/translated/stock.js:1160
+#: templates/js/translated/stock.js:1190
msgid "Stock item has expired"
msgstr "L'articolo stock è scaduto"
-#: templates/js/translated/stock.js:1162
+#: templates/js/translated/stock.js:1192
msgid "Stock item will expire soon"
msgstr "Articolo in giacenza prossimo alla scadenza"
-#: templates/js/translated/stock.js:1166
+#: templates/js/translated/stock.js:1196
msgid "Stock item has been allocated"
msgstr "L'articolo stock è stato allocato"
-#: templates/js/translated/stock.js:1170
+#: templates/js/translated/stock.js:1200
msgid "Stock item has been installed in another item"
msgstr "L'elemento stock è stato installato in un altro articolo"
-#: templates/js/translated/stock.js:1177
+#: templates/js/translated/stock.js:1207
msgid "Stock item has been rejected"
msgstr "L'articolo stock è stato rifiutato"
-#: templates/js/translated/stock.js:1179
+#: templates/js/translated/stock.js:1209
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1181
+#: templates/js/translated/stock.js:1211
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1185
+#: templates/js/translated/stock.js:1215
#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr "Esaurito"
-#: templates/js/translated/stock.js:1235
+#: templates/js/translated/stock.js:1265
msgid "Stocktake"
msgstr "Inventario"
-#: templates/js/translated/stock.js:1308
+#: templates/js/translated/stock.js:1338
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1346
+#: templates/js/translated/stock.js:1376
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
+#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445
msgid "items"
msgstr "elementi"
-#: templates/js/translated/stock.js:1455
+#: templates/js/translated/stock.js:1485
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1482
+#: templates/js/translated/stock.js:1512
msgid "locations"
msgstr "posizione"
-#: templates/js/translated/stock.js:1484
+#: templates/js/translated/stock.js:1514
msgid "Undefined location"
msgstr "Posizione non definita"
-#: templates/js/translated/stock.js:1658
+#: templates/js/translated/stock.js:1688
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1672
+#: templates/js/translated/stock.js:1702
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1673
+#: templates/js/translated/stock.js:1703
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1897
+#: templates/js/translated/stock.js:1927
msgid "Invalid date"
msgstr "Data non valida"
-#: templates/js/translated/stock.js:1944
+#: templates/js/translated/stock.js:1974
msgid "Location no longer exists"
msgstr "La posizione non esiste più"
-#: templates/js/translated/stock.js:1963
+#: templates/js/translated/stock.js:1993
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1982
+#: templates/js/translated/stock.js:2012
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2000
+#: templates/js/translated/stock.js:2030
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2023
+#: templates/js/translated/stock.js:2053
msgid "Added"
msgstr "Aggiunto"
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2061
msgid "Removed"
msgstr "Rimosso"
-#: templates/js/translated/stock.js:2072
+#: templates/js/translated/stock.js:2102
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2073
+#: templates/js/translated/stock.js:2103
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2124
+#: templates/js/translated/stock.js:2154
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr "Seriale"
-
-#: templates/js/translated/stock.js:2175
+#: templates/js/translated/stock.js:2205
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po
index 31263b2096..ac1c826905 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-11-25 04:46+0000\n"
-"PO-Revision-Date: 2021-11-25 05:07\n"
+"POT-Creation-Date: 2021-11-30 21:49+0000\n"
+"PO-Revision-Date: 2021-11-30 21:52\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Language: ja_JP\n"
@@ -36,7 +36,7 @@ msgstr "日付を入力する"
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:594
+#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr "確認"
@@ -114,99 +114,121 @@ msgstr "シリアル番号が見つかりません"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:109 stock/models.py:1874
+#: InvenTree/models.py:114
+msgid "Missing file"
+msgstr ""
+
+#: InvenTree/models.py:115
+msgid "Missing external link"
+msgstr ""
+
+#: InvenTree/models.py:126 stock/models.py:1874
+#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr "添付ファイル"
-#: InvenTree/models.py:110
+#: InvenTree/models.py:127
msgid "Select file to attach"
msgstr "添付ファイルを選択"
-#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
+#: InvenTree/models.py:133 company/models.py:131 company/models.py:348
+#: company/models.py:564 order/models.py:163 part/models.py:797
+#: report/templates/report/inventree_build_order_base.html:165
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
+msgid "Link"
+msgstr ""
+
+#: InvenTree/models.py:134 build/models.py:330 part/models.py:798
+#: stock/models.py:540
+msgid "Link to external URL"
+msgstr ""
+
+#: InvenTree/models.py:137 templates/js/translated/attachment.js:161
msgid "Comment"
msgstr "コメント:"
-#: InvenTree/models.py:112
+#: InvenTree/models.py:137
msgid "File comment"
msgstr "ファイルコメント"
-#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185
#: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:2054
+#: report/templates/report/inventree_test_report_base.html:96
+#: templates/js/translated/stock.js:2084
msgid "User"
msgstr "ユーザー"
-#: InvenTree/models.py:122
+#: InvenTree/models.py:147
msgid "upload date"
msgstr "アップロード日時"
-#: InvenTree/models.py:142
+#: InvenTree/models.py:170
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:165
+#: InvenTree/models.py:193
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:175
+#: InvenTree/models.py:203
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:178
+#: InvenTree/models.py:206
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:185
+#: InvenTree/models.py:213
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:192
+#: InvenTree/models.py:220
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:227
+#: InvenTree/models.py:255
msgid "Invalid choice"
msgstr "無効な選択です"
-#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: InvenTree/models.py:271 InvenTree/models.py:272 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
#: part/templates/part/detail.html:25 report/models.py:181
#: templates/InvenTree/settings/settings.html:259
#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
-#: templates/js/translated/stock.js:1847
+#: templates/js/translated/stock.js:1877
msgid "Name"
msgstr "お名前"
-#: InvenTree/models.py:250 build/models.py:207
+#: InvenTree/models.py:278 build/models.py:207
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:80
#: company/templates/company/supplier_part.html:81 label/models.py:119
#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:551 report/models.py:590
+#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
#: templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
-#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/order.js:855 templates/js/translated/order.js:1091
#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
-#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
-#: templates/js/translated/stock.js:1904
+#: templates/js/translated/stock.js:1151 templates/js/translated/stock.js:1889
+#: templates/js/translated/stock.js:1934
msgid "Description"
msgstr "説明"
-#: InvenTree/models.py:251
+#: InvenTree/models.py:279
msgid "Description (optional)"
msgstr "説明 (オプション)"
-#: InvenTree/models.py:259
+#: InvenTree/models.py:287
msgid "parent"
msgstr "親"
@@ -214,87 +236,87 @@ msgstr "親"
msgid "Must be a valid number"
msgstr "有効な数字でなければなりません"
-#: InvenTree/serializers.py:251
+#: InvenTree/serializers.py:285
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:670
msgid "German"
msgstr "ドイツ語"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:671
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:672
msgid "English"
msgstr "英語"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:673
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:674
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:675
msgid "French"
msgstr "フランス語"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:676
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr "ポーランド語"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:683
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:684
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:685
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:686
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:687
msgid "Turkish"
msgstr "トルコ語"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:688
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:689
msgid "Chinese"
msgstr ""
@@ -479,27 +501,27 @@ msgstr ""
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:536
+#: InvenTree/views.py:538
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:585
+#: InvenTree/views.py:587
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
+#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
+#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:630
+#: InvenTree/views.py:632
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:863 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:101
msgid "System Information"
msgstr ""
@@ -552,12 +574,13 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
+#: part/templates/part/detail.html:1076 part/templates/part/detail.html:1162
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:77
+#: report/templates/report/inventree_test_report_base.html:81
+#: report/templates/report/inventree_test_report_base.html:139
#: stock/forms.py:156 stock/serializers.py:286
#: stock/templates/stock/item_base.html:256
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
@@ -565,12 +588,12 @@ msgstr ""
#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
-#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
-#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/order.js:892 templates/js/translated/order.js:1205
+#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290
+#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479
#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
-#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
-#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377
+#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171
msgid "Quantity"
msgstr ""
@@ -579,8 +602,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:307 templates/js/translated/stock.js:194
-#: templates/js/translated/stock.js:348
+#: stock/serializers.py:307 templates/js/translated/stock.js:224
+#: templates/js/translated/stock.js:378
msgid "Serial Numbers"
msgstr ""
@@ -639,7 +662,7 @@ msgstr ""
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
+#: templates/js/translated/order.js:886 templates/js/translated/order.js:1473
msgid "Reference"
msgstr ""
@@ -677,10 +700,10 @@ msgstr ""
#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/order.js:840 templates/js/translated/order.js:1457
#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
-#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
-#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508
+#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159
msgid "Part"
msgstr "パーツ"
@@ -745,7 +768,7 @@ msgid "Batch code for this build output"
msgstr ""
#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1104
msgid "Creation Date"
msgstr ""
@@ -779,7 +802,7 @@ msgstr ""
#: order/templates/order/order_base.html:154
#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680
+#: templates/js/translated/build.js:1680 templates/js/translated/order.js:700
msgid "Responsible"
msgstr ""
@@ -795,27 +818,21 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:330 part/models.py:798 stock/models.py:540
-msgid "Link to external URL"
-msgstr ""
-
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:183 order/models.py:738
-#: order/templates/order/po_navbar.html:38
-#: order/templates/order/po_navbar.html:41
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:11 part/models.py:925
#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: stock/serializers.py:583 stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
-#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
-#: templates/js/translated/stock.js:1340
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:985
+#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1370
msgid "Notes"
msgstr ""
@@ -876,8 +893,8 @@ msgstr "パーツを割り当てるためにビルドする"
#: stock/templates/stock/item_base.html:340
#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
-#: templates/js/translated/stock.js:1990
+#: templates/js/translated/order.js:1178 templates/js/translated/order.js:1183
+#: templates/js/translated/stock.js:2020
msgid "Stock Item"
msgstr ""
@@ -917,16 +934,16 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
-#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: build/serializers.py:190 order/serializers.py:219 order/serializers.py:287
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685
#: stock/templates/stock/item_base.html:286
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
-#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
-#: templates/js/translated/stock.js:1931
+#: templates/js/translated/order.js:1190 templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251
+#: templates/js/translated/stock.js:1961
msgid "Location"
msgstr ""
@@ -936,11 +953,11 @@ msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:129
#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: order/serializers.py:240 stock/templates/stock/item_base.html:409
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
-#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
-#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+#: templates/js/translated/order.js:1096 templates/js/translated/stock.js:1226
+#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187
msgid "Status"
msgstr ""
@@ -969,7 +986,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:233
#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1060,7 +1077,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:140
#: report/templates/report/inventree_build_order_base.html:126
#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
-#: templates/js/translated/order.js:1087
+#: templates/js/translated/order.js:1109
msgid "Target Date"
msgstr ""
@@ -1096,7 +1113,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/order.js:1029
+#: templates/js/translated/order.js:1051
msgid "Sales Order"
msgstr ""
@@ -1171,7 +1188,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:974
msgid "Destination"
msgstr ""
@@ -1185,7 +1202,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:304
-#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/stock.js:1240 templates/js/translated/stock.js:2194
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:233
msgid "Batch"
@@ -1286,7 +1303,6 @@ msgid "Completed Build Outputs"
msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
-#: order/templates/order/po_navbar.html:35
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:52
@@ -1300,7 +1316,7 @@ msgstr ""
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:453
#: company/templates/company/detail.html:188
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
@@ -1312,45 +1328,11 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:448
-#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
-#: templates/attachment_button.html:4
-msgid "Add Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:467
-#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:142
-#: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
-msgid "Edit Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:474
-#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:149
-#: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
-#: templates/js/translated/order.js:1243
-msgid "Confirm Delete Operation"
-msgstr ""
-
-#: build/templates/build/detail.html:475
-#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:150
-#: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
-msgid "Delete Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:513
+#: build/templates/build/detail.html:477
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:514
+#: build/templates/build/detail.html:478
msgid "All untracked stock items have been allocated"
msgstr ""
@@ -1466,7 +1448,7 @@ msgstr ""
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:34 templates/js/translated/attachment.js:54
+#: common/forms.py:34
msgid "File"
msgstr ""
@@ -2168,13 +2150,11 @@ msgstr ""
msgid "Unit price at specified quantity"
msgstr ""
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
-#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
-#: part/views.py:854
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
+#: part/views.py:858
msgid "Upload File"
msgstr ""
@@ -2182,7 +2162,7 @@ msgstr ""
#: 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:213
-#: part/views.py:855
+#: part/views.py:859
msgid "Match Fields"
msgstr ""
@@ -2200,13 +2180,13 @@ msgstr ""
#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:40
+#: order/templates/order/order_wizard/po_upload.html:47
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:43
+#: part/templates/part/import_wizard/part_upload.html:45
msgid "Previous Step"
msgstr ""
@@ -2252,7 +2232,7 @@ msgid "Contact phone number"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:102
-#: templates/InvenTree/settings/user.html:46
+#: templates/InvenTree/settings/user.html:47
msgid "Email"
msgstr ""
@@ -2268,14 +2248,6 @@ msgstr ""
msgid "Point of contact"
msgstr ""
-#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:163 part/models.py:797
-#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:537
-#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
-msgid "Link"
-msgstr ""
-
#: company/models.py:131
msgid "Link to external company information"
msgstr ""
@@ -2343,7 +2315,7 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:97
#: company/templates/company/supplier_part.html:112
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:874
#: templates/js/translated/part.js:240
msgid "MPN"
msgstr ""
@@ -2372,9 +2344,9 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:90
+#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:1867 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878
msgid "Value"
msgstr ""
@@ -2413,7 +2385,7 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:98
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:861
#: templates/js/translated/part.js:221
msgid "SKU"
msgstr ""
@@ -2450,7 +2422,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:119
#: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1366
msgid "Packaging"
msgstr ""
@@ -2515,8 +2487,8 @@ msgstr ""
#: company/templates/company/company_base.html:126 order/models.py:567
#: order/templates/order/sales_order_base.html:114 stock/models.py:525
#: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
-#: templates/js/translated/stock.js:1972
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1073
+#: templates/js/translated/stock.js:2002
msgid "Customer"
msgstr ""
@@ -2721,7 +2693,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:974
+#: part/templates/part/detail.html:976
msgid "Add Parameter"
msgstr ""
@@ -2752,7 +2724,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:492
#: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1323
msgid "Supplier Part"
msgstr ""
@@ -2778,7 +2750,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
-#: templates/js/translated/stock.js:324
+#: templates/js/translated/stock.js:354
msgid "New Stock Item"
msgstr ""
@@ -2799,7 +2771,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1713
+#: part/templates/part/prices.html:271 part/views.py:1717
msgid "Add Price Break"
msgstr ""
@@ -2807,11 +2779,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1775
+#: company/templates/company/supplier_part.html:224 part/views.py:1779
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1761
+#: company/templates/company/supplier_part.html:238 part/views.py:1765
msgid "Edit Price Break"
msgstr ""
@@ -2831,8 +2803,8 @@ msgstr ""
#: templates/InvenTree/settings/sidebar.html:40
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
-#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
-#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:509
+#: templates/js/translated/stock.js:1162 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2855,7 +2827,7 @@ msgstr ""
#: stock/templates/stock/location.html:132
#: stock/templates/stock/location.html:144
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1901
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2885,24 +2857,24 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:580
+#: company/views.py:129 part/views.py:584
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:612
+#: company/views.py:158 part/views.py:616
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:619
+#: company/views.py:165 part/views.py:623
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:628
+#: company/views.py:174 part/views.py:632
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/api.py:57 report/api.py:201
+#: label/api.py:57 report/api.py:203
msgid "No valid objects provided to template"
msgstr ""
@@ -2959,7 +2931,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
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
+#: report/models.py:322 report/models.py:459 report/models.py:497
msgid "Filters"
msgstr ""
@@ -3089,7 +3061,7 @@ msgstr ""
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1092
+#: order/models.py:582 templates/js/translated/order.js:1114
msgid "Shipment Date"
msgstr ""
@@ -3114,7 +3086,7 @@ msgid "Line item notes"
msgstr ""
#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1144
+#: templates/js/translated/order.js:1166
msgid "Order"
msgstr ""
@@ -3122,8 +3094,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:325
-#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1300
+#: templates/js/translated/stock.js:1983
msgid "Purchase Order"
msgstr ""
@@ -3133,7 +3105,7 @@ msgstr ""
#: order/models.py:797 order/templates/order/order_base.html:147
#: order/templates/order/sales_order_base.html:154
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:954
msgid "Received"
msgstr ""
@@ -3143,7 +3115,7 @@ msgstr ""
#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1324
+#: templates/js/translated/stock.js:1354
msgid "Purchase Price"
msgstr ""
@@ -3204,47 +3176,47 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:167
+#: order/serializers.py:169
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:202
+#: order/serializers.py:204
msgid "Line Item"
msgstr ""
-#: order/serializers.py:208
+#: order/serializers.py:210
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:286
+#: order/serializers.py:220 order/serializers.py:288
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:242
+#: order/serializers.py:244
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:243
+#: order/serializers.py:245
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:260
+#: order/serializers.py:262
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:298
+#: order/serializers.py:300
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:315
+#: order/serializers.py:317
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:328
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:568
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3390,19 +3362,23 @@ msgstr ""
msgid "Select Supplier Part"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:11
+#: order/templates/order/order_wizard/po_upload.html:8
+msgid "Return to Orders"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:17
msgid "Upload File for Purchase Order"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:18
+#: order/templates/order/order_wizard/po_upload.html:25
#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:21
+#: part/templates/part/import_wizard/part_upload.html:23
#, python-format
msgid "Step %(step)s of %(count)s"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:48
+#: order/templates/order/order_wizard/po_upload.html:55
msgid "Order is already processed. Files cannot be uploaded."
msgstr ""
@@ -3445,7 +3421,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:695 templates/js/translated/order.js:1097
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1119
msgid "Items"
msgstr ""
@@ -3463,31 +3439,6 @@ msgstr ""
msgid "Select a purchase order for %(name)s"
msgstr ""
-#: order/templates/order/po_attachments.html:12
-#: order/templates/order/po_navbar.html:32
-msgid "Purchase Order Attachments"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:15
-#: part/templates/part/part_sidebar.html:8
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:26
-msgid "Received Stock Items"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:29
-#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
#: order/templates/order/po_sidebar.html:5
#: order/templates/order/so_sidebar.html:5
#: report/templates/report/inventree_po_report.html:85
@@ -3504,9 +3455,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:216
+#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:191
+#: order/templates/order/sales_order_detail.html:157
msgid "Add Line Item"
msgstr ""
@@ -3518,6 +3469,10 @@ msgstr ""
msgid "Receive Items"
msgstr ""
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
#: order/templates/order/purchase_order_detail.html:76
#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
@@ -3546,7 +3501,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:121
-#: templates/js/translated/order.js:1064
+#: templates/js/translated/order.js:1086
msgid "Customer Reference"
msgstr ""
@@ -3700,19 +3655,19 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:731
+#: part/api.py:758
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:735
+#: part/api.py:762
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:750
+#: part/api.py:777
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
+#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
msgid "This field is required"
msgstr ""
@@ -3926,7 +3881,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/detail.html:45
#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
-#: templates/js/translated/stock.js:1104
+#: templates/js/translated/stock.js:1134
msgid "IPN"
msgstr ""
@@ -4047,7 +4002,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1467
-#: templates/js/translated/stock.js:828
+#: templates/js/translated/stock.js:858
msgid "Test Name"
msgstr ""
@@ -4552,7 +4507,7 @@ msgstr ""
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:365 part/views.py:751
+#: part/templates/part/detail.html:365 part/views.py:755
msgid "Validate BOM"
msgstr ""
@@ -4604,44 +4559,48 @@ msgstr ""
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:770
+#: part/templates/part/detail.html:772
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:867
+#: part/templates/part/detail.html:869
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:924
+#: part/templates/part/detail.html:926
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:1076
+#: part/templates/part/detail.html:1039
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1088
+#: part/templates/part/detail.html:1051
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1100
+#: part/templates/part/detail.html:1063
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1189
+#: part/templates/part/detail.html:1152
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:51
+#: part/templates/part/import_wizard/part_upload.html:53
msgid "Unsuffitient privileges."
msgstr ""
-#: part/templates/part/import_wizard/part_upload.html:14
+#: part/templates/part/import_wizard/part_upload.html:8
+msgid "Return to Parts"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:16
msgid "Import Parts from File"
msgstr ""
@@ -4751,7 +4710,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1546
#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
@@ -4846,6 +4805,11 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1949
+msgid "Details"
+msgstr ""
+
#: part/templates/part/part_sidebar.html:13
msgid "Variants"
msgstr ""
@@ -4949,7 +4913,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1784
+#: part/templates/part/prices.html:215 part/views.py:1788
msgid "Add Internal Price Break"
msgstr ""
@@ -5005,110 +4969,115 @@ msgstr ""
msgid "Match References"
msgstr ""
-#: part/views.py:498
+#: part/views.py:502
msgid "None"
msgstr ""
-#: part/views.py:557
+#: part/views.py:561
msgid "Part QR Code"
msgstr ""
-#: part/views.py:659
+#: part/views.py:663
msgid "Select Part Image"
msgstr ""
-#: part/views.py:685
+#: part/views.py:689
msgid "Updated part image"
msgstr ""
-#: part/views.py:688
+#: part/views.py:692
msgid "Part image not found"
msgstr ""
-#: part/views.py:700
+#: part/views.py:704
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:730
+#: part/views.py:734
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:772
+#: part/views.py:776
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:783
+#: part/views.py:787
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:856
+#: part/views.py:860
msgid "Match Parts"
msgstr ""
-#: part/views.py:1192
+#: part/views.py:1196
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1244
+#: part/views.py:1248
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1251
+#: part/views.py:1255
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1260
+#: part/views.py:1264
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1409
+#: part/views.py:1413
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1419
+#: part/views.py:1423
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1426
+#: part/views.py:1430
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1485 templates/js/translated/part.js:310
+#: part/views.py:1489 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1523
+#: part/views.py:1527
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1529
+#: part/views.py:1533
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1538
+#: part/views.py:1542
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1639
+#: part/views.py:1643
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1695
+#: part/views.py:1699
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1717
+#: part/views.py:1721
msgid "Added new price break"
msgstr ""
-#: part/views.py:1793
+#: part/views.py:1797
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1801
+#: part/views.py:1805
msgid "Delete Internal Price Break"
msgstr ""
+#: report/api.py:234 report/api.py:278
+#, python-brace-format
+msgid "Template file '{filename}' is missing or does not exist"
+msgstr ""
+
#: report/models.py:182
msgid "Template name"
msgstr ""
@@ -5145,51 +5114,51 @@ msgstr ""
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:380
+#: report/models.py:382
msgid "Build Filters"
msgstr ""
-#: report/models.py:381
+#: report/models.py:383
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:423
+#: report/models.py:425
msgid "Part Filters"
msgstr ""
-#: report/models.py:424
+#: report/models.py:426
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:458
+#: report/models.py:460
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:496
+#: report/models.py:498
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:546
+#: report/models.py:548
msgid "Snippet"
msgstr ""
-#: report/models.py:547
+#: report/models.py:549
msgid "Report snippet file"
msgstr ""
-#: report/models.py:551
+#: report/models.py:553
msgid "Snippet file description"
msgstr ""
-#: report/models.py:586
+#: report/models.py:588
msgid "Asset"
msgstr ""
-#: report/models.py:587
+#: report/models.py:589
msgid "Report asset file"
msgstr ""
-#: report/models.py:590
+#: report/models.py:592
msgid "Asset file description"
msgstr ""
@@ -5201,49 +5170,59 @@ msgstr ""
msgid "Stock Item Test Report"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:75
+#: report/templates/report/inventree_test_report_base.html:79
#: stock/models.py:530 stock/templates/stock/item_base.html:238
#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
#: templates/js/translated/build.js:1013
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+#: templates/js/translated/order.js:1288 templates/js/translated/order.js:1377
msgid "Serial Number"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:83
+#: report/templates/report/inventree_test_report_base.html:88
msgid "Test Results"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:93
#: stock/models.py:1855
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:89
+#: report/templates/report/inventree_test_report_base.html:94
#: stock/models.py:1861
msgid "Result"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917
msgid "Date"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:103
+#: report/templates/report/inventree_test_report_base.html:108
msgid "Pass"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:105
+#: report/templates/report/inventree_test_report_base.html:110
msgid "Fail"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:123
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:137
+#: templates/js/translated/stock.js:2177
+msgid "Serial"
+msgstr ""
+
#: stock/api.py:422
msgid "Quantity is required"
msgstr ""
#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
#: stock/templates/stock/item_base.html:382
-#: templates/js/translated/stock.js:1246
+#: templates/js/translated/stock.js:1276
msgid "Expiry Date"
msgstr ""
@@ -5505,7 +5484,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:319 stock/serializers.py:687
+#: stock/serializers.py:319 stock/serializers.py:686
msgid "Destination stock location"
msgstr ""
@@ -5517,15 +5496,15 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:557
+#: stock/serializers.py:556
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:585
+#: stock/serializers.py:584
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:595
+#: stock/serializers.py:594
msgid "A list of stock items must be provided"
msgstr ""
@@ -5570,15 +5549,15 @@ msgstr ""
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
+#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:363
+#: stock/templates/stock/item.html:324
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:377
+#: stock/templates/stock/item.html:338
msgid "Delete Test Result"
msgstr ""
@@ -5752,7 +5731,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:1259
+#: templates/js/translated/stock.js:1289
msgid "Last Updated"
msgstr ""
@@ -5768,7 +5747,7 @@ msgstr ""
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:505
msgid "Edit Stock Status"
msgstr ""
@@ -5885,10 +5864,6 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:12
-msgid "Installed Items"
-msgstr ""
-
#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
@@ -5967,7 +5942,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:618
+#: stock/views.py:760 templates/js/translated/stock.js:648
msgid "Confirm stock adjustment"
msgstr ""
@@ -5975,7 +5950,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:288
+#: stock/views.py:793 templates/js/translated/stock.js:318
msgid "Edit Stock Item"
msgstr ""
@@ -5987,7 +5962,7 @@ msgstr ""
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:268
+#: stock/views.py:1186 templates/js/translated/stock.js:298
msgid "Duplicate Stock Item"
msgstr ""
@@ -6164,11 +6139,11 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/po.html:9
+#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
-#: templates/InvenTree/settings/report.html:10
+#: templates/InvenTree/settings/report.html:8
#: templates/InvenTree/settings/user_reports.html:9
msgid "Report Settings"
msgstr ""
@@ -6221,7 +6196,7 @@ msgid "User Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:8
-#: templates/InvenTree/settings/user.html:11
+#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
@@ -6273,140 +6248,136 @@ msgid "Stock Settings"
msgstr ""
#: templates/InvenTree/settings/user.html:18
-#: templates/js/translated/helpers.js:26
-msgid "Edit"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:20
#: 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:31
+#: templates/InvenTree/settings/user.html:22
+#: templates/js/translated/helpers.js:26
+msgid "Edit"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:32
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:35
+#: templates/InvenTree/settings/user.html:36
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:39
+#: templates/InvenTree/settings/user.html:40
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:54
+#: templates/InvenTree/settings/user.html:55
msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:74
+#: templates/InvenTree/settings/user.html:75
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:76
+#: templates/InvenTree/settings/user.html:77
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:78
+#: templates/InvenTree/settings/user.html:79
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:84
+#: templates/InvenTree/settings/user.html:85
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:85
+#: templates/InvenTree/settings/user.html:86
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:86
-#: templates/InvenTree/settings/user.html:153
+#: templates/InvenTree/settings/user.html:87
+#: templates/InvenTree/settings/user.html:154
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
+#: templates/InvenTree/settings/user.html:94
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:94
+#: templates/InvenTree/settings/user.html:95
msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:101
+#: templates/InvenTree/settings/user.html:102
msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:111
+#: templates/InvenTree/settings/user.html:112
msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:113
+#: templates/InvenTree/settings/user.html:114
msgid "Add Email"
msgstr ""
-#: templates/InvenTree/settings/user.html:123
+#: templates/InvenTree/settings/user.html:124
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:128
+#: templates/InvenTree/settings/user.html:129
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:162
+#: templates/InvenTree/settings/user.html:163
msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:167
+#: templates/InvenTree/settings/user.html:168
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:177
-msgid "Language Settings"
+#: templates/InvenTree/settings/user.html:179
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:185
+msgid "Log out active sessions (except this one)"
msgstr ""
#: templates/InvenTree/settings/user.html:186
-msgid "Select language"
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:195
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:196
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:200
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:201
+msgid "Device"
msgstr ""
#: templates/InvenTree/settings/user.html:202
-#, python-format
-msgid "%(lang_translated)s%% translated"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:204
-msgid "No translations available"
+msgid "Last Activity"
msgstr ""
#: templates/InvenTree/settings/user.html:211
-msgid "Set Language"
+#, python-format
+msgid "%(time)s ago (this session)"
msgstr ""
#: templates/InvenTree/settings/user.html:213
-msgid "Some languages are not complete"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:215
-msgid "Show only sufficent"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "and hidden."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "Show them too"
+#, python-format
+msgid "%(time)s ago"
msgstr ""
#: templates/InvenTree/settings/user.html:224
-msgid "Help the translation efforts!"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:225
-#, 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:233
msgid "Do you really want to remove the selected email address?"
msgstr ""
@@ -6422,6 +6393,52 @@ msgstr ""
msgid "Set Theme"
msgstr ""
+#: templates/InvenTree/settings/user_display.html:54
+msgid "Language Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:63
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:79
+#, python-format
+msgid "%(lang_translated)s%% translated"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:81
+msgid "No translations available"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:88
+msgid "Set Language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:91
+msgid "Some languages are not complete"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:93
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:101
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:102
+#, 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_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6619,6 +6636,14 @@ msgstr ""
msgid "View in administration panel"
msgstr ""
+#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54
+msgid "Add Link"
+msgstr ""
+
+#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36
+msgid "Add Attachment"
+msgstr ""
+
#: templates/base.html:96
msgid "Server Restart Required"
msgstr ""
@@ -6702,154 +6727,87 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/report.js:47 templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/report.js:55 templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/report.js:70 templates/js/translated/report.js:90
-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:594
-msgid "Select Stock Items"
-msgstr ""
-
-#: templates/js/report.js:99 templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:116 templates/js/report.js:169
-#: templates/js/report.js:223 templates/js/report.js:277
-#: templates/js/report.js:331 templates/js/translated/report.js:136
-#: 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 ""
-
-#: templates/js/report.js:117 templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/report.js:152 templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/report.js:153 templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: 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/build.js:1333
-#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
-#: templates/js/report.js:206 templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:224 templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/report.js:259 templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/report.js:260 templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/report.js:278 templates/js/report.js:332
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/report.js:313 templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/report.js:314 templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:191
+#: templates/js/translated/api.js:192
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:192
+#: templates/js/translated/api.js:193
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:215
+#: templates/js/translated/api.js:216
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:216
+#: templates/js/translated/api.js:217
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:27
+#: templates/js/translated/attachment.js:76
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:95
-msgid "Upload Date"
+#: templates/js/translated/attachment.js:98
+msgid "Edit Attachment"
msgstr ""
#: templates/js/translated/attachment.js:108
+msgid "Confirm Delete"
+msgstr ""
+
+#: templates/js/translated/attachment.js:109
+msgid "Delete Attachment"
+msgstr ""
+
+#: templates/js/translated/attachment.js:165
+msgid "Upload Date"
+msgstr ""
+
+#: templates/js/translated/attachment.js:178
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:115
+#: templates/js/translated/attachment.js:185
msgid "Delete attachment"
msgstr ""
@@ -6910,7 +6868,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:600
msgid "Remove stock item"
msgstr ""
@@ -7005,7 +6963,7 @@ msgid "View BOM"
msgstr ""
#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1320
msgid "Actions"
msgstr ""
@@ -7097,7 +7055,7 @@ msgstr ""
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1194
msgid "Location not specified"
msgstr ""
@@ -7106,12 +7064,12 @@ msgid "No active build outputs found"
msgstr ""
#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1305
+#: templates/js/translated/order.js:1327
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1306
+#: templates/js/translated/order.js:1328
msgid "Delete stock allocation"
msgstr ""
@@ -7132,11 +7090,11 @@ msgid "Quantity Per"
msgstr ""
#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1557
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1611
msgid "Build stock"
msgstr ""
@@ -7144,7 +7102,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1604
msgid "Allocate stock"
msgstr ""
@@ -7152,6 +7110,11 @@ msgstr ""
msgid "Specify stock allocation quantity"
msgstr ""
+#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
+#: templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
@@ -7181,8 +7144,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
-#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
-#: templates/js/translated/stock.js:1841
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1094
+#: templates/js/translated/stock.js:1871
msgid "Select"
msgstr ""
@@ -7190,7 +7153,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2090
msgid "No user information"
msgstr ""
@@ -7332,45 +7295,45 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
-#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
+#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365
+#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:351
+#: templates/js/translated/forms.js:352
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:366
+#: templates/js/translated/forms.js:367
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:380
+#: templates/js/translated/forms.js:381
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:394
+#: templates/js/translated/forms.js:395
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:679
+#: templates/js/translated/forms.js:680
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/js/translated/forms.js:1072 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1457
+#: templates/js/translated/forms.js:1463
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1661
+#: templates/js/translated/forms.js:1667
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1878
+#: templates/js/translated/forms.js:1884
msgid "Clear input"
msgstr ""
@@ -7382,6 +7345,11 @@ msgstr ""
msgid "NO"
msgstr ""
+#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
+#: templates/js/translated/stock.js:624
+msgid "Select Stock Items"
+msgstr ""
+
#: templates/js/translated/label.js:30
msgid "Stock item(s) must be selected before printing labels"
msgstr ""
@@ -7534,11 +7502,11 @@ msgstr ""
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:423
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:424
msgid "Select file format"
msgstr ""
@@ -7554,7 +7522,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1673
msgid "Stock Status"
msgstr ""
@@ -7582,100 +7550,104 @@ msgstr ""
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1063
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
+#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
+#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:801
+#: templates/js/translated/order.js:823
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
+#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:904 templates/js/translated/order.js:1492
#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+#: templates/js/translated/order.js:919 templates/js/translated/order.js:1508
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
+#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:976
+#: templates/js/translated/order.js:998
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:980
+#: templates/js/translated/order.js:1002
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1017
+#: templates/js/translated/order.js:1039
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1055
+#: templates/js/translated/order.js:1077
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1133
+#: templates/js/translated/order.js:1155
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1226
+#: templates/js/translated/order.js:1248
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1244
+#: templates/js/translated/order.js:1265
+msgid "Confirm Delete Operation"
+msgstr ""
+
+#: templates/js/translated/order.js:1266
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1308
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1535
+#: templates/js/translated/order.js:1557
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1579
+#: templates/js/translated/order.js:1601
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1585
+#: templates/js/translated/order.js:1607
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
+#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1596
+#: templates/js/translated/order.js:1618
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1719
+#: templates/js/translated/order.js:1741
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1779
+#: templates/js/translated/order.js:1801
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1793
+#: templates/js/translated/order.js:1815
msgid "No matching line items"
msgstr ""
@@ -7825,7 +7797,7 @@ msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
-#: templates/js/translated/stock.js:1802
+#: templates/js/translated/stock.js:1832
msgid "Display as list"
msgstr ""
@@ -7833,7 +7805,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1851
msgid "Display as tree"
msgstr ""
@@ -7841,7 +7813,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1895
msgid "Path"
msgstr ""
@@ -7849,11 +7821,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:816
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:817
msgid "Delete test result"
msgstr ""
@@ -7892,268 +7864,342 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:136 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 ""
+
+#: templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
#: templates/js/translated/stock.js:70
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:90
+#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167
+msgid "Next available serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169
+msgid "Latest serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:104
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:126
+#: templates/js/translated/stock.js:140
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:189
+#: templates/js/translated/stock.js:180
+msgid "This part cannot be serialized"
+msgstr ""
+
+#: templates/js/translated/stock.js:219
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:195
+#: templates/js/translated/stock.js:225
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:338
+#: templates/js/translated/stock.js:368
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:351
+#: templates/js/translated/stock.js:381
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:420
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:401
+#: templates/js/translated/stock.js:431
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:402
+#: templates/js/translated/stock.js:432
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:444
+#: templates/js/translated/stock.js:474
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:445
+#: templates/js/translated/stock.js:475
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:451
+#: templates/js/translated/stock.js:481
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:452
+#: templates/js/translated/stock.js:482
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:486
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:487
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:491
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:462 users/models.py:200
+#: templates/js/translated/stock.js:492 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:466 templates/stock_table.html:56
+#: templates/js/translated/stock.js:496 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:595
+#: templates/js/translated/stock.js:625
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:753
+#: templates/js/translated/stock.js:783
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:755
+#: templates/js/translated/stock.js:785
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:760
+#: templates/js/translated/stock.js:790
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:812
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:808
+#: templates/js/translated/stock.js:838
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:895
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:1002
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:1006
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:1010
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:984
+#: templates/js/translated/stock.js:1014
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:990
+#: templates/js/translated/stock.js:1020
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1148
+#: templates/js/translated/stock.js:1178
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1153
+#: templates/js/translated/stock.js:1183
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1156
+#: templates/js/translated/stock.js:1186
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1160
+#: templates/js/translated/stock.js:1190
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1162
+#: templates/js/translated/stock.js:1192
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1166
+#: templates/js/translated/stock.js:1196
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1170
+#: templates/js/translated/stock.js:1200
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1177
+#: templates/js/translated/stock.js:1207
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1179
+#: templates/js/translated/stock.js:1209
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1181
+#: templates/js/translated/stock.js:1211
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1185
+#: templates/js/translated/stock.js:1215
#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1235
+#: templates/js/translated/stock.js:1265
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1308
+#: templates/js/translated/stock.js:1338
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1346
+#: templates/js/translated/stock.js:1376
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
+#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1455
+#: templates/js/translated/stock.js:1485
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1482
+#: templates/js/translated/stock.js:1512
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1484
+#: templates/js/translated/stock.js:1514
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1658
+#: templates/js/translated/stock.js:1688
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1672
+#: templates/js/translated/stock.js:1702
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1673
+#: templates/js/translated/stock.js:1703
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1897
+#: templates/js/translated/stock.js:1927
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1944
+#: templates/js/translated/stock.js:1974
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1963
+#: templates/js/translated/stock.js:1993
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1982
+#: templates/js/translated/stock.js:2012
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2000
+#: templates/js/translated/stock.js:2030
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2023
+#: templates/js/translated/stock.js:2053
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2061
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2072
+#: templates/js/translated/stock.js:2102
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2073
+#: templates/js/translated/stock.js:2103
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2124
+#: templates/js/translated/stock.js:2154
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
-#: templates/js/translated/stock.js:2175
+#: templates/js/translated/stock.js:2205
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po
index faaab622b5..d9767918dd 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-11-25 04:46+0000\n"
-"PO-Revision-Date: 2021-11-25 05:07\n"
+"POT-Creation-Date: 2021-11-30 21:49+0000\n"
+"PO-Revision-Date: 2021-11-30 21:51\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"Language: ko_KR\n"
@@ -36,7 +36,7 @@ msgstr ""
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:594
+#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr ""
@@ -114,99 +114,121 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:109 stock/models.py:1874
+#: InvenTree/models.py:114
+msgid "Missing file"
+msgstr ""
+
+#: InvenTree/models.py:115
+msgid "Missing external link"
+msgstr ""
+
+#: InvenTree/models.py:126 stock/models.py:1874
+#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:110
+#: InvenTree/models.py:127
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
+#: InvenTree/models.py:133 company/models.py:131 company/models.py:348
+#: company/models.py:564 order/models.py:163 part/models.py:797
+#: report/templates/report/inventree_build_order_base.html:165
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
+msgid "Link"
+msgstr ""
+
+#: InvenTree/models.py:134 build/models.py:330 part/models.py:798
+#: stock/models.py:540
+msgid "Link to external URL"
+msgstr ""
+
+#: InvenTree/models.py:137 templates/js/translated/attachment.js:161
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:112
+#: InvenTree/models.py:137
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185
#: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:2054
+#: report/templates/report/inventree_test_report_base.html:96
+#: templates/js/translated/stock.js:2084
msgid "User"
msgstr ""
-#: InvenTree/models.py:122
+#: InvenTree/models.py:147
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:142
+#: InvenTree/models.py:170
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:165
+#: InvenTree/models.py:193
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:175
+#: InvenTree/models.py:203
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:178
+#: InvenTree/models.py:206
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:185
+#: InvenTree/models.py:213
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:192
+#: InvenTree/models.py:220
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:227
+#: InvenTree/models.py:255
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: InvenTree/models.py:271 InvenTree/models.py:272 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
#: part/templates/part/detail.html:25 report/models.py:181
#: templates/InvenTree/settings/settings.html:259
#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
-#: templates/js/translated/stock.js:1847
+#: templates/js/translated/stock.js:1877
msgid "Name"
msgstr ""
-#: InvenTree/models.py:250 build/models.py:207
+#: InvenTree/models.py:278 build/models.py:207
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:80
#: company/templates/company/supplier_part.html:81 label/models.py:119
#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:551 report/models.py:590
+#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
#: templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
-#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/order.js:855 templates/js/translated/order.js:1091
#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
-#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
-#: templates/js/translated/stock.js:1904
+#: templates/js/translated/stock.js:1151 templates/js/translated/stock.js:1889
+#: templates/js/translated/stock.js:1934
msgid "Description"
msgstr ""
-#: InvenTree/models.py:251
+#: InvenTree/models.py:279
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:259
+#: InvenTree/models.py:287
msgid "parent"
msgstr ""
@@ -214,87 +236,87 @@ msgstr ""
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:251
+#: InvenTree/serializers.py:285
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:670
msgid "German"
msgstr ""
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:671
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:672
msgid "English"
msgstr ""
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:673
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:674
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:675
msgid "French"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:676
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:683
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:684
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:685
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:686
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:687
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:688
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:689
msgid "Chinese"
msgstr ""
@@ -479,27 +501,27 @@ msgstr ""
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:536
+#: InvenTree/views.py:538
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:585
+#: InvenTree/views.py:587
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
+#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
+#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:630
+#: InvenTree/views.py:632
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:863 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:101
msgid "System Information"
msgstr ""
@@ -552,12 +574,13 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
+#: part/templates/part/detail.html:1076 part/templates/part/detail.html:1162
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:77
+#: report/templates/report/inventree_test_report_base.html:81
+#: report/templates/report/inventree_test_report_base.html:139
#: stock/forms.py:156 stock/serializers.py:286
#: stock/templates/stock/item_base.html:256
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
@@ -565,12 +588,12 @@ msgstr ""
#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
-#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
-#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/order.js:892 templates/js/translated/order.js:1205
+#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290
+#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479
#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
-#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
-#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377
+#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171
msgid "Quantity"
msgstr ""
@@ -579,8 +602,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:307 templates/js/translated/stock.js:194
-#: templates/js/translated/stock.js:348
+#: stock/serializers.py:307 templates/js/translated/stock.js:224
+#: templates/js/translated/stock.js:378
msgid "Serial Numbers"
msgstr ""
@@ -639,7 +662,7 @@ msgstr ""
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
+#: templates/js/translated/order.js:886 templates/js/translated/order.js:1473
msgid "Reference"
msgstr ""
@@ -677,10 +700,10 @@ msgstr ""
#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/order.js:840 templates/js/translated/order.js:1457
#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
-#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
-#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508
+#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159
msgid "Part"
msgstr ""
@@ -745,7 +768,7 @@ msgid "Batch code for this build output"
msgstr ""
#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1104
msgid "Creation Date"
msgstr ""
@@ -779,7 +802,7 @@ msgstr ""
#: order/templates/order/order_base.html:154
#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680
+#: templates/js/translated/build.js:1680 templates/js/translated/order.js:700
msgid "Responsible"
msgstr ""
@@ -795,27 +818,21 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:330 part/models.py:798 stock/models.py:540
-msgid "Link to external URL"
-msgstr ""
-
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:183 order/models.py:738
-#: order/templates/order/po_navbar.html:38
-#: order/templates/order/po_navbar.html:41
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:11 part/models.py:925
#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: stock/serializers.py:583 stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
-#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
-#: templates/js/translated/stock.js:1340
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:985
+#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1370
msgid "Notes"
msgstr ""
@@ -876,8 +893,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:340
#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
-#: templates/js/translated/stock.js:1990
+#: templates/js/translated/order.js:1178 templates/js/translated/order.js:1183
+#: templates/js/translated/stock.js:2020
msgid "Stock Item"
msgstr ""
@@ -917,16 +934,16 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
-#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: build/serializers.py:190 order/serializers.py:219 order/serializers.py:287
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685
#: stock/templates/stock/item_base.html:286
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
-#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
-#: templates/js/translated/stock.js:1931
+#: templates/js/translated/order.js:1190 templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251
+#: templates/js/translated/stock.js:1961
msgid "Location"
msgstr ""
@@ -936,11 +953,11 @@ msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:129
#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: order/serializers.py:240 stock/templates/stock/item_base.html:409
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
-#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
-#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+#: templates/js/translated/order.js:1096 templates/js/translated/stock.js:1226
+#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187
msgid "Status"
msgstr ""
@@ -969,7 +986,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:233
#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1060,7 +1077,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:140
#: report/templates/report/inventree_build_order_base.html:126
#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
-#: templates/js/translated/order.js:1087
+#: templates/js/translated/order.js:1109
msgid "Target Date"
msgstr ""
@@ -1096,7 +1113,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/order.js:1029
+#: templates/js/translated/order.js:1051
msgid "Sales Order"
msgstr ""
@@ -1171,7 +1188,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:974
msgid "Destination"
msgstr ""
@@ -1185,7 +1202,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:304
-#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/stock.js:1240 templates/js/translated/stock.js:2194
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:233
msgid "Batch"
@@ -1286,7 +1303,6 @@ msgid "Completed Build Outputs"
msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
-#: order/templates/order/po_navbar.html:35
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:52
@@ -1300,7 +1316,7 @@ msgstr ""
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:453
#: company/templates/company/detail.html:188
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
@@ -1312,45 +1328,11 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:448
-#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
-#: templates/attachment_button.html:4
-msgid "Add Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:467
-#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:142
-#: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
-msgid "Edit Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:474
-#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:149
-#: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
-#: templates/js/translated/order.js:1243
-msgid "Confirm Delete Operation"
-msgstr ""
-
-#: build/templates/build/detail.html:475
-#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:150
-#: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
-msgid "Delete Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:513
+#: build/templates/build/detail.html:477
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:514
+#: build/templates/build/detail.html:478
msgid "All untracked stock items have been allocated"
msgstr ""
@@ -1466,7 +1448,7 @@ msgstr ""
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:34 templates/js/translated/attachment.js:54
+#: common/forms.py:34
msgid "File"
msgstr ""
@@ -2168,13 +2150,11 @@ msgstr ""
msgid "Unit price at specified quantity"
msgstr ""
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
-#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
-#: part/views.py:854
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
+#: part/views.py:858
msgid "Upload File"
msgstr ""
@@ -2182,7 +2162,7 @@ msgstr ""
#: 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:213
-#: part/views.py:855
+#: part/views.py:859
msgid "Match Fields"
msgstr ""
@@ -2200,13 +2180,13 @@ msgstr ""
#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:40
+#: order/templates/order/order_wizard/po_upload.html:47
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:43
+#: part/templates/part/import_wizard/part_upload.html:45
msgid "Previous Step"
msgstr ""
@@ -2252,7 +2232,7 @@ msgid "Contact phone number"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:102
-#: templates/InvenTree/settings/user.html:46
+#: templates/InvenTree/settings/user.html:47
msgid "Email"
msgstr ""
@@ -2268,14 +2248,6 @@ msgstr ""
msgid "Point of contact"
msgstr ""
-#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:163 part/models.py:797
-#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:537
-#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
-msgid "Link"
-msgstr ""
-
#: company/models.py:131
msgid "Link to external company information"
msgstr ""
@@ -2343,7 +2315,7 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:97
#: company/templates/company/supplier_part.html:112
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:874
#: templates/js/translated/part.js:240
msgid "MPN"
msgstr ""
@@ -2372,9 +2344,9 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:90
+#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:1867 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878
msgid "Value"
msgstr ""
@@ -2413,7 +2385,7 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:98
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:861
#: templates/js/translated/part.js:221
msgid "SKU"
msgstr ""
@@ -2450,7 +2422,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:119
#: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1366
msgid "Packaging"
msgstr ""
@@ -2515,8 +2487,8 @@ msgstr ""
#: company/templates/company/company_base.html:126 order/models.py:567
#: order/templates/order/sales_order_base.html:114 stock/models.py:525
#: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
-#: templates/js/translated/stock.js:1972
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1073
+#: templates/js/translated/stock.js:2002
msgid "Customer"
msgstr ""
@@ -2721,7 +2693,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:974
+#: part/templates/part/detail.html:976
msgid "Add Parameter"
msgstr ""
@@ -2752,7 +2724,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:492
#: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1323
msgid "Supplier Part"
msgstr ""
@@ -2778,7 +2750,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
-#: templates/js/translated/stock.js:324
+#: templates/js/translated/stock.js:354
msgid "New Stock Item"
msgstr ""
@@ -2799,7 +2771,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1713
+#: part/templates/part/prices.html:271 part/views.py:1717
msgid "Add Price Break"
msgstr ""
@@ -2807,11 +2779,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1775
+#: company/templates/company/supplier_part.html:224 part/views.py:1779
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1761
+#: company/templates/company/supplier_part.html:238 part/views.py:1765
msgid "Edit Price Break"
msgstr ""
@@ -2831,8 +2803,8 @@ msgstr ""
#: templates/InvenTree/settings/sidebar.html:40
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
-#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
-#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:509
+#: templates/js/translated/stock.js:1162 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2855,7 +2827,7 @@ msgstr ""
#: stock/templates/stock/location.html:132
#: stock/templates/stock/location.html:144
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1901
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2885,24 +2857,24 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:580
+#: company/views.py:129 part/views.py:584
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:612
+#: company/views.py:158 part/views.py:616
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:619
+#: company/views.py:165 part/views.py:623
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:628
+#: company/views.py:174 part/views.py:632
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/api.py:57 report/api.py:201
+#: label/api.py:57 report/api.py:203
msgid "No valid objects provided to template"
msgstr ""
@@ -2959,7 +2931,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
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
+#: report/models.py:322 report/models.py:459 report/models.py:497
msgid "Filters"
msgstr ""
@@ -3089,7 +3061,7 @@ msgstr ""
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1092
+#: order/models.py:582 templates/js/translated/order.js:1114
msgid "Shipment Date"
msgstr ""
@@ -3114,7 +3086,7 @@ msgid "Line item notes"
msgstr ""
#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1144
+#: templates/js/translated/order.js:1166
msgid "Order"
msgstr ""
@@ -3122,8 +3094,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:325
-#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1300
+#: templates/js/translated/stock.js:1983
msgid "Purchase Order"
msgstr ""
@@ -3133,7 +3105,7 @@ msgstr ""
#: order/models.py:797 order/templates/order/order_base.html:147
#: order/templates/order/sales_order_base.html:154
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:954
msgid "Received"
msgstr ""
@@ -3143,7 +3115,7 @@ msgstr ""
#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1324
+#: templates/js/translated/stock.js:1354
msgid "Purchase Price"
msgstr ""
@@ -3204,47 +3176,47 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:167
+#: order/serializers.py:169
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:202
+#: order/serializers.py:204
msgid "Line Item"
msgstr ""
-#: order/serializers.py:208
+#: order/serializers.py:210
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:286
+#: order/serializers.py:220 order/serializers.py:288
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:242
+#: order/serializers.py:244
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:243
+#: order/serializers.py:245
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:260
+#: order/serializers.py:262
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:298
+#: order/serializers.py:300
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:315
+#: order/serializers.py:317
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:328
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:568
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3390,19 +3362,23 @@ msgstr ""
msgid "Select Supplier Part"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:11
+#: order/templates/order/order_wizard/po_upload.html:8
+msgid "Return to Orders"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:17
msgid "Upload File for Purchase Order"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:18
+#: order/templates/order/order_wizard/po_upload.html:25
#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:21
+#: part/templates/part/import_wizard/part_upload.html:23
#, python-format
msgid "Step %(step)s of %(count)s"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:48
+#: order/templates/order/order_wizard/po_upload.html:55
msgid "Order is already processed. Files cannot be uploaded."
msgstr ""
@@ -3445,7 +3421,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:695 templates/js/translated/order.js:1097
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1119
msgid "Items"
msgstr ""
@@ -3463,31 +3439,6 @@ msgstr ""
msgid "Select a purchase order for %(name)s"
msgstr ""
-#: order/templates/order/po_attachments.html:12
-#: order/templates/order/po_navbar.html:32
-msgid "Purchase Order Attachments"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:15
-#: part/templates/part/part_sidebar.html:8
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:26
-msgid "Received Stock Items"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:29
-#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
#: order/templates/order/po_sidebar.html:5
#: order/templates/order/so_sidebar.html:5
#: report/templates/report/inventree_po_report.html:85
@@ -3504,9 +3455,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:216
+#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:191
+#: order/templates/order/sales_order_detail.html:157
msgid "Add Line Item"
msgstr ""
@@ -3518,6 +3469,10 @@ msgstr ""
msgid "Receive Items"
msgstr ""
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
#: order/templates/order/purchase_order_detail.html:76
#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
@@ -3546,7 +3501,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:121
-#: templates/js/translated/order.js:1064
+#: templates/js/translated/order.js:1086
msgid "Customer Reference"
msgstr ""
@@ -3700,19 +3655,19 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:731
+#: part/api.py:758
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:735
+#: part/api.py:762
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:750
+#: part/api.py:777
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
+#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
msgid "This field is required"
msgstr ""
@@ -3926,7 +3881,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/detail.html:45
#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
-#: templates/js/translated/stock.js:1104
+#: templates/js/translated/stock.js:1134
msgid "IPN"
msgstr ""
@@ -4047,7 +4002,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1467
-#: templates/js/translated/stock.js:828
+#: templates/js/translated/stock.js:858
msgid "Test Name"
msgstr ""
@@ -4552,7 +4507,7 @@ msgstr ""
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:365 part/views.py:751
+#: part/templates/part/detail.html:365 part/views.py:755
msgid "Validate BOM"
msgstr ""
@@ -4604,44 +4559,48 @@ msgstr ""
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:770
+#: part/templates/part/detail.html:772
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:867
+#: part/templates/part/detail.html:869
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:924
+#: part/templates/part/detail.html:926
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:1076
+#: part/templates/part/detail.html:1039
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1088
+#: part/templates/part/detail.html:1051
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1100
+#: part/templates/part/detail.html:1063
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1189
+#: part/templates/part/detail.html:1152
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:51
+#: part/templates/part/import_wizard/part_upload.html:53
msgid "Unsuffitient privileges."
msgstr ""
-#: part/templates/part/import_wizard/part_upload.html:14
+#: part/templates/part/import_wizard/part_upload.html:8
+msgid "Return to Parts"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:16
msgid "Import Parts from File"
msgstr ""
@@ -4751,7 +4710,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1546
#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
@@ -4846,6 +4805,11 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1949
+msgid "Details"
+msgstr ""
+
#: part/templates/part/part_sidebar.html:13
msgid "Variants"
msgstr ""
@@ -4949,7 +4913,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1784
+#: part/templates/part/prices.html:215 part/views.py:1788
msgid "Add Internal Price Break"
msgstr ""
@@ -5005,110 +4969,115 @@ msgstr ""
msgid "Match References"
msgstr ""
-#: part/views.py:498
+#: part/views.py:502
msgid "None"
msgstr ""
-#: part/views.py:557
+#: part/views.py:561
msgid "Part QR Code"
msgstr ""
-#: part/views.py:659
+#: part/views.py:663
msgid "Select Part Image"
msgstr ""
-#: part/views.py:685
+#: part/views.py:689
msgid "Updated part image"
msgstr ""
-#: part/views.py:688
+#: part/views.py:692
msgid "Part image not found"
msgstr ""
-#: part/views.py:700
+#: part/views.py:704
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:730
+#: part/views.py:734
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:772
+#: part/views.py:776
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:783
+#: part/views.py:787
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:856
+#: part/views.py:860
msgid "Match Parts"
msgstr ""
-#: part/views.py:1192
+#: part/views.py:1196
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1244
+#: part/views.py:1248
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1251
+#: part/views.py:1255
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1260
+#: part/views.py:1264
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1409
+#: part/views.py:1413
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1419
+#: part/views.py:1423
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1426
+#: part/views.py:1430
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1485 templates/js/translated/part.js:310
+#: part/views.py:1489 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1523
+#: part/views.py:1527
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1529
+#: part/views.py:1533
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1538
+#: part/views.py:1542
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1639
+#: part/views.py:1643
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1695
+#: part/views.py:1699
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1717
+#: part/views.py:1721
msgid "Added new price break"
msgstr ""
-#: part/views.py:1793
+#: part/views.py:1797
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1801
+#: part/views.py:1805
msgid "Delete Internal Price Break"
msgstr ""
+#: report/api.py:234 report/api.py:278
+#, python-brace-format
+msgid "Template file '{filename}' is missing or does not exist"
+msgstr ""
+
#: report/models.py:182
msgid "Template name"
msgstr ""
@@ -5145,51 +5114,51 @@ msgstr ""
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:380
+#: report/models.py:382
msgid "Build Filters"
msgstr ""
-#: report/models.py:381
+#: report/models.py:383
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:423
+#: report/models.py:425
msgid "Part Filters"
msgstr ""
-#: report/models.py:424
+#: report/models.py:426
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:458
+#: report/models.py:460
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:496
+#: report/models.py:498
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:546
+#: report/models.py:548
msgid "Snippet"
msgstr ""
-#: report/models.py:547
+#: report/models.py:549
msgid "Report snippet file"
msgstr ""
-#: report/models.py:551
+#: report/models.py:553
msgid "Snippet file description"
msgstr ""
-#: report/models.py:586
+#: report/models.py:588
msgid "Asset"
msgstr ""
-#: report/models.py:587
+#: report/models.py:589
msgid "Report asset file"
msgstr ""
-#: report/models.py:590
+#: report/models.py:592
msgid "Asset file description"
msgstr ""
@@ -5201,49 +5170,59 @@ msgstr ""
msgid "Stock Item Test Report"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:75
+#: report/templates/report/inventree_test_report_base.html:79
#: stock/models.py:530 stock/templates/stock/item_base.html:238
#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
#: templates/js/translated/build.js:1013
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+#: templates/js/translated/order.js:1288 templates/js/translated/order.js:1377
msgid "Serial Number"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:83
+#: report/templates/report/inventree_test_report_base.html:88
msgid "Test Results"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:93
#: stock/models.py:1855
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:89
+#: report/templates/report/inventree_test_report_base.html:94
#: stock/models.py:1861
msgid "Result"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917
msgid "Date"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:103
+#: report/templates/report/inventree_test_report_base.html:108
msgid "Pass"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:105
+#: report/templates/report/inventree_test_report_base.html:110
msgid "Fail"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:123
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:137
+#: templates/js/translated/stock.js:2177
+msgid "Serial"
+msgstr ""
+
#: stock/api.py:422
msgid "Quantity is required"
msgstr ""
#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
#: stock/templates/stock/item_base.html:382
-#: templates/js/translated/stock.js:1246
+#: templates/js/translated/stock.js:1276
msgid "Expiry Date"
msgstr ""
@@ -5505,7 +5484,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:319 stock/serializers.py:687
+#: stock/serializers.py:319 stock/serializers.py:686
msgid "Destination stock location"
msgstr ""
@@ -5517,15 +5496,15 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:557
+#: stock/serializers.py:556
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:585
+#: stock/serializers.py:584
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:595
+#: stock/serializers.py:594
msgid "A list of stock items must be provided"
msgstr ""
@@ -5570,15 +5549,15 @@ msgstr ""
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
+#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:363
+#: stock/templates/stock/item.html:324
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:377
+#: stock/templates/stock/item.html:338
msgid "Delete Test Result"
msgstr ""
@@ -5752,7 +5731,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:1259
+#: templates/js/translated/stock.js:1289
msgid "Last Updated"
msgstr ""
@@ -5768,7 +5747,7 @@ msgstr ""
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:505
msgid "Edit Stock Status"
msgstr ""
@@ -5885,10 +5864,6 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:12
-msgid "Installed Items"
-msgstr ""
-
#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
@@ -5967,7 +5942,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:618
+#: stock/views.py:760 templates/js/translated/stock.js:648
msgid "Confirm stock adjustment"
msgstr ""
@@ -5975,7 +5950,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:288
+#: stock/views.py:793 templates/js/translated/stock.js:318
msgid "Edit Stock Item"
msgstr ""
@@ -5987,7 +5962,7 @@ msgstr ""
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:268
+#: stock/views.py:1186 templates/js/translated/stock.js:298
msgid "Duplicate Stock Item"
msgstr ""
@@ -6164,11 +6139,11 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/po.html:9
+#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
-#: templates/InvenTree/settings/report.html:10
+#: templates/InvenTree/settings/report.html:8
#: templates/InvenTree/settings/user_reports.html:9
msgid "Report Settings"
msgstr ""
@@ -6221,7 +6196,7 @@ msgid "User Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:8
-#: templates/InvenTree/settings/user.html:11
+#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
@@ -6273,140 +6248,136 @@ msgid "Stock Settings"
msgstr ""
#: templates/InvenTree/settings/user.html:18
-#: templates/js/translated/helpers.js:26
-msgid "Edit"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:20
#: 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:31
+#: templates/InvenTree/settings/user.html:22
+#: templates/js/translated/helpers.js:26
+msgid "Edit"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:32
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:35
+#: templates/InvenTree/settings/user.html:36
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:39
+#: templates/InvenTree/settings/user.html:40
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:54
+#: templates/InvenTree/settings/user.html:55
msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:74
+#: templates/InvenTree/settings/user.html:75
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:76
+#: templates/InvenTree/settings/user.html:77
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:78
+#: templates/InvenTree/settings/user.html:79
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:84
+#: templates/InvenTree/settings/user.html:85
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:85
+#: templates/InvenTree/settings/user.html:86
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:86
-#: templates/InvenTree/settings/user.html:153
+#: templates/InvenTree/settings/user.html:87
+#: templates/InvenTree/settings/user.html:154
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
+#: templates/InvenTree/settings/user.html:94
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:94
+#: templates/InvenTree/settings/user.html:95
msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:101
+#: templates/InvenTree/settings/user.html:102
msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:111
+#: templates/InvenTree/settings/user.html:112
msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:113
+#: templates/InvenTree/settings/user.html:114
msgid "Add Email"
msgstr ""
-#: templates/InvenTree/settings/user.html:123
+#: templates/InvenTree/settings/user.html:124
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:128
+#: templates/InvenTree/settings/user.html:129
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:162
+#: templates/InvenTree/settings/user.html:163
msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:167
+#: templates/InvenTree/settings/user.html:168
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:177
-msgid "Language Settings"
+#: templates/InvenTree/settings/user.html:179
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:185
+msgid "Log out active sessions (except this one)"
msgstr ""
#: templates/InvenTree/settings/user.html:186
-msgid "Select language"
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:195
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:196
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:200
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:201
+msgid "Device"
msgstr ""
#: templates/InvenTree/settings/user.html:202
-#, python-format
-msgid "%(lang_translated)s%% translated"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:204
-msgid "No translations available"
+msgid "Last Activity"
msgstr ""
#: templates/InvenTree/settings/user.html:211
-msgid "Set Language"
+#, python-format
+msgid "%(time)s ago (this session)"
msgstr ""
#: templates/InvenTree/settings/user.html:213
-msgid "Some languages are not complete"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:215
-msgid "Show only sufficent"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "and hidden."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "Show them too"
+#, python-format
+msgid "%(time)s ago"
msgstr ""
#: templates/InvenTree/settings/user.html:224
-msgid "Help the translation efforts!"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:225
-#, 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:233
msgid "Do you really want to remove the selected email address?"
msgstr ""
@@ -6422,6 +6393,52 @@ msgstr ""
msgid "Set Theme"
msgstr ""
+#: templates/InvenTree/settings/user_display.html:54
+msgid "Language Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:63
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:79
+#, python-format
+msgid "%(lang_translated)s%% translated"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:81
+msgid "No translations available"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:88
+msgid "Set Language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:91
+msgid "Some languages are not complete"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:93
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:101
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:102
+#, 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_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6619,6 +6636,14 @@ msgstr ""
msgid "View in administration panel"
msgstr ""
+#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54
+msgid "Add Link"
+msgstr ""
+
+#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36
+msgid "Add Attachment"
+msgstr ""
+
#: templates/base.html:96
msgid "Server Restart Required"
msgstr ""
@@ -6702,154 +6727,87 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/report.js:47 templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/report.js:55 templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/report.js:70 templates/js/translated/report.js:90
-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:594
-msgid "Select Stock Items"
-msgstr ""
-
-#: templates/js/report.js:99 templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:116 templates/js/report.js:169
-#: templates/js/report.js:223 templates/js/report.js:277
-#: templates/js/report.js:331 templates/js/translated/report.js:136
-#: 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 ""
-
-#: templates/js/report.js:117 templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/report.js:152 templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/report.js:153 templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: 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/build.js:1333
-#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
-#: templates/js/report.js:206 templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:224 templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/report.js:259 templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/report.js:260 templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/report.js:278 templates/js/report.js:332
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/report.js:313 templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/report.js:314 templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:191
+#: templates/js/translated/api.js:192
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:192
+#: templates/js/translated/api.js:193
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:215
+#: templates/js/translated/api.js:216
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:216
+#: templates/js/translated/api.js:217
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:27
+#: templates/js/translated/attachment.js:76
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:95
-msgid "Upload Date"
+#: templates/js/translated/attachment.js:98
+msgid "Edit Attachment"
msgstr ""
#: templates/js/translated/attachment.js:108
+msgid "Confirm Delete"
+msgstr ""
+
+#: templates/js/translated/attachment.js:109
+msgid "Delete Attachment"
+msgstr ""
+
+#: templates/js/translated/attachment.js:165
+msgid "Upload Date"
+msgstr ""
+
+#: templates/js/translated/attachment.js:178
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:115
+#: templates/js/translated/attachment.js:185
msgid "Delete attachment"
msgstr ""
@@ -6910,7 +6868,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:600
msgid "Remove stock item"
msgstr ""
@@ -7005,7 +6963,7 @@ msgid "View BOM"
msgstr ""
#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1320
msgid "Actions"
msgstr ""
@@ -7097,7 +7055,7 @@ msgstr ""
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1194
msgid "Location not specified"
msgstr ""
@@ -7106,12 +7064,12 @@ msgid "No active build outputs found"
msgstr ""
#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1305
+#: templates/js/translated/order.js:1327
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1306
+#: templates/js/translated/order.js:1328
msgid "Delete stock allocation"
msgstr ""
@@ -7132,11 +7090,11 @@ msgid "Quantity Per"
msgstr ""
#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1557
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1611
msgid "Build stock"
msgstr ""
@@ -7144,7 +7102,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1604
msgid "Allocate stock"
msgstr ""
@@ -7152,6 +7110,11 @@ msgstr ""
msgid "Specify stock allocation quantity"
msgstr ""
+#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
+#: templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
@@ -7181,8 +7144,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
-#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
-#: templates/js/translated/stock.js:1841
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1094
+#: templates/js/translated/stock.js:1871
msgid "Select"
msgstr ""
@@ -7190,7 +7153,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2090
msgid "No user information"
msgstr ""
@@ -7332,45 +7295,45 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
-#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
+#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365
+#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:351
+#: templates/js/translated/forms.js:352
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:366
+#: templates/js/translated/forms.js:367
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:380
+#: templates/js/translated/forms.js:381
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:394
+#: templates/js/translated/forms.js:395
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:679
+#: templates/js/translated/forms.js:680
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/js/translated/forms.js:1072 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1457
+#: templates/js/translated/forms.js:1463
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1661
+#: templates/js/translated/forms.js:1667
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1878
+#: templates/js/translated/forms.js:1884
msgid "Clear input"
msgstr ""
@@ -7382,6 +7345,11 @@ msgstr ""
msgid "NO"
msgstr ""
+#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
+#: templates/js/translated/stock.js:624
+msgid "Select Stock Items"
+msgstr ""
+
#: templates/js/translated/label.js:30
msgid "Stock item(s) must be selected before printing labels"
msgstr ""
@@ -7534,11 +7502,11 @@ msgstr ""
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:423
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:424
msgid "Select file format"
msgstr ""
@@ -7554,7 +7522,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1673
msgid "Stock Status"
msgstr ""
@@ -7582,100 +7550,104 @@ msgstr ""
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1063
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
+#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
+#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:801
+#: templates/js/translated/order.js:823
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
+#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:904 templates/js/translated/order.js:1492
#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+#: templates/js/translated/order.js:919 templates/js/translated/order.js:1508
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
+#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:976
+#: templates/js/translated/order.js:998
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:980
+#: templates/js/translated/order.js:1002
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1017
+#: templates/js/translated/order.js:1039
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1055
+#: templates/js/translated/order.js:1077
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1133
+#: templates/js/translated/order.js:1155
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1226
+#: templates/js/translated/order.js:1248
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1244
+#: templates/js/translated/order.js:1265
+msgid "Confirm Delete Operation"
+msgstr ""
+
+#: templates/js/translated/order.js:1266
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1308
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1535
+#: templates/js/translated/order.js:1557
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1579
+#: templates/js/translated/order.js:1601
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1585
+#: templates/js/translated/order.js:1607
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
+#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1596
+#: templates/js/translated/order.js:1618
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1719
+#: templates/js/translated/order.js:1741
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1779
+#: templates/js/translated/order.js:1801
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1793
+#: templates/js/translated/order.js:1815
msgid "No matching line items"
msgstr ""
@@ -7825,7 +7797,7 @@ msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
-#: templates/js/translated/stock.js:1802
+#: templates/js/translated/stock.js:1832
msgid "Display as list"
msgstr ""
@@ -7833,7 +7805,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1851
msgid "Display as tree"
msgstr ""
@@ -7841,7 +7813,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1895
msgid "Path"
msgstr ""
@@ -7849,11 +7821,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:816
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:817
msgid "Delete test result"
msgstr ""
@@ -7892,268 +7864,342 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:136 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 ""
+
+#: templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
#: templates/js/translated/stock.js:70
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:90
+#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167
+msgid "Next available serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169
+msgid "Latest serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:104
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:126
+#: templates/js/translated/stock.js:140
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:189
+#: templates/js/translated/stock.js:180
+msgid "This part cannot be serialized"
+msgstr ""
+
+#: templates/js/translated/stock.js:219
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:195
+#: templates/js/translated/stock.js:225
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:338
+#: templates/js/translated/stock.js:368
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:351
+#: templates/js/translated/stock.js:381
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:420
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:401
+#: templates/js/translated/stock.js:431
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:402
+#: templates/js/translated/stock.js:432
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:444
+#: templates/js/translated/stock.js:474
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:445
+#: templates/js/translated/stock.js:475
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:451
+#: templates/js/translated/stock.js:481
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:452
+#: templates/js/translated/stock.js:482
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:486
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:487
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:491
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:462 users/models.py:200
+#: templates/js/translated/stock.js:492 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:466 templates/stock_table.html:56
+#: templates/js/translated/stock.js:496 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:595
+#: templates/js/translated/stock.js:625
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:753
+#: templates/js/translated/stock.js:783
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:755
+#: templates/js/translated/stock.js:785
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:760
+#: templates/js/translated/stock.js:790
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:812
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:808
+#: templates/js/translated/stock.js:838
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:895
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:1002
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:1006
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:1010
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:984
+#: templates/js/translated/stock.js:1014
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:990
+#: templates/js/translated/stock.js:1020
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1148
+#: templates/js/translated/stock.js:1178
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1153
+#: templates/js/translated/stock.js:1183
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1156
+#: templates/js/translated/stock.js:1186
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1160
+#: templates/js/translated/stock.js:1190
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1162
+#: templates/js/translated/stock.js:1192
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1166
+#: templates/js/translated/stock.js:1196
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1170
+#: templates/js/translated/stock.js:1200
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1177
+#: templates/js/translated/stock.js:1207
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1179
+#: templates/js/translated/stock.js:1209
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1181
+#: templates/js/translated/stock.js:1211
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1185
+#: templates/js/translated/stock.js:1215
#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1235
+#: templates/js/translated/stock.js:1265
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1308
+#: templates/js/translated/stock.js:1338
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1346
+#: templates/js/translated/stock.js:1376
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
+#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1455
+#: templates/js/translated/stock.js:1485
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1482
+#: templates/js/translated/stock.js:1512
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1484
+#: templates/js/translated/stock.js:1514
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1658
+#: templates/js/translated/stock.js:1688
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1672
+#: templates/js/translated/stock.js:1702
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1673
+#: templates/js/translated/stock.js:1703
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1897
+#: templates/js/translated/stock.js:1927
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1944
+#: templates/js/translated/stock.js:1974
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1963
+#: templates/js/translated/stock.js:1993
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1982
+#: templates/js/translated/stock.js:2012
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2000
+#: templates/js/translated/stock.js:2030
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2023
+#: templates/js/translated/stock.js:2053
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2061
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2072
+#: templates/js/translated/stock.js:2102
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2073
+#: templates/js/translated/stock.js:2103
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2124
+#: templates/js/translated/stock.js:2154
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
-#: templates/js/translated/stock.js:2175
+#: templates/js/translated/stock.js:2205
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po
index 84d60370b5..5491eac020 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-11-25 04:46+0000\n"
-"PO-Revision-Date: 2021-11-25 05:07\n"
+"POT-Creation-Date: 2021-11-30 21:49+0000\n"
+"PO-Revision-Date: 2021-11-30 21:51\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Language: nl_NL\n"
@@ -36,7 +36,7 @@ msgstr "Voer datum in"
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:594
+#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr "Bevestigen"
@@ -114,99 +114,121 @@ 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:109 stock/models.py:1874
+#: InvenTree/models.py:114
+msgid "Missing file"
+msgstr ""
+
+#: InvenTree/models.py:115
+msgid "Missing external link"
+msgstr ""
+
+#: InvenTree/models.py:126 stock/models.py:1874
+#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr "Bijlage"
-#: InvenTree/models.py:110
+#: InvenTree/models.py:127
msgid "Select file to attach"
msgstr "Bestand als bijlage selecteren"
-#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
+#: InvenTree/models.py:133 company/models.py:131 company/models.py:348
+#: company/models.py:564 order/models.py:163 part/models.py:797
+#: report/templates/report/inventree_build_order_base.html:165
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
+msgid "Link"
+msgstr ""
+
+#: InvenTree/models.py:134 build/models.py:330 part/models.py:798
+#: stock/models.py:540
+msgid "Link to external URL"
+msgstr "Link naar externe URL"
+
+#: InvenTree/models.py:137 templates/js/translated/attachment.js:161
msgid "Comment"
msgstr "Opmerking"
-#: InvenTree/models.py:112
+#: InvenTree/models.py:137
msgid "File comment"
msgstr "Bijlage opmerking"
-#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185
#: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:2054
+#: report/templates/report/inventree_test_report_base.html:96
+#: templates/js/translated/stock.js:2084
msgid "User"
msgstr "Gebruiker"
-#: InvenTree/models.py:122
+#: InvenTree/models.py:147
msgid "upload date"
msgstr "uploaddatum"
-#: InvenTree/models.py:142
+#: InvenTree/models.py:170
msgid "Filename must not be empty"
msgstr "Bestandsnaam mag niet leeg zijn"
-#: InvenTree/models.py:165
+#: InvenTree/models.py:193
msgid "Invalid attachment directory"
msgstr "Fout bijlagemap"
-#: InvenTree/models.py:175
+#: InvenTree/models.py:203
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Bestandsnaam bevat illegale teken '{c}'"
-#: InvenTree/models.py:178
+#: InvenTree/models.py:206
msgid "Filename missing extension"
msgstr "Bestandsnaam mist extensie"
-#: InvenTree/models.py:185
+#: InvenTree/models.py:213
msgid "Attachment with this filename already exists"
msgstr "Bijlage met deze bestandsnaam bestaat al"
-#: InvenTree/models.py:192
+#: InvenTree/models.py:220
msgid "Error renaming file"
msgstr "Fout bij hernoemen bestand"
-#: InvenTree/models.py:227
+#: InvenTree/models.py:255
msgid "Invalid choice"
msgstr "Ongeldige keuze"
-#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: InvenTree/models.py:271 InvenTree/models.py:272 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
#: part/templates/part/detail.html:25 report/models.py:181
#: templates/InvenTree/settings/settings.html:259
#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
-#: templates/js/translated/stock.js:1847
+#: templates/js/translated/stock.js:1877
msgid "Name"
msgstr "Naam"
-#: InvenTree/models.py:250 build/models.py:207
+#: InvenTree/models.py:278 build/models.py:207
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:80
#: company/templates/company/supplier_part.html:81 label/models.py:119
#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:551 report/models.py:590
+#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
#: templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
-#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/order.js:855 templates/js/translated/order.js:1091
#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
-#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
-#: templates/js/translated/stock.js:1904
+#: templates/js/translated/stock.js:1151 templates/js/translated/stock.js:1889
+#: templates/js/translated/stock.js:1934
msgid "Description"
msgstr "Omschrijving"
-#: InvenTree/models.py:251
+#: InvenTree/models.py:279
msgid "Description (optional)"
msgstr "Omschrijving (optioneel)"
-#: InvenTree/models.py:259
+#: InvenTree/models.py:287
msgid "parent"
msgstr "overkoepelend"
@@ -214,87 +236,87 @@ msgstr "overkoepelend"
msgid "Must be a valid number"
msgstr "Moet een geldig nummer zijn"
-#: InvenTree/serializers.py:251
+#: InvenTree/serializers.py:285
msgid "Filename"
msgstr "Bestandsnaam"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:670
msgid "German"
msgstr "Duits"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:671
msgid "Greek"
msgstr "Grieks"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:672
msgid "English"
msgstr "Engels"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:673
msgid "Spanish"
msgstr "Spaans"
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:674
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:675
msgid "French"
msgstr "Frans"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:676
msgid "Hebrew"
msgstr "Hebreeuws"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr "Italiaans"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr "Japans"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr "Koreaans"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr "Nederlands"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr "Noors"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr "Pools"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:683
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:684
msgid "Russian"
msgstr "Russisch"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:685
msgid "Swedish"
msgstr "Zweeds"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:686
msgid "Thai"
msgstr "Thais"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:687
msgid "Turkish"
msgstr "Turks"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:688
msgid "Vietnamese"
msgstr "Vietnamees"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:689
msgid "Chinese"
msgstr "Chinees"
@@ -479,27 +501,27 @@ msgstr ""
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:536
+#: InvenTree/views.py:538
msgid "Delete Item"
msgstr "Verwijder item"
-#: InvenTree/views.py:585
+#: InvenTree/views.py:587
msgid "Check box to confirm item deletion"
msgstr "Selectievakje aanvinken om de verwijdering van items te bevestigen"
-#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
+#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21
msgid "Edit User Information"
msgstr "Gebruikersgegevens bewerken"
-#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
+#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr "Wachtwoord instellen"
-#: InvenTree/views.py:630
+#: InvenTree/views.py:632
msgid "Password fields must match"
msgstr "Wachtwoordvelden komen niet overeen"
-#: InvenTree/views.py:863 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:101
msgid "System Information"
msgstr "Systeeminformatie"
@@ -552,12 +574,13 @@ msgstr "Barcode gekoppeld aan StockItem"
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
+#: part/templates/part/detail.html:1076 part/templates/part/detail.html:1162
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:77
+#: report/templates/report/inventree_test_report_base.html:81
+#: report/templates/report/inventree_test_report_base.html:139
#: stock/forms.py:156 stock/serializers.py:286
#: stock/templates/stock/item_base.html:256
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
@@ -565,12 +588,12 @@ msgstr "Barcode gekoppeld aan StockItem"
#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
-#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
-#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/order.js:892 templates/js/translated/order.js:1205
+#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290
+#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479
#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
-#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
-#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377
+#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171
msgid "Quantity"
msgstr "Aantal"
@@ -579,8 +602,8 @@ msgid "Enter quantity for build output"
msgstr "Voer hoeveelheid in voor build-output"
#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:307 templates/js/translated/stock.js:194
-#: templates/js/translated/stock.js:348
+#: stock/serializers.py:307 templates/js/translated/stock.js:224
+#: templates/js/translated/stock.js:378
msgid "Serial Numbers"
msgstr "Serienummers"
@@ -639,7 +662,7 @@ msgstr "Bouwopdracht referentie"
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
+#: templates/js/translated/order.js:886 templates/js/translated/order.js:1473
msgid "Reference"
msgstr "Referentie"
@@ -677,10 +700,10 @@ msgstr "BuildOrder waaraan deze build is toegewezen"
#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/order.js:840 templates/js/translated/order.js:1457
#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
-#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
-#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508
+#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159
msgid "Part"
msgstr "Onderdeel"
@@ -745,7 +768,7 @@ msgid "Batch code for this build output"
msgstr ""
#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1104
msgid "Creation Date"
msgstr "Aanmaakdatum"
@@ -779,7 +802,7 @@ msgstr "Gebruiker die bouwopdracht heeft gegeven"
#: order/templates/order/order_base.html:154
#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680
+#: templates/js/translated/build.js:1680 templates/js/translated/order.js:700
msgid "Responsible"
msgstr "Verantwoordelijke"
@@ -795,27 +818,21 @@ msgstr "Gebruiker verantwoordelijk voor deze bouwopdracht"
msgid "External Link"
msgstr "Externe Link"
-#: build/models.py:330 part/models.py:798 stock/models.py:540
-msgid "Link to external URL"
-msgstr "Link naar externe URL"
-
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:183 order/models.py:738
-#: order/templates/order/po_navbar.html:38
-#: order/templates/order/po_navbar.html:41
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:11 part/models.py:925
#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: stock/serializers.py:583 stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
-#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
-#: templates/js/translated/stock.js:1340
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:985
+#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1370
msgid "Notes"
msgstr "Opmerkingen"
@@ -876,8 +893,8 @@ msgstr "Bouw om onderdelen toe te wijzen"
#: stock/templates/stock/item_base.html:340
#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
-#: templates/js/translated/stock.js:1990
+#: templates/js/translated/order.js:1178 templates/js/translated/order.js:1183
+#: templates/js/translated/stock.js:2020
msgid "Stock Item"
msgstr "Voorraadartikel"
@@ -917,16 +934,16 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
-#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: build/serializers.py:190 order/serializers.py:219 order/serializers.py:287
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685
#: stock/templates/stock/item_base.html:286
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
-#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
-#: templates/js/translated/stock.js:1931
+#: templates/js/translated/order.js:1190 templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251
+#: templates/js/translated/stock.js:1961
msgid "Location"
msgstr "Locatie"
@@ -936,11 +953,11 @@ msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:129
#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: order/serializers.py:240 stock/templates/stock/item_base.html:409
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
-#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
-#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+#: templates/js/translated/order.js:1096 templates/js/translated/stock.js:1226
+#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187
msgid "Status"
msgstr "Status"
@@ -969,7 +986,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:233
#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1060,7 +1077,7 @@ msgstr "Voorraad is niet volledig toegewezen aan deze bouwopdracht"
#: order/templates/order/sales_order_base.html:140
#: report/templates/report/inventree_build_order_base.html:126
#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
-#: templates/js/translated/order.js:1087
+#: templates/js/translated/order.js:1109
msgid "Target Date"
msgstr "Streefdatum"
@@ -1096,7 +1113,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/order.js:1029
+#: templates/js/translated/order.js:1051
msgid "Sales Order"
msgstr "Verkoop Order"
@@ -1171,7 +1188,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:974
msgid "Destination"
msgstr ""
@@ -1185,7 +1202,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:304
-#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/stock.js:1240 templates/js/translated/stock.js:2194
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:233
msgid "Batch"
@@ -1286,7 +1303,6 @@ msgid "Completed Build Outputs"
msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
-#: order/templates/order/po_navbar.html:35
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:52
@@ -1300,7 +1316,7 @@ msgstr "Bijlagen"
msgid "Build Notes"
msgstr "Bouw notities"
-#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:453
#: company/templates/company/detail.html:188
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
@@ -1312,45 +1328,11 @@ msgstr "Bouw notities"
msgid "Edit Notes"
msgstr "Notities Bewerken"
-#: build/templates/build/detail.html:448
-#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
-#: templates/attachment_button.html:4
-msgid "Add Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:467
-#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:142
-#: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
-msgid "Edit Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:474
-#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:149
-#: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
-#: templates/js/translated/order.js:1243
-msgid "Confirm Delete Operation"
-msgstr ""
-
-#: build/templates/build/detail.html:475
-#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:150
-#: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
-msgid "Delete Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:513
+#: build/templates/build/detail.html:477
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:514
+#: build/templates/build/detail.html:478
msgid "All untracked stock items have been allocated"
msgstr ""
@@ -1466,7 +1448,7 @@ msgstr ""
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:34 templates/js/translated/attachment.js:54
+#: common/forms.py:34
msgid "File"
msgstr ""
@@ -2168,13 +2150,11 @@ msgstr ""
msgid "Unit price at specified quantity"
msgstr ""
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
-#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
-#: part/views.py:854
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
+#: part/views.py:858
msgid "Upload File"
msgstr ""
@@ -2182,7 +2162,7 @@ msgstr ""
#: 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:213
-#: part/views.py:855
+#: part/views.py:859
msgid "Match Fields"
msgstr ""
@@ -2200,13 +2180,13 @@ msgstr ""
#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:40
+#: order/templates/order/order_wizard/po_upload.html:47
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:43
+#: part/templates/part/import_wizard/part_upload.html:45
msgid "Previous Step"
msgstr ""
@@ -2252,7 +2232,7 @@ msgid "Contact phone number"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:102
-#: templates/InvenTree/settings/user.html:46
+#: templates/InvenTree/settings/user.html:47
msgid "Email"
msgstr ""
@@ -2268,14 +2248,6 @@ msgstr ""
msgid "Point of contact"
msgstr ""
-#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:163 part/models.py:797
-#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:537
-#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
-msgid "Link"
-msgstr ""
-
#: company/models.py:131
msgid "Link to external company information"
msgstr ""
@@ -2343,7 +2315,7 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:97
#: company/templates/company/supplier_part.html:112
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:874
#: templates/js/translated/part.js:240
msgid "MPN"
msgstr ""
@@ -2372,9 +2344,9 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:90
+#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:1867 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878
msgid "Value"
msgstr ""
@@ -2413,7 +2385,7 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:98
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:861
#: templates/js/translated/part.js:221
msgid "SKU"
msgstr ""
@@ -2450,7 +2422,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:119
#: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1366
msgid "Packaging"
msgstr ""
@@ -2515,8 +2487,8 @@ msgstr ""
#: company/templates/company/company_base.html:126 order/models.py:567
#: order/templates/order/sales_order_base.html:114 stock/models.py:525
#: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
-#: templates/js/translated/stock.js:1972
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1073
+#: templates/js/translated/stock.js:2002
msgid "Customer"
msgstr ""
@@ -2721,7 +2693,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:974
+#: part/templates/part/detail.html:976
msgid "Add Parameter"
msgstr ""
@@ -2752,7 +2724,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:492
#: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1323
msgid "Supplier Part"
msgstr ""
@@ -2778,7 +2750,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
-#: templates/js/translated/stock.js:324
+#: templates/js/translated/stock.js:354
msgid "New Stock Item"
msgstr ""
@@ -2799,7 +2771,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1713
+#: part/templates/part/prices.html:271 part/views.py:1717
msgid "Add Price Break"
msgstr ""
@@ -2807,11 +2779,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1775
+#: company/templates/company/supplier_part.html:224 part/views.py:1779
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1761
+#: company/templates/company/supplier_part.html:238 part/views.py:1765
msgid "Edit Price Break"
msgstr ""
@@ -2831,8 +2803,8 @@ msgstr ""
#: templates/InvenTree/settings/sidebar.html:40
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
-#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
-#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:509
+#: templates/js/translated/stock.js:1162 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2855,7 +2827,7 @@ msgstr ""
#: stock/templates/stock/location.html:132
#: stock/templates/stock/location.html:144
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1901
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2885,24 +2857,24 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:580
+#: company/views.py:129 part/views.py:584
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:612
+#: company/views.py:158 part/views.py:616
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:619
+#: company/views.py:165 part/views.py:623
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:628
+#: company/views.py:174 part/views.py:632
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/api.py:57 report/api.py:201
+#: label/api.py:57 report/api.py:203
msgid "No valid objects provided to template"
msgstr ""
@@ -2959,7 +2931,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
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
+#: report/models.py:322 report/models.py:459 report/models.py:497
msgid "Filters"
msgstr ""
@@ -3089,7 +3061,7 @@ msgstr ""
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1092
+#: order/models.py:582 templates/js/translated/order.js:1114
msgid "Shipment Date"
msgstr ""
@@ -3114,7 +3086,7 @@ msgid "Line item notes"
msgstr ""
#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1144
+#: templates/js/translated/order.js:1166
msgid "Order"
msgstr ""
@@ -3122,8 +3094,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:325
-#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1300
+#: templates/js/translated/stock.js:1983
msgid "Purchase Order"
msgstr ""
@@ -3133,7 +3105,7 @@ msgstr ""
#: order/models.py:797 order/templates/order/order_base.html:147
#: order/templates/order/sales_order_base.html:154
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:954
msgid "Received"
msgstr ""
@@ -3143,7 +3115,7 @@ msgstr ""
#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1324
+#: templates/js/translated/stock.js:1354
msgid "Purchase Price"
msgstr ""
@@ -3204,47 +3176,47 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:167
+#: order/serializers.py:169
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:202
+#: order/serializers.py:204
msgid "Line Item"
msgstr ""
-#: order/serializers.py:208
+#: order/serializers.py:210
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:286
+#: order/serializers.py:220 order/serializers.py:288
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:242
+#: order/serializers.py:244
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:243
+#: order/serializers.py:245
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:260
+#: order/serializers.py:262
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:298
+#: order/serializers.py:300
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:315
+#: order/serializers.py:317
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:328
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:568
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3390,19 +3362,23 @@ msgstr ""
msgid "Select Supplier Part"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:11
+#: order/templates/order/order_wizard/po_upload.html:8
+msgid "Return to Orders"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:17
msgid "Upload File for Purchase Order"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:18
+#: order/templates/order/order_wizard/po_upload.html:25
#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:21
+#: part/templates/part/import_wizard/part_upload.html:23
#, python-format
msgid "Step %(step)s of %(count)s"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:48
+#: order/templates/order/order_wizard/po_upload.html:55
msgid "Order is already processed. Files cannot be uploaded."
msgstr ""
@@ -3445,7 +3421,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:695 templates/js/translated/order.js:1097
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1119
msgid "Items"
msgstr ""
@@ -3463,31 +3439,6 @@ msgstr ""
msgid "Select a purchase order for %(name)s"
msgstr ""
-#: order/templates/order/po_attachments.html:12
-#: order/templates/order/po_navbar.html:32
-msgid "Purchase Order Attachments"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:15
-#: part/templates/part/part_sidebar.html:8
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:26
-msgid "Received Stock Items"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:29
-#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
#: order/templates/order/po_sidebar.html:5
#: order/templates/order/so_sidebar.html:5
#: report/templates/report/inventree_po_report.html:85
@@ -3504,9 +3455,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:216
+#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:191
+#: order/templates/order/sales_order_detail.html:157
msgid "Add Line Item"
msgstr ""
@@ -3518,6 +3469,10 @@ msgstr ""
msgid "Receive Items"
msgstr ""
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
#: order/templates/order/purchase_order_detail.html:76
#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
@@ -3546,7 +3501,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:121
-#: templates/js/translated/order.js:1064
+#: templates/js/translated/order.js:1086
msgid "Customer Reference"
msgstr ""
@@ -3700,19 +3655,19 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:731
+#: part/api.py:758
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:735
+#: part/api.py:762
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:750
+#: part/api.py:777
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
+#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
msgid "This field is required"
msgstr ""
@@ -3926,7 +3881,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/detail.html:45
#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
-#: templates/js/translated/stock.js:1104
+#: templates/js/translated/stock.js:1134
msgid "IPN"
msgstr ""
@@ -4047,7 +4002,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1467
-#: templates/js/translated/stock.js:828
+#: templates/js/translated/stock.js:858
msgid "Test Name"
msgstr ""
@@ -4552,7 +4507,7 @@ msgstr ""
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:365 part/views.py:751
+#: part/templates/part/detail.html:365 part/views.py:755
msgid "Validate BOM"
msgstr ""
@@ -4604,44 +4559,48 @@ msgstr ""
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:770
+#: part/templates/part/detail.html:772
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:867
+#: part/templates/part/detail.html:869
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:924
+#: part/templates/part/detail.html:926
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:1076
+#: part/templates/part/detail.html:1039
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1088
+#: part/templates/part/detail.html:1051
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1100
+#: part/templates/part/detail.html:1063
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1189
+#: part/templates/part/detail.html:1152
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:51
+#: part/templates/part/import_wizard/part_upload.html:53
msgid "Unsuffitient privileges."
msgstr ""
-#: part/templates/part/import_wizard/part_upload.html:14
+#: part/templates/part/import_wizard/part_upload.html:8
+msgid "Return to Parts"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:16
msgid "Import Parts from File"
msgstr ""
@@ -4751,7 +4710,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1546
#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
@@ -4846,6 +4805,11 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1949
+msgid "Details"
+msgstr ""
+
#: part/templates/part/part_sidebar.html:13
msgid "Variants"
msgstr ""
@@ -4949,7 +4913,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1784
+#: part/templates/part/prices.html:215 part/views.py:1788
msgid "Add Internal Price Break"
msgstr ""
@@ -5005,110 +4969,115 @@ msgstr ""
msgid "Match References"
msgstr ""
-#: part/views.py:498
+#: part/views.py:502
msgid "None"
msgstr ""
-#: part/views.py:557
+#: part/views.py:561
msgid "Part QR Code"
msgstr ""
-#: part/views.py:659
+#: part/views.py:663
msgid "Select Part Image"
msgstr ""
-#: part/views.py:685
+#: part/views.py:689
msgid "Updated part image"
msgstr ""
-#: part/views.py:688
+#: part/views.py:692
msgid "Part image not found"
msgstr ""
-#: part/views.py:700
+#: part/views.py:704
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:730
+#: part/views.py:734
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:772
+#: part/views.py:776
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:783
+#: part/views.py:787
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:856
+#: part/views.py:860
msgid "Match Parts"
msgstr ""
-#: part/views.py:1192
+#: part/views.py:1196
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1244
+#: part/views.py:1248
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1251
+#: part/views.py:1255
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1260
+#: part/views.py:1264
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1409
+#: part/views.py:1413
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1419
+#: part/views.py:1423
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1426
+#: part/views.py:1430
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1485 templates/js/translated/part.js:310
+#: part/views.py:1489 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1523
+#: part/views.py:1527
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1529
+#: part/views.py:1533
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1538
+#: part/views.py:1542
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1639
+#: part/views.py:1643
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1695
+#: part/views.py:1699
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1717
+#: part/views.py:1721
msgid "Added new price break"
msgstr ""
-#: part/views.py:1793
+#: part/views.py:1797
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1801
+#: part/views.py:1805
msgid "Delete Internal Price Break"
msgstr ""
+#: report/api.py:234 report/api.py:278
+#, python-brace-format
+msgid "Template file '{filename}' is missing or does not exist"
+msgstr ""
+
#: report/models.py:182
msgid "Template name"
msgstr ""
@@ -5145,51 +5114,51 @@ msgstr ""
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:380
+#: report/models.py:382
msgid "Build Filters"
msgstr ""
-#: report/models.py:381
+#: report/models.py:383
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:423
+#: report/models.py:425
msgid "Part Filters"
msgstr ""
-#: report/models.py:424
+#: report/models.py:426
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:458
+#: report/models.py:460
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:496
+#: report/models.py:498
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:546
+#: report/models.py:548
msgid "Snippet"
msgstr ""
-#: report/models.py:547
+#: report/models.py:549
msgid "Report snippet file"
msgstr ""
-#: report/models.py:551
+#: report/models.py:553
msgid "Snippet file description"
msgstr ""
-#: report/models.py:586
+#: report/models.py:588
msgid "Asset"
msgstr ""
-#: report/models.py:587
+#: report/models.py:589
msgid "Report asset file"
msgstr ""
-#: report/models.py:590
+#: report/models.py:592
msgid "Asset file description"
msgstr ""
@@ -5201,49 +5170,59 @@ msgstr ""
msgid "Stock Item Test Report"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:75
+#: report/templates/report/inventree_test_report_base.html:79
#: stock/models.py:530 stock/templates/stock/item_base.html:238
#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
#: templates/js/translated/build.js:1013
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+#: templates/js/translated/order.js:1288 templates/js/translated/order.js:1377
msgid "Serial Number"
msgstr "Serienummer"
-#: report/templates/report/inventree_test_report_base.html:83
+#: report/templates/report/inventree_test_report_base.html:88
msgid "Test Results"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:93
#: stock/models.py:1855
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:89
+#: report/templates/report/inventree_test_report_base.html:94
#: stock/models.py:1861
msgid "Result"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917
msgid "Date"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:103
+#: report/templates/report/inventree_test_report_base.html:108
msgid "Pass"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:105
+#: report/templates/report/inventree_test_report_base.html:110
msgid "Fail"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:123
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:137
+#: templates/js/translated/stock.js:2177
+msgid "Serial"
+msgstr ""
+
#: stock/api.py:422
msgid "Quantity is required"
msgstr ""
#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
#: stock/templates/stock/item_base.html:382
-#: templates/js/translated/stock.js:1246
+#: templates/js/translated/stock.js:1276
msgid "Expiry Date"
msgstr ""
@@ -5505,7 +5484,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:319 stock/serializers.py:687
+#: stock/serializers.py:319 stock/serializers.py:686
msgid "Destination stock location"
msgstr ""
@@ -5517,15 +5496,15 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:557
+#: stock/serializers.py:556
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:585
+#: stock/serializers.py:584
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:595
+#: stock/serializers.py:594
msgid "A list of stock items must be provided"
msgstr ""
@@ -5570,15 +5549,15 @@ msgstr ""
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
+#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:363
+#: stock/templates/stock/item.html:324
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:377
+#: stock/templates/stock/item.html:338
msgid "Delete Test Result"
msgstr ""
@@ -5752,7 +5731,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:1259
+#: templates/js/translated/stock.js:1289
msgid "Last Updated"
msgstr ""
@@ -5768,7 +5747,7 @@ msgstr ""
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:505
msgid "Edit Stock Status"
msgstr ""
@@ -5885,10 +5864,6 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:12
-msgid "Installed Items"
-msgstr ""
-
#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
@@ -5967,7 +5942,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:618
+#: stock/views.py:760 templates/js/translated/stock.js:648
msgid "Confirm stock adjustment"
msgstr ""
@@ -5975,7 +5950,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:288
+#: stock/views.py:793 templates/js/translated/stock.js:318
msgid "Edit Stock Item"
msgstr ""
@@ -5987,7 +5962,7 @@ msgstr "Maak nieuwe voorraadlocatie"
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:268
+#: stock/views.py:1186 templates/js/translated/stock.js:298
msgid "Duplicate Stock Item"
msgstr ""
@@ -6164,11 +6139,11 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/po.html:9
+#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
-#: templates/InvenTree/settings/report.html:10
+#: templates/InvenTree/settings/report.html:8
#: templates/InvenTree/settings/user_reports.html:9
msgid "Report Settings"
msgstr ""
@@ -6221,7 +6196,7 @@ msgid "User Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:8
-#: templates/InvenTree/settings/user.html:11
+#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
@@ -6273,140 +6248,136 @@ msgid "Stock Settings"
msgstr ""
#: templates/InvenTree/settings/user.html:18
-#: templates/js/translated/helpers.js:26
-msgid "Edit"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:20
#: 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:31
+#: templates/InvenTree/settings/user.html:22
+#: templates/js/translated/helpers.js:26
+msgid "Edit"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:32
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:35
+#: templates/InvenTree/settings/user.html:36
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:39
+#: templates/InvenTree/settings/user.html:40
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:54
+#: templates/InvenTree/settings/user.html:55
msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:74
+#: templates/InvenTree/settings/user.html:75
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:76
+#: templates/InvenTree/settings/user.html:77
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:78
+#: templates/InvenTree/settings/user.html:79
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:84
+#: templates/InvenTree/settings/user.html:85
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:85
+#: templates/InvenTree/settings/user.html:86
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:86
-#: templates/InvenTree/settings/user.html:153
+#: templates/InvenTree/settings/user.html:87
+#: templates/InvenTree/settings/user.html:154
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
+#: templates/InvenTree/settings/user.html:94
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:94
+#: templates/InvenTree/settings/user.html:95
msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:101
+#: templates/InvenTree/settings/user.html:102
msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:111
+#: templates/InvenTree/settings/user.html:112
msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:113
+#: templates/InvenTree/settings/user.html:114
msgid "Add Email"
msgstr ""
-#: templates/InvenTree/settings/user.html:123
+#: templates/InvenTree/settings/user.html:124
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:128
+#: templates/InvenTree/settings/user.html:129
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:162
+#: templates/InvenTree/settings/user.html:163
msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:167
+#: templates/InvenTree/settings/user.html:168
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:177
-msgid "Language Settings"
+#: templates/InvenTree/settings/user.html:179
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:185
+msgid "Log out active sessions (except this one)"
msgstr ""
#: templates/InvenTree/settings/user.html:186
-msgid "Select language"
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:195
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:196
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:200
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:201
+msgid "Device"
msgstr ""
#: templates/InvenTree/settings/user.html:202
-#, python-format
-msgid "%(lang_translated)s%% translated"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:204
-msgid "No translations available"
+msgid "Last Activity"
msgstr ""
#: templates/InvenTree/settings/user.html:211
-msgid "Set Language"
+#, python-format
+msgid "%(time)s ago (this session)"
msgstr ""
#: templates/InvenTree/settings/user.html:213
-msgid "Some languages are not complete"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:215
-msgid "Show only sufficent"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "and hidden."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "Show them too"
+#, python-format
+msgid "%(time)s ago"
msgstr ""
#: templates/InvenTree/settings/user.html:224
-msgid "Help the translation efforts!"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:225
-#, 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:233
msgid "Do you really want to remove the selected email address?"
msgstr ""
@@ -6422,6 +6393,52 @@ msgstr ""
msgid "Set Theme"
msgstr ""
+#: templates/InvenTree/settings/user_display.html:54
+msgid "Language Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:63
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:79
+#, python-format
+msgid "%(lang_translated)s%% translated"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:81
+msgid "No translations available"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:88
+msgid "Set Language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:91
+msgid "Some languages are not complete"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:93
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:101
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:102
+#, 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_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6619,6 +6636,14 @@ msgstr ""
msgid "View in administration panel"
msgstr ""
+#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54
+msgid "Add Link"
+msgstr ""
+
+#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36
+msgid "Add Attachment"
+msgstr ""
+
#: templates/base.html:96
msgid "Server Restart Required"
msgstr ""
@@ -6702,154 +6727,87 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/report.js:47 templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/report.js:55 templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/report.js:70 templates/js/translated/report.js:90
-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:594
-msgid "Select Stock Items"
-msgstr ""
-
-#: templates/js/report.js:99 templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:116 templates/js/report.js:169
-#: templates/js/report.js:223 templates/js/report.js:277
-#: templates/js/report.js:331 templates/js/translated/report.js:136
-#: 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 ""
-
-#: templates/js/report.js:117 templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/report.js:152 templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/report.js:153 templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: 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/build.js:1333
-#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
-#: templates/js/report.js:206 templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:224 templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/report.js:259 templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/report.js:260 templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/report.js:278 templates/js/report.js:332
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/report.js:313 templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/report.js:314 templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:191
+#: templates/js/translated/api.js:192
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:192
+#: templates/js/translated/api.js:193
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:215
+#: templates/js/translated/api.js:216
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:216
+#: templates/js/translated/api.js:217
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:27
+#: templates/js/translated/attachment.js:76
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:95
-msgid "Upload Date"
+#: templates/js/translated/attachment.js:98
+msgid "Edit Attachment"
msgstr ""
#: templates/js/translated/attachment.js:108
+msgid "Confirm Delete"
+msgstr ""
+
+#: templates/js/translated/attachment.js:109
+msgid "Delete Attachment"
+msgstr ""
+
+#: templates/js/translated/attachment.js:165
+msgid "Upload Date"
+msgstr ""
+
+#: templates/js/translated/attachment.js:178
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:115
+#: templates/js/translated/attachment.js:185
msgid "Delete attachment"
msgstr ""
@@ -6910,7 +6868,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:600
msgid "Remove stock item"
msgstr ""
@@ -7005,7 +6963,7 @@ msgid "View BOM"
msgstr ""
#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1320
msgid "Actions"
msgstr ""
@@ -7097,7 +7055,7 @@ msgstr ""
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1194
msgid "Location not specified"
msgstr ""
@@ -7106,12 +7064,12 @@ msgid "No active build outputs found"
msgstr ""
#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1305
+#: templates/js/translated/order.js:1327
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1306
+#: templates/js/translated/order.js:1328
msgid "Delete stock allocation"
msgstr ""
@@ -7132,11 +7090,11 @@ msgid "Quantity Per"
msgstr ""
#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1557
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1611
msgid "Build stock"
msgstr ""
@@ -7144,7 +7102,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1604
msgid "Allocate stock"
msgstr ""
@@ -7152,6 +7110,11 @@ msgstr ""
msgid "Specify stock allocation quantity"
msgstr ""
+#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
+#: templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
@@ -7181,8 +7144,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
-#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
-#: templates/js/translated/stock.js:1841
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1094
+#: templates/js/translated/stock.js:1871
msgid "Select"
msgstr ""
@@ -7190,7 +7153,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2090
msgid "No user information"
msgstr ""
@@ -7332,45 +7295,45 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
-#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
+#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365
+#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:351
+#: templates/js/translated/forms.js:352
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:366
+#: templates/js/translated/forms.js:367
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:380
+#: templates/js/translated/forms.js:381
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:394
+#: templates/js/translated/forms.js:395
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:679
+#: templates/js/translated/forms.js:680
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/js/translated/forms.js:1072 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1457
+#: templates/js/translated/forms.js:1463
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1661
+#: templates/js/translated/forms.js:1667
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1878
+#: templates/js/translated/forms.js:1884
msgid "Clear input"
msgstr ""
@@ -7382,6 +7345,11 @@ msgstr ""
msgid "NO"
msgstr ""
+#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
+#: templates/js/translated/stock.js:624
+msgid "Select Stock Items"
+msgstr ""
+
#: templates/js/translated/label.js:30
msgid "Stock item(s) must be selected before printing labels"
msgstr ""
@@ -7534,11 +7502,11 @@ msgstr ""
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:423
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:424
msgid "Select file format"
msgstr ""
@@ -7554,7 +7522,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1673
msgid "Stock Status"
msgstr ""
@@ -7582,100 +7550,104 @@ msgstr ""
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1063
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
+#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
+#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:801
+#: templates/js/translated/order.js:823
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
+#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:904 templates/js/translated/order.js:1492
#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+#: templates/js/translated/order.js:919 templates/js/translated/order.js:1508
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
+#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:976
+#: templates/js/translated/order.js:998
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:980
+#: templates/js/translated/order.js:1002
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1017
+#: templates/js/translated/order.js:1039
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1055
+#: templates/js/translated/order.js:1077
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1133
+#: templates/js/translated/order.js:1155
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1226
+#: templates/js/translated/order.js:1248
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1244
+#: templates/js/translated/order.js:1265
+msgid "Confirm Delete Operation"
+msgstr ""
+
+#: templates/js/translated/order.js:1266
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1308
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1535
+#: templates/js/translated/order.js:1557
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1579
+#: templates/js/translated/order.js:1601
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1585
+#: templates/js/translated/order.js:1607
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
+#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1596
+#: templates/js/translated/order.js:1618
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1719
+#: templates/js/translated/order.js:1741
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1779
+#: templates/js/translated/order.js:1801
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1793
+#: templates/js/translated/order.js:1815
msgid "No matching line items"
msgstr ""
@@ -7825,7 +7797,7 @@ msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
-#: templates/js/translated/stock.js:1802
+#: templates/js/translated/stock.js:1832
msgid "Display as list"
msgstr ""
@@ -7833,7 +7805,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1851
msgid "Display as tree"
msgstr ""
@@ -7841,7 +7813,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1895
msgid "Path"
msgstr ""
@@ -7849,11 +7821,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:816
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:817
msgid "Delete test result"
msgstr ""
@@ -7892,268 +7864,342 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:136 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 ""
+
+#: templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
#: templates/js/translated/stock.js:70
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:90
+#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167
+msgid "Next available serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169
+msgid "Latest serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:104
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:126
+#: templates/js/translated/stock.js:140
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:189
+#: templates/js/translated/stock.js:180
+msgid "This part cannot be serialized"
+msgstr ""
+
+#: templates/js/translated/stock.js:219
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:195
+#: templates/js/translated/stock.js:225
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:338
+#: templates/js/translated/stock.js:368
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:351
+#: templates/js/translated/stock.js:381
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:420
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:401
+#: templates/js/translated/stock.js:431
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:402
+#: templates/js/translated/stock.js:432
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:444
+#: templates/js/translated/stock.js:474
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:445
+#: templates/js/translated/stock.js:475
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:451
+#: templates/js/translated/stock.js:481
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:452
+#: templates/js/translated/stock.js:482
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:486
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:487
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:491
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:462 users/models.py:200
+#: templates/js/translated/stock.js:492 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:466 templates/stock_table.html:56
+#: templates/js/translated/stock.js:496 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:595
+#: templates/js/translated/stock.js:625
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:753
+#: templates/js/translated/stock.js:783
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:755
+#: templates/js/translated/stock.js:785
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:760
+#: templates/js/translated/stock.js:790
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:812
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:808
+#: templates/js/translated/stock.js:838
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:895
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:1002
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:1006
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:1010
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:984
+#: templates/js/translated/stock.js:1014
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:990
+#: templates/js/translated/stock.js:1020
msgid "No stock location set"
msgstr "Geen voorraadlocatie ingesteld"
-#: templates/js/translated/stock.js:1148
+#: templates/js/translated/stock.js:1178
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1153
+#: templates/js/translated/stock.js:1183
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1156
+#: templates/js/translated/stock.js:1186
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1160
+#: templates/js/translated/stock.js:1190
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1162
+#: templates/js/translated/stock.js:1192
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1166
+#: templates/js/translated/stock.js:1196
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1170
+#: templates/js/translated/stock.js:1200
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1177
+#: templates/js/translated/stock.js:1207
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1179
+#: templates/js/translated/stock.js:1209
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1181
+#: templates/js/translated/stock.js:1211
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1185
+#: templates/js/translated/stock.js:1215
#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1235
+#: templates/js/translated/stock.js:1265
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1308
+#: templates/js/translated/stock.js:1338
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1346
+#: templates/js/translated/stock.js:1376
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
+#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1455
+#: templates/js/translated/stock.js:1485
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1482
+#: templates/js/translated/stock.js:1512
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1484
+#: templates/js/translated/stock.js:1514
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1658
+#: templates/js/translated/stock.js:1688
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1672
+#: templates/js/translated/stock.js:1702
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1673
+#: templates/js/translated/stock.js:1703
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1897
+#: templates/js/translated/stock.js:1927
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1944
+#: templates/js/translated/stock.js:1974
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1963
+#: templates/js/translated/stock.js:1993
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1982
+#: templates/js/translated/stock.js:2012
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2000
+#: templates/js/translated/stock.js:2030
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2023
+#: templates/js/translated/stock.js:2053
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2061
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2072
+#: templates/js/translated/stock.js:2102
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2073
+#: templates/js/translated/stock.js:2103
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2124
+#: templates/js/translated/stock.js:2154
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
-#: templates/js/translated/stock.js:2175
+#: templates/js/translated/stock.js:2205
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po
index 2a8d5785ec..379bd5150e 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-11-25 04:46+0000\n"
-"PO-Revision-Date: 2021-11-25 05:07\n"
+"POT-Creation-Date: 2021-11-30 21:49+0000\n"
+"PO-Revision-Date: 2021-11-30 21:51\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
"Language: no_NO\n"
@@ -36,7 +36,7 @@ msgstr "Oppgi dato"
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:594
+#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr "Bekreft"
@@ -114,99 +114,121 @@ 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:109 stock/models.py:1874
+#: InvenTree/models.py:114
+msgid "Missing file"
+msgstr ""
+
+#: InvenTree/models.py:115
+msgid "Missing external link"
+msgstr ""
+
+#: InvenTree/models.py:126 stock/models.py:1874
+#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr "Vedlegg"
-#: InvenTree/models.py:110
+#: InvenTree/models.py:127
msgid "Select file to attach"
msgstr "Velg fil å legge ved"
-#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
+#: InvenTree/models.py:133 company/models.py:131 company/models.py:348
+#: company/models.py:564 order/models.py:163 part/models.py:797
+#: report/templates/report/inventree_build_order_base.html:165
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
+msgid "Link"
+msgstr ""
+
+#: InvenTree/models.py:134 build/models.py:330 part/models.py:798
+#: stock/models.py:540
+msgid "Link to external URL"
+msgstr ""
+
+#: InvenTree/models.py:137 templates/js/translated/attachment.js:161
msgid "Comment"
msgstr "Kommenter"
-#: InvenTree/models.py:112
+#: InvenTree/models.py:137
msgid "File comment"
msgstr "Kommentar til fil"
-#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185
#: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:2054
+#: report/templates/report/inventree_test_report_base.html:96
+#: templates/js/translated/stock.js:2084
msgid "User"
msgstr "Bruker"
-#: InvenTree/models.py:122
+#: InvenTree/models.py:147
msgid "upload date"
msgstr "opplastet dato"
-#: InvenTree/models.py:142
+#: InvenTree/models.py:170
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:165
+#: InvenTree/models.py:193
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:175
+#: InvenTree/models.py:203
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:178
+#: InvenTree/models.py:206
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:185
+#: InvenTree/models.py:213
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:192
+#: InvenTree/models.py:220
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:227
+#: InvenTree/models.py:255
msgid "Invalid choice"
msgstr "Ugyldig valg"
-#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: InvenTree/models.py:271 InvenTree/models.py:272 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
#: part/templates/part/detail.html:25 report/models.py:181
#: templates/InvenTree/settings/settings.html:259
#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
-#: templates/js/translated/stock.js:1847
+#: templates/js/translated/stock.js:1877
msgid "Name"
msgstr "Navn"
-#: InvenTree/models.py:250 build/models.py:207
+#: InvenTree/models.py:278 build/models.py:207
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:80
#: company/templates/company/supplier_part.html:81 label/models.py:119
#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:551 report/models.py:590
+#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
#: templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
-#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/order.js:855 templates/js/translated/order.js:1091
#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
-#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
-#: templates/js/translated/stock.js:1904
+#: templates/js/translated/stock.js:1151 templates/js/translated/stock.js:1889
+#: templates/js/translated/stock.js:1934
msgid "Description"
msgstr "Beskrivelse"
-#: InvenTree/models.py:251
+#: InvenTree/models.py:279
msgid "Description (optional)"
msgstr "Beskrivelse (valgfritt)"
-#: InvenTree/models.py:259
+#: InvenTree/models.py:287
msgid "parent"
msgstr ""
@@ -214,87 +236,87 @@ msgstr ""
msgid "Must be a valid number"
msgstr "Nummer må være gyldig"
-#: InvenTree/serializers.py:251
+#: InvenTree/serializers.py:285
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:670
msgid "German"
msgstr "Tysk"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:671
msgid "Greek"
msgstr "Gresk"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:672
msgid "English"
msgstr "Engelsk"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:673
msgid "Spanish"
msgstr "Spansk"
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:674
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:675
msgid "French"
msgstr "Fransk"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:676
msgid "Hebrew"
msgstr "Hebraisk"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr "Italiensk"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr "Japansk"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr "Koreansk"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr "Nederlandsk"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr "Norsk"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr "Polsk"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:683
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:684
msgid "Russian"
msgstr "Russisk"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:685
msgid "Swedish"
msgstr "Svensk"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:686
msgid "Thai"
msgstr "Thailandsk"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:687
msgid "Turkish"
msgstr "Tyrkisk"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:688
msgid "Vietnamese"
msgstr "Vietnamesisk"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:689
msgid "Chinese"
msgstr "Kinesisk"
@@ -479,27 +501,27 @@ msgstr ""
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:536
+#: InvenTree/views.py:538
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:585
+#: InvenTree/views.py:587
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
+#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
+#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:630
+#: InvenTree/views.py:632
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:863 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:101
msgid "System Information"
msgstr ""
@@ -552,12 +574,13 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
+#: part/templates/part/detail.html:1076 part/templates/part/detail.html:1162
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:77
+#: report/templates/report/inventree_test_report_base.html:81
+#: report/templates/report/inventree_test_report_base.html:139
#: stock/forms.py:156 stock/serializers.py:286
#: stock/templates/stock/item_base.html:256
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
@@ -565,12 +588,12 @@ msgstr ""
#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
-#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
-#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/order.js:892 templates/js/translated/order.js:1205
+#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290
+#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479
#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
-#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
-#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377
+#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171
msgid "Quantity"
msgstr ""
@@ -579,8 +602,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:307 templates/js/translated/stock.js:194
-#: templates/js/translated/stock.js:348
+#: stock/serializers.py:307 templates/js/translated/stock.js:224
+#: templates/js/translated/stock.js:378
msgid "Serial Numbers"
msgstr ""
@@ -639,7 +662,7 @@ msgstr ""
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
+#: templates/js/translated/order.js:886 templates/js/translated/order.js:1473
msgid "Reference"
msgstr ""
@@ -677,10 +700,10 @@ msgstr ""
#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/order.js:840 templates/js/translated/order.js:1457
#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
-#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
-#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508
+#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159
msgid "Part"
msgstr ""
@@ -745,7 +768,7 @@ msgid "Batch code for this build output"
msgstr ""
#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1104
msgid "Creation Date"
msgstr ""
@@ -779,7 +802,7 @@ msgstr ""
#: order/templates/order/order_base.html:154
#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680
+#: templates/js/translated/build.js:1680 templates/js/translated/order.js:700
msgid "Responsible"
msgstr ""
@@ -795,27 +818,21 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:330 part/models.py:798 stock/models.py:540
-msgid "Link to external URL"
-msgstr ""
-
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:183 order/models.py:738
-#: order/templates/order/po_navbar.html:38
-#: order/templates/order/po_navbar.html:41
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:11 part/models.py:925
#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: stock/serializers.py:583 stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
-#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
-#: templates/js/translated/stock.js:1340
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:985
+#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1370
msgid "Notes"
msgstr ""
@@ -876,8 +893,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:340
#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
-#: templates/js/translated/stock.js:1990
+#: templates/js/translated/order.js:1178 templates/js/translated/order.js:1183
+#: templates/js/translated/stock.js:2020
msgid "Stock Item"
msgstr ""
@@ -917,16 +934,16 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
-#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: build/serializers.py:190 order/serializers.py:219 order/serializers.py:287
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685
#: stock/templates/stock/item_base.html:286
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
-#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
-#: templates/js/translated/stock.js:1931
+#: templates/js/translated/order.js:1190 templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251
+#: templates/js/translated/stock.js:1961
msgid "Location"
msgstr ""
@@ -936,11 +953,11 @@ msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:129
#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: order/serializers.py:240 stock/templates/stock/item_base.html:409
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
-#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
-#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+#: templates/js/translated/order.js:1096 templates/js/translated/stock.js:1226
+#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187
msgid "Status"
msgstr ""
@@ -969,7 +986,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:233
#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1060,7 +1077,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:140
#: report/templates/report/inventree_build_order_base.html:126
#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
-#: templates/js/translated/order.js:1087
+#: templates/js/translated/order.js:1109
msgid "Target Date"
msgstr ""
@@ -1096,7 +1113,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/order.js:1029
+#: templates/js/translated/order.js:1051
msgid "Sales Order"
msgstr ""
@@ -1171,7 +1188,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:974
msgid "Destination"
msgstr ""
@@ -1185,7 +1202,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:304
-#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/stock.js:1240 templates/js/translated/stock.js:2194
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:233
msgid "Batch"
@@ -1286,7 +1303,6 @@ msgid "Completed Build Outputs"
msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
-#: order/templates/order/po_navbar.html:35
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:52
@@ -1300,7 +1316,7 @@ msgstr ""
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:453
#: company/templates/company/detail.html:188
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
@@ -1312,45 +1328,11 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:448
-#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
-#: templates/attachment_button.html:4
-msgid "Add Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:467
-#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:142
-#: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
-msgid "Edit Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:474
-#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:149
-#: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
-#: templates/js/translated/order.js:1243
-msgid "Confirm Delete Operation"
-msgstr ""
-
-#: build/templates/build/detail.html:475
-#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:150
-#: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
-msgid "Delete Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:513
+#: build/templates/build/detail.html:477
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:514
+#: build/templates/build/detail.html:478
msgid "All untracked stock items have been allocated"
msgstr ""
@@ -1466,7 +1448,7 @@ msgstr ""
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:34 templates/js/translated/attachment.js:54
+#: common/forms.py:34
msgid "File"
msgstr ""
@@ -2168,13 +2150,11 @@ msgstr ""
msgid "Unit price at specified quantity"
msgstr ""
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
-#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
-#: part/views.py:854
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
+#: part/views.py:858
msgid "Upload File"
msgstr ""
@@ -2182,7 +2162,7 @@ msgstr ""
#: 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:213
-#: part/views.py:855
+#: part/views.py:859
msgid "Match Fields"
msgstr ""
@@ -2200,13 +2180,13 @@ msgstr ""
#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:40
+#: order/templates/order/order_wizard/po_upload.html:47
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:43
+#: part/templates/part/import_wizard/part_upload.html:45
msgid "Previous Step"
msgstr ""
@@ -2252,7 +2232,7 @@ msgid "Contact phone number"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:102
-#: templates/InvenTree/settings/user.html:46
+#: templates/InvenTree/settings/user.html:47
msgid "Email"
msgstr ""
@@ -2268,14 +2248,6 @@ msgstr ""
msgid "Point of contact"
msgstr ""
-#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:163 part/models.py:797
-#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:537
-#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
-msgid "Link"
-msgstr ""
-
#: company/models.py:131
msgid "Link to external company information"
msgstr ""
@@ -2343,7 +2315,7 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:97
#: company/templates/company/supplier_part.html:112
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:874
#: templates/js/translated/part.js:240
msgid "MPN"
msgstr ""
@@ -2372,9 +2344,9 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:90
+#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:1867 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878
msgid "Value"
msgstr ""
@@ -2413,7 +2385,7 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:98
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:861
#: templates/js/translated/part.js:221
msgid "SKU"
msgstr ""
@@ -2450,7 +2422,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:119
#: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1366
msgid "Packaging"
msgstr ""
@@ -2515,8 +2487,8 @@ msgstr ""
#: company/templates/company/company_base.html:126 order/models.py:567
#: order/templates/order/sales_order_base.html:114 stock/models.py:525
#: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
-#: templates/js/translated/stock.js:1972
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1073
+#: templates/js/translated/stock.js:2002
msgid "Customer"
msgstr ""
@@ -2721,7 +2693,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:974
+#: part/templates/part/detail.html:976
msgid "Add Parameter"
msgstr ""
@@ -2752,7 +2724,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:492
#: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1323
msgid "Supplier Part"
msgstr ""
@@ -2778,7 +2750,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
-#: templates/js/translated/stock.js:324
+#: templates/js/translated/stock.js:354
msgid "New Stock Item"
msgstr ""
@@ -2799,7 +2771,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1713
+#: part/templates/part/prices.html:271 part/views.py:1717
msgid "Add Price Break"
msgstr ""
@@ -2807,11 +2779,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1775
+#: company/templates/company/supplier_part.html:224 part/views.py:1779
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1761
+#: company/templates/company/supplier_part.html:238 part/views.py:1765
msgid "Edit Price Break"
msgstr ""
@@ -2831,8 +2803,8 @@ msgstr ""
#: templates/InvenTree/settings/sidebar.html:40
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
-#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
-#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:509
+#: templates/js/translated/stock.js:1162 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2855,7 +2827,7 @@ msgstr ""
#: stock/templates/stock/location.html:132
#: stock/templates/stock/location.html:144
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1901
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2885,24 +2857,24 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:580
+#: company/views.py:129 part/views.py:584
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:612
+#: company/views.py:158 part/views.py:616
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:619
+#: company/views.py:165 part/views.py:623
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:628
+#: company/views.py:174 part/views.py:632
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/api.py:57 report/api.py:201
+#: label/api.py:57 report/api.py:203
msgid "No valid objects provided to template"
msgstr ""
@@ -2959,7 +2931,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
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
+#: report/models.py:322 report/models.py:459 report/models.py:497
msgid "Filters"
msgstr ""
@@ -3089,7 +3061,7 @@ msgstr ""
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1092
+#: order/models.py:582 templates/js/translated/order.js:1114
msgid "Shipment Date"
msgstr ""
@@ -3114,7 +3086,7 @@ msgid "Line item notes"
msgstr ""
#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1144
+#: templates/js/translated/order.js:1166
msgid "Order"
msgstr ""
@@ -3122,8 +3094,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:325
-#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1300
+#: templates/js/translated/stock.js:1983
msgid "Purchase Order"
msgstr ""
@@ -3133,7 +3105,7 @@ msgstr ""
#: order/models.py:797 order/templates/order/order_base.html:147
#: order/templates/order/sales_order_base.html:154
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:954
msgid "Received"
msgstr ""
@@ -3143,7 +3115,7 @@ msgstr ""
#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1324
+#: templates/js/translated/stock.js:1354
msgid "Purchase Price"
msgstr ""
@@ -3204,47 +3176,47 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:167
+#: order/serializers.py:169
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:202
+#: order/serializers.py:204
msgid "Line Item"
msgstr ""
-#: order/serializers.py:208
+#: order/serializers.py:210
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:286
+#: order/serializers.py:220 order/serializers.py:288
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:242
+#: order/serializers.py:244
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:243
+#: order/serializers.py:245
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:260
+#: order/serializers.py:262
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:298
+#: order/serializers.py:300
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:315
+#: order/serializers.py:317
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:328
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:568
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3390,19 +3362,23 @@ msgstr ""
msgid "Select Supplier Part"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:11
+#: order/templates/order/order_wizard/po_upload.html:8
+msgid "Return to Orders"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:17
msgid "Upload File for Purchase Order"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:18
+#: order/templates/order/order_wizard/po_upload.html:25
#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:21
+#: part/templates/part/import_wizard/part_upload.html:23
#, python-format
msgid "Step %(step)s of %(count)s"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:48
+#: order/templates/order/order_wizard/po_upload.html:55
msgid "Order is already processed. Files cannot be uploaded."
msgstr ""
@@ -3445,7 +3421,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:695 templates/js/translated/order.js:1097
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1119
msgid "Items"
msgstr ""
@@ -3463,31 +3439,6 @@ msgstr ""
msgid "Select a purchase order for %(name)s"
msgstr ""
-#: order/templates/order/po_attachments.html:12
-#: order/templates/order/po_navbar.html:32
-msgid "Purchase Order Attachments"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:15
-#: part/templates/part/part_sidebar.html:8
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:26
-msgid "Received Stock Items"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:29
-#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
#: order/templates/order/po_sidebar.html:5
#: order/templates/order/so_sidebar.html:5
#: report/templates/report/inventree_po_report.html:85
@@ -3504,9 +3455,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:216
+#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:191
+#: order/templates/order/sales_order_detail.html:157
msgid "Add Line Item"
msgstr ""
@@ -3518,6 +3469,10 @@ msgstr ""
msgid "Receive Items"
msgstr ""
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
#: order/templates/order/purchase_order_detail.html:76
#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
@@ -3546,7 +3501,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:121
-#: templates/js/translated/order.js:1064
+#: templates/js/translated/order.js:1086
msgid "Customer Reference"
msgstr ""
@@ -3700,19 +3655,19 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:731
+#: part/api.py:758
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:735
+#: part/api.py:762
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:750
+#: part/api.py:777
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
+#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
msgid "This field is required"
msgstr ""
@@ -3926,7 +3881,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/detail.html:45
#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
-#: templates/js/translated/stock.js:1104
+#: templates/js/translated/stock.js:1134
msgid "IPN"
msgstr ""
@@ -4047,7 +4002,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1467
-#: templates/js/translated/stock.js:828
+#: templates/js/translated/stock.js:858
msgid "Test Name"
msgstr ""
@@ -4552,7 +4507,7 @@ msgstr ""
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:365 part/views.py:751
+#: part/templates/part/detail.html:365 part/views.py:755
msgid "Validate BOM"
msgstr ""
@@ -4604,44 +4559,48 @@ msgstr ""
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:770
+#: part/templates/part/detail.html:772
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:867
+#: part/templates/part/detail.html:869
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:924
+#: part/templates/part/detail.html:926
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:1076
+#: part/templates/part/detail.html:1039
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1088
+#: part/templates/part/detail.html:1051
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1100
+#: part/templates/part/detail.html:1063
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1189
+#: part/templates/part/detail.html:1152
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:51
+#: part/templates/part/import_wizard/part_upload.html:53
msgid "Unsuffitient privileges."
msgstr ""
-#: part/templates/part/import_wizard/part_upload.html:14
+#: part/templates/part/import_wizard/part_upload.html:8
+msgid "Return to Parts"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:16
msgid "Import Parts from File"
msgstr ""
@@ -4751,7 +4710,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1546
#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
@@ -4846,6 +4805,11 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1949
+msgid "Details"
+msgstr ""
+
#: part/templates/part/part_sidebar.html:13
msgid "Variants"
msgstr ""
@@ -4949,7 +4913,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1784
+#: part/templates/part/prices.html:215 part/views.py:1788
msgid "Add Internal Price Break"
msgstr ""
@@ -5005,110 +4969,115 @@ msgstr ""
msgid "Match References"
msgstr ""
-#: part/views.py:498
+#: part/views.py:502
msgid "None"
msgstr ""
-#: part/views.py:557
+#: part/views.py:561
msgid "Part QR Code"
msgstr ""
-#: part/views.py:659
+#: part/views.py:663
msgid "Select Part Image"
msgstr ""
-#: part/views.py:685
+#: part/views.py:689
msgid "Updated part image"
msgstr ""
-#: part/views.py:688
+#: part/views.py:692
msgid "Part image not found"
msgstr ""
-#: part/views.py:700
+#: part/views.py:704
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:730
+#: part/views.py:734
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:772
+#: part/views.py:776
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:783
+#: part/views.py:787
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:856
+#: part/views.py:860
msgid "Match Parts"
msgstr ""
-#: part/views.py:1192
+#: part/views.py:1196
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1244
+#: part/views.py:1248
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1251
+#: part/views.py:1255
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1260
+#: part/views.py:1264
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1409
+#: part/views.py:1413
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1419
+#: part/views.py:1423
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1426
+#: part/views.py:1430
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1485 templates/js/translated/part.js:310
+#: part/views.py:1489 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1523
+#: part/views.py:1527
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1529
+#: part/views.py:1533
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1538
+#: part/views.py:1542
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1639
+#: part/views.py:1643
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1695
+#: part/views.py:1699
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1717
+#: part/views.py:1721
msgid "Added new price break"
msgstr ""
-#: part/views.py:1793
+#: part/views.py:1797
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1801
+#: part/views.py:1805
msgid "Delete Internal Price Break"
msgstr ""
+#: report/api.py:234 report/api.py:278
+#, python-brace-format
+msgid "Template file '{filename}' is missing or does not exist"
+msgstr ""
+
#: report/models.py:182
msgid "Template name"
msgstr ""
@@ -5145,51 +5114,51 @@ msgstr ""
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:380
+#: report/models.py:382
msgid "Build Filters"
msgstr ""
-#: report/models.py:381
+#: report/models.py:383
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:423
+#: report/models.py:425
msgid "Part Filters"
msgstr ""
-#: report/models.py:424
+#: report/models.py:426
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:458
+#: report/models.py:460
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:496
+#: report/models.py:498
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:546
+#: report/models.py:548
msgid "Snippet"
msgstr ""
-#: report/models.py:547
+#: report/models.py:549
msgid "Report snippet file"
msgstr ""
-#: report/models.py:551
+#: report/models.py:553
msgid "Snippet file description"
msgstr ""
-#: report/models.py:586
+#: report/models.py:588
msgid "Asset"
msgstr ""
-#: report/models.py:587
+#: report/models.py:589
msgid "Report asset file"
msgstr ""
-#: report/models.py:590
+#: report/models.py:592
msgid "Asset file description"
msgstr ""
@@ -5201,49 +5170,59 @@ msgstr ""
msgid "Stock Item Test Report"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:75
+#: report/templates/report/inventree_test_report_base.html:79
#: stock/models.py:530 stock/templates/stock/item_base.html:238
#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
#: templates/js/translated/build.js:1013
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+#: templates/js/translated/order.js:1288 templates/js/translated/order.js:1377
msgid "Serial Number"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:83
+#: report/templates/report/inventree_test_report_base.html:88
msgid "Test Results"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:93
#: stock/models.py:1855
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:89
+#: report/templates/report/inventree_test_report_base.html:94
#: stock/models.py:1861
msgid "Result"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917
msgid "Date"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:103
+#: report/templates/report/inventree_test_report_base.html:108
msgid "Pass"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:105
+#: report/templates/report/inventree_test_report_base.html:110
msgid "Fail"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:123
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:137
+#: templates/js/translated/stock.js:2177
+msgid "Serial"
+msgstr ""
+
#: stock/api.py:422
msgid "Quantity is required"
msgstr ""
#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
#: stock/templates/stock/item_base.html:382
-#: templates/js/translated/stock.js:1246
+#: templates/js/translated/stock.js:1276
msgid "Expiry Date"
msgstr ""
@@ -5505,7 +5484,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:319 stock/serializers.py:687
+#: stock/serializers.py:319 stock/serializers.py:686
msgid "Destination stock location"
msgstr ""
@@ -5517,15 +5496,15 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:557
+#: stock/serializers.py:556
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:585
+#: stock/serializers.py:584
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:595
+#: stock/serializers.py:594
msgid "A list of stock items must be provided"
msgstr ""
@@ -5570,15 +5549,15 @@ msgstr ""
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
+#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:363
+#: stock/templates/stock/item.html:324
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:377
+#: stock/templates/stock/item.html:338
msgid "Delete Test Result"
msgstr ""
@@ -5752,7 +5731,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:1259
+#: templates/js/translated/stock.js:1289
msgid "Last Updated"
msgstr ""
@@ -5768,7 +5747,7 @@ msgstr ""
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:505
msgid "Edit Stock Status"
msgstr ""
@@ -5885,10 +5864,6 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:12
-msgid "Installed Items"
-msgstr ""
-
#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
@@ -5967,7 +5942,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:618
+#: stock/views.py:760 templates/js/translated/stock.js:648
msgid "Confirm stock adjustment"
msgstr ""
@@ -5975,7 +5950,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:288
+#: stock/views.py:793 templates/js/translated/stock.js:318
msgid "Edit Stock Item"
msgstr ""
@@ -5987,7 +5962,7 @@ msgstr ""
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:268
+#: stock/views.py:1186 templates/js/translated/stock.js:298
msgid "Duplicate Stock Item"
msgstr ""
@@ -6164,11 +6139,11 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/po.html:9
+#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
-#: templates/InvenTree/settings/report.html:10
+#: templates/InvenTree/settings/report.html:8
#: templates/InvenTree/settings/user_reports.html:9
msgid "Report Settings"
msgstr ""
@@ -6221,7 +6196,7 @@ msgid "User Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:8
-#: templates/InvenTree/settings/user.html:11
+#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
@@ -6273,140 +6248,136 @@ msgid "Stock Settings"
msgstr ""
#: templates/InvenTree/settings/user.html:18
-#: templates/js/translated/helpers.js:26
-msgid "Edit"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:20
#: 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:31
+#: templates/InvenTree/settings/user.html:22
+#: templates/js/translated/helpers.js:26
+msgid "Edit"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:32
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:35
+#: templates/InvenTree/settings/user.html:36
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:39
+#: templates/InvenTree/settings/user.html:40
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:54
+#: templates/InvenTree/settings/user.html:55
msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:74
+#: templates/InvenTree/settings/user.html:75
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:76
+#: templates/InvenTree/settings/user.html:77
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:78
+#: templates/InvenTree/settings/user.html:79
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:84
+#: templates/InvenTree/settings/user.html:85
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:85
+#: templates/InvenTree/settings/user.html:86
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:86
-#: templates/InvenTree/settings/user.html:153
+#: templates/InvenTree/settings/user.html:87
+#: templates/InvenTree/settings/user.html:154
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
+#: templates/InvenTree/settings/user.html:94
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:94
+#: templates/InvenTree/settings/user.html:95
msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:101
+#: templates/InvenTree/settings/user.html:102
msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:111
+#: templates/InvenTree/settings/user.html:112
msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:113
+#: templates/InvenTree/settings/user.html:114
msgid "Add Email"
msgstr ""
-#: templates/InvenTree/settings/user.html:123
+#: templates/InvenTree/settings/user.html:124
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:128
+#: templates/InvenTree/settings/user.html:129
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:162
+#: templates/InvenTree/settings/user.html:163
msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:167
+#: templates/InvenTree/settings/user.html:168
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:177
-msgid "Language Settings"
+#: templates/InvenTree/settings/user.html:179
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:185
+msgid "Log out active sessions (except this one)"
msgstr ""
#: templates/InvenTree/settings/user.html:186
-msgid "Select language"
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:195
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:196
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:200
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:201
+msgid "Device"
msgstr ""
#: templates/InvenTree/settings/user.html:202
-#, python-format
-msgid "%(lang_translated)s%% translated"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:204
-msgid "No translations available"
+msgid "Last Activity"
msgstr ""
#: templates/InvenTree/settings/user.html:211
-msgid "Set Language"
+#, python-format
+msgid "%(time)s ago (this session)"
msgstr ""
#: templates/InvenTree/settings/user.html:213
-msgid "Some languages are not complete"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:215
-msgid "Show only sufficent"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "and hidden."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "Show them too"
+#, python-format
+msgid "%(time)s ago"
msgstr ""
#: templates/InvenTree/settings/user.html:224
-msgid "Help the translation efforts!"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:225
-#, 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:233
msgid "Do you really want to remove the selected email address?"
msgstr ""
@@ -6422,6 +6393,52 @@ msgstr ""
msgid "Set Theme"
msgstr ""
+#: templates/InvenTree/settings/user_display.html:54
+msgid "Language Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:63
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:79
+#, python-format
+msgid "%(lang_translated)s%% translated"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:81
+msgid "No translations available"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:88
+msgid "Set Language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:91
+msgid "Some languages are not complete"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:93
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:101
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:102
+#, 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_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6619,6 +6636,14 @@ msgstr ""
msgid "View in administration panel"
msgstr ""
+#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54
+msgid "Add Link"
+msgstr ""
+
+#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36
+msgid "Add Attachment"
+msgstr ""
+
#: templates/base.html:96
msgid "Server Restart Required"
msgstr ""
@@ -6702,154 +6727,87 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/report.js:47 templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/report.js:55 templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/report.js:70 templates/js/translated/report.js:90
-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:594
-msgid "Select Stock Items"
-msgstr ""
-
-#: templates/js/report.js:99 templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:116 templates/js/report.js:169
-#: templates/js/report.js:223 templates/js/report.js:277
-#: templates/js/report.js:331 templates/js/translated/report.js:136
-#: 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 ""
-
-#: templates/js/report.js:117 templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/report.js:152 templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/report.js:153 templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: 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/build.js:1333
-#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
-#: templates/js/report.js:206 templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:224 templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/report.js:259 templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/report.js:260 templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/report.js:278 templates/js/report.js:332
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/report.js:313 templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/report.js:314 templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:191
+#: templates/js/translated/api.js:192
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:192
+#: templates/js/translated/api.js:193
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:215
+#: templates/js/translated/api.js:216
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:216
+#: templates/js/translated/api.js:217
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:27
+#: templates/js/translated/attachment.js:76
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:95
-msgid "Upload Date"
+#: templates/js/translated/attachment.js:98
+msgid "Edit Attachment"
msgstr ""
#: templates/js/translated/attachment.js:108
+msgid "Confirm Delete"
+msgstr ""
+
+#: templates/js/translated/attachment.js:109
+msgid "Delete Attachment"
+msgstr ""
+
+#: templates/js/translated/attachment.js:165
+msgid "Upload Date"
+msgstr ""
+
+#: templates/js/translated/attachment.js:178
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:115
+#: templates/js/translated/attachment.js:185
msgid "Delete attachment"
msgstr ""
@@ -6910,7 +6868,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:600
msgid "Remove stock item"
msgstr ""
@@ -7005,7 +6963,7 @@ msgid "View BOM"
msgstr ""
#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1320
msgid "Actions"
msgstr ""
@@ -7097,7 +7055,7 @@ msgstr ""
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1194
msgid "Location not specified"
msgstr ""
@@ -7106,12 +7064,12 @@ msgid "No active build outputs found"
msgstr ""
#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1305
+#: templates/js/translated/order.js:1327
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1306
+#: templates/js/translated/order.js:1328
msgid "Delete stock allocation"
msgstr ""
@@ -7132,11 +7090,11 @@ msgid "Quantity Per"
msgstr ""
#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1557
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1611
msgid "Build stock"
msgstr ""
@@ -7144,7 +7102,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1604
msgid "Allocate stock"
msgstr ""
@@ -7152,6 +7110,11 @@ msgstr ""
msgid "Specify stock allocation quantity"
msgstr ""
+#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
+#: templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
@@ -7181,8 +7144,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
-#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
-#: templates/js/translated/stock.js:1841
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1094
+#: templates/js/translated/stock.js:1871
msgid "Select"
msgstr ""
@@ -7190,7 +7153,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2090
msgid "No user information"
msgstr ""
@@ -7332,45 +7295,45 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
-#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
+#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365
+#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:351
+#: templates/js/translated/forms.js:352
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:366
+#: templates/js/translated/forms.js:367
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:380
+#: templates/js/translated/forms.js:381
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:394
+#: templates/js/translated/forms.js:395
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:679
+#: templates/js/translated/forms.js:680
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/js/translated/forms.js:1072 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1457
+#: templates/js/translated/forms.js:1463
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1661
+#: templates/js/translated/forms.js:1667
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1878
+#: templates/js/translated/forms.js:1884
msgid "Clear input"
msgstr ""
@@ -7382,6 +7345,11 @@ msgstr ""
msgid "NO"
msgstr ""
+#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
+#: templates/js/translated/stock.js:624
+msgid "Select Stock Items"
+msgstr ""
+
#: templates/js/translated/label.js:30
msgid "Stock item(s) must be selected before printing labels"
msgstr ""
@@ -7534,11 +7502,11 @@ msgstr ""
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:423
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:424
msgid "Select file format"
msgstr ""
@@ -7554,7 +7522,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1673
msgid "Stock Status"
msgstr ""
@@ -7582,100 +7550,104 @@ msgstr ""
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1063
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
+#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
+#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:801
+#: templates/js/translated/order.js:823
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
+#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:904 templates/js/translated/order.js:1492
#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+#: templates/js/translated/order.js:919 templates/js/translated/order.js:1508
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
+#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:976
+#: templates/js/translated/order.js:998
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:980
+#: templates/js/translated/order.js:1002
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1017
+#: templates/js/translated/order.js:1039
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1055
+#: templates/js/translated/order.js:1077
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1133
+#: templates/js/translated/order.js:1155
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1226
+#: templates/js/translated/order.js:1248
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1244
+#: templates/js/translated/order.js:1265
+msgid "Confirm Delete Operation"
+msgstr ""
+
+#: templates/js/translated/order.js:1266
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1308
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1535
+#: templates/js/translated/order.js:1557
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1579
+#: templates/js/translated/order.js:1601
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1585
+#: templates/js/translated/order.js:1607
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
+#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1596
+#: templates/js/translated/order.js:1618
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1719
+#: templates/js/translated/order.js:1741
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1779
+#: templates/js/translated/order.js:1801
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1793
+#: templates/js/translated/order.js:1815
msgid "No matching line items"
msgstr ""
@@ -7825,7 +7797,7 @@ msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
-#: templates/js/translated/stock.js:1802
+#: templates/js/translated/stock.js:1832
msgid "Display as list"
msgstr ""
@@ -7833,7 +7805,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1851
msgid "Display as tree"
msgstr ""
@@ -7841,7 +7813,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1895
msgid "Path"
msgstr ""
@@ -7849,11 +7821,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:816
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:817
msgid "Delete test result"
msgstr ""
@@ -7892,268 +7864,342 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:136 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 ""
+
+#: templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
#: templates/js/translated/stock.js:70
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:90
+#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167
+msgid "Next available serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169
+msgid "Latest serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:104
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:126
+#: templates/js/translated/stock.js:140
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:189
+#: templates/js/translated/stock.js:180
+msgid "This part cannot be serialized"
+msgstr ""
+
+#: templates/js/translated/stock.js:219
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:195
+#: templates/js/translated/stock.js:225
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:338
+#: templates/js/translated/stock.js:368
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:351
+#: templates/js/translated/stock.js:381
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:420
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:401
+#: templates/js/translated/stock.js:431
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:402
+#: templates/js/translated/stock.js:432
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:444
+#: templates/js/translated/stock.js:474
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:445
+#: templates/js/translated/stock.js:475
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:451
+#: templates/js/translated/stock.js:481
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:452
+#: templates/js/translated/stock.js:482
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:486
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:487
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:491
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:462 users/models.py:200
+#: templates/js/translated/stock.js:492 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:466 templates/stock_table.html:56
+#: templates/js/translated/stock.js:496 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:595
+#: templates/js/translated/stock.js:625
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:753
+#: templates/js/translated/stock.js:783
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:755
+#: templates/js/translated/stock.js:785
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:760
+#: templates/js/translated/stock.js:790
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:812
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:808
+#: templates/js/translated/stock.js:838
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:895
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:1002
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:1006
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:1010
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:984
+#: templates/js/translated/stock.js:1014
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:990
+#: templates/js/translated/stock.js:1020
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1148
+#: templates/js/translated/stock.js:1178
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1153
+#: templates/js/translated/stock.js:1183
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1156
+#: templates/js/translated/stock.js:1186
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1160
+#: templates/js/translated/stock.js:1190
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1162
+#: templates/js/translated/stock.js:1192
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1166
+#: templates/js/translated/stock.js:1196
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1170
+#: templates/js/translated/stock.js:1200
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1177
+#: templates/js/translated/stock.js:1207
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1179
+#: templates/js/translated/stock.js:1209
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1181
+#: templates/js/translated/stock.js:1211
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1185
+#: templates/js/translated/stock.js:1215
#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1235
+#: templates/js/translated/stock.js:1265
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1308
+#: templates/js/translated/stock.js:1338
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1346
+#: templates/js/translated/stock.js:1376
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
+#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1455
+#: templates/js/translated/stock.js:1485
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1482
+#: templates/js/translated/stock.js:1512
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1484
+#: templates/js/translated/stock.js:1514
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1658
+#: templates/js/translated/stock.js:1688
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1672
+#: templates/js/translated/stock.js:1702
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1673
+#: templates/js/translated/stock.js:1703
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1897
+#: templates/js/translated/stock.js:1927
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1944
+#: templates/js/translated/stock.js:1974
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1963
+#: templates/js/translated/stock.js:1993
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1982
+#: templates/js/translated/stock.js:2012
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2000
+#: templates/js/translated/stock.js:2030
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2023
+#: templates/js/translated/stock.js:2053
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2061
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2072
+#: templates/js/translated/stock.js:2102
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2073
+#: templates/js/translated/stock.js:2103
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2124
+#: templates/js/translated/stock.js:2154
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
-#: templates/js/translated/stock.js:2175
+#: templates/js/translated/stock.js:2205
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po
index 5a2e275036..035a0f00a1 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-11-25 04:46+0000\n"
-"PO-Revision-Date: 2021-11-25 05:07\n"
+"POT-Creation-Date: 2021-11-30 21:49+0000\n"
+"PO-Revision-Date: 2021-11-30 21:52\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"Language: pl_PL\n"
@@ -36,7 +36,7 @@ msgstr "Wprowadź dane"
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:594
+#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr "Potwierdź"
@@ -74,7 +74,7 @@ msgstr ""
#: InvenTree/forms.py:234
msgid "Email address confirmation"
-msgstr ""
+msgstr "Potwierdzenie adresu email"
#: InvenTree/forms.py:254
msgid "You must type the same email each time."
@@ -114,99 +114,121 @@ 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:109 stock/models.py:1874
+#: InvenTree/models.py:114
+msgid "Missing file"
+msgstr ""
+
+#: InvenTree/models.py:115
+msgid "Missing external link"
+msgstr ""
+
+#: InvenTree/models.py:126 stock/models.py:1874
+#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr "Załącznik"
-#: InvenTree/models.py:110
+#: InvenTree/models.py:127
msgid "Select file to attach"
msgstr "Wybierz plik do załączenia"
-#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
+#: InvenTree/models.py:133 company/models.py:131 company/models.py:348
+#: company/models.py:564 order/models.py:163 part/models.py:797
+#: report/templates/report/inventree_build_order_base.html:165
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
+msgid "Link"
+msgstr "Łącze"
+
+#: InvenTree/models.py:134 build/models.py:330 part/models.py:798
+#: stock/models.py:540
+msgid "Link to external URL"
+msgstr "Link do zewnętrznego adresu URL"
+
+#: InvenTree/models.py:137 templates/js/translated/attachment.js:161
msgid "Comment"
msgstr "Komentarz"
-#: InvenTree/models.py:112
+#: InvenTree/models.py:137
msgid "File comment"
msgstr "Komentarz pliku"
-#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185
#: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:2054
+#: report/templates/report/inventree_test_report_base.html:96
+#: templates/js/translated/stock.js:2084
msgid "User"
msgstr "Użytkownik"
-#: InvenTree/models.py:122
+#: InvenTree/models.py:147
msgid "upload date"
msgstr "data przesłania"
-#: InvenTree/models.py:142
+#: InvenTree/models.py:170
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:165
+#: InvenTree/models.py:193
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:175
+#: InvenTree/models.py:203
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:178
+#: InvenTree/models.py:206
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:185
+#: InvenTree/models.py:213
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:192
+#: InvenTree/models.py:220
msgid "Error renaming file"
-msgstr ""
+msgstr "Błąd zmiany nazwy pliku"
-#: InvenTree/models.py:227
+#: InvenTree/models.py:255
msgid "Invalid choice"
msgstr "Błędny wybór"
-#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: InvenTree/models.py:271 InvenTree/models.py:272 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
#: part/templates/part/detail.html:25 report/models.py:181
#: templates/InvenTree/settings/settings.html:259
#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
-#: templates/js/translated/stock.js:1847
+#: templates/js/translated/stock.js:1877
msgid "Name"
msgstr "Nazwa"
-#: InvenTree/models.py:250 build/models.py:207
+#: InvenTree/models.py:278 build/models.py:207
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:80
#: company/templates/company/supplier_part.html:81 label/models.py:119
#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:551 report/models.py:590
+#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
#: templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
-#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/order.js:855 templates/js/translated/order.js:1091
#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
-#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
-#: templates/js/translated/stock.js:1904
+#: templates/js/translated/stock.js:1151 templates/js/translated/stock.js:1889
+#: templates/js/translated/stock.js:1934
msgid "Description"
msgstr "Opis"
-#: InvenTree/models.py:251
+#: InvenTree/models.py:279
msgid "Description (optional)"
msgstr "Opis (opcjonalny)"
-#: InvenTree/models.py:259
+#: InvenTree/models.py:287
msgid "parent"
msgstr "nadrzędny"
@@ -214,87 +236,87 @@ msgstr "nadrzędny"
msgid "Must be a valid number"
msgstr "Numer musi być prawidłowy"
-#: InvenTree/serializers.py:251
+#: InvenTree/serializers.py:285
msgid "Filename"
-msgstr ""
+msgstr "Nazwa pliku"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:670
msgid "German"
msgstr "Niemiecki"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:671
msgid "Greek"
msgstr "Grecki"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:672
msgid "English"
msgstr "Angielski"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:673
msgid "Spanish"
msgstr "Hiszpański"
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:674
msgid "Spanish (Mexican)"
-msgstr ""
+msgstr "Hiszpański (Meksyk)"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:675
msgid "French"
msgstr "Francuski"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:676
msgid "Hebrew"
msgstr "Hebrajski"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr "Włoski"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr "Japoński"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr "Koreański"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr "Holenderski"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr "Norweski"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr "Polski"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:683
msgid "Portugese"
-msgstr ""
+msgstr "Portugalski"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:684
msgid "Russian"
msgstr "Rosyjski"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:685
msgid "Swedish"
msgstr "Szwedzki"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:686
msgid "Thai"
msgstr "Tajski"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:687
msgid "Turkish"
msgstr "Turecki"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:688
msgid "Vietnamese"
msgstr "Wietnamski"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:689
msgid "Chinese"
msgstr "Chiński"
@@ -479,27 +501,27 @@ msgstr ""
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:536
+#: InvenTree/views.py:538
msgid "Delete Item"
msgstr "Usuń element"
-#: InvenTree/views.py:585
+#: InvenTree/views.py:587
msgid "Check box to confirm item deletion"
msgstr "Zaznacz pole aby potwierdzić usunięcie elementu"
-#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
+#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21
msgid "Edit User Information"
msgstr "Edytuj informacje użytkownika"
-#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
+#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr "Ustaw hasło"
-#: InvenTree/views.py:630
+#: InvenTree/views.py:632
msgid "Password fields must match"
msgstr "Hasła muszą być zgodne"
-#: InvenTree/views.py:863 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:101
msgid "System Information"
msgstr "Informacja systemowa"
@@ -552,12 +574,13 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
+#: part/templates/part/detail.html:1076 part/templates/part/detail.html:1162
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:77
+#: report/templates/report/inventree_test_report_base.html:81
+#: report/templates/report/inventree_test_report_base.html:139
#: stock/forms.py:156 stock/serializers.py:286
#: stock/templates/stock/item_base.html:256
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
@@ -565,12 +588,12 @@ msgstr ""
#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
-#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
-#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/order.js:892 templates/js/translated/order.js:1205
+#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290
+#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479
#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
-#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
-#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377
+#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171
msgid "Quantity"
msgstr "Ilość"
@@ -579,8 +602,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:307 templates/js/translated/stock.js:194
-#: templates/js/translated/stock.js:348
+#: stock/serializers.py:307 templates/js/translated/stock.js:224
+#: templates/js/translated/stock.js:378
msgid "Serial Numbers"
msgstr "Numer seryjny"
@@ -639,7 +662,7 @@ msgstr "Odwołanie do zamówienia wykonania"
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
+#: templates/js/translated/order.js:886 templates/js/translated/order.js:1473
msgid "Reference"
msgstr "Referencja"
@@ -677,10 +700,10 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana"
#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/order.js:840 templates/js/translated/order.js:1457
#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
-#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
-#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508
+#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159
msgid "Part"
msgstr "Część"
@@ -745,7 +768,7 @@ msgid "Batch code for this build output"
msgstr "Kod partii dla wyjścia budowy"
#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1104
msgid "Creation Date"
msgstr "Data utworzenia"
@@ -779,7 +802,7 @@ msgstr "Użytkownik, który wydał to zamówienie"
#: order/templates/order/order_base.html:154
#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680
+#: templates/js/translated/build.js:1680 templates/js/translated/order.js:700
msgid "Responsible"
msgstr "Odpowiedzialny"
@@ -795,27 +818,21 @@ msgstr "Użytkownik odpowiedzialny za to zamówienie budowy"
msgid "External Link"
msgstr "Link Zewnętrzny"
-#: build/models.py:330 part/models.py:798 stock/models.py:540
-msgid "Link to external URL"
-msgstr "Link do zewnętrznego adresu URL"
-
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:183 order/models.py:738
-#: order/templates/order/po_navbar.html:38
-#: order/templates/order/po_navbar.html:41
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:11 part/models.py:925
#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: stock/serializers.py:583 stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
-#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
-#: templates/js/translated/stock.js:1340
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:985
+#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1370
msgid "Notes"
msgstr "Uwagi"
@@ -876,8 +893,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:340
#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
-#: templates/js/translated/stock.js:1990
+#: templates/js/translated/order.js:1178 templates/js/translated/order.js:1183
+#: templates/js/translated/stock.js:2020
msgid "Stock Item"
msgstr "Element magazynowy"
@@ -917,16 +934,16 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
-#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: build/serializers.py:190 order/serializers.py:219 order/serializers.py:287
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685
#: stock/templates/stock/item_base.html:286
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
-#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
-#: templates/js/translated/stock.js:1931
+#: templates/js/translated/order.js:1190 templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251
+#: templates/js/translated/stock.js:1961
msgid "Location"
msgstr "Lokalizacja"
@@ -936,11 +953,11 @@ msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:129
#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: order/serializers.py:240 stock/templates/stock/item_base.html:409
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
-#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
-#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+#: templates/js/translated/order.js:1096 templates/js/translated/stock.js:1226
+#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187
msgid "Status"
msgstr "Status"
@@ -969,7 +986,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:233
#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
msgid "Quantity must be greater than zero"
msgstr "Ilość musi być większa niż zero"
@@ -1060,7 +1077,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:140
#: report/templates/report/inventree_build_order_base.html:126
#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
-#: templates/js/translated/order.js:1087
+#: templates/js/translated/order.js:1109
msgid "Target Date"
msgstr "Data docelowa"
@@ -1096,7 +1113,7 @@ msgstr "Zakończone"
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/order.js:1029
+#: templates/js/translated/order.js:1051
msgid "Sales Order"
msgstr "Zamówienie zakupu"
@@ -1171,7 +1188,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:974
msgid "Destination"
msgstr "Przeznaczenie"
@@ -1185,7 +1202,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:304
-#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/stock.js:1240 templates/js/translated/stock.js:2194
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:233
msgid "Batch"
@@ -1286,7 +1303,6 @@ msgid "Completed Build Outputs"
msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
-#: order/templates/order/po_navbar.html:35
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:52
@@ -1300,7 +1316,7 @@ msgstr "Załączniki"
msgid "Build Notes"
msgstr "Notatki tworzenia"
-#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:453
#: company/templates/company/detail.html:188
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
@@ -1312,45 +1328,11 @@ msgstr "Notatki tworzenia"
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:448
-#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
-#: templates/attachment_button.html:4
-msgid "Add Attachment"
-msgstr "Dodaj załącznik"
-
-#: build/templates/build/detail.html:467
-#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:142
-#: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
-msgid "Edit Attachment"
-msgstr "Edytuj załącznik"
-
-#: build/templates/build/detail.html:474
-#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:149
-#: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
-#: templates/js/translated/order.js:1243
-msgid "Confirm Delete Operation"
-msgstr ""
-
-#: build/templates/build/detail.html:475
-#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:150
-#: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
-msgid "Delete Attachment"
-msgstr "Usuń załącznik"
-
-#: build/templates/build/detail.html:513
+#: build/templates/build/detail.html:477
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:514
+#: build/templates/build/detail.html:478
msgid "All untracked stock items have been allocated"
msgstr ""
@@ -1466,7 +1448,7 @@ msgstr ""
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:34 templates/js/translated/attachment.js:54
+#: common/forms.py:34
msgid "File"
msgstr ""
@@ -2168,13 +2150,11 @@ msgstr "Cena"
msgid "Unit price at specified quantity"
msgstr ""
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
-#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
-#: part/views.py:854
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
+#: part/views.py:858
msgid "Upload File"
msgstr "Wyślij plik"
@@ -2182,7 +2162,7 @@ msgstr "Wyślij plik"
#: 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:213
-#: part/views.py:855
+#: part/views.py:859
msgid "Match Fields"
msgstr ""
@@ -2200,13 +2180,13 @@ msgstr ""
#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:40
+#: order/templates/order/order_wizard/po_upload.html:47
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:43
+#: part/templates/part/import_wizard/part_upload.html:45
msgid "Previous Step"
msgstr ""
@@ -2252,7 +2232,7 @@ msgid "Contact phone number"
msgstr "Numer telefonu kontaktowego"
#: company/models.py:125 company/templates/company/company_base.html:102
-#: templates/InvenTree/settings/user.html:46
+#: templates/InvenTree/settings/user.html:47
msgid "Email"
msgstr "Adres E-Mail"
@@ -2268,14 +2248,6 @@ msgstr "Kontakt"
msgid "Point of contact"
msgstr "Punkt kontaktowy"
-#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:163 part/models.py:797
-#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:537
-#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
-msgid "Link"
-msgstr "Łącze"
-
#: company/models.py:131
msgid "Link to external company information"
msgstr "Link do informacji o zewnętrznym przedsiębiorstwie"
@@ -2343,7 +2315,7 @@ msgstr "Wybierz producenta"
#: company/models.py:342 company/templates/company/manufacturer_part.html:97
#: company/templates/company/supplier_part.html:112
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:874
#: templates/js/translated/part.js:240
msgid "MPN"
msgstr "MPN"
@@ -2372,9 +2344,9 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:90
+#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:1867 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878
msgid "Value"
msgstr ""
@@ -2413,7 +2385,7 @@ msgid "Select supplier"
msgstr "Wybierz dostawcę"
#: company/models.py:551 company/templates/company/supplier_part.html:98
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:861
#: templates/js/translated/part.js:221
msgid "SKU"
msgstr "SKU"
@@ -2450,7 +2422,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:119
#: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1366
msgid "Packaging"
msgstr "Opakowanie"
@@ -2515,8 +2487,8 @@ msgstr "Telefon"
#: company/templates/company/company_base.html:126 order/models.py:567
#: order/templates/order/sales_order_base.html:114 stock/models.py:525
#: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
-#: templates/js/translated/stock.js:1972
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1073
+#: templates/js/translated/stock.js:2002
msgid "Customer"
msgstr "Klient"
@@ -2721,7 +2693,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:974
+#: part/templates/part/detail.html:976
msgid "Add Parameter"
msgstr "Dodaj parametr"
@@ -2752,7 +2724,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:492
#: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1323
msgid "Supplier Part"
msgstr ""
@@ -2778,7 +2750,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
-#: templates/js/translated/stock.js:324
+#: templates/js/translated/stock.js:354
msgid "New Stock Item"
msgstr ""
@@ -2799,7 +2771,7 @@ msgstr "Informacja cenowa"
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1713
+#: part/templates/part/prices.html:271 part/views.py:1717
msgid "Add Price Break"
msgstr ""
@@ -2807,11 +2779,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1775
+#: company/templates/company/supplier_part.html:224 part/views.py:1779
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1761
+#: company/templates/company/supplier_part.html:238 part/views.py:1765
msgid "Edit Price Break"
msgstr "Edytuj przedział cenowy"
@@ -2831,8 +2803,8 @@ msgstr ""
#: templates/InvenTree/settings/sidebar.html:40
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
-#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
-#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:509
+#: templates/js/translated/stock.js:1162 templates/navbar.html:26
msgid "Stock"
msgstr "Stan"
@@ -2855,7 +2827,7 @@ msgstr "Cennik"
#: stock/templates/stock/location.html:132
#: stock/templates/stock/location.html:144
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1901
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2885,24 +2857,24 @@ msgstr "Firmy"
msgid "New Company"
msgstr "Nowa firma"
-#: company/views.py:129 part/views.py:580
+#: company/views.py:129 part/views.py:584
msgid "Download Image"
msgstr "Pobierz obraz"
-#: company/views.py:158 part/views.py:612
+#: company/views.py:158 part/views.py:616
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:619
+#: company/views.py:165 part/views.py:623
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:628
+#: company/views.py:174 part/views.py:632
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/api.py:57 report/api.py:201
+#: label/api.py:57 report/api.py:203
msgid "No valid objects provided to template"
msgstr ""
@@ -2959,7 +2931,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
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
+#: report/models.py:322 report/models.py:459 report/models.py:497
msgid "Filters"
msgstr "Filtry"
@@ -3089,7 +3061,7 @@ msgstr ""
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1092
+#: order/models.py:582 templates/js/translated/order.js:1114
msgid "Shipment Date"
msgstr "Data wysyłki"
@@ -3114,7 +3086,7 @@ msgid "Line item notes"
msgstr ""
#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1144
+#: templates/js/translated/order.js:1166
msgid "Order"
msgstr "Zamówienie"
@@ -3122,8 +3094,8 @@ msgstr "Zamówienie"
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:325
-#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1300
+#: templates/js/translated/stock.js:1983
msgid "Purchase Order"
msgstr "Zlecenie zakupu"
@@ -3133,7 +3105,7 @@ msgstr ""
#: order/models.py:797 order/templates/order/order_base.html:147
#: order/templates/order/sales_order_base.html:154
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:954
msgid "Received"
msgstr "Odebrane"
@@ -3143,7 +3115,7 @@ msgstr ""
#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1324
+#: templates/js/translated/stock.js:1354
msgid "Purchase Price"
msgstr "Cena zakupu"
@@ -3204,47 +3176,47 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:167
+#: order/serializers.py:169
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:202
+#: order/serializers.py:204
msgid "Line Item"
msgstr ""
-#: order/serializers.py:208
+#: order/serializers.py:210
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:286
+#: order/serializers.py:220 order/serializers.py:288
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:242
+#: order/serializers.py:244
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:243
+#: order/serializers.py:245
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:260
+#: order/serializers.py:262
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:298
+#: order/serializers.py:300
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:315
+#: order/serializers.py:317
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:328
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:568
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3390,19 +3362,23 @@ msgstr "Wiersz"
msgid "Select Supplier Part"
msgstr "Wybierz dostawcę części"
-#: order/templates/order/order_wizard/po_upload.html:11
+#: order/templates/order/order_wizard/po_upload.html:8
+msgid "Return to Orders"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:17
msgid "Upload File for Purchase Order"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:18
+#: order/templates/order/order_wizard/po_upload.html:25
#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:21
+#: part/templates/part/import_wizard/part_upload.html:23
#, python-format
msgid "Step %(step)s of %(count)s"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:48
+#: order/templates/order/order_wizard/po_upload.html:55
msgid "Order is already processed. Files cannot be uploaded."
msgstr ""
@@ -3445,7 +3421,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:695 templates/js/translated/order.js:1097
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1119
msgid "Items"
msgstr "Przedmioty"
@@ -3463,31 +3439,6 @@ msgstr ""
msgid "Select a purchase order for %(name)s"
msgstr ""
-#: order/templates/order/po_attachments.html:12
-#: order/templates/order/po_navbar.html:32
-msgid "Purchase Order Attachments"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr "Szczegóły zamówienia"
-
-#: order/templates/order/po_navbar.html:15
-#: part/templates/part/part_sidebar.html:8
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr "Szczegóły"
-
-#: order/templates/order/po_navbar.html:26
-msgid "Received Stock Items"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:29
-#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr "Otrzymane elementy"
-
#: order/templates/order/po_sidebar.html:5
#: order/templates/order/so_sidebar.html:5
#: report/templates/report/inventree_po_report.html:85
@@ -3504,9 +3455,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:216
+#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:191
+#: order/templates/order/sales_order_detail.html:157
msgid "Add Line Item"
msgstr "Dodaj element zamówienia"
@@ -3518,6 +3469,10 @@ msgstr ""
msgid "Receive Items"
msgstr ""
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr "Otrzymane elementy"
+
#: order/templates/order/purchase_order_detail.html:76
#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
@@ -3546,7 +3501,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:121
-#: templates/js/translated/order.js:1064
+#: templates/js/translated/order.js:1086
msgid "Customer Reference"
msgstr ""
@@ -3700,19 +3655,19 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:731
+#: part/api.py:758
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:735
+#: part/api.py:762
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:750
+#: part/api.py:777
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
+#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
msgid "This field is required"
msgstr ""
@@ -3926,7 +3881,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/detail.html:45
#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
-#: templates/js/translated/stock.js:1104
+#: templates/js/translated/stock.js:1134
msgid "IPN"
msgstr "IPN"
@@ -4047,7 +4002,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1467
-#: templates/js/translated/stock.js:828
+#: templates/js/translated/stock.js:858
msgid "Test Name"
msgstr "Nazwa testu"
@@ -4552,7 +4507,7 @@ msgstr ""
msgid "Copy BOM"
msgstr "Kopiuj BOM"
-#: part/templates/part/detail.html:365 part/views.py:751
+#: part/templates/part/detail.html:365 part/views.py:755
msgid "Validate BOM"
msgstr ""
@@ -4604,44 +4559,48 @@ msgstr ""
msgid "Related Part"
msgstr "Powiązane części"
-#: part/templates/part/detail.html:770
+#: part/templates/part/detail.html:772
msgid "Add Related Part"
msgstr "Dodaj powiązaną część"
-#: part/templates/part/detail.html:867
+#: part/templates/part/detail.html:869
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:924
+#: part/templates/part/detail.html:926
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:1076
+#: part/templates/part/detail.html:1039
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1088
+#: part/templates/part/detail.html:1051
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1100
+#: part/templates/part/detail.html:1063
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1189
+#: part/templates/part/detail.html:1152
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:51
+#: part/templates/part/import_wizard/part_upload.html:53
msgid "Unsuffitient privileges."
msgstr ""
-#: part/templates/part/import_wizard/part_upload.html:14
+#: part/templates/part/import_wizard/part_upload.html:8
+msgid "Return to Parts"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:16
msgid "Import Parts from File"
msgstr ""
@@ -4751,7 +4710,7 @@ msgstr "Nieaktywny"
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1546
#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
@@ -4846,6 +4805,11 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1949
+msgid "Details"
+msgstr "Szczegóły"
+
#: part/templates/part/part_sidebar.html:13
msgid "Variants"
msgstr ""
@@ -4949,7 +4913,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1784
+#: part/templates/part/prices.html:215 part/views.py:1788
msgid "Add Internal Price Break"
msgstr ""
@@ -5005,110 +4969,115 @@ msgstr ""
msgid "Match References"
msgstr ""
-#: part/views.py:498
+#: part/views.py:502
msgid "None"
msgstr ""
-#: part/views.py:557
+#: part/views.py:561
msgid "Part QR Code"
msgstr ""
-#: part/views.py:659
+#: part/views.py:663
msgid "Select Part Image"
msgstr ""
-#: part/views.py:685
+#: part/views.py:689
msgid "Updated part image"
msgstr ""
-#: part/views.py:688
+#: part/views.py:692
msgid "Part image not found"
msgstr ""
-#: part/views.py:700
+#: part/views.py:704
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:730
+#: part/views.py:734
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:772
+#: part/views.py:776
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:783
+#: part/views.py:787
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:856
+#: part/views.py:860
msgid "Match Parts"
msgstr ""
-#: part/views.py:1192
+#: part/views.py:1196
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1244
+#: part/views.py:1248
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1251
+#: part/views.py:1255
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1260
+#: part/views.py:1264
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1409
+#: part/views.py:1413
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1419
+#: part/views.py:1423
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1426
+#: part/views.py:1430
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1485 templates/js/translated/part.js:310
+#: part/views.py:1489 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr "Edytuj kategorię części"
-#: part/views.py:1523
+#: part/views.py:1527
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1529
+#: part/views.py:1533
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1538
+#: part/views.py:1542
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1639
+#: part/views.py:1643
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1695
+#: part/views.py:1699
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1717
+#: part/views.py:1721
msgid "Added new price break"
msgstr ""
-#: part/views.py:1793
+#: part/views.py:1797
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1801
+#: part/views.py:1805
msgid "Delete Internal Price Break"
msgstr ""
+#: report/api.py:234 report/api.py:278
+#, python-brace-format
+msgid "Template file '{filename}' is missing or does not exist"
+msgstr ""
+
#: report/models.py:182
msgid "Template name"
msgstr ""
@@ -5145,51 +5114,51 @@ msgstr ""
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:380
+#: report/models.py:382
msgid "Build Filters"
msgstr ""
-#: report/models.py:381
+#: report/models.py:383
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:423
+#: report/models.py:425
msgid "Part Filters"
msgstr "Filtr części"
-#: report/models.py:424
+#: report/models.py:426
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:458
+#: report/models.py:460
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:496
+#: report/models.py:498
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:546
+#: report/models.py:548
msgid "Snippet"
msgstr ""
-#: report/models.py:547
+#: report/models.py:549
msgid "Report snippet file"
msgstr ""
-#: report/models.py:551
+#: report/models.py:553
msgid "Snippet file description"
msgstr ""
-#: report/models.py:586
+#: report/models.py:588
msgid "Asset"
msgstr ""
-#: report/models.py:587
+#: report/models.py:589
msgid "Report asset file"
msgstr ""
-#: report/models.py:590
+#: report/models.py:592
msgid "Asset file description"
msgstr ""
@@ -5201,49 +5170,59 @@ msgstr ""
msgid "Stock Item Test Report"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:75
+#: report/templates/report/inventree_test_report_base.html:79
#: stock/models.py:530 stock/templates/stock/item_base.html:238
#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
#: templates/js/translated/build.js:1013
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+#: templates/js/translated/order.js:1288 templates/js/translated/order.js:1377
msgid "Serial Number"
msgstr "Numer Seryjny"
-#: report/templates/report/inventree_test_report_base.html:83
+#: report/templates/report/inventree_test_report_base.html:88
msgid "Test Results"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:93
#: stock/models.py:1855
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:89
+#: report/templates/report/inventree_test_report_base.html:94
#: stock/models.py:1861
msgid "Result"
msgstr "Wynik"
-#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917
msgid "Date"
msgstr "Data"
-#: report/templates/report/inventree_test_report_base.html:103
+#: report/templates/report/inventree_test_report_base.html:108
msgid "Pass"
msgstr "Zaliczone"
-#: report/templates/report/inventree_test_report_base.html:105
+#: report/templates/report/inventree_test_report_base.html:110
msgid "Fail"
msgstr "Niezaliczone"
+#: report/templates/report/inventree_test_report_base.html:123
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:137
+#: templates/js/translated/stock.js:2177
+msgid "Serial"
+msgstr ""
+
#: stock/api.py:422
msgid "Quantity is required"
msgstr ""
#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
#: stock/templates/stock/item_base.html:382
-#: templates/js/translated/stock.js:1246
+#: templates/js/translated/stock.js:1276
msgid "Expiry Date"
msgstr "Data ważności"
@@ -5505,7 +5484,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:319 stock/serializers.py:687
+#: stock/serializers.py:319 stock/serializers.py:686
msgid "Destination stock location"
msgstr ""
@@ -5517,15 +5496,15 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:557
+#: stock/serializers.py:556
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:585
+#: stock/serializers.py:584
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:595
+#: stock/serializers.py:594
msgid "A list of stock items must be provided"
msgstr ""
@@ -5570,15 +5549,15 @@ msgstr ""
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
+#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:363
+#: stock/templates/stock/item.html:324
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:377
+#: stock/templates/stock/item.html:338
msgid "Delete Test Result"
msgstr ""
@@ -5752,7 +5731,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:1259
+#: templates/js/translated/stock.js:1289
msgid "Last Updated"
msgstr "Ostatnia aktualizacja"
@@ -5768,7 +5747,7 @@ msgstr ""
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:505
msgid "Edit Stock Status"
msgstr ""
@@ -5885,10 +5864,6 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:12
-msgid "Installed Items"
-msgstr ""
-
#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
@@ -5967,7 +5942,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:618
+#: stock/views.py:760 templates/js/translated/stock.js:648
msgid "Confirm stock adjustment"
msgstr ""
@@ -5975,7 +5950,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:288
+#: stock/views.py:793 templates/js/translated/stock.js:318
msgid "Edit Stock Item"
msgstr ""
@@ -5987,7 +5962,7 @@ msgstr "Utwórz nową lokalizację magazynową"
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:268
+#: stock/views.py:1186 templates/js/translated/stock.js:298
msgid "Duplicate Stock Item"
msgstr ""
@@ -6164,11 +6139,11 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/po.html:9
+#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
-#: templates/InvenTree/settings/report.html:10
+#: templates/InvenTree/settings/report.html:8
#: templates/InvenTree/settings/user_reports.html:9
msgid "Report Settings"
msgstr ""
@@ -6221,7 +6196,7 @@ msgid "User Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:8
-#: templates/InvenTree/settings/user.html:11
+#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
@@ -6273,140 +6248,136 @@ msgid "Stock Settings"
msgstr ""
#: templates/InvenTree/settings/user.html:18
-#: templates/js/translated/helpers.js:26
-msgid "Edit"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:20
#: 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:31
+#: templates/InvenTree/settings/user.html:22
+#: templates/js/translated/helpers.js:26
+msgid "Edit"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:32
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:35
+#: templates/InvenTree/settings/user.html:36
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:39
+#: templates/InvenTree/settings/user.html:40
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:54
+#: templates/InvenTree/settings/user.html:55
msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:74
+#: templates/InvenTree/settings/user.html:75
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:76
+#: templates/InvenTree/settings/user.html:77
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:78
+#: templates/InvenTree/settings/user.html:79
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:84
+#: templates/InvenTree/settings/user.html:85
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:85
+#: templates/InvenTree/settings/user.html:86
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:86
-#: templates/InvenTree/settings/user.html:153
+#: templates/InvenTree/settings/user.html:87
+#: templates/InvenTree/settings/user.html:154
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
+#: templates/InvenTree/settings/user.html:94
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:94
+#: templates/InvenTree/settings/user.html:95
msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:101
+#: templates/InvenTree/settings/user.html:102
msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:111
+#: templates/InvenTree/settings/user.html:112
msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:113
+#: templates/InvenTree/settings/user.html:114
msgid "Add Email"
msgstr ""
-#: templates/InvenTree/settings/user.html:123
+#: templates/InvenTree/settings/user.html:124
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:128
+#: templates/InvenTree/settings/user.html:129
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:162
+#: templates/InvenTree/settings/user.html:163
msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:167
+#: templates/InvenTree/settings/user.html:168
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:177
-msgid "Language Settings"
+#: templates/InvenTree/settings/user.html:179
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:185
+msgid "Log out active sessions (except this one)"
msgstr ""
#: templates/InvenTree/settings/user.html:186
-msgid "Select language"
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:195
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:196
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:200
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:201
+msgid "Device"
msgstr ""
#: templates/InvenTree/settings/user.html:202
-#, python-format
-msgid "%(lang_translated)s%% translated"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:204
-msgid "No translations available"
+msgid "Last Activity"
msgstr ""
#: templates/InvenTree/settings/user.html:211
-msgid "Set Language"
+#, python-format
+msgid "%(time)s ago (this session)"
msgstr ""
#: templates/InvenTree/settings/user.html:213
-msgid "Some languages are not complete"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:215
-msgid "Show only sufficent"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "and hidden."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "Show them too"
+#, python-format
+msgid "%(time)s ago"
msgstr ""
#: templates/InvenTree/settings/user.html:224
-msgid "Help the translation efforts!"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:225
-#, 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:233
msgid "Do you really want to remove the selected email address?"
msgstr ""
@@ -6422,6 +6393,52 @@ msgstr ""
msgid "Set Theme"
msgstr ""
+#: templates/InvenTree/settings/user_display.html:54
+msgid "Language Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:63
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:79
+#, python-format
+msgid "%(lang_translated)s%% translated"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:81
+msgid "No translations available"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:88
+msgid "Set Language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:91
+msgid "Some languages are not complete"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:93
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:101
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:102
+#, 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_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6619,6 +6636,14 @@ msgstr ""
msgid "View in administration panel"
msgstr ""
+#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54
+msgid "Add Link"
+msgstr ""
+
+#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36
+msgid "Add Attachment"
+msgstr "Dodaj załącznik"
+
#: templates/base.html:96
msgid "Server Restart Required"
msgstr ""
@@ -6702,154 +6727,87 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/report.js:47 templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/report.js:55 templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/report.js:70 templates/js/translated/report.js:90
-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:594
-msgid "Select Stock Items"
-msgstr ""
-
-#: templates/js/report.js:99 templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:116 templates/js/report.js:169
-#: templates/js/report.js:223 templates/js/report.js:277
-#: templates/js/report.js:331 templates/js/translated/report.js:136
-#: 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 ""
-
-#: templates/js/report.js:117 templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/report.js:152 templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/report.js:153 templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: 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/build.js:1333
-#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
-#: templates/js/report.js:206 templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:224 templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/report.js:259 templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/report.js:260 templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/report.js:278 templates/js/report.js:332
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/report.js:313 templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/report.js:314 templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:191
+#: templates/js/translated/api.js:192
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:192
+#: templates/js/translated/api.js:193
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr "Błąd 403: Odmowa dostępu"
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
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:206 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:215
+#: templates/js/translated/api.js:216
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:216
+#: templates/js/translated/api.js:217
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:27
+#: templates/js/translated/attachment.js:76
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:95
+#: templates/js/translated/attachment.js:98
+msgid "Edit Attachment"
+msgstr "Edytuj załącznik"
+
+#: templates/js/translated/attachment.js:108
+msgid "Confirm Delete"
+msgstr ""
+
+#: templates/js/translated/attachment.js:109
+msgid "Delete Attachment"
+msgstr "Usuń załącznik"
+
+#: templates/js/translated/attachment.js:165
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:108
+#: templates/js/translated/attachment.js:178
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:115
+#: templates/js/translated/attachment.js:185
msgid "Delete attachment"
msgstr ""
@@ -6910,7 +6868,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:600
msgid "Remove stock item"
msgstr ""
@@ -7005,7 +6963,7 @@ msgid "View BOM"
msgstr ""
#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1320
msgid "Actions"
msgstr "Akcje"
@@ -7097,7 +7055,7 @@ msgstr ""
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1194
msgid "Location not specified"
msgstr ""
@@ -7106,12 +7064,12 @@ msgid "No active build outputs found"
msgstr ""
#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1305
+#: templates/js/translated/order.js:1327
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1306
+#: templates/js/translated/order.js:1328
msgid "Delete stock allocation"
msgstr ""
@@ -7132,11 +7090,11 @@ msgid "Quantity Per"
msgstr "Ilość za"
#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1557
msgid "Allocated"
msgstr "Przydzielono"
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1611
msgid "Build stock"
msgstr ""
@@ -7144,7 +7102,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1604
msgid "Allocate stock"
msgstr ""
@@ -7152,6 +7110,11 @@ msgstr ""
msgid "Specify stock allocation quantity"
msgstr ""
+#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
+#: templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
@@ -7181,8 +7144,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
-#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
-#: templates/js/translated/stock.js:1841
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1094
+#: templates/js/translated/stock.js:1871
msgid "Select"
msgstr ""
@@ -7190,7 +7153,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2090
msgid "No user information"
msgstr ""
@@ -7332,45 +7295,45 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
-#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
+#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365
+#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:351
+#: templates/js/translated/forms.js:352
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:366
+#: templates/js/translated/forms.js:367
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:380
+#: templates/js/translated/forms.js:381
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:394
+#: templates/js/translated/forms.js:395
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:679
+#: templates/js/translated/forms.js:680
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/js/translated/forms.js:1072 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1457
+#: templates/js/translated/forms.js:1463
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1661
+#: templates/js/translated/forms.js:1667
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1878
+#: templates/js/translated/forms.js:1884
msgid "Clear input"
msgstr ""
@@ -7382,6 +7345,11 @@ msgstr ""
msgid "NO"
msgstr ""
+#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
+#: templates/js/translated/stock.js:624
+msgid "Select Stock Items"
+msgstr ""
+
#: templates/js/translated/label.js:30
msgid "Stock item(s) must be selected before printing labels"
msgstr ""
@@ -7534,11 +7502,11 @@ msgstr ""
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:423
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:424
msgid "Select file format"
msgstr ""
@@ -7554,7 +7522,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1673
msgid "Stock Status"
msgstr ""
@@ -7582,100 +7550,104 @@ msgstr ""
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1063
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
+#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
+#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:801
+#: templates/js/translated/order.js:823
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
+#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:904 templates/js/translated/order.js:1492
#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr "Cena jednostkowa"
-#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+#: templates/js/translated/order.js:919 templates/js/translated/order.js:1508
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
+#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:976
+#: templates/js/translated/order.js:998
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:980
+#: templates/js/translated/order.js:1002
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1017
+#: templates/js/translated/order.js:1039
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1055
+#: templates/js/translated/order.js:1077
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1133
+#: templates/js/translated/order.js:1155
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1226
+#: templates/js/translated/order.js:1248
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1244
+#: templates/js/translated/order.js:1265
+msgid "Confirm Delete Operation"
+msgstr ""
+
+#: templates/js/translated/order.js:1266
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1308
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1535
+#: templates/js/translated/order.js:1557
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1579
+#: templates/js/translated/order.js:1601
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1585
+#: templates/js/translated/order.js:1607
msgid "Purchase stock"
msgstr "Cena zakupu"
-#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
+#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793
msgid "Calculate price"
msgstr "Oblicz cenę"
-#: templates/js/translated/order.js:1596
+#: templates/js/translated/order.js:1618
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1719
+#: templates/js/translated/order.js:1741
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1779
+#: templates/js/translated/order.js:1801
msgid "Update Unit Price"
msgstr "Zaktualizuj cenę jednostkową"
-#: templates/js/translated/order.js:1793
+#: templates/js/translated/order.js:1815
msgid "No matching line items"
msgstr ""
@@ -7825,7 +7797,7 @@ msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
-#: templates/js/translated/stock.js:1802
+#: templates/js/translated/stock.js:1832
msgid "Display as list"
msgstr ""
@@ -7833,7 +7805,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1851
msgid "Display as tree"
msgstr ""
@@ -7841,7 +7813,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1895
msgid "Path"
msgstr ""
@@ -7849,11 +7821,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:816
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:817
msgid "Delete test result"
msgstr ""
@@ -7892,268 +7864,342 @@ msgstr "Cena jednostkowa"
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:136 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 ""
+
+#: templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
#: templates/js/translated/stock.js:70
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:90
+#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167
+msgid "Next available serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169
+msgid "Latest serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:104
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:126
+#: templates/js/translated/stock.js:140
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:189
+#: templates/js/translated/stock.js:180
+msgid "This part cannot be serialized"
+msgstr ""
+
+#: templates/js/translated/stock.js:219
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:195
+#: templates/js/translated/stock.js:225
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:338
+#: templates/js/translated/stock.js:368
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:351
+#: templates/js/translated/stock.js:381
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:420
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:401
+#: templates/js/translated/stock.js:431
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:402
+#: templates/js/translated/stock.js:432
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:444
+#: templates/js/translated/stock.js:474
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:445
+#: templates/js/translated/stock.js:475
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:451
+#: templates/js/translated/stock.js:481
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:452
+#: templates/js/translated/stock.js:482
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:486
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:487
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:491
msgid "Add Stock"
msgstr "Dodaj stan"
-#: templates/js/translated/stock.js:462 users/models.py:200
+#: templates/js/translated/stock.js:492 users/models.py:200
msgid "Add"
msgstr "Dodaj"
-#: templates/js/translated/stock.js:466 templates/stock_table.html:56
+#: templates/js/translated/stock.js:496 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:595
+#: templates/js/translated/stock.js:625
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:753
+#: templates/js/translated/stock.js:783
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:755
+#: templates/js/translated/stock.js:785
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:760
+#: templates/js/translated/stock.js:790
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:812
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:808
+#: templates/js/translated/stock.js:838
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:895
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:1002
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:1006
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:1010
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:984
+#: templates/js/translated/stock.js:1014
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:990
+#: templates/js/translated/stock.js:1020
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1148
+#: templates/js/translated/stock.js:1178
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1153
+#: templates/js/translated/stock.js:1183
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1156
+#: templates/js/translated/stock.js:1186
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1160
+#: templates/js/translated/stock.js:1190
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1162
+#: templates/js/translated/stock.js:1192
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1166
+#: templates/js/translated/stock.js:1196
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1170
+#: templates/js/translated/stock.js:1200
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1177
+#: templates/js/translated/stock.js:1207
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1179
+#: templates/js/translated/stock.js:1209
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1181
+#: templates/js/translated/stock.js:1211
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1185
+#: templates/js/translated/stock.js:1215
#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1235
+#: templates/js/translated/stock.js:1265
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1308
+#: templates/js/translated/stock.js:1338
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1346
+#: templates/js/translated/stock.js:1376
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
+#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1455
+#: templates/js/translated/stock.js:1485
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1482
+#: templates/js/translated/stock.js:1512
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1484
+#: templates/js/translated/stock.js:1514
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1658
+#: templates/js/translated/stock.js:1688
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1672
+#: templates/js/translated/stock.js:1702
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1673
+#: templates/js/translated/stock.js:1703
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1897
+#: templates/js/translated/stock.js:1927
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1944
+#: templates/js/translated/stock.js:1974
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1963
+#: templates/js/translated/stock.js:1993
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1982
+#: templates/js/translated/stock.js:2012
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2000
+#: templates/js/translated/stock.js:2030
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2023
+#: templates/js/translated/stock.js:2053
msgid "Added"
msgstr "Dodano"
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2061
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2072
+#: templates/js/translated/stock.js:2102
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2073
+#: templates/js/translated/stock.js:2103
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2124
+#: templates/js/translated/stock.js:2154
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
-#: templates/js/translated/stock.js:2175
+#: templates/js/translated/stock.js:2205
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/pt/LC_MESSAGES/django.po b/InvenTree/locale/pt/LC_MESSAGES/django.po
index 2b69dcc2ba..61da5feab6 100644
--- a/InvenTree/locale/pt/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pt/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-25 04:46+0000\n"
-"PO-Revision-Date: 2021-11-25 05:07\n"
+"POT-Creation-Date: 2021-11-30 21:49+0000\n"
+"PO-Revision-Date: 2021-11-30 21:51\n"
"Last-Translator: \n"
"Language-Team: Portuguese\n"
"Language: pt_PT\n"
@@ -36,7 +36,7 @@ msgstr ""
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:594
+#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr ""
@@ -114,99 +114,121 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:109 stock/models.py:1874
+#: InvenTree/models.py:114
+msgid "Missing file"
+msgstr ""
+
+#: InvenTree/models.py:115
+msgid "Missing external link"
+msgstr ""
+
+#: InvenTree/models.py:126 stock/models.py:1874
+#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:110
+#: InvenTree/models.py:127
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
+#: InvenTree/models.py:133 company/models.py:131 company/models.py:348
+#: company/models.py:564 order/models.py:163 part/models.py:797
+#: report/templates/report/inventree_build_order_base.html:165
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
+msgid "Link"
+msgstr ""
+
+#: InvenTree/models.py:134 build/models.py:330 part/models.py:798
+#: stock/models.py:540
+msgid "Link to external URL"
+msgstr ""
+
+#: InvenTree/models.py:137 templates/js/translated/attachment.js:161
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:112
+#: InvenTree/models.py:137
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185
#: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:2054
+#: report/templates/report/inventree_test_report_base.html:96
+#: templates/js/translated/stock.js:2084
msgid "User"
msgstr ""
-#: InvenTree/models.py:122
+#: InvenTree/models.py:147
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:142
+#: InvenTree/models.py:170
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:165
+#: InvenTree/models.py:193
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:175
+#: InvenTree/models.py:203
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:178
+#: InvenTree/models.py:206
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:185
+#: InvenTree/models.py:213
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:192
+#: InvenTree/models.py:220
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:227
+#: InvenTree/models.py:255
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: InvenTree/models.py:271 InvenTree/models.py:272 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
#: part/templates/part/detail.html:25 report/models.py:181
#: templates/InvenTree/settings/settings.html:259
#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
-#: templates/js/translated/stock.js:1847
+#: templates/js/translated/stock.js:1877
msgid "Name"
msgstr ""
-#: InvenTree/models.py:250 build/models.py:207
+#: InvenTree/models.py:278 build/models.py:207
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:80
#: company/templates/company/supplier_part.html:81 label/models.py:119
#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:551 report/models.py:590
+#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
#: templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
-#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/order.js:855 templates/js/translated/order.js:1091
#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
-#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
-#: templates/js/translated/stock.js:1904
+#: templates/js/translated/stock.js:1151 templates/js/translated/stock.js:1889
+#: templates/js/translated/stock.js:1934
msgid "Description"
msgstr ""
-#: InvenTree/models.py:251
+#: InvenTree/models.py:279
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:259
+#: InvenTree/models.py:287
msgid "parent"
msgstr ""
@@ -214,87 +236,87 @@ msgstr ""
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:251
+#: InvenTree/serializers.py:285
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:670
msgid "German"
msgstr ""
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:671
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:672
msgid "English"
msgstr ""
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:673
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:674
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:675
msgid "French"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:676
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:683
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:684
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:685
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:686
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:687
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:688
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:689
msgid "Chinese"
msgstr ""
@@ -479,27 +501,27 @@ msgstr ""
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:536
+#: InvenTree/views.py:538
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:585
+#: InvenTree/views.py:587
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
+#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
+#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:630
+#: InvenTree/views.py:632
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:863 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:101
msgid "System Information"
msgstr ""
@@ -552,12 +574,13 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
+#: part/templates/part/detail.html:1076 part/templates/part/detail.html:1162
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:77
+#: report/templates/report/inventree_test_report_base.html:81
+#: report/templates/report/inventree_test_report_base.html:139
#: stock/forms.py:156 stock/serializers.py:286
#: stock/templates/stock/item_base.html:256
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
@@ -565,12 +588,12 @@ msgstr ""
#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
-#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
-#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/order.js:892 templates/js/translated/order.js:1205
+#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290
+#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479
#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
-#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
-#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377
+#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171
msgid "Quantity"
msgstr ""
@@ -579,8 +602,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:307 templates/js/translated/stock.js:194
-#: templates/js/translated/stock.js:348
+#: stock/serializers.py:307 templates/js/translated/stock.js:224
+#: templates/js/translated/stock.js:378
msgid "Serial Numbers"
msgstr ""
@@ -639,7 +662,7 @@ msgstr ""
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
+#: templates/js/translated/order.js:886 templates/js/translated/order.js:1473
msgid "Reference"
msgstr ""
@@ -677,10 +700,10 @@ msgstr ""
#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/order.js:840 templates/js/translated/order.js:1457
#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
-#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
-#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508
+#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159
msgid "Part"
msgstr ""
@@ -745,7 +768,7 @@ msgid "Batch code for this build output"
msgstr ""
#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1104
msgid "Creation Date"
msgstr ""
@@ -779,7 +802,7 @@ msgstr ""
#: order/templates/order/order_base.html:154
#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680
+#: templates/js/translated/build.js:1680 templates/js/translated/order.js:700
msgid "Responsible"
msgstr ""
@@ -795,27 +818,21 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:330 part/models.py:798 stock/models.py:540
-msgid "Link to external URL"
-msgstr ""
-
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:183 order/models.py:738
-#: order/templates/order/po_navbar.html:38
-#: order/templates/order/po_navbar.html:41
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:11 part/models.py:925
#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: stock/serializers.py:583 stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
-#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
-#: templates/js/translated/stock.js:1340
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:985
+#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1370
msgid "Notes"
msgstr ""
@@ -876,8 +893,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:340
#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
-#: templates/js/translated/stock.js:1990
+#: templates/js/translated/order.js:1178 templates/js/translated/order.js:1183
+#: templates/js/translated/stock.js:2020
msgid "Stock Item"
msgstr ""
@@ -917,16 +934,16 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
-#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: build/serializers.py:190 order/serializers.py:219 order/serializers.py:287
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685
#: stock/templates/stock/item_base.html:286
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
-#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
-#: templates/js/translated/stock.js:1931
+#: templates/js/translated/order.js:1190 templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251
+#: templates/js/translated/stock.js:1961
msgid "Location"
msgstr ""
@@ -936,11 +953,11 @@ msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:129
#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: order/serializers.py:240 stock/templates/stock/item_base.html:409
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
-#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
-#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+#: templates/js/translated/order.js:1096 templates/js/translated/stock.js:1226
+#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187
msgid "Status"
msgstr ""
@@ -969,7 +986,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:233
#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1060,7 +1077,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:140
#: report/templates/report/inventree_build_order_base.html:126
#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
-#: templates/js/translated/order.js:1087
+#: templates/js/translated/order.js:1109
msgid "Target Date"
msgstr ""
@@ -1096,7 +1113,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/order.js:1029
+#: templates/js/translated/order.js:1051
msgid "Sales Order"
msgstr ""
@@ -1171,7 +1188,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:974
msgid "Destination"
msgstr ""
@@ -1185,7 +1202,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:304
-#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/stock.js:1240 templates/js/translated/stock.js:2194
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:233
msgid "Batch"
@@ -1286,7 +1303,6 @@ msgid "Completed Build Outputs"
msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
-#: order/templates/order/po_navbar.html:35
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:52
@@ -1300,7 +1316,7 @@ msgstr ""
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:453
#: company/templates/company/detail.html:188
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
@@ -1312,45 +1328,11 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:448
-#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
-#: templates/attachment_button.html:4
-msgid "Add Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:467
-#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:142
-#: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
-msgid "Edit Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:474
-#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:149
-#: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
-#: templates/js/translated/order.js:1243
-msgid "Confirm Delete Operation"
-msgstr ""
-
-#: build/templates/build/detail.html:475
-#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:150
-#: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
-msgid "Delete Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:513
+#: build/templates/build/detail.html:477
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:514
+#: build/templates/build/detail.html:478
msgid "All untracked stock items have been allocated"
msgstr ""
@@ -1466,7 +1448,7 @@ msgstr ""
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:34 templates/js/translated/attachment.js:54
+#: common/forms.py:34
msgid "File"
msgstr ""
@@ -2168,13 +2150,11 @@ msgstr ""
msgid "Unit price at specified quantity"
msgstr ""
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
-#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
-#: part/views.py:854
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
+#: part/views.py:858
msgid "Upload File"
msgstr ""
@@ -2182,7 +2162,7 @@ msgstr ""
#: 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:213
-#: part/views.py:855
+#: part/views.py:859
msgid "Match Fields"
msgstr ""
@@ -2200,13 +2180,13 @@ msgstr ""
#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:40
+#: order/templates/order/order_wizard/po_upload.html:47
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:43
+#: part/templates/part/import_wizard/part_upload.html:45
msgid "Previous Step"
msgstr ""
@@ -2252,7 +2232,7 @@ msgid "Contact phone number"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:102
-#: templates/InvenTree/settings/user.html:46
+#: templates/InvenTree/settings/user.html:47
msgid "Email"
msgstr ""
@@ -2268,14 +2248,6 @@ msgstr ""
msgid "Point of contact"
msgstr ""
-#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:163 part/models.py:797
-#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:537
-#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
-msgid "Link"
-msgstr ""
-
#: company/models.py:131
msgid "Link to external company information"
msgstr ""
@@ -2343,7 +2315,7 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:97
#: company/templates/company/supplier_part.html:112
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:874
#: templates/js/translated/part.js:240
msgid "MPN"
msgstr ""
@@ -2372,9 +2344,9 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:90
+#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:1867 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878
msgid "Value"
msgstr ""
@@ -2413,7 +2385,7 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:98
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:861
#: templates/js/translated/part.js:221
msgid "SKU"
msgstr ""
@@ -2450,7 +2422,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:119
#: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1366
msgid "Packaging"
msgstr ""
@@ -2515,8 +2487,8 @@ msgstr ""
#: company/templates/company/company_base.html:126 order/models.py:567
#: order/templates/order/sales_order_base.html:114 stock/models.py:525
#: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
-#: templates/js/translated/stock.js:1972
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1073
+#: templates/js/translated/stock.js:2002
msgid "Customer"
msgstr ""
@@ -2721,7 +2693,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:974
+#: part/templates/part/detail.html:976
msgid "Add Parameter"
msgstr ""
@@ -2752,7 +2724,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:492
#: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1323
msgid "Supplier Part"
msgstr ""
@@ -2778,7 +2750,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
-#: templates/js/translated/stock.js:324
+#: templates/js/translated/stock.js:354
msgid "New Stock Item"
msgstr ""
@@ -2799,7 +2771,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1713
+#: part/templates/part/prices.html:271 part/views.py:1717
msgid "Add Price Break"
msgstr ""
@@ -2807,11 +2779,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1775
+#: company/templates/company/supplier_part.html:224 part/views.py:1779
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1761
+#: company/templates/company/supplier_part.html:238 part/views.py:1765
msgid "Edit Price Break"
msgstr ""
@@ -2831,8 +2803,8 @@ msgstr ""
#: templates/InvenTree/settings/sidebar.html:40
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
-#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
-#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:509
+#: templates/js/translated/stock.js:1162 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2855,7 +2827,7 @@ msgstr ""
#: stock/templates/stock/location.html:132
#: stock/templates/stock/location.html:144
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1901
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2885,24 +2857,24 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:580
+#: company/views.py:129 part/views.py:584
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:612
+#: company/views.py:158 part/views.py:616
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:619
+#: company/views.py:165 part/views.py:623
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:628
+#: company/views.py:174 part/views.py:632
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/api.py:57 report/api.py:201
+#: label/api.py:57 report/api.py:203
msgid "No valid objects provided to template"
msgstr ""
@@ -2959,7 +2931,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
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
+#: report/models.py:322 report/models.py:459 report/models.py:497
msgid "Filters"
msgstr ""
@@ -3089,7 +3061,7 @@ msgstr ""
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1092
+#: order/models.py:582 templates/js/translated/order.js:1114
msgid "Shipment Date"
msgstr ""
@@ -3114,7 +3086,7 @@ msgid "Line item notes"
msgstr ""
#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1144
+#: templates/js/translated/order.js:1166
msgid "Order"
msgstr ""
@@ -3122,8 +3094,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:325
-#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1300
+#: templates/js/translated/stock.js:1983
msgid "Purchase Order"
msgstr ""
@@ -3133,7 +3105,7 @@ msgstr ""
#: order/models.py:797 order/templates/order/order_base.html:147
#: order/templates/order/sales_order_base.html:154
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:954
msgid "Received"
msgstr ""
@@ -3143,7 +3115,7 @@ msgstr ""
#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1324
+#: templates/js/translated/stock.js:1354
msgid "Purchase Price"
msgstr ""
@@ -3204,47 +3176,47 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:167
+#: order/serializers.py:169
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:202
+#: order/serializers.py:204
msgid "Line Item"
msgstr ""
-#: order/serializers.py:208
+#: order/serializers.py:210
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:286
+#: order/serializers.py:220 order/serializers.py:288
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:242
+#: order/serializers.py:244
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:243
+#: order/serializers.py:245
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:260
+#: order/serializers.py:262
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:298
+#: order/serializers.py:300
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:315
+#: order/serializers.py:317
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:328
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:568
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3390,19 +3362,23 @@ msgstr ""
msgid "Select Supplier Part"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:11
+#: order/templates/order/order_wizard/po_upload.html:8
+msgid "Return to Orders"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:17
msgid "Upload File for Purchase Order"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:18
+#: order/templates/order/order_wizard/po_upload.html:25
#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:21
+#: part/templates/part/import_wizard/part_upload.html:23
#, python-format
msgid "Step %(step)s of %(count)s"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:48
+#: order/templates/order/order_wizard/po_upload.html:55
msgid "Order is already processed. Files cannot be uploaded."
msgstr ""
@@ -3445,7 +3421,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:695 templates/js/translated/order.js:1097
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1119
msgid "Items"
msgstr ""
@@ -3463,31 +3439,6 @@ msgstr ""
msgid "Select a purchase order for %(name)s"
msgstr ""
-#: order/templates/order/po_attachments.html:12
-#: order/templates/order/po_navbar.html:32
-msgid "Purchase Order Attachments"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:15
-#: part/templates/part/part_sidebar.html:8
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:26
-msgid "Received Stock Items"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:29
-#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
#: order/templates/order/po_sidebar.html:5
#: order/templates/order/so_sidebar.html:5
#: report/templates/report/inventree_po_report.html:85
@@ -3504,9 +3455,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:216
+#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:191
+#: order/templates/order/sales_order_detail.html:157
msgid "Add Line Item"
msgstr ""
@@ -3518,6 +3469,10 @@ msgstr ""
msgid "Receive Items"
msgstr ""
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
#: order/templates/order/purchase_order_detail.html:76
#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
@@ -3546,7 +3501,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:121
-#: templates/js/translated/order.js:1064
+#: templates/js/translated/order.js:1086
msgid "Customer Reference"
msgstr ""
@@ -3700,19 +3655,19 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:731
+#: part/api.py:758
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:735
+#: part/api.py:762
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:750
+#: part/api.py:777
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
+#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
msgid "This field is required"
msgstr ""
@@ -3926,7 +3881,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/detail.html:45
#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
-#: templates/js/translated/stock.js:1104
+#: templates/js/translated/stock.js:1134
msgid "IPN"
msgstr ""
@@ -4047,7 +4002,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1467
-#: templates/js/translated/stock.js:828
+#: templates/js/translated/stock.js:858
msgid "Test Name"
msgstr ""
@@ -4552,7 +4507,7 @@ msgstr ""
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:365 part/views.py:751
+#: part/templates/part/detail.html:365 part/views.py:755
msgid "Validate BOM"
msgstr ""
@@ -4604,44 +4559,48 @@ msgstr ""
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:770
+#: part/templates/part/detail.html:772
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:867
+#: part/templates/part/detail.html:869
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:924
+#: part/templates/part/detail.html:926
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:1076
+#: part/templates/part/detail.html:1039
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1088
+#: part/templates/part/detail.html:1051
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1100
+#: part/templates/part/detail.html:1063
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1189
+#: part/templates/part/detail.html:1152
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:51
+#: part/templates/part/import_wizard/part_upload.html:53
msgid "Unsuffitient privileges."
msgstr ""
-#: part/templates/part/import_wizard/part_upload.html:14
+#: part/templates/part/import_wizard/part_upload.html:8
+msgid "Return to Parts"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:16
msgid "Import Parts from File"
msgstr ""
@@ -4751,7 +4710,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1546
#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
@@ -4846,6 +4805,11 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1949
+msgid "Details"
+msgstr ""
+
#: part/templates/part/part_sidebar.html:13
msgid "Variants"
msgstr ""
@@ -4949,7 +4913,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1784
+#: part/templates/part/prices.html:215 part/views.py:1788
msgid "Add Internal Price Break"
msgstr ""
@@ -5005,110 +4969,115 @@ msgstr ""
msgid "Match References"
msgstr ""
-#: part/views.py:498
+#: part/views.py:502
msgid "None"
msgstr ""
-#: part/views.py:557
+#: part/views.py:561
msgid "Part QR Code"
msgstr ""
-#: part/views.py:659
+#: part/views.py:663
msgid "Select Part Image"
msgstr ""
-#: part/views.py:685
+#: part/views.py:689
msgid "Updated part image"
msgstr ""
-#: part/views.py:688
+#: part/views.py:692
msgid "Part image not found"
msgstr ""
-#: part/views.py:700
+#: part/views.py:704
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:730
+#: part/views.py:734
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:772
+#: part/views.py:776
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:783
+#: part/views.py:787
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:856
+#: part/views.py:860
msgid "Match Parts"
msgstr ""
-#: part/views.py:1192
+#: part/views.py:1196
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1244
+#: part/views.py:1248
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1251
+#: part/views.py:1255
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1260
+#: part/views.py:1264
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1409
+#: part/views.py:1413
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1419
+#: part/views.py:1423
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1426
+#: part/views.py:1430
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1485 templates/js/translated/part.js:310
+#: part/views.py:1489 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1523
+#: part/views.py:1527
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1529
+#: part/views.py:1533
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1538
+#: part/views.py:1542
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1639
+#: part/views.py:1643
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1695
+#: part/views.py:1699
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1717
+#: part/views.py:1721
msgid "Added new price break"
msgstr ""
-#: part/views.py:1793
+#: part/views.py:1797
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1801
+#: part/views.py:1805
msgid "Delete Internal Price Break"
msgstr ""
+#: report/api.py:234 report/api.py:278
+#, python-brace-format
+msgid "Template file '{filename}' is missing or does not exist"
+msgstr ""
+
#: report/models.py:182
msgid "Template name"
msgstr ""
@@ -5145,51 +5114,51 @@ msgstr ""
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:380
+#: report/models.py:382
msgid "Build Filters"
msgstr ""
-#: report/models.py:381
+#: report/models.py:383
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:423
+#: report/models.py:425
msgid "Part Filters"
msgstr ""
-#: report/models.py:424
+#: report/models.py:426
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:458
+#: report/models.py:460
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:496
+#: report/models.py:498
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:546
+#: report/models.py:548
msgid "Snippet"
msgstr ""
-#: report/models.py:547
+#: report/models.py:549
msgid "Report snippet file"
msgstr ""
-#: report/models.py:551
+#: report/models.py:553
msgid "Snippet file description"
msgstr ""
-#: report/models.py:586
+#: report/models.py:588
msgid "Asset"
msgstr ""
-#: report/models.py:587
+#: report/models.py:589
msgid "Report asset file"
msgstr ""
-#: report/models.py:590
+#: report/models.py:592
msgid "Asset file description"
msgstr ""
@@ -5201,49 +5170,59 @@ msgstr ""
msgid "Stock Item Test Report"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:75
+#: report/templates/report/inventree_test_report_base.html:79
#: stock/models.py:530 stock/templates/stock/item_base.html:238
#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
#: templates/js/translated/build.js:1013
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+#: templates/js/translated/order.js:1288 templates/js/translated/order.js:1377
msgid "Serial Number"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:83
+#: report/templates/report/inventree_test_report_base.html:88
msgid "Test Results"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:93
#: stock/models.py:1855
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:89
+#: report/templates/report/inventree_test_report_base.html:94
#: stock/models.py:1861
msgid "Result"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917
msgid "Date"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:103
+#: report/templates/report/inventree_test_report_base.html:108
msgid "Pass"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:105
+#: report/templates/report/inventree_test_report_base.html:110
msgid "Fail"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:123
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:137
+#: templates/js/translated/stock.js:2177
+msgid "Serial"
+msgstr ""
+
#: stock/api.py:422
msgid "Quantity is required"
msgstr ""
#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
#: stock/templates/stock/item_base.html:382
-#: templates/js/translated/stock.js:1246
+#: templates/js/translated/stock.js:1276
msgid "Expiry Date"
msgstr ""
@@ -5505,7 +5484,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:319 stock/serializers.py:687
+#: stock/serializers.py:319 stock/serializers.py:686
msgid "Destination stock location"
msgstr ""
@@ -5517,15 +5496,15 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:557
+#: stock/serializers.py:556
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:585
+#: stock/serializers.py:584
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:595
+#: stock/serializers.py:594
msgid "A list of stock items must be provided"
msgstr ""
@@ -5570,15 +5549,15 @@ msgstr ""
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
+#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:363
+#: stock/templates/stock/item.html:324
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:377
+#: stock/templates/stock/item.html:338
msgid "Delete Test Result"
msgstr ""
@@ -5752,7 +5731,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:1259
+#: templates/js/translated/stock.js:1289
msgid "Last Updated"
msgstr ""
@@ -5768,7 +5747,7 @@ msgstr ""
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:505
msgid "Edit Stock Status"
msgstr ""
@@ -5885,10 +5864,6 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:12
-msgid "Installed Items"
-msgstr ""
-
#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
@@ -5967,7 +5942,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:618
+#: stock/views.py:760 templates/js/translated/stock.js:648
msgid "Confirm stock adjustment"
msgstr ""
@@ -5975,7 +5950,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:288
+#: stock/views.py:793 templates/js/translated/stock.js:318
msgid "Edit Stock Item"
msgstr ""
@@ -5987,7 +5962,7 @@ msgstr ""
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:268
+#: stock/views.py:1186 templates/js/translated/stock.js:298
msgid "Duplicate Stock Item"
msgstr ""
@@ -6164,11 +6139,11 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/po.html:9
+#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
-#: templates/InvenTree/settings/report.html:10
+#: templates/InvenTree/settings/report.html:8
#: templates/InvenTree/settings/user_reports.html:9
msgid "Report Settings"
msgstr ""
@@ -6221,7 +6196,7 @@ msgid "User Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:8
-#: templates/InvenTree/settings/user.html:11
+#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
@@ -6273,140 +6248,136 @@ msgid "Stock Settings"
msgstr ""
#: templates/InvenTree/settings/user.html:18
-#: templates/js/translated/helpers.js:26
-msgid "Edit"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:20
#: 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:31
+#: templates/InvenTree/settings/user.html:22
+#: templates/js/translated/helpers.js:26
+msgid "Edit"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:32
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:35
+#: templates/InvenTree/settings/user.html:36
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:39
+#: templates/InvenTree/settings/user.html:40
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:54
+#: templates/InvenTree/settings/user.html:55
msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:74
+#: templates/InvenTree/settings/user.html:75
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:76
+#: templates/InvenTree/settings/user.html:77
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:78
+#: templates/InvenTree/settings/user.html:79
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:84
+#: templates/InvenTree/settings/user.html:85
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:85
+#: templates/InvenTree/settings/user.html:86
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:86
-#: templates/InvenTree/settings/user.html:153
+#: templates/InvenTree/settings/user.html:87
+#: templates/InvenTree/settings/user.html:154
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
+#: templates/InvenTree/settings/user.html:94
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:94
+#: templates/InvenTree/settings/user.html:95
msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:101
+#: templates/InvenTree/settings/user.html:102
msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:111
+#: templates/InvenTree/settings/user.html:112
msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:113
+#: templates/InvenTree/settings/user.html:114
msgid "Add Email"
msgstr ""
-#: templates/InvenTree/settings/user.html:123
+#: templates/InvenTree/settings/user.html:124
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:128
+#: templates/InvenTree/settings/user.html:129
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:162
+#: templates/InvenTree/settings/user.html:163
msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:167
+#: templates/InvenTree/settings/user.html:168
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:177
-msgid "Language Settings"
+#: templates/InvenTree/settings/user.html:179
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:185
+msgid "Log out active sessions (except this one)"
msgstr ""
#: templates/InvenTree/settings/user.html:186
-msgid "Select language"
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:195
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:196
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:200
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:201
+msgid "Device"
msgstr ""
#: templates/InvenTree/settings/user.html:202
-#, python-format
-msgid "%(lang_translated)s%% translated"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:204
-msgid "No translations available"
+msgid "Last Activity"
msgstr ""
#: templates/InvenTree/settings/user.html:211
-msgid "Set Language"
+#, python-format
+msgid "%(time)s ago (this session)"
msgstr ""
#: templates/InvenTree/settings/user.html:213
-msgid "Some languages are not complete"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:215
-msgid "Show only sufficent"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "and hidden."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "Show them too"
+#, python-format
+msgid "%(time)s ago"
msgstr ""
#: templates/InvenTree/settings/user.html:224
-msgid "Help the translation efforts!"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:225
-#, 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:233
msgid "Do you really want to remove the selected email address?"
msgstr ""
@@ -6422,6 +6393,52 @@ msgstr ""
msgid "Set Theme"
msgstr ""
+#: templates/InvenTree/settings/user_display.html:54
+msgid "Language Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:63
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:79
+#, python-format
+msgid "%(lang_translated)s%% translated"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:81
+msgid "No translations available"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:88
+msgid "Set Language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:91
+msgid "Some languages are not complete"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:93
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:101
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:102
+#, 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_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6619,6 +6636,14 @@ msgstr ""
msgid "View in administration panel"
msgstr ""
+#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54
+msgid "Add Link"
+msgstr ""
+
+#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36
+msgid "Add Attachment"
+msgstr ""
+
#: templates/base.html:96
msgid "Server Restart Required"
msgstr ""
@@ -6702,154 +6727,87 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/report.js:47 templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/report.js:55 templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/report.js:70 templates/js/translated/report.js:90
-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:594
-msgid "Select Stock Items"
-msgstr ""
-
-#: templates/js/report.js:99 templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:116 templates/js/report.js:169
-#: templates/js/report.js:223 templates/js/report.js:277
-#: templates/js/report.js:331 templates/js/translated/report.js:136
-#: 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 ""
-
-#: templates/js/report.js:117 templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/report.js:152 templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/report.js:153 templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: 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/build.js:1333
-#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
-#: templates/js/report.js:206 templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:224 templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/report.js:259 templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/report.js:260 templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/report.js:278 templates/js/report.js:332
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/report.js:313 templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/report.js:314 templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:191
+#: templates/js/translated/api.js:192
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:192
+#: templates/js/translated/api.js:193
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:215
+#: templates/js/translated/api.js:216
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:216
+#: templates/js/translated/api.js:217
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:27
+#: templates/js/translated/attachment.js:76
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:95
-msgid "Upload Date"
+#: templates/js/translated/attachment.js:98
+msgid "Edit Attachment"
msgstr ""
#: templates/js/translated/attachment.js:108
+msgid "Confirm Delete"
+msgstr ""
+
+#: templates/js/translated/attachment.js:109
+msgid "Delete Attachment"
+msgstr ""
+
+#: templates/js/translated/attachment.js:165
+msgid "Upload Date"
+msgstr ""
+
+#: templates/js/translated/attachment.js:178
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:115
+#: templates/js/translated/attachment.js:185
msgid "Delete attachment"
msgstr ""
@@ -6910,7 +6868,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:600
msgid "Remove stock item"
msgstr ""
@@ -7005,7 +6963,7 @@ msgid "View BOM"
msgstr ""
#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1320
msgid "Actions"
msgstr ""
@@ -7097,7 +7055,7 @@ msgstr ""
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1194
msgid "Location not specified"
msgstr ""
@@ -7106,12 +7064,12 @@ msgid "No active build outputs found"
msgstr ""
#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1305
+#: templates/js/translated/order.js:1327
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1306
+#: templates/js/translated/order.js:1328
msgid "Delete stock allocation"
msgstr ""
@@ -7132,11 +7090,11 @@ msgid "Quantity Per"
msgstr ""
#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1557
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1611
msgid "Build stock"
msgstr ""
@@ -7144,7 +7102,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1604
msgid "Allocate stock"
msgstr ""
@@ -7152,6 +7110,11 @@ msgstr ""
msgid "Specify stock allocation quantity"
msgstr ""
+#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
+#: templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
@@ -7181,8 +7144,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
-#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
-#: templates/js/translated/stock.js:1841
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1094
+#: templates/js/translated/stock.js:1871
msgid "Select"
msgstr ""
@@ -7190,7 +7153,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2090
msgid "No user information"
msgstr ""
@@ -7332,45 +7295,45 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
-#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
+#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365
+#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:351
+#: templates/js/translated/forms.js:352
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:366
+#: templates/js/translated/forms.js:367
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:380
+#: templates/js/translated/forms.js:381
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:394
+#: templates/js/translated/forms.js:395
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:679
+#: templates/js/translated/forms.js:680
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/js/translated/forms.js:1072 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1457
+#: templates/js/translated/forms.js:1463
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1661
+#: templates/js/translated/forms.js:1667
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1878
+#: templates/js/translated/forms.js:1884
msgid "Clear input"
msgstr ""
@@ -7382,6 +7345,11 @@ msgstr ""
msgid "NO"
msgstr ""
+#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
+#: templates/js/translated/stock.js:624
+msgid "Select Stock Items"
+msgstr ""
+
#: templates/js/translated/label.js:30
msgid "Stock item(s) must be selected before printing labels"
msgstr ""
@@ -7534,11 +7502,11 @@ msgstr ""
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:423
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:424
msgid "Select file format"
msgstr ""
@@ -7554,7 +7522,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1673
msgid "Stock Status"
msgstr ""
@@ -7582,100 +7550,104 @@ msgstr ""
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1063
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
+#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
+#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:801
+#: templates/js/translated/order.js:823
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
+#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:904 templates/js/translated/order.js:1492
#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+#: templates/js/translated/order.js:919 templates/js/translated/order.js:1508
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
+#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:976
+#: templates/js/translated/order.js:998
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:980
+#: templates/js/translated/order.js:1002
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1017
+#: templates/js/translated/order.js:1039
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1055
+#: templates/js/translated/order.js:1077
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1133
+#: templates/js/translated/order.js:1155
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1226
+#: templates/js/translated/order.js:1248
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1244
+#: templates/js/translated/order.js:1265
+msgid "Confirm Delete Operation"
+msgstr ""
+
+#: templates/js/translated/order.js:1266
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1308
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1535
+#: templates/js/translated/order.js:1557
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1579
+#: templates/js/translated/order.js:1601
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1585
+#: templates/js/translated/order.js:1607
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
+#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1596
+#: templates/js/translated/order.js:1618
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1719
+#: templates/js/translated/order.js:1741
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1779
+#: templates/js/translated/order.js:1801
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1793
+#: templates/js/translated/order.js:1815
msgid "No matching line items"
msgstr ""
@@ -7825,7 +7797,7 @@ msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
-#: templates/js/translated/stock.js:1802
+#: templates/js/translated/stock.js:1832
msgid "Display as list"
msgstr ""
@@ -7833,7 +7805,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1851
msgid "Display as tree"
msgstr ""
@@ -7841,7 +7813,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1895
msgid "Path"
msgstr ""
@@ -7849,11 +7821,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:816
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:817
msgid "Delete test result"
msgstr ""
@@ -7892,268 +7864,342 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:136 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 ""
+
+#: templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
#: templates/js/translated/stock.js:70
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:90
+#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167
+msgid "Next available serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169
+msgid "Latest serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:104
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:126
+#: templates/js/translated/stock.js:140
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:189
+#: templates/js/translated/stock.js:180
+msgid "This part cannot be serialized"
+msgstr ""
+
+#: templates/js/translated/stock.js:219
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:195
+#: templates/js/translated/stock.js:225
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:338
+#: templates/js/translated/stock.js:368
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:351
+#: templates/js/translated/stock.js:381
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:420
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:401
+#: templates/js/translated/stock.js:431
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:402
+#: templates/js/translated/stock.js:432
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:444
+#: templates/js/translated/stock.js:474
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:445
+#: templates/js/translated/stock.js:475
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:451
+#: templates/js/translated/stock.js:481
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:452
+#: templates/js/translated/stock.js:482
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:486
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:487
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:491
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:462 users/models.py:200
+#: templates/js/translated/stock.js:492 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:466 templates/stock_table.html:56
+#: templates/js/translated/stock.js:496 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:595
+#: templates/js/translated/stock.js:625
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:753
+#: templates/js/translated/stock.js:783
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:755
+#: templates/js/translated/stock.js:785
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:760
+#: templates/js/translated/stock.js:790
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:812
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:808
+#: templates/js/translated/stock.js:838
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:895
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:1002
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:1006
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:1010
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:984
+#: templates/js/translated/stock.js:1014
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:990
+#: templates/js/translated/stock.js:1020
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1148
+#: templates/js/translated/stock.js:1178
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1153
+#: templates/js/translated/stock.js:1183
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1156
+#: templates/js/translated/stock.js:1186
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1160
+#: templates/js/translated/stock.js:1190
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1162
+#: templates/js/translated/stock.js:1192
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1166
+#: templates/js/translated/stock.js:1196
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1170
+#: templates/js/translated/stock.js:1200
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1177
+#: templates/js/translated/stock.js:1207
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1179
+#: templates/js/translated/stock.js:1209
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1181
+#: templates/js/translated/stock.js:1211
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1185
+#: templates/js/translated/stock.js:1215
#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1235
+#: templates/js/translated/stock.js:1265
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1308
+#: templates/js/translated/stock.js:1338
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1346
+#: templates/js/translated/stock.js:1376
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
+#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1455
+#: templates/js/translated/stock.js:1485
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1482
+#: templates/js/translated/stock.js:1512
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1484
+#: templates/js/translated/stock.js:1514
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1658
+#: templates/js/translated/stock.js:1688
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1672
+#: templates/js/translated/stock.js:1702
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1673
+#: templates/js/translated/stock.js:1703
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1897
+#: templates/js/translated/stock.js:1927
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1944
+#: templates/js/translated/stock.js:1974
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1963
+#: templates/js/translated/stock.js:1993
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1982
+#: templates/js/translated/stock.js:2012
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2000
+#: templates/js/translated/stock.js:2030
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2023
+#: templates/js/translated/stock.js:2053
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2061
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2072
+#: templates/js/translated/stock.js:2102
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2073
+#: templates/js/translated/stock.js:2103
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2124
+#: templates/js/translated/stock.js:2154
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
-#: templates/js/translated/stock.js:2175
+#: templates/js/translated/stock.js:2205
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po
index 9baaa8a060..4a84b664f2 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-11-25 04:46+0000\n"
-"PO-Revision-Date: 2021-11-25 05:07\n"
+"POT-Creation-Date: 2021-11-30 21:49+0000\n"
+"PO-Revision-Date: 2021-11-30 21:52\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"Language: ru_RU\n"
@@ -36,7 +36,7 @@ msgstr "Введите дату"
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:594
+#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr "Подтвердить"
@@ -114,99 +114,121 @@ msgstr "Серийных номеров не найдено"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Число уникальных серийных номеров ({s}) должно соответствовать количеству ({q})"
-#: InvenTree/models.py:109 stock/models.py:1874
+#: InvenTree/models.py:114
+msgid "Missing file"
+msgstr ""
+
+#: InvenTree/models.py:115
+msgid "Missing external link"
+msgstr ""
+
+#: InvenTree/models.py:126 stock/models.py:1874
+#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr "Вложения"
-#: InvenTree/models.py:110
+#: InvenTree/models.py:127
msgid "Select file to attach"
msgstr "Выберите файл для вложения"
-#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
+#: InvenTree/models.py:133 company/models.py:131 company/models.py:348
+#: company/models.py:564 order/models.py:163 part/models.py:797
+#: report/templates/report/inventree_build_order_base.html:165
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
+msgid "Link"
+msgstr ""
+
+#: InvenTree/models.py:134 build/models.py:330 part/models.py:798
+#: stock/models.py:540
+msgid "Link to external URL"
+msgstr "Ссылка на внешний URL"
+
+#: InvenTree/models.py:137 templates/js/translated/attachment.js:161
msgid "Comment"
msgstr "Комментарий"
-#: InvenTree/models.py:112
+#: InvenTree/models.py:137
msgid "File comment"
msgstr "Комментарий к файлу"
-#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185
#: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:2054
+#: report/templates/report/inventree_test_report_base.html:96
+#: templates/js/translated/stock.js:2084
msgid "User"
msgstr "Пользователь"
-#: InvenTree/models.py:122
+#: InvenTree/models.py:147
msgid "upload date"
msgstr "дата загрузки"
-#: InvenTree/models.py:142
+#: InvenTree/models.py:170
msgid "Filename must not be empty"
msgstr "Имя файла не должно быть пустым"
-#: InvenTree/models.py:165
+#: InvenTree/models.py:193
msgid "Invalid attachment directory"
msgstr "Неверная директория вложений"
-#: InvenTree/models.py:175
+#: InvenTree/models.py:203
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:178
+#: InvenTree/models.py:206
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:185
+#: InvenTree/models.py:213
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:192
+#: InvenTree/models.py:220
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:227
+#: InvenTree/models.py:255
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: InvenTree/models.py:271 InvenTree/models.py:272 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
#: part/templates/part/detail.html:25 report/models.py:181
#: templates/InvenTree/settings/settings.html:259
#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
-#: templates/js/translated/stock.js:1847
+#: templates/js/translated/stock.js:1877
msgid "Name"
msgstr "Название"
-#: InvenTree/models.py:250 build/models.py:207
+#: InvenTree/models.py:278 build/models.py:207
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:80
#: company/templates/company/supplier_part.html:81 label/models.py:119
#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:551 report/models.py:590
+#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
#: templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
-#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/order.js:855 templates/js/translated/order.js:1091
#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
-#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
-#: templates/js/translated/stock.js:1904
+#: templates/js/translated/stock.js:1151 templates/js/translated/stock.js:1889
+#: templates/js/translated/stock.js:1934
msgid "Description"
msgstr "Описание"
-#: InvenTree/models.py:251
+#: InvenTree/models.py:279
msgid "Description (optional)"
msgstr "Описание (необязательно)"
-#: InvenTree/models.py:259
+#: InvenTree/models.py:287
msgid "parent"
msgstr "родитель"
@@ -214,87 +236,87 @@ msgstr "родитель"
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:251
+#: InvenTree/serializers.py:285
msgid "Filename"
msgstr "Имя файла"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:670
msgid "German"
msgstr "Немецкий"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:671
msgid "Greek"
msgstr "Греческий"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:672
msgid "English"
msgstr "Английский"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:673
msgid "Spanish"
msgstr "Испанский"
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:674
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:675
msgid "French"
msgstr "Французский"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:676
msgid "Hebrew"
msgstr "Иврит"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr "Итальянский"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr "Японский"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr "Корейский"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr "Голландский"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr "Норвежский"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr "Польский"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:683
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:684
msgid "Russian"
msgstr "Русский"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:685
msgid "Swedish"
msgstr "Шведский"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:686
msgid "Thai"
msgstr "Тайский"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:687
msgid "Turkish"
msgstr "Турецкий"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:688
msgid "Vietnamese"
msgstr "Вьетнамский"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:689
msgid "Chinese"
msgstr "Китайский"
@@ -401,7 +423,7 @@ msgstr "Укомплектовано"
#: InvenTree/status_codes.py:283
msgid "Removed from assembly"
-msgstr "Снято со сборки"
+msgstr "Удалено из сборки"
#: InvenTree/status_codes.py:285
msgid "Installed component item"
@@ -479,27 +501,27 @@ msgstr "Перегрузка не может превысить 100%"
msgid "Overage must be an integer value or a percentage"
msgstr "Превышение должно быть целым числом или процентом"
-#: InvenTree/views.py:536
+#: InvenTree/views.py:538
msgid "Delete Item"
msgstr "Удалить элемент"
-#: InvenTree/views.py:585
+#: InvenTree/views.py:587
msgid "Check box to confirm item deletion"
msgstr "Установите флажок для подтверждения удаления элемента"
-#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
+#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21
msgid "Edit User Information"
msgstr "Редактировать информацию о пользователе"
-#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
+#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr "Установить пароль"
-#: InvenTree/views.py:630
+#: InvenTree/views.py:632
msgid "Password fields must match"
msgstr "Пароли должны совпадать"
-#: InvenTree/views.py:863 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:101
msgid "System Information"
msgstr "Информация о системе"
@@ -552,12 +574,13 @@ msgstr "Штрих-код, связанный с инвентарем"
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
+#: part/templates/part/detail.html:1076 part/templates/part/detail.html:1162
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:77
+#: report/templates/report/inventree_test_report_base.html:81
+#: report/templates/report/inventree_test_report_base.html:139
#: stock/forms.py:156 stock/serializers.py:286
#: stock/templates/stock/item_base.html:256
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
@@ -565,12 +588,12 @@ msgstr "Штрих-код, связанный с инвентарем"
#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
-#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
-#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/order.js:892 templates/js/translated/order.js:1205
+#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290
+#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479
#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
-#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
-#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377
+#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171
msgid "Quantity"
msgstr "Количество"
@@ -579,8 +602,8 @@ msgid "Enter quantity for build output"
msgstr "Введите количество для вывода сборки"
#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:307 templates/js/translated/stock.js:194
-#: templates/js/translated/stock.js:348
+#: stock/serializers.py:307 templates/js/translated/stock.js:224
+#: templates/js/translated/stock.js:378
msgid "Serial Numbers"
msgstr "Серийные номера"
@@ -639,7 +662,7 @@ msgstr "Ссылка на заказ"
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
+#: templates/js/translated/order.js:886 templates/js/translated/order.js:1473
msgid "Reference"
msgstr ""
@@ -677,10 +700,10 @@ msgstr ""
#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/order.js:840 templates/js/translated/order.js:1457
#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
-#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
-#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508
+#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159
msgid "Part"
msgstr "Детали"
@@ -745,7 +768,7 @@ msgid "Batch code for this build output"
msgstr ""
#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1104
msgid "Creation Date"
msgstr ""
@@ -779,7 +802,7 @@ msgstr ""
#: order/templates/order/order_base.html:154
#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680
+#: templates/js/translated/build.js:1680 templates/js/translated/order.js:700
msgid "Responsible"
msgstr "Ответственный"
@@ -795,27 +818,21 @@ msgstr ""
msgid "External Link"
msgstr "Внешняя ссылка"
-#: build/models.py:330 part/models.py:798 stock/models.py:540
-msgid "Link to external URL"
-msgstr "Ссылка на внешний URL"
-
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:183 order/models.py:738
-#: order/templates/order/po_navbar.html:38
-#: order/templates/order/po_navbar.html:41
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:11 part/models.py:925
#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: stock/serializers.py:583 stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
-#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
-#: templates/js/translated/stock.js:1340
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:985
+#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1370
msgid "Notes"
msgstr "Заметки"
@@ -876,8 +893,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:340
#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
-#: templates/js/translated/stock.js:1990
+#: templates/js/translated/order.js:1178 templates/js/translated/order.js:1183
+#: templates/js/translated/stock.js:2020
msgid "Stock Item"
msgstr ""
@@ -917,16 +934,16 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
-#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: build/serializers.py:190 order/serializers.py:219 order/serializers.py:287
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685
#: stock/templates/stock/item_base.html:286
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
-#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
-#: templates/js/translated/stock.js:1931
+#: templates/js/translated/order.js:1190 templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251
+#: templates/js/translated/stock.js:1961
msgid "Location"
msgstr "Расположение"
@@ -936,11 +953,11 @@ msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:129
#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: order/serializers.py:240 stock/templates/stock/item_base.html:409
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
-#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
-#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+#: templates/js/translated/order.js:1096 templates/js/translated/stock.js:1226
+#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187
msgid "Status"
msgstr "Статус"
@@ -969,7 +986,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:233
#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1060,7 +1077,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:140
#: report/templates/report/inventree_build_order_base.html:126
#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
-#: templates/js/translated/order.js:1087
+#: templates/js/translated/order.js:1109
msgid "Target Date"
msgstr "Целевая дата"
@@ -1096,7 +1113,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/order.js:1029
+#: templates/js/translated/order.js:1051
msgid "Sales Order"
msgstr ""
@@ -1171,7 +1188,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:974
msgid "Destination"
msgstr ""
@@ -1185,7 +1202,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:304
-#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/stock.js:1240 templates/js/translated/stock.js:2194
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:233
msgid "Batch"
@@ -1286,7 +1303,6 @@ msgid "Completed Build Outputs"
msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
-#: order/templates/order/po_navbar.html:35
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:52
@@ -1300,7 +1316,7 @@ msgstr "Приложения"
msgid "Build Notes"
msgstr "Заметки сборки"
-#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:453
#: company/templates/company/detail.html:188
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
@@ -1312,45 +1328,11 @@ msgstr "Заметки сборки"
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:448
-#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
-#: templates/attachment_button.html:4
-msgid "Add Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:467
-#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:142
-#: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
-msgid "Edit Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:474
-#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:149
-#: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
-#: templates/js/translated/order.js:1243
-msgid "Confirm Delete Operation"
-msgstr ""
-
-#: build/templates/build/detail.html:475
-#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:150
-#: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
-msgid "Delete Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:513
+#: build/templates/build/detail.html:477
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:514
+#: build/templates/build/detail.html:478
msgid "All untracked stock items have been allocated"
msgstr ""
@@ -1466,7 +1448,7 @@ msgstr ""
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:34 templates/js/translated/attachment.js:54
+#: common/forms.py:34
msgid "File"
msgstr ""
@@ -2168,13 +2150,11 @@ msgstr ""
msgid "Unit price at specified quantity"
msgstr ""
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
-#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
-#: part/views.py:854
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
+#: part/views.py:858
msgid "Upload File"
msgstr ""
@@ -2182,7 +2162,7 @@ msgstr ""
#: 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:213
-#: part/views.py:855
+#: part/views.py:859
msgid "Match Fields"
msgstr ""
@@ -2200,13 +2180,13 @@ msgstr ""
#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:40
+#: order/templates/order/order_wizard/po_upload.html:47
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:43
+#: part/templates/part/import_wizard/part_upload.html:45
msgid "Previous Step"
msgstr ""
@@ -2252,7 +2232,7 @@ msgid "Contact phone number"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:102
-#: templates/InvenTree/settings/user.html:46
+#: templates/InvenTree/settings/user.html:47
msgid "Email"
msgstr ""
@@ -2268,14 +2248,6 @@ msgstr ""
msgid "Point of contact"
msgstr ""
-#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:163 part/models.py:797
-#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:537
-#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
-msgid "Link"
-msgstr ""
-
#: company/models.py:131
msgid "Link to external company information"
msgstr ""
@@ -2343,7 +2315,7 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:97
#: company/templates/company/supplier_part.html:112
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:874
#: templates/js/translated/part.js:240
msgid "MPN"
msgstr ""
@@ -2372,9 +2344,9 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:90
+#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:1867 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878
msgid "Value"
msgstr ""
@@ -2413,7 +2385,7 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:98
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:861
#: templates/js/translated/part.js:221
msgid "SKU"
msgstr ""
@@ -2450,7 +2422,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:119
#: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1366
msgid "Packaging"
msgstr ""
@@ -2515,8 +2487,8 @@ msgstr ""
#: company/templates/company/company_base.html:126 order/models.py:567
#: order/templates/order/sales_order_base.html:114 stock/models.py:525
#: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
-#: templates/js/translated/stock.js:1972
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1073
+#: templates/js/translated/stock.js:2002
msgid "Customer"
msgstr ""
@@ -2721,7 +2693,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:974
+#: part/templates/part/detail.html:976
msgid "Add Parameter"
msgstr ""
@@ -2752,7 +2724,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:492
#: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1323
msgid "Supplier Part"
msgstr ""
@@ -2778,7 +2750,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
-#: templates/js/translated/stock.js:324
+#: templates/js/translated/stock.js:354
msgid "New Stock Item"
msgstr ""
@@ -2799,7 +2771,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1713
+#: part/templates/part/prices.html:271 part/views.py:1717
msgid "Add Price Break"
msgstr ""
@@ -2807,11 +2779,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1775
+#: company/templates/company/supplier_part.html:224 part/views.py:1779
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1761
+#: company/templates/company/supplier_part.html:238 part/views.py:1765
msgid "Edit Price Break"
msgstr ""
@@ -2831,8 +2803,8 @@ msgstr ""
#: templates/InvenTree/settings/sidebar.html:40
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
-#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
-#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:509
+#: templates/js/translated/stock.js:1162 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2855,7 +2827,7 @@ msgstr ""
#: stock/templates/stock/location.html:132
#: stock/templates/stock/location.html:144
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1901
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2885,24 +2857,24 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:580
+#: company/views.py:129 part/views.py:584
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:612
+#: company/views.py:158 part/views.py:616
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:619
+#: company/views.py:165 part/views.py:623
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:628
+#: company/views.py:174 part/views.py:632
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/api.py:57 report/api.py:201
+#: label/api.py:57 report/api.py:203
msgid "No valid objects provided to template"
msgstr ""
@@ -2959,7 +2931,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
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
+#: report/models.py:322 report/models.py:459 report/models.py:497
msgid "Filters"
msgstr ""
@@ -3089,7 +3061,7 @@ msgstr ""
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1092
+#: order/models.py:582 templates/js/translated/order.js:1114
msgid "Shipment Date"
msgstr ""
@@ -3114,7 +3086,7 @@ msgid "Line item notes"
msgstr ""
#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1144
+#: templates/js/translated/order.js:1166
msgid "Order"
msgstr ""
@@ -3122,8 +3094,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:325
-#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1300
+#: templates/js/translated/stock.js:1983
msgid "Purchase Order"
msgstr ""
@@ -3133,7 +3105,7 @@ msgstr ""
#: order/models.py:797 order/templates/order/order_base.html:147
#: order/templates/order/sales_order_base.html:154
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:954
msgid "Received"
msgstr ""
@@ -3143,7 +3115,7 @@ msgstr ""
#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1324
+#: templates/js/translated/stock.js:1354
msgid "Purchase Price"
msgstr ""
@@ -3204,47 +3176,47 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:167
+#: order/serializers.py:169
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:202
+#: order/serializers.py:204
msgid "Line Item"
msgstr ""
-#: order/serializers.py:208
+#: order/serializers.py:210
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:286
+#: order/serializers.py:220 order/serializers.py:288
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:242
+#: order/serializers.py:244
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:243
+#: order/serializers.py:245
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:260
+#: order/serializers.py:262
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:298
+#: order/serializers.py:300
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:315
+#: order/serializers.py:317
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:328
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:568
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3390,19 +3362,23 @@ msgstr ""
msgid "Select Supplier Part"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:11
+#: order/templates/order/order_wizard/po_upload.html:8
+msgid "Return to Orders"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:17
msgid "Upload File for Purchase Order"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:18
+#: order/templates/order/order_wizard/po_upload.html:25
#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:21
+#: part/templates/part/import_wizard/part_upload.html:23
#, python-format
msgid "Step %(step)s of %(count)s"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:48
+#: order/templates/order/order_wizard/po_upload.html:55
msgid "Order is already processed. Files cannot be uploaded."
msgstr ""
@@ -3445,7 +3421,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:695 templates/js/translated/order.js:1097
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1119
msgid "Items"
msgstr ""
@@ -3463,31 +3439,6 @@ msgstr ""
msgid "Select a purchase order for %(name)s"
msgstr ""
-#: order/templates/order/po_attachments.html:12
-#: order/templates/order/po_navbar.html:32
-msgid "Purchase Order Attachments"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:15
-#: part/templates/part/part_sidebar.html:8
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:26
-msgid "Received Stock Items"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:29
-#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
#: order/templates/order/po_sidebar.html:5
#: order/templates/order/so_sidebar.html:5
#: report/templates/report/inventree_po_report.html:85
@@ -3504,9 +3455,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:216
+#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:191
+#: order/templates/order/sales_order_detail.html:157
msgid "Add Line Item"
msgstr ""
@@ -3518,6 +3469,10 @@ msgstr ""
msgid "Receive Items"
msgstr ""
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
#: order/templates/order/purchase_order_detail.html:76
#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
@@ -3546,7 +3501,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:121
-#: templates/js/translated/order.js:1064
+#: templates/js/translated/order.js:1086
msgid "Customer Reference"
msgstr ""
@@ -3700,19 +3655,19 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:731
+#: part/api.py:758
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:735
+#: part/api.py:762
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:750
+#: part/api.py:777
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
+#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
msgid "This field is required"
msgstr ""
@@ -3926,7 +3881,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/detail.html:45
#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
-#: templates/js/translated/stock.js:1104
+#: templates/js/translated/stock.js:1134
msgid "IPN"
msgstr ""
@@ -4047,7 +4002,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1467
-#: templates/js/translated/stock.js:828
+#: templates/js/translated/stock.js:858
msgid "Test Name"
msgstr ""
@@ -4552,7 +4507,7 @@ msgstr ""
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:365 part/views.py:751
+#: part/templates/part/detail.html:365 part/views.py:755
msgid "Validate BOM"
msgstr ""
@@ -4604,44 +4559,48 @@ msgstr ""
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:770
+#: part/templates/part/detail.html:772
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:867
+#: part/templates/part/detail.html:869
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:924
+#: part/templates/part/detail.html:926
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:1076
+#: part/templates/part/detail.html:1039
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1088
+#: part/templates/part/detail.html:1051
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1100
+#: part/templates/part/detail.html:1063
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1189
+#: part/templates/part/detail.html:1152
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:51
+#: part/templates/part/import_wizard/part_upload.html:53
msgid "Unsuffitient privileges."
msgstr ""
-#: part/templates/part/import_wizard/part_upload.html:14
+#: part/templates/part/import_wizard/part_upload.html:8
+msgid "Return to Parts"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:16
msgid "Import Parts from File"
msgstr ""
@@ -4751,7 +4710,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1546
#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
@@ -4846,6 +4805,11 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1949
+msgid "Details"
+msgstr ""
+
#: part/templates/part/part_sidebar.html:13
msgid "Variants"
msgstr ""
@@ -4949,7 +4913,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1784
+#: part/templates/part/prices.html:215 part/views.py:1788
msgid "Add Internal Price Break"
msgstr ""
@@ -5005,110 +4969,115 @@ msgstr ""
msgid "Match References"
msgstr ""
-#: part/views.py:498
+#: part/views.py:502
msgid "None"
msgstr ""
-#: part/views.py:557
+#: part/views.py:561
msgid "Part QR Code"
msgstr ""
-#: part/views.py:659
+#: part/views.py:663
msgid "Select Part Image"
msgstr ""
-#: part/views.py:685
+#: part/views.py:689
msgid "Updated part image"
msgstr ""
-#: part/views.py:688
+#: part/views.py:692
msgid "Part image not found"
msgstr ""
-#: part/views.py:700
+#: part/views.py:704
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:730
+#: part/views.py:734
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:772
+#: part/views.py:776
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:783
+#: part/views.py:787
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:856
+#: part/views.py:860
msgid "Match Parts"
msgstr ""
-#: part/views.py:1192
+#: part/views.py:1196
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1244
+#: part/views.py:1248
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1251
+#: part/views.py:1255
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1260
+#: part/views.py:1264
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1409
+#: part/views.py:1413
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1419
+#: part/views.py:1423
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1426
+#: part/views.py:1430
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1485 templates/js/translated/part.js:310
+#: part/views.py:1489 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1523
+#: part/views.py:1527
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1529
+#: part/views.py:1533
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1538
+#: part/views.py:1542
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1639
+#: part/views.py:1643
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1695
+#: part/views.py:1699
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1717
+#: part/views.py:1721
msgid "Added new price break"
msgstr ""
-#: part/views.py:1793
+#: part/views.py:1797
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1801
+#: part/views.py:1805
msgid "Delete Internal Price Break"
msgstr ""
+#: report/api.py:234 report/api.py:278
+#, python-brace-format
+msgid "Template file '{filename}' is missing or does not exist"
+msgstr ""
+
#: report/models.py:182
msgid "Template name"
msgstr ""
@@ -5145,51 +5114,51 @@ msgstr ""
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:380
+#: report/models.py:382
msgid "Build Filters"
msgstr ""
-#: report/models.py:381
+#: report/models.py:383
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:423
+#: report/models.py:425
msgid "Part Filters"
msgstr ""
-#: report/models.py:424
+#: report/models.py:426
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:458
+#: report/models.py:460
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:496
+#: report/models.py:498
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:546
+#: report/models.py:548
msgid "Snippet"
msgstr ""
-#: report/models.py:547
+#: report/models.py:549
msgid "Report snippet file"
msgstr ""
-#: report/models.py:551
+#: report/models.py:553
msgid "Snippet file description"
msgstr ""
-#: report/models.py:586
+#: report/models.py:588
msgid "Asset"
msgstr ""
-#: report/models.py:587
+#: report/models.py:589
msgid "Report asset file"
msgstr ""
-#: report/models.py:590
+#: report/models.py:592
msgid "Asset file description"
msgstr ""
@@ -5201,49 +5170,59 @@ msgstr ""
msgid "Stock Item Test Report"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:75
+#: report/templates/report/inventree_test_report_base.html:79
#: stock/models.py:530 stock/templates/stock/item_base.html:238
#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
#: templates/js/translated/build.js:1013
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+#: templates/js/translated/order.js:1288 templates/js/translated/order.js:1377
msgid "Serial Number"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:83
+#: report/templates/report/inventree_test_report_base.html:88
msgid "Test Results"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:93
#: stock/models.py:1855
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:89
+#: report/templates/report/inventree_test_report_base.html:94
#: stock/models.py:1861
msgid "Result"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917
msgid "Date"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:103
+#: report/templates/report/inventree_test_report_base.html:108
msgid "Pass"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:105
+#: report/templates/report/inventree_test_report_base.html:110
msgid "Fail"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:123
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:137
+#: templates/js/translated/stock.js:2177
+msgid "Serial"
+msgstr ""
+
#: stock/api.py:422
msgid "Quantity is required"
msgstr ""
#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
#: stock/templates/stock/item_base.html:382
-#: templates/js/translated/stock.js:1246
+#: templates/js/translated/stock.js:1276
msgid "Expiry Date"
msgstr ""
@@ -5505,7 +5484,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:319 stock/serializers.py:687
+#: stock/serializers.py:319 stock/serializers.py:686
msgid "Destination stock location"
msgstr ""
@@ -5517,15 +5496,15 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:557
+#: stock/serializers.py:556
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:585
+#: stock/serializers.py:584
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:595
+#: stock/serializers.py:594
msgid "A list of stock items must be provided"
msgstr ""
@@ -5570,15 +5549,15 @@ msgstr ""
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
+#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:363
+#: stock/templates/stock/item.html:324
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:377
+#: stock/templates/stock/item.html:338
msgid "Delete Test Result"
msgstr ""
@@ -5752,7 +5731,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:1259
+#: templates/js/translated/stock.js:1289
msgid "Last Updated"
msgstr ""
@@ -5768,7 +5747,7 @@ msgstr ""
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:505
msgid "Edit Stock Status"
msgstr ""
@@ -5885,10 +5864,6 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:12
-msgid "Installed Items"
-msgstr ""
-
#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
@@ -5967,7 +5942,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:618
+#: stock/views.py:760 templates/js/translated/stock.js:648
msgid "Confirm stock adjustment"
msgstr ""
@@ -5975,7 +5950,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:288
+#: stock/views.py:793 templates/js/translated/stock.js:318
msgid "Edit Stock Item"
msgstr ""
@@ -5987,7 +5962,7 @@ msgstr ""
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:268
+#: stock/views.py:1186 templates/js/translated/stock.js:298
msgid "Duplicate Stock Item"
msgstr ""
@@ -6164,11 +6139,11 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/po.html:9
+#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
-#: templates/InvenTree/settings/report.html:10
+#: templates/InvenTree/settings/report.html:8
#: templates/InvenTree/settings/user_reports.html:9
msgid "Report Settings"
msgstr ""
@@ -6221,7 +6196,7 @@ msgid "User Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:8
-#: templates/InvenTree/settings/user.html:11
+#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
@@ -6273,140 +6248,136 @@ msgid "Stock Settings"
msgstr ""
#: templates/InvenTree/settings/user.html:18
-#: templates/js/translated/helpers.js:26
-msgid "Edit"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:20
#: 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:31
+#: templates/InvenTree/settings/user.html:22
+#: templates/js/translated/helpers.js:26
+msgid "Edit"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:32
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:35
+#: templates/InvenTree/settings/user.html:36
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:39
+#: templates/InvenTree/settings/user.html:40
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:54
+#: templates/InvenTree/settings/user.html:55
msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:74
+#: templates/InvenTree/settings/user.html:75
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:76
+#: templates/InvenTree/settings/user.html:77
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:78
+#: templates/InvenTree/settings/user.html:79
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:84
+#: templates/InvenTree/settings/user.html:85
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:85
+#: templates/InvenTree/settings/user.html:86
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:86
-#: templates/InvenTree/settings/user.html:153
+#: templates/InvenTree/settings/user.html:87
+#: templates/InvenTree/settings/user.html:154
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
+#: templates/InvenTree/settings/user.html:94
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:94
+#: templates/InvenTree/settings/user.html:95
msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:101
+#: templates/InvenTree/settings/user.html:102
msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:111
+#: templates/InvenTree/settings/user.html:112
msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:113
+#: templates/InvenTree/settings/user.html:114
msgid "Add Email"
msgstr ""
-#: templates/InvenTree/settings/user.html:123
+#: templates/InvenTree/settings/user.html:124
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:128
+#: templates/InvenTree/settings/user.html:129
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:162
+#: templates/InvenTree/settings/user.html:163
msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:167
+#: templates/InvenTree/settings/user.html:168
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:177
-msgid "Language Settings"
+#: templates/InvenTree/settings/user.html:179
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:185
+msgid "Log out active sessions (except this one)"
msgstr ""
#: templates/InvenTree/settings/user.html:186
-msgid "Select language"
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:195
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:196
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:200
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:201
+msgid "Device"
msgstr ""
#: templates/InvenTree/settings/user.html:202
-#, python-format
-msgid "%(lang_translated)s%% translated"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:204
-msgid "No translations available"
+msgid "Last Activity"
msgstr ""
#: templates/InvenTree/settings/user.html:211
-msgid "Set Language"
+#, python-format
+msgid "%(time)s ago (this session)"
msgstr ""
#: templates/InvenTree/settings/user.html:213
-msgid "Some languages are not complete"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:215
-msgid "Show only sufficent"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "and hidden."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "Show them too"
+#, python-format
+msgid "%(time)s ago"
msgstr ""
#: templates/InvenTree/settings/user.html:224
-msgid "Help the translation efforts!"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:225
-#, 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:233
msgid "Do you really want to remove the selected email address?"
msgstr ""
@@ -6422,6 +6393,52 @@ msgstr ""
msgid "Set Theme"
msgstr ""
+#: templates/InvenTree/settings/user_display.html:54
+msgid "Language Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:63
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:79
+#, python-format
+msgid "%(lang_translated)s%% translated"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:81
+msgid "No translations available"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:88
+msgid "Set Language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:91
+msgid "Some languages are not complete"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:93
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:101
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:102
+#, 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_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6619,6 +6636,14 @@ msgstr ""
msgid "View in administration panel"
msgstr ""
+#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54
+msgid "Add Link"
+msgstr ""
+
+#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36
+msgid "Add Attachment"
+msgstr ""
+
#: templates/base.html:96
msgid "Server Restart Required"
msgstr ""
@@ -6702,154 +6727,87 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/report.js:47 templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/report.js:55 templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/report.js:70 templates/js/translated/report.js:90
-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:594
-msgid "Select Stock Items"
-msgstr ""
-
-#: templates/js/report.js:99 templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:116 templates/js/report.js:169
-#: templates/js/report.js:223 templates/js/report.js:277
-#: templates/js/report.js:331 templates/js/translated/report.js:136
-#: 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 ""
-
-#: templates/js/report.js:117 templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/report.js:152 templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/report.js:153 templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: 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/build.js:1333
-#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
-#: templates/js/report.js:206 templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:224 templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/report.js:259 templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/report.js:260 templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/report.js:278 templates/js/report.js:332
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/report.js:313 templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/report.js:314 templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:191
+#: templates/js/translated/api.js:192
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:192
+#: templates/js/translated/api.js:193
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:215
+#: templates/js/translated/api.js:216
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:216
+#: templates/js/translated/api.js:217
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:27
+#: templates/js/translated/attachment.js:76
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:95
-msgid "Upload Date"
+#: templates/js/translated/attachment.js:98
+msgid "Edit Attachment"
msgstr ""
#: templates/js/translated/attachment.js:108
+msgid "Confirm Delete"
+msgstr ""
+
+#: templates/js/translated/attachment.js:109
+msgid "Delete Attachment"
+msgstr ""
+
+#: templates/js/translated/attachment.js:165
+msgid "Upload Date"
+msgstr ""
+
+#: templates/js/translated/attachment.js:178
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:115
+#: templates/js/translated/attachment.js:185
msgid "Delete attachment"
msgstr ""
@@ -6910,7 +6868,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:600
msgid "Remove stock item"
msgstr ""
@@ -7005,7 +6963,7 @@ msgid "View BOM"
msgstr ""
#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1320
msgid "Actions"
msgstr ""
@@ -7097,7 +7055,7 @@ msgstr ""
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1194
msgid "Location not specified"
msgstr ""
@@ -7106,12 +7064,12 @@ msgid "No active build outputs found"
msgstr ""
#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1305
+#: templates/js/translated/order.js:1327
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1306
+#: templates/js/translated/order.js:1328
msgid "Delete stock allocation"
msgstr ""
@@ -7132,11 +7090,11 @@ msgid "Quantity Per"
msgstr ""
#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1557
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1611
msgid "Build stock"
msgstr ""
@@ -7144,7 +7102,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1604
msgid "Allocate stock"
msgstr ""
@@ -7152,6 +7110,11 @@ msgstr ""
msgid "Specify stock allocation quantity"
msgstr ""
+#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
+#: templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
@@ -7181,8 +7144,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
-#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
-#: templates/js/translated/stock.js:1841
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1094
+#: templates/js/translated/stock.js:1871
msgid "Select"
msgstr ""
@@ -7190,7 +7153,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2090
msgid "No user information"
msgstr ""
@@ -7332,45 +7295,45 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
-#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
+#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365
+#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:351
+#: templates/js/translated/forms.js:352
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:366
+#: templates/js/translated/forms.js:367
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:380
+#: templates/js/translated/forms.js:381
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:394
+#: templates/js/translated/forms.js:395
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:679
+#: templates/js/translated/forms.js:680
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/js/translated/forms.js:1072 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1457
+#: templates/js/translated/forms.js:1463
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1661
+#: templates/js/translated/forms.js:1667
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1878
+#: templates/js/translated/forms.js:1884
msgid "Clear input"
msgstr ""
@@ -7382,6 +7345,11 @@ msgstr ""
msgid "NO"
msgstr ""
+#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
+#: templates/js/translated/stock.js:624
+msgid "Select Stock Items"
+msgstr ""
+
#: templates/js/translated/label.js:30
msgid "Stock item(s) must be selected before printing labels"
msgstr ""
@@ -7534,11 +7502,11 @@ msgstr ""
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:423
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:424
msgid "Select file format"
msgstr ""
@@ -7554,7 +7522,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1673
msgid "Stock Status"
msgstr ""
@@ -7582,100 +7550,104 @@ msgstr ""
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1063
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
+#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
+#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:801
+#: templates/js/translated/order.js:823
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
+#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:904 templates/js/translated/order.js:1492
#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+#: templates/js/translated/order.js:919 templates/js/translated/order.js:1508
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
+#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:976
+#: templates/js/translated/order.js:998
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:980
+#: templates/js/translated/order.js:1002
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1017
+#: templates/js/translated/order.js:1039
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1055
+#: templates/js/translated/order.js:1077
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1133
+#: templates/js/translated/order.js:1155
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1226
+#: templates/js/translated/order.js:1248
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1244
+#: templates/js/translated/order.js:1265
+msgid "Confirm Delete Operation"
+msgstr ""
+
+#: templates/js/translated/order.js:1266
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1308
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1535
+#: templates/js/translated/order.js:1557
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1579
+#: templates/js/translated/order.js:1601
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1585
+#: templates/js/translated/order.js:1607
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
+#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1596
+#: templates/js/translated/order.js:1618
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1719
+#: templates/js/translated/order.js:1741
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1779
+#: templates/js/translated/order.js:1801
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1793
+#: templates/js/translated/order.js:1815
msgid "No matching line items"
msgstr ""
@@ -7825,7 +7797,7 @@ msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
-#: templates/js/translated/stock.js:1802
+#: templates/js/translated/stock.js:1832
msgid "Display as list"
msgstr ""
@@ -7833,7 +7805,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1851
msgid "Display as tree"
msgstr ""
@@ -7841,7 +7813,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1895
msgid "Path"
msgstr ""
@@ -7849,11 +7821,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:816
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:817
msgid "Delete test result"
msgstr ""
@@ -7892,268 +7864,342 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:136 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 ""
+
+#: templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
#: templates/js/translated/stock.js:70
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:90
+#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167
+msgid "Next available serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169
+msgid "Latest serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:104
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:126
+#: templates/js/translated/stock.js:140
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:189
+#: templates/js/translated/stock.js:180
+msgid "This part cannot be serialized"
+msgstr ""
+
+#: templates/js/translated/stock.js:219
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:195
+#: templates/js/translated/stock.js:225
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:338
+#: templates/js/translated/stock.js:368
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:351
+#: templates/js/translated/stock.js:381
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:420
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:401
+#: templates/js/translated/stock.js:431
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:402
+#: templates/js/translated/stock.js:432
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:444
+#: templates/js/translated/stock.js:474
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:445
+#: templates/js/translated/stock.js:475
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:451
+#: templates/js/translated/stock.js:481
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:452
+#: templates/js/translated/stock.js:482
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:486
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:487
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:491
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:462 users/models.py:200
+#: templates/js/translated/stock.js:492 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:466 templates/stock_table.html:56
+#: templates/js/translated/stock.js:496 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:595
+#: templates/js/translated/stock.js:625
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:753
+#: templates/js/translated/stock.js:783
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:755
+#: templates/js/translated/stock.js:785
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:760
+#: templates/js/translated/stock.js:790
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:812
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:808
+#: templates/js/translated/stock.js:838
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:895
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:1002
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:1006
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:1010
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:984
+#: templates/js/translated/stock.js:1014
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:990
+#: templates/js/translated/stock.js:1020
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1148
+#: templates/js/translated/stock.js:1178
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1153
+#: templates/js/translated/stock.js:1183
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1156
+#: templates/js/translated/stock.js:1186
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1160
+#: templates/js/translated/stock.js:1190
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1162
+#: templates/js/translated/stock.js:1192
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1166
+#: templates/js/translated/stock.js:1196
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1170
+#: templates/js/translated/stock.js:1200
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1177
+#: templates/js/translated/stock.js:1207
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1179
+#: templates/js/translated/stock.js:1209
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1181
+#: templates/js/translated/stock.js:1211
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1185
+#: templates/js/translated/stock.js:1215
#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1235
+#: templates/js/translated/stock.js:1265
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1308
+#: templates/js/translated/stock.js:1338
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1346
+#: templates/js/translated/stock.js:1376
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
+#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1455
+#: templates/js/translated/stock.js:1485
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1482
+#: templates/js/translated/stock.js:1512
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1484
+#: templates/js/translated/stock.js:1514
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1658
+#: templates/js/translated/stock.js:1688
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1672
+#: templates/js/translated/stock.js:1702
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1673
+#: templates/js/translated/stock.js:1703
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1897
+#: templates/js/translated/stock.js:1927
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1944
+#: templates/js/translated/stock.js:1974
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1963
+#: templates/js/translated/stock.js:1993
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1982
+#: templates/js/translated/stock.js:2012
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2000
+#: templates/js/translated/stock.js:2030
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2023
+#: templates/js/translated/stock.js:2053
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2061
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2072
+#: templates/js/translated/stock.js:2102
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2073
+#: templates/js/translated/stock.js:2103
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2124
+#: templates/js/translated/stock.js:2154
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
-#: templates/js/translated/stock.js:2175
+#: templates/js/translated/stock.js:2205
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po
index 5eccf5a18c..02e5fa5928 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-11-25 04:46+0000\n"
-"PO-Revision-Date: 2021-11-25 05:07\n"
+"POT-Creation-Date: 2021-11-30 21:49+0000\n"
+"PO-Revision-Date: 2021-11-30 21:51\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
"Language: sv_SE\n"
@@ -36,7 +36,7 @@ msgstr "Ange datum"
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:594
+#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr "Bekräfta"
@@ -114,99 +114,121 @@ msgstr "Inga serienummer hittades"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:109 stock/models.py:1874
+#: InvenTree/models.py:114
+msgid "Missing file"
+msgstr ""
+
+#: InvenTree/models.py:115
+msgid "Missing external link"
+msgstr ""
+
+#: InvenTree/models.py:126 stock/models.py:1874
+#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr "Bilaga"
-#: InvenTree/models.py:110
+#: InvenTree/models.py:127
msgid "Select file to attach"
msgstr "Välj fil att bifoga"
-#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
+#: InvenTree/models.py:133 company/models.py:131 company/models.py:348
+#: company/models.py:564 order/models.py:163 part/models.py:797
+#: report/templates/report/inventree_build_order_base.html:165
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
+msgid "Link"
+msgstr ""
+
+#: InvenTree/models.py:134 build/models.py:330 part/models.py:798
+#: stock/models.py:540
+msgid "Link to external URL"
+msgstr ""
+
+#: InvenTree/models.py:137 templates/js/translated/attachment.js:161
msgid "Comment"
msgstr "Kommentar"
-#: InvenTree/models.py:112
+#: InvenTree/models.py:137
msgid "File comment"
msgstr "Fil kommentar"
-#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185
#: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:2054
+#: report/templates/report/inventree_test_report_base.html:96
+#: templates/js/translated/stock.js:2084
msgid "User"
msgstr "Användare"
-#: InvenTree/models.py:122
+#: InvenTree/models.py:147
msgid "upload date"
msgstr "uppladdningsdatum"
-#: InvenTree/models.py:142
+#: InvenTree/models.py:170
msgid "Filename must not be empty"
msgstr "Filnamnet får inte vara tomt"
-#: InvenTree/models.py:165
+#: InvenTree/models.py:193
msgid "Invalid attachment directory"
msgstr "Ogiltig katalog för bilaga"
-#: InvenTree/models.py:175
+#: InvenTree/models.py:203
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Filnamnet innehåller ogiltiga tecken '{c}'"
-#: InvenTree/models.py:178
+#: InvenTree/models.py:206
msgid "Filename missing extension"
msgstr "Filnamn saknar ändelse"
-#: InvenTree/models.py:185
+#: InvenTree/models.py:213
msgid "Attachment with this filename already exists"
msgstr "Det finns redan en bilaga med detta filnamn"
-#: InvenTree/models.py:192
+#: InvenTree/models.py:220
msgid "Error renaming file"
msgstr "Fel vid namnbyte av fil"
-#: InvenTree/models.py:227
+#: InvenTree/models.py:255
msgid "Invalid choice"
msgstr "Ogiltigt val"
-#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: InvenTree/models.py:271 InvenTree/models.py:272 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
#: part/templates/part/detail.html:25 report/models.py:181
#: templates/InvenTree/settings/settings.html:259
#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
-#: templates/js/translated/stock.js:1847
+#: templates/js/translated/stock.js:1877
msgid "Name"
msgstr "Namn"
-#: InvenTree/models.py:250 build/models.py:207
+#: InvenTree/models.py:278 build/models.py:207
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:80
#: company/templates/company/supplier_part.html:81 label/models.py:119
#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:551 report/models.py:590
+#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
#: templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
-#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/order.js:855 templates/js/translated/order.js:1091
#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
-#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
-#: templates/js/translated/stock.js:1904
+#: templates/js/translated/stock.js:1151 templates/js/translated/stock.js:1889
+#: templates/js/translated/stock.js:1934
msgid "Description"
msgstr "Beskrivning"
-#: InvenTree/models.py:251
+#: InvenTree/models.py:279
msgid "Description (optional)"
msgstr "Beskrivning (valfritt)"
-#: InvenTree/models.py:259
+#: InvenTree/models.py:287
msgid "parent"
msgstr "överordnad"
@@ -214,87 +236,87 @@ msgstr "överordnad"
msgid "Must be a valid number"
msgstr "Måste vara ett giltigt nummer"
-#: InvenTree/serializers.py:251
+#: InvenTree/serializers.py:285
msgid "Filename"
msgstr "Filnamn"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:670
msgid "German"
msgstr "Tyska"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:671
msgid "Greek"
msgstr "Grekiska"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:672
msgid "English"
msgstr "Engelska"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:673
msgid "Spanish"
msgstr "Spanska"
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:674
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:675
msgid "French"
msgstr "Franska"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:676
msgid "Hebrew"
msgstr "Hebreiska"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr "Italienska"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr "Japanska"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr "Koreanska"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr "Nederländska"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr "Norska"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr "Polska"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:683
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:684
msgid "Russian"
msgstr "Ryska"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:685
msgid "Swedish"
msgstr "Svenska"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:686
msgid "Thai"
msgstr "Thailändska"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:687
msgid "Turkish"
msgstr "Turkiska"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:688
msgid "Vietnamese"
msgstr "Vietnamesiska"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:689
msgid "Chinese"
msgstr "Kinesiska"
@@ -479,27 +501,27 @@ msgstr ""
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:536
+#: InvenTree/views.py:538
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:585
+#: InvenTree/views.py:587
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
+#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
+#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:630
+#: InvenTree/views.py:632
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:863 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:101
msgid "System Information"
msgstr ""
@@ -552,12 +574,13 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
+#: part/templates/part/detail.html:1076 part/templates/part/detail.html:1162
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:77
+#: report/templates/report/inventree_test_report_base.html:81
+#: report/templates/report/inventree_test_report_base.html:139
#: stock/forms.py:156 stock/serializers.py:286
#: stock/templates/stock/item_base.html:256
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
@@ -565,12 +588,12 @@ msgstr ""
#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
-#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
-#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/order.js:892 templates/js/translated/order.js:1205
+#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290
+#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479
#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
-#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
-#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377
+#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171
msgid "Quantity"
msgstr ""
@@ -579,8 +602,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:307 templates/js/translated/stock.js:194
-#: templates/js/translated/stock.js:348
+#: stock/serializers.py:307 templates/js/translated/stock.js:224
+#: templates/js/translated/stock.js:378
msgid "Serial Numbers"
msgstr ""
@@ -639,7 +662,7 @@ msgstr ""
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
+#: templates/js/translated/order.js:886 templates/js/translated/order.js:1473
msgid "Reference"
msgstr ""
@@ -677,10 +700,10 @@ msgstr ""
#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/order.js:840 templates/js/translated/order.js:1457
#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
-#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
-#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508
+#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159
msgid "Part"
msgstr ""
@@ -745,7 +768,7 @@ msgid "Batch code for this build output"
msgstr ""
#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1104
msgid "Creation Date"
msgstr ""
@@ -779,7 +802,7 @@ msgstr ""
#: order/templates/order/order_base.html:154
#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680
+#: templates/js/translated/build.js:1680 templates/js/translated/order.js:700
msgid "Responsible"
msgstr ""
@@ -795,27 +818,21 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:330 part/models.py:798 stock/models.py:540
-msgid "Link to external URL"
-msgstr ""
-
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:183 order/models.py:738
-#: order/templates/order/po_navbar.html:38
-#: order/templates/order/po_navbar.html:41
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:11 part/models.py:925
#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: stock/serializers.py:583 stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
-#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
-#: templates/js/translated/stock.js:1340
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:985
+#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1370
msgid "Notes"
msgstr ""
@@ -876,8 +893,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:340
#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
-#: templates/js/translated/stock.js:1990
+#: templates/js/translated/order.js:1178 templates/js/translated/order.js:1183
+#: templates/js/translated/stock.js:2020
msgid "Stock Item"
msgstr ""
@@ -917,16 +934,16 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
-#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: build/serializers.py:190 order/serializers.py:219 order/serializers.py:287
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685
#: stock/templates/stock/item_base.html:286
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
-#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
-#: templates/js/translated/stock.js:1931
+#: templates/js/translated/order.js:1190 templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251
+#: templates/js/translated/stock.js:1961
msgid "Location"
msgstr ""
@@ -936,11 +953,11 @@ msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:129
#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: order/serializers.py:240 stock/templates/stock/item_base.html:409
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
-#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
-#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+#: templates/js/translated/order.js:1096 templates/js/translated/stock.js:1226
+#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187
msgid "Status"
msgstr ""
@@ -969,7 +986,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:233
#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1060,7 +1077,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:140
#: report/templates/report/inventree_build_order_base.html:126
#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
-#: templates/js/translated/order.js:1087
+#: templates/js/translated/order.js:1109
msgid "Target Date"
msgstr ""
@@ -1096,7 +1113,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/order.js:1029
+#: templates/js/translated/order.js:1051
msgid "Sales Order"
msgstr ""
@@ -1171,7 +1188,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:974
msgid "Destination"
msgstr ""
@@ -1185,7 +1202,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:304
-#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/stock.js:1240 templates/js/translated/stock.js:2194
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:233
msgid "Batch"
@@ -1286,7 +1303,6 @@ msgid "Completed Build Outputs"
msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
-#: order/templates/order/po_navbar.html:35
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:52
@@ -1300,7 +1316,7 @@ msgstr ""
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:453
#: company/templates/company/detail.html:188
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
@@ -1312,45 +1328,11 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:448
-#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
-#: templates/attachment_button.html:4
-msgid "Add Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:467
-#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:142
-#: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
-msgid "Edit Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:474
-#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:149
-#: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
-#: templates/js/translated/order.js:1243
-msgid "Confirm Delete Operation"
-msgstr ""
-
-#: build/templates/build/detail.html:475
-#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:150
-#: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
-msgid "Delete Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:513
+#: build/templates/build/detail.html:477
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:514
+#: build/templates/build/detail.html:478
msgid "All untracked stock items have been allocated"
msgstr ""
@@ -1466,7 +1448,7 @@ msgstr ""
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:34 templates/js/translated/attachment.js:54
+#: common/forms.py:34
msgid "File"
msgstr ""
@@ -2168,13 +2150,11 @@ msgstr ""
msgid "Unit price at specified quantity"
msgstr ""
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
-#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
-#: part/views.py:854
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
+#: part/views.py:858
msgid "Upload File"
msgstr ""
@@ -2182,7 +2162,7 @@ msgstr ""
#: 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:213
-#: part/views.py:855
+#: part/views.py:859
msgid "Match Fields"
msgstr ""
@@ -2200,13 +2180,13 @@ msgstr ""
#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:40
+#: order/templates/order/order_wizard/po_upload.html:47
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:43
+#: part/templates/part/import_wizard/part_upload.html:45
msgid "Previous Step"
msgstr ""
@@ -2252,7 +2232,7 @@ msgid "Contact phone number"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:102
-#: templates/InvenTree/settings/user.html:46
+#: templates/InvenTree/settings/user.html:47
msgid "Email"
msgstr ""
@@ -2268,14 +2248,6 @@ msgstr ""
msgid "Point of contact"
msgstr ""
-#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:163 part/models.py:797
-#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:537
-#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
-msgid "Link"
-msgstr ""
-
#: company/models.py:131
msgid "Link to external company information"
msgstr ""
@@ -2343,7 +2315,7 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:97
#: company/templates/company/supplier_part.html:112
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:874
#: templates/js/translated/part.js:240
msgid "MPN"
msgstr ""
@@ -2372,9 +2344,9 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:90
+#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:1867 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878
msgid "Value"
msgstr ""
@@ -2413,7 +2385,7 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:98
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:861
#: templates/js/translated/part.js:221
msgid "SKU"
msgstr ""
@@ -2450,7 +2422,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:119
#: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1366
msgid "Packaging"
msgstr ""
@@ -2515,8 +2487,8 @@ msgstr ""
#: company/templates/company/company_base.html:126 order/models.py:567
#: order/templates/order/sales_order_base.html:114 stock/models.py:525
#: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
-#: templates/js/translated/stock.js:1972
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1073
+#: templates/js/translated/stock.js:2002
msgid "Customer"
msgstr ""
@@ -2721,7 +2693,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:974
+#: part/templates/part/detail.html:976
msgid "Add Parameter"
msgstr ""
@@ -2752,7 +2724,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:492
#: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1323
msgid "Supplier Part"
msgstr ""
@@ -2778,7 +2750,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
-#: templates/js/translated/stock.js:324
+#: templates/js/translated/stock.js:354
msgid "New Stock Item"
msgstr ""
@@ -2799,7 +2771,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1713
+#: part/templates/part/prices.html:271 part/views.py:1717
msgid "Add Price Break"
msgstr ""
@@ -2807,11 +2779,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1775
+#: company/templates/company/supplier_part.html:224 part/views.py:1779
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1761
+#: company/templates/company/supplier_part.html:238 part/views.py:1765
msgid "Edit Price Break"
msgstr ""
@@ -2831,8 +2803,8 @@ msgstr ""
#: templates/InvenTree/settings/sidebar.html:40
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
-#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
-#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:509
+#: templates/js/translated/stock.js:1162 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2855,7 +2827,7 @@ msgstr ""
#: stock/templates/stock/location.html:132
#: stock/templates/stock/location.html:144
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1901
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2885,24 +2857,24 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:580
+#: company/views.py:129 part/views.py:584
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:612
+#: company/views.py:158 part/views.py:616
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:619
+#: company/views.py:165 part/views.py:623
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:628
+#: company/views.py:174 part/views.py:632
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/api.py:57 report/api.py:201
+#: label/api.py:57 report/api.py:203
msgid "No valid objects provided to template"
msgstr ""
@@ -2959,7 +2931,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
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
+#: report/models.py:322 report/models.py:459 report/models.py:497
msgid "Filters"
msgstr ""
@@ -3089,7 +3061,7 @@ msgstr ""
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1092
+#: order/models.py:582 templates/js/translated/order.js:1114
msgid "Shipment Date"
msgstr ""
@@ -3114,7 +3086,7 @@ msgid "Line item notes"
msgstr ""
#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1144
+#: templates/js/translated/order.js:1166
msgid "Order"
msgstr ""
@@ -3122,8 +3094,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:325
-#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1300
+#: templates/js/translated/stock.js:1983
msgid "Purchase Order"
msgstr ""
@@ -3133,7 +3105,7 @@ msgstr ""
#: order/models.py:797 order/templates/order/order_base.html:147
#: order/templates/order/sales_order_base.html:154
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:954
msgid "Received"
msgstr ""
@@ -3143,7 +3115,7 @@ msgstr ""
#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1324
+#: templates/js/translated/stock.js:1354
msgid "Purchase Price"
msgstr ""
@@ -3204,47 +3176,47 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:167
+#: order/serializers.py:169
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:202
+#: order/serializers.py:204
msgid "Line Item"
msgstr ""
-#: order/serializers.py:208
+#: order/serializers.py:210
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:286
+#: order/serializers.py:220 order/serializers.py:288
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:242
+#: order/serializers.py:244
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:243
+#: order/serializers.py:245
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:260
+#: order/serializers.py:262
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:298
+#: order/serializers.py:300
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:315
+#: order/serializers.py:317
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:328
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:568
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3390,19 +3362,23 @@ msgstr ""
msgid "Select Supplier Part"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:11
+#: order/templates/order/order_wizard/po_upload.html:8
+msgid "Return to Orders"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:17
msgid "Upload File for Purchase Order"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:18
+#: order/templates/order/order_wizard/po_upload.html:25
#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:21
+#: part/templates/part/import_wizard/part_upload.html:23
#, python-format
msgid "Step %(step)s of %(count)s"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:48
+#: order/templates/order/order_wizard/po_upload.html:55
msgid "Order is already processed. Files cannot be uploaded."
msgstr ""
@@ -3445,7 +3421,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:695 templates/js/translated/order.js:1097
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1119
msgid "Items"
msgstr ""
@@ -3463,31 +3439,6 @@ msgstr ""
msgid "Select a purchase order for %(name)s"
msgstr ""
-#: order/templates/order/po_attachments.html:12
-#: order/templates/order/po_navbar.html:32
-msgid "Purchase Order Attachments"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:15
-#: part/templates/part/part_sidebar.html:8
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:26
-msgid "Received Stock Items"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:29
-#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
#: order/templates/order/po_sidebar.html:5
#: order/templates/order/so_sidebar.html:5
#: report/templates/report/inventree_po_report.html:85
@@ -3504,9 +3455,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:216
+#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:191
+#: order/templates/order/sales_order_detail.html:157
msgid "Add Line Item"
msgstr ""
@@ -3518,6 +3469,10 @@ msgstr ""
msgid "Receive Items"
msgstr ""
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
#: order/templates/order/purchase_order_detail.html:76
#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
@@ -3546,7 +3501,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:121
-#: templates/js/translated/order.js:1064
+#: templates/js/translated/order.js:1086
msgid "Customer Reference"
msgstr ""
@@ -3700,19 +3655,19 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:731
+#: part/api.py:758
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:735
+#: part/api.py:762
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:750
+#: part/api.py:777
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
+#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
msgid "This field is required"
msgstr ""
@@ -3926,7 +3881,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/detail.html:45
#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
-#: templates/js/translated/stock.js:1104
+#: templates/js/translated/stock.js:1134
msgid "IPN"
msgstr ""
@@ -4047,7 +4002,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1467
-#: templates/js/translated/stock.js:828
+#: templates/js/translated/stock.js:858
msgid "Test Name"
msgstr ""
@@ -4552,7 +4507,7 @@ msgstr ""
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:365 part/views.py:751
+#: part/templates/part/detail.html:365 part/views.py:755
msgid "Validate BOM"
msgstr ""
@@ -4604,44 +4559,48 @@ msgstr ""
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:770
+#: part/templates/part/detail.html:772
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:867
+#: part/templates/part/detail.html:869
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:924
+#: part/templates/part/detail.html:926
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:1076
+#: part/templates/part/detail.html:1039
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1088
+#: part/templates/part/detail.html:1051
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1100
+#: part/templates/part/detail.html:1063
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1189
+#: part/templates/part/detail.html:1152
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:51
+#: part/templates/part/import_wizard/part_upload.html:53
msgid "Unsuffitient privileges."
msgstr ""
-#: part/templates/part/import_wizard/part_upload.html:14
+#: part/templates/part/import_wizard/part_upload.html:8
+msgid "Return to Parts"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:16
msgid "Import Parts from File"
msgstr ""
@@ -4751,7 +4710,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1546
#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
@@ -4846,6 +4805,11 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1949
+msgid "Details"
+msgstr ""
+
#: part/templates/part/part_sidebar.html:13
msgid "Variants"
msgstr ""
@@ -4949,7 +4913,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1784
+#: part/templates/part/prices.html:215 part/views.py:1788
msgid "Add Internal Price Break"
msgstr ""
@@ -5005,110 +4969,115 @@ msgstr ""
msgid "Match References"
msgstr ""
-#: part/views.py:498
+#: part/views.py:502
msgid "None"
msgstr ""
-#: part/views.py:557
+#: part/views.py:561
msgid "Part QR Code"
msgstr ""
-#: part/views.py:659
+#: part/views.py:663
msgid "Select Part Image"
msgstr ""
-#: part/views.py:685
+#: part/views.py:689
msgid "Updated part image"
msgstr ""
-#: part/views.py:688
+#: part/views.py:692
msgid "Part image not found"
msgstr ""
-#: part/views.py:700
+#: part/views.py:704
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:730
+#: part/views.py:734
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:772
+#: part/views.py:776
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:783
+#: part/views.py:787
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:856
+#: part/views.py:860
msgid "Match Parts"
msgstr ""
-#: part/views.py:1192
+#: part/views.py:1196
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1244
+#: part/views.py:1248
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1251
+#: part/views.py:1255
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1260
+#: part/views.py:1264
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1409
+#: part/views.py:1413
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1419
+#: part/views.py:1423
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1426
+#: part/views.py:1430
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1485 templates/js/translated/part.js:310
+#: part/views.py:1489 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1523
+#: part/views.py:1527
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1529
+#: part/views.py:1533
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1538
+#: part/views.py:1542
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1639
+#: part/views.py:1643
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1695
+#: part/views.py:1699
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1717
+#: part/views.py:1721
msgid "Added new price break"
msgstr ""
-#: part/views.py:1793
+#: part/views.py:1797
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1801
+#: part/views.py:1805
msgid "Delete Internal Price Break"
msgstr ""
+#: report/api.py:234 report/api.py:278
+#, python-brace-format
+msgid "Template file '{filename}' is missing or does not exist"
+msgstr ""
+
#: report/models.py:182
msgid "Template name"
msgstr ""
@@ -5145,51 +5114,51 @@ msgstr ""
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:380
+#: report/models.py:382
msgid "Build Filters"
msgstr ""
-#: report/models.py:381
+#: report/models.py:383
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:423
+#: report/models.py:425
msgid "Part Filters"
msgstr ""
-#: report/models.py:424
+#: report/models.py:426
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:458
+#: report/models.py:460
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:496
+#: report/models.py:498
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:546
+#: report/models.py:548
msgid "Snippet"
msgstr ""
-#: report/models.py:547
+#: report/models.py:549
msgid "Report snippet file"
msgstr ""
-#: report/models.py:551
+#: report/models.py:553
msgid "Snippet file description"
msgstr ""
-#: report/models.py:586
+#: report/models.py:588
msgid "Asset"
msgstr ""
-#: report/models.py:587
+#: report/models.py:589
msgid "Report asset file"
msgstr ""
-#: report/models.py:590
+#: report/models.py:592
msgid "Asset file description"
msgstr ""
@@ -5201,49 +5170,59 @@ msgstr ""
msgid "Stock Item Test Report"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:75
+#: report/templates/report/inventree_test_report_base.html:79
#: stock/models.py:530 stock/templates/stock/item_base.html:238
#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
#: templates/js/translated/build.js:1013
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+#: templates/js/translated/order.js:1288 templates/js/translated/order.js:1377
msgid "Serial Number"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:83
+#: report/templates/report/inventree_test_report_base.html:88
msgid "Test Results"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:93
#: stock/models.py:1855
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:89
+#: report/templates/report/inventree_test_report_base.html:94
#: stock/models.py:1861
msgid "Result"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917
msgid "Date"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:103
+#: report/templates/report/inventree_test_report_base.html:108
msgid "Pass"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:105
+#: report/templates/report/inventree_test_report_base.html:110
msgid "Fail"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:123
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:137
+#: templates/js/translated/stock.js:2177
+msgid "Serial"
+msgstr ""
+
#: stock/api.py:422
msgid "Quantity is required"
msgstr ""
#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
#: stock/templates/stock/item_base.html:382
-#: templates/js/translated/stock.js:1246
+#: templates/js/translated/stock.js:1276
msgid "Expiry Date"
msgstr ""
@@ -5505,7 +5484,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:319 stock/serializers.py:687
+#: stock/serializers.py:319 stock/serializers.py:686
msgid "Destination stock location"
msgstr ""
@@ -5517,15 +5496,15 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:557
+#: stock/serializers.py:556
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:585
+#: stock/serializers.py:584
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:595
+#: stock/serializers.py:594
msgid "A list of stock items must be provided"
msgstr ""
@@ -5570,15 +5549,15 @@ msgstr ""
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
+#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:363
+#: stock/templates/stock/item.html:324
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:377
+#: stock/templates/stock/item.html:338
msgid "Delete Test Result"
msgstr ""
@@ -5752,7 +5731,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:1259
+#: templates/js/translated/stock.js:1289
msgid "Last Updated"
msgstr ""
@@ -5768,7 +5747,7 @@ msgstr ""
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:505
msgid "Edit Stock Status"
msgstr ""
@@ -5885,10 +5864,6 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:12
-msgid "Installed Items"
-msgstr ""
-
#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
@@ -5967,7 +5942,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:618
+#: stock/views.py:760 templates/js/translated/stock.js:648
msgid "Confirm stock adjustment"
msgstr ""
@@ -5975,7 +5950,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:288
+#: stock/views.py:793 templates/js/translated/stock.js:318
msgid "Edit Stock Item"
msgstr ""
@@ -5987,7 +5962,7 @@ msgstr ""
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:268
+#: stock/views.py:1186 templates/js/translated/stock.js:298
msgid "Duplicate Stock Item"
msgstr ""
@@ -6164,11 +6139,11 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/po.html:9
+#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
-#: templates/InvenTree/settings/report.html:10
+#: templates/InvenTree/settings/report.html:8
#: templates/InvenTree/settings/user_reports.html:9
msgid "Report Settings"
msgstr ""
@@ -6221,7 +6196,7 @@ msgid "User Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:8
-#: templates/InvenTree/settings/user.html:11
+#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
@@ -6273,140 +6248,136 @@ msgid "Stock Settings"
msgstr ""
#: templates/InvenTree/settings/user.html:18
-#: templates/js/translated/helpers.js:26
-msgid "Edit"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:20
#: 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:31
+#: templates/InvenTree/settings/user.html:22
+#: templates/js/translated/helpers.js:26
+msgid "Edit"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:32
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:35
+#: templates/InvenTree/settings/user.html:36
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:39
+#: templates/InvenTree/settings/user.html:40
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:54
+#: templates/InvenTree/settings/user.html:55
msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:74
+#: templates/InvenTree/settings/user.html:75
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:76
+#: templates/InvenTree/settings/user.html:77
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:78
+#: templates/InvenTree/settings/user.html:79
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:84
+#: templates/InvenTree/settings/user.html:85
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:85
+#: templates/InvenTree/settings/user.html:86
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:86
-#: templates/InvenTree/settings/user.html:153
+#: templates/InvenTree/settings/user.html:87
+#: templates/InvenTree/settings/user.html:154
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
+#: templates/InvenTree/settings/user.html:94
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:94
+#: templates/InvenTree/settings/user.html:95
msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:101
+#: templates/InvenTree/settings/user.html:102
msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:111
+#: templates/InvenTree/settings/user.html:112
msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:113
+#: templates/InvenTree/settings/user.html:114
msgid "Add Email"
msgstr ""
-#: templates/InvenTree/settings/user.html:123
+#: templates/InvenTree/settings/user.html:124
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:128
+#: templates/InvenTree/settings/user.html:129
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:162
+#: templates/InvenTree/settings/user.html:163
msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:167
+#: templates/InvenTree/settings/user.html:168
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:177
-msgid "Language Settings"
+#: templates/InvenTree/settings/user.html:179
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:185
+msgid "Log out active sessions (except this one)"
msgstr ""
#: templates/InvenTree/settings/user.html:186
-msgid "Select language"
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:195
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:196
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:200
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:201
+msgid "Device"
msgstr ""
#: templates/InvenTree/settings/user.html:202
-#, python-format
-msgid "%(lang_translated)s%% translated"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:204
-msgid "No translations available"
+msgid "Last Activity"
msgstr ""
#: templates/InvenTree/settings/user.html:211
-msgid "Set Language"
+#, python-format
+msgid "%(time)s ago (this session)"
msgstr ""
#: templates/InvenTree/settings/user.html:213
-msgid "Some languages are not complete"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:215
-msgid "Show only sufficent"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "and hidden."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "Show them too"
+#, python-format
+msgid "%(time)s ago"
msgstr ""
#: templates/InvenTree/settings/user.html:224
-msgid "Help the translation efforts!"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:225
-#, 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:233
msgid "Do you really want to remove the selected email address?"
msgstr ""
@@ -6422,6 +6393,52 @@ msgstr ""
msgid "Set Theme"
msgstr ""
+#: templates/InvenTree/settings/user_display.html:54
+msgid "Language Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:63
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:79
+#, python-format
+msgid "%(lang_translated)s%% translated"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:81
+msgid "No translations available"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:88
+msgid "Set Language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:91
+msgid "Some languages are not complete"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:93
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:101
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:102
+#, 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_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6619,6 +6636,14 @@ msgstr ""
msgid "View in administration panel"
msgstr ""
+#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54
+msgid "Add Link"
+msgstr ""
+
+#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36
+msgid "Add Attachment"
+msgstr ""
+
#: templates/base.html:96
msgid "Server Restart Required"
msgstr ""
@@ -6702,154 +6727,87 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/report.js:47 templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/report.js:55 templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/report.js:70 templates/js/translated/report.js:90
-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:594
-msgid "Select Stock Items"
-msgstr ""
-
-#: templates/js/report.js:99 templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:116 templates/js/report.js:169
-#: templates/js/report.js:223 templates/js/report.js:277
-#: templates/js/report.js:331 templates/js/translated/report.js:136
-#: 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 ""
-
-#: templates/js/report.js:117 templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/report.js:152 templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/report.js:153 templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: 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/build.js:1333
-#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
-#: templates/js/report.js:206 templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:224 templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/report.js:259 templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/report.js:260 templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/report.js:278 templates/js/report.js:332
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/report.js:313 templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/report.js:314 templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:191
+#: templates/js/translated/api.js:192
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:192
+#: templates/js/translated/api.js:193
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:215
+#: templates/js/translated/api.js:216
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:216
+#: templates/js/translated/api.js:217
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:27
+#: templates/js/translated/attachment.js:76
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:95
-msgid "Upload Date"
+#: templates/js/translated/attachment.js:98
+msgid "Edit Attachment"
msgstr ""
#: templates/js/translated/attachment.js:108
+msgid "Confirm Delete"
+msgstr ""
+
+#: templates/js/translated/attachment.js:109
+msgid "Delete Attachment"
+msgstr ""
+
+#: templates/js/translated/attachment.js:165
+msgid "Upload Date"
+msgstr ""
+
+#: templates/js/translated/attachment.js:178
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:115
+#: templates/js/translated/attachment.js:185
msgid "Delete attachment"
msgstr ""
@@ -6910,7 +6868,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:600
msgid "Remove stock item"
msgstr ""
@@ -7005,7 +6963,7 @@ msgid "View BOM"
msgstr ""
#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1320
msgid "Actions"
msgstr ""
@@ -7097,7 +7055,7 @@ msgstr ""
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1194
msgid "Location not specified"
msgstr ""
@@ -7106,12 +7064,12 @@ msgid "No active build outputs found"
msgstr ""
#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1305
+#: templates/js/translated/order.js:1327
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1306
+#: templates/js/translated/order.js:1328
msgid "Delete stock allocation"
msgstr ""
@@ -7132,11 +7090,11 @@ msgid "Quantity Per"
msgstr ""
#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1557
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1611
msgid "Build stock"
msgstr ""
@@ -7144,7 +7102,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1604
msgid "Allocate stock"
msgstr ""
@@ -7152,6 +7110,11 @@ msgstr ""
msgid "Specify stock allocation quantity"
msgstr ""
+#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
+#: templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
@@ -7181,8 +7144,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
-#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
-#: templates/js/translated/stock.js:1841
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1094
+#: templates/js/translated/stock.js:1871
msgid "Select"
msgstr ""
@@ -7190,7 +7153,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2090
msgid "No user information"
msgstr ""
@@ -7332,45 +7295,45 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
-#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
+#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365
+#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:351
+#: templates/js/translated/forms.js:352
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:366
+#: templates/js/translated/forms.js:367
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:380
+#: templates/js/translated/forms.js:381
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:394
+#: templates/js/translated/forms.js:395
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:679
+#: templates/js/translated/forms.js:680
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/js/translated/forms.js:1072 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1457
+#: templates/js/translated/forms.js:1463
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1661
+#: templates/js/translated/forms.js:1667
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1878
+#: templates/js/translated/forms.js:1884
msgid "Clear input"
msgstr ""
@@ -7382,6 +7345,11 @@ msgstr ""
msgid "NO"
msgstr ""
+#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
+#: templates/js/translated/stock.js:624
+msgid "Select Stock Items"
+msgstr ""
+
#: templates/js/translated/label.js:30
msgid "Stock item(s) must be selected before printing labels"
msgstr ""
@@ -7534,11 +7502,11 @@ msgstr ""
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:423
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:424
msgid "Select file format"
msgstr ""
@@ -7554,7 +7522,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1673
msgid "Stock Status"
msgstr ""
@@ -7582,100 +7550,104 @@ msgstr ""
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1063
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
+#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
+#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:801
+#: templates/js/translated/order.js:823
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
+#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:904 templates/js/translated/order.js:1492
#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+#: templates/js/translated/order.js:919 templates/js/translated/order.js:1508
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
+#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:976
+#: templates/js/translated/order.js:998
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:980
+#: templates/js/translated/order.js:1002
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1017
+#: templates/js/translated/order.js:1039
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1055
+#: templates/js/translated/order.js:1077
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1133
+#: templates/js/translated/order.js:1155
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1226
+#: templates/js/translated/order.js:1248
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1244
+#: templates/js/translated/order.js:1265
+msgid "Confirm Delete Operation"
+msgstr ""
+
+#: templates/js/translated/order.js:1266
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1308
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1535
+#: templates/js/translated/order.js:1557
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1579
+#: templates/js/translated/order.js:1601
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1585
+#: templates/js/translated/order.js:1607
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
+#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1596
+#: templates/js/translated/order.js:1618
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1719
+#: templates/js/translated/order.js:1741
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1779
+#: templates/js/translated/order.js:1801
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1793
+#: templates/js/translated/order.js:1815
msgid "No matching line items"
msgstr ""
@@ -7825,7 +7797,7 @@ msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
-#: templates/js/translated/stock.js:1802
+#: templates/js/translated/stock.js:1832
msgid "Display as list"
msgstr ""
@@ -7833,7 +7805,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1851
msgid "Display as tree"
msgstr ""
@@ -7841,7 +7813,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1895
msgid "Path"
msgstr ""
@@ -7849,11 +7821,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:816
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:817
msgid "Delete test result"
msgstr ""
@@ -7892,268 +7864,342 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:136 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 ""
+
+#: templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
#: templates/js/translated/stock.js:70
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:90
+#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167
+msgid "Next available serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169
+msgid "Latest serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:104
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:126
+#: templates/js/translated/stock.js:140
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:189
+#: templates/js/translated/stock.js:180
+msgid "This part cannot be serialized"
+msgstr ""
+
+#: templates/js/translated/stock.js:219
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:195
+#: templates/js/translated/stock.js:225
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:338
+#: templates/js/translated/stock.js:368
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:351
+#: templates/js/translated/stock.js:381
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:420
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:401
+#: templates/js/translated/stock.js:431
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:402
+#: templates/js/translated/stock.js:432
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:444
+#: templates/js/translated/stock.js:474
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:445
+#: templates/js/translated/stock.js:475
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:451
+#: templates/js/translated/stock.js:481
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:452
+#: templates/js/translated/stock.js:482
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:486
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:487
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:491
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:462 users/models.py:200
+#: templates/js/translated/stock.js:492 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:466 templates/stock_table.html:56
+#: templates/js/translated/stock.js:496 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:595
+#: templates/js/translated/stock.js:625
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:753
+#: templates/js/translated/stock.js:783
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:755
+#: templates/js/translated/stock.js:785
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:760
+#: templates/js/translated/stock.js:790
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:812
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:808
+#: templates/js/translated/stock.js:838
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:895
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:1002
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:1006
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:1010
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:984
+#: templates/js/translated/stock.js:1014
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:990
+#: templates/js/translated/stock.js:1020
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1148
+#: templates/js/translated/stock.js:1178
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1153
+#: templates/js/translated/stock.js:1183
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1156
+#: templates/js/translated/stock.js:1186
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1160
+#: templates/js/translated/stock.js:1190
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1162
+#: templates/js/translated/stock.js:1192
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1166
+#: templates/js/translated/stock.js:1196
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1170
+#: templates/js/translated/stock.js:1200
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1177
+#: templates/js/translated/stock.js:1207
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1179
+#: templates/js/translated/stock.js:1209
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1181
+#: templates/js/translated/stock.js:1211
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1185
+#: templates/js/translated/stock.js:1215
#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1235
+#: templates/js/translated/stock.js:1265
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1308
+#: templates/js/translated/stock.js:1338
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1346
+#: templates/js/translated/stock.js:1376
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
+#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1455
+#: templates/js/translated/stock.js:1485
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1482
+#: templates/js/translated/stock.js:1512
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1484
+#: templates/js/translated/stock.js:1514
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1658
+#: templates/js/translated/stock.js:1688
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1672
+#: templates/js/translated/stock.js:1702
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1673
+#: templates/js/translated/stock.js:1703
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1897
+#: templates/js/translated/stock.js:1927
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1944
+#: templates/js/translated/stock.js:1974
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1963
+#: templates/js/translated/stock.js:1993
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1982
+#: templates/js/translated/stock.js:2012
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2000
+#: templates/js/translated/stock.js:2030
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2023
+#: templates/js/translated/stock.js:2053
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2061
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2072
+#: templates/js/translated/stock.js:2102
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2073
+#: templates/js/translated/stock.js:2103
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2124
+#: templates/js/translated/stock.js:2154
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
-#: templates/js/translated/stock.js:2175
+#: templates/js/translated/stock.js:2205
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po
index e6326f8035..b9039d5982 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-11-25 04:46+0000\n"
-"PO-Revision-Date: 2021-11-25 05:07\n"
+"POT-Creation-Date: 2021-11-30 21:49+0000\n"
+"PO-Revision-Date: 2021-11-30 21:51\n"
"Last-Translator: \n"
"Language-Team: Thai\n"
"Language: th_TH\n"
@@ -36,7 +36,7 @@ msgstr ""
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:594
+#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr ""
@@ -114,99 +114,121 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:109 stock/models.py:1874
+#: InvenTree/models.py:114
+msgid "Missing file"
+msgstr ""
+
+#: InvenTree/models.py:115
+msgid "Missing external link"
+msgstr ""
+
+#: InvenTree/models.py:126 stock/models.py:1874
+#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:110
+#: InvenTree/models.py:127
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
+#: InvenTree/models.py:133 company/models.py:131 company/models.py:348
+#: company/models.py:564 order/models.py:163 part/models.py:797
+#: report/templates/report/inventree_build_order_base.html:165
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
+msgid "Link"
+msgstr ""
+
+#: InvenTree/models.py:134 build/models.py:330 part/models.py:798
+#: stock/models.py:540
+msgid "Link to external URL"
+msgstr ""
+
+#: InvenTree/models.py:137 templates/js/translated/attachment.js:161
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:112
+#: InvenTree/models.py:137
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185
#: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:2054
+#: report/templates/report/inventree_test_report_base.html:96
+#: templates/js/translated/stock.js:2084
msgid "User"
msgstr ""
-#: InvenTree/models.py:122
+#: InvenTree/models.py:147
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:142
+#: InvenTree/models.py:170
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:165
+#: InvenTree/models.py:193
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:175
+#: InvenTree/models.py:203
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:178
+#: InvenTree/models.py:206
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:185
+#: InvenTree/models.py:213
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:192
+#: InvenTree/models.py:220
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:227
+#: InvenTree/models.py:255
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: InvenTree/models.py:271 InvenTree/models.py:272 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
#: part/templates/part/detail.html:25 report/models.py:181
#: templates/InvenTree/settings/settings.html:259
#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
-#: templates/js/translated/stock.js:1847
+#: templates/js/translated/stock.js:1877
msgid "Name"
msgstr ""
-#: InvenTree/models.py:250 build/models.py:207
+#: InvenTree/models.py:278 build/models.py:207
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:80
#: company/templates/company/supplier_part.html:81 label/models.py:119
#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:551 report/models.py:590
+#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
#: templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
-#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/order.js:855 templates/js/translated/order.js:1091
#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
-#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
-#: templates/js/translated/stock.js:1904
+#: templates/js/translated/stock.js:1151 templates/js/translated/stock.js:1889
+#: templates/js/translated/stock.js:1934
msgid "Description"
msgstr ""
-#: InvenTree/models.py:251
+#: InvenTree/models.py:279
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:259
+#: InvenTree/models.py:287
msgid "parent"
msgstr ""
@@ -214,87 +236,87 @@ msgstr ""
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:251
+#: InvenTree/serializers.py:285
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:670
msgid "German"
msgstr ""
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:671
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:672
msgid "English"
msgstr ""
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:673
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:674
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:675
msgid "French"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:676
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:683
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:684
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:685
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:686
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:687
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:688
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:689
msgid "Chinese"
msgstr ""
@@ -479,27 +501,27 @@ msgstr ""
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:536
+#: InvenTree/views.py:538
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:585
+#: InvenTree/views.py:587
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
+#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
+#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:630
+#: InvenTree/views.py:632
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:863 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:101
msgid "System Information"
msgstr ""
@@ -552,12 +574,13 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
+#: part/templates/part/detail.html:1076 part/templates/part/detail.html:1162
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:77
+#: report/templates/report/inventree_test_report_base.html:81
+#: report/templates/report/inventree_test_report_base.html:139
#: stock/forms.py:156 stock/serializers.py:286
#: stock/templates/stock/item_base.html:256
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
@@ -565,12 +588,12 @@ msgstr ""
#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
-#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
-#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/order.js:892 templates/js/translated/order.js:1205
+#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290
+#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479
#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
-#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
-#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377
+#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171
msgid "Quantity"
msgstr ""
@@ -579,8 +602,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:307 templates/js/translated/stock.js:194
-#: templates/js/translated/stock.js:348
+#: stock/serializers.py:307 templates/js/translated/stock.js:224
+#: templates/js/translated/stock.js:378
msgid "Serial Numbers"
msgstr ""
@@ -639,7 +662,7 @@ msgstr ""
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
+#: templates/js/translated/order.js:886 templates/js/translated/order.js:1473
msgid "Reference"
msgstr ""
@@ -677,10 +700,10 @@ msgstr ""
#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/order.js:840 templates/js/translated/order.js:1457
#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
-#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
-#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508
+#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159
msgid "Part"
msgstr ""
@@ -745,7 +768,7 @@ msgid "Batch code for this build output"
msgstr ""
#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1104
msgid "Creation Date"
msgstr ""
@@ -779,7 +802,7 @@ msgstr ""
#: order/templates/order/order_base.html:154
#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680
+#: templates/js/translated/build.js:1680 templates/js/translated/order.js:700
msgid "Responsible"
msgstr ""
@@ -795,27 +818,21 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:330 part/models.py:798 stock/models.py:540
-msgid "Link to external URL"
-msgstr ""
-
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:183 order/models.py:738
-#: order/templates/order/po_navbar.html:38
-#: order/templates/order/po_navbar.html:41
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:11 part/models.py:925
#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: stock/serializers.py:583 stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
-#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
-#: templates/js/translated/stock.js:1340
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:985
+#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1370
msgid "Notes"
msgstr ""
@@ -876,8 +893,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:340
#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
-#: templates/js/translated/stock.js:1990
+#: templates/js/translated/order.js:1178 templates/js/translated/order.js:1183
+#: templates/js/translated/stock.js:2020
msgid "Stock Item"
msgstr ""
@@ -917,16 +934,16 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
-#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: build/serializers.py:190 order/serializers.py:219 order/serializers.py:287
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685
#: stock/templates/stock/item_base.html:286
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
-#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
-#: templates/js/translated/stock.js:1931
+#: templates/js/translated/order.js:1190 templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251
+#: templates/js/translated/stock.js:1961
msgid "Location"
msgstr ""
@@ -936,11 +953,11 @@ msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:129
#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: order/serializers.py:240 stock/templates/stock/item_base.html:409
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
-#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
-#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+#: templates/js/translated/order.js:1096 templates/js/translated/stock.js:1226
+#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187
msgid "Status"
msgstr ""
@@ -969,7 +986,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:233
#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1060,7 +1077,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:140
#: report/templates/report/inventree_build_order_base.html:126
#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
-#: templates/js/translated/order.js:1087
+#: templates/js/translated/order.js:1109
msgid "Target Date"
msgstr ""
@@ -1096,7 +1113,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/order.js:1029
+#: templates/js/translated/order.js:1051
msgid "Sales Order"
msgstr ""
@@ -1171,7 +1188,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:974
msgid "Destination"
msgstr ""
@@ -1185,7 +1202,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:304
-#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/stock.js:1240 templates/js/translated/stock.js:2194
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:233
msgid "Batch"
@@ -1286,7 +1303,6 @@ msgid "Completed Build Outputs"
msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
-#: order/templates/order/po_navbar.html:35
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:52
@@ -1300,7 +1316,7 @@ msgstr ""
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:453
#: company/templates/company/detail.html:188
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
@@ -1312,45 +1328,11 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:448
-#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
-#: templates/attachment_button.html:4
-msgid "Add Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:467
-#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:142
-#: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
-msgid "Edit Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:474
-#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:149
-#: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
-#: templates/js/translated/order.js:1243
-msgid "Confirm Delete Operation"
-msgstr ""
-
-#: build/templates/build/detail.html:475
-#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:150
-#: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
-msgid "Delete Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:513
+#: build/templates/build/detail.html:477
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:514
+#: build/templates/build/detail.html:478
msgid "All untracked stock items have been allocated"
msgstr ""
@@ -1466,7 +1448,7 @@ msgstr ""
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:34 templates/js/translated/attachment.js:54
+#: common/forms.py:34
msgid "File"
msgstr ""
@@ -2168,13 +2150,11 @@ msgstr ""
msgid "Unit price at specified quantity"
msgstr ""
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
-#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
-#: part/views.py:854
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
+#: part/views.py:858
msgid "Upload File"
msgstr ""
@@ -2182,7 +2162,7 @@ msgstr ""
#: 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:213
-#: part/views.py:855
+#: part/views.py:859
msgid "Match Fields"
msgstr ""
@@ -2200,13 +2180,13 @@ msgstr ""
#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:40
+#: order/templates/order/order_wizard/po_upload.html:47
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:43
+#: part/templates/part/import_wizard/part_upload.html:45
msgid "Previous Step"
msgstr ""
@@ -2252,7 +2232,7 @@ msgid "Contact phone number"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:102
-#: templates/InvenTree/settings/user.html:46
+#: templates/InvenTree/settings/user.html:47
msgid "Email"
msgstr ""
@@ -2268,14 +2248,6 @@ msgstr ""
msgid "Point of contact"
msgstr ""
-#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:163 part/models.py:797
-#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:537
-#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
-msgid "Link"
-msgstr ""
-
#: company/models.py:131
msgid "Link to external company information"
msgstr ""
@@ -2343,7 +2315,7 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:97
#: company/templates/company/supplier_part.html:112
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:874
#: templates/js/translated/part.js:240
msgid "MPN"
msgstr ""
@@ -2372,9 +2344,9 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:90
+#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:1867 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878
msgid "Value"
msgstr ""
@@ -2413,7 +2385,7 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:98
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:861
#: templates/js/translated/part.js:221
msgid "SKU"
msgstr ""
@@ -2450,7 +2422,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:119
#: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1366
msgid "Packaging"
msgstr ""
@@ -2515,8 +2487,8 @@ msgstr ""
#: company/templates/company/company_base.html:126 order/models.py:567
#: order/templates/order/sales_order_base.html:114 stock/models.py:525
#: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
-#: templates/js/translated/stock.js:1972
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1073
+#: templates/js/translated/stock.js:2002
msgid "Customer"
msgstr ""
@@ -2721,7 +2693,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:974
+#: part/templates/part/detail.html:976
msgid "Add Parameter"
msgstr ""
@@ -2752,7 +2724,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:492
#: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1323
msgid "Supplier Part"
msgstr ""
@@ -2778,7 +2750,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
-#: templates/js/translated/stock.js:324
+#: templates/js/translated/stock.js:354
msgid "New Stock Item"
msgstr ""
@@ -2799,7 +2771,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1713
+#: part/templates/part/prices.html:271 part/views.py:1717
msgid "Add Price Break"
msgstr ""
@@ -2807,11 +2779,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1775
+#: company/templates/company/supplier_part.html:224 part/views.py:1779
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1761
+#: company/templates/company/supplier_part.html:238 part/views.py:1765
msgid "Edit Price Break"
msgstr ""
@@ -2831,8 +2803,8 @@ msgstr ""
#: templates/InvenTree/settings/sidebar.html:40
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
-#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
-#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:509
+#: templates/js/translated/stock.js:1162 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2855,7 +2827,7 @@ msgstr ""
#: stock/templates/stock/location.html:132
#: stock/templates/stock/location.html:144
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1901
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2885,24 +2857,24 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:580
+#: company/views.py:129 part/views.py:584
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:612
+#: company/views.py:158 part/views.py:616
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:619
+#: company/views.py:165 part/views.py:623
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:628
+#: company/views.py:174 part/views.py:632
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/api.py:57 report/api.py:201
+#: label/api.py:57 report/api.py:203
msgid "No valid objects provided to template"
msgstr ""
@@ -2959,7 +2931,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
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
+#: report/models.py:322 report/models.py:459 report/models.py:497
msgid "Filters"
msgstr ""
@@ -3089,7 +3061,7 @@ msgstr ""
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1092
+#: order/models.py:582 templates/js/translated/order.js:1114
msgid "Shipment Date"
msgstr ""
@@ -3114,7 +3086,7 @@ msgid "Line item notes"
msgstr ""
#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1144
+#: templates/js/translated/order.js:1166
msgid "Order"
msgstr ""
@@ -3122,8 +3094,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:325
-#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1300
+#: templates/js/translated/stock.js:1983
msgid "Purchase Order"
msgstr ""
@@ -3133,7 +3105,7 @@ msgstr ""
#: order/models.py:797 order/templates/order/order_base.html:147
#: order/templates/order/sales_order_base.html:154
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:954
msgid "Received"
msgstr ""
@@ -3143,7 +3115,7 @@ msgstr ""
#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1324
+#: templates/js/translated/stock.js:1354
msgid "Purchase Price"
msgstr ""
@@ -3204,47 +3176,47 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:167
+#: order/serializers.py:169
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:202
+#: order/serializers.py:204
msgid "Line Item"
msgstr ""
-#: order/serializers.py:208
+#: order/serializers.py:210
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:286
+#: order/serializers.py:220 order/serializers.py:288
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:242
+#: order/serializers.py:244
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:243
+#: order/serializers.py:245
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:260
+#: order/serializers.py:262
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:298
+#: order/serializers.py:300
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:315
+#: order/serializers.py:317
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:328
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:568
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3390,19 +3362,23 @@ msgstr ""
msgid "Select Supplier Part"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:11
+#: order/templates/order/order_wizard/po_upload.html:8
+msgid "Return to Orders"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:17
msgid "Upload File for Purchase Order"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:18
+#: order/templates/order/order_wizard/po_upload.html:25
#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:21
+#: part/templates/part/import_wizard/part_upload.html:23
#, python-format
msgid "Step %(step)s of %(count)s"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:48
+#: order/templates/order/order_wizard/po_upload.html:55
msgid "Order is already processed. Files cannot be uploaded."
msgstr ""
@@ -3445,7 +3421,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:695 templates/js/translated/order.js:1097
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1119
msgid "Items"
msgstr ""
@@ -3463,31 +3439,6 @@ msgstr ""
msgid "Select a purchase order for %(name)s"
msgstr ""
-#: order/templates/order/po_attachments.html:12
-#: order/templates/order/po_navbar.html:32
-msgid "Purchase Order Attachments"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:15
-#: part/templates/part/part_sidebar.html:8
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:26
-msgid "Received Stock Items"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:29
-#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
#: order/templates/order/po_sidebar.html:5
#: order/templates/order/so_sidebar.html:5
#: report/templates/report/inventree_po_report.html:85
@@ -3504,9 +3455,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:216
+#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:191
+#: order/templates/order/sales_order_detail.html:157
msgid "Add Line Item"
msgstr ""
@@ -3518,6 +3469,10 @@ msgstr ""
msgid "Receive Items"
msgstr ""
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
#: order/templates/order/purchase_order_detail.html:76
#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
@@ -3546,7 +3501,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:121
-#: templates/js/translated/order.js:1064
+#: templates/js/translated/order.js:1086
msgid "Customer Reference"
msgstr ""
@@ -3700,19 +3655,19 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:731
+#: part/api.py:758
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:735
+#: part/api.py:762
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:750
+#: part/api.py:777
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
+#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
msgid "This field is required"
msgstr ""
@@ -3926,7 +3881,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/detail.html:45
#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
-#: templates/js/translated/stock.js:1104
+#: templates/js/translated/stock.js:1134
msgid "IPN"
msgstr ""
@@ -4047,7 +4002,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1467
-#: templates/js/translated/stock.js:828
+#: templates/js/translated/stock.js:858
msgid "Test Name"
msgstr ""
@@ -4552,7 +4507,7 @@ msgstr ""
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:365 part/views.py:751
+#: part/templates/part/detail.html:365 part/views.py:755
msgid "Validate BOM"
msgstr ""
@@ -4604,44 +4559,48 @@ msgstr ""
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:770
+#: part/templates/part/detail.html:772
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:867
+#: part/templates/part/detail.html:869
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:924
+#: part/templates/part/detail.html:926
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:1076
+#: part/templates/part/detail.html:1039
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1088
+#: part/templates/part/detail.html:1051
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1100
+#: part/templates/part/detail.html:1063
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1189
+#: part/templates/part/detail.html:1152
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:51
+#: part/templates/part/import_wizard/part_upload.html:53
msgid "Unsuffitient privileges."
msgstr ""
-#: part/templates/part/import_wizard/part_upload.html:14
+#: part/templates/part/import_wizard/part_upload.html:8
+msgid "Return to Parts"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:16
msgid "Import Parts from File"
msgstr ""
@@ -4751,7 +4710,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1546
#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
@@ -4846,6 +4805,11 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1949
+msgid "Details"
+msgstr ""
+
#: part/templates/part/part_sidebar.html:13
msgid "Variants"
msgstr ""
@@ -4949,7 +4913,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1784
+#: part/templates/part/prices.html:215 part/views.py:1788
msgid "Add Internal Price Break"
msgstr ""
@@ -5005,110 +4969,115 @@ msgstr ""
msgid "Match References"
msgstr ""
-#: part/views.py:498
+#: part/views.py:502
msgid "None"
msgstr ""
-#: part/views.py:557
+#: part/views.py:561
msgid "Part QR Code"
msgstr ""
-#: part/views.py:659
+#: part/views.py:663
msgid "Select Part Image"
msgstr ""
-#: part/views.py:685
+#: part/views.py:689
msgid "Updated part image"
msgstr ""
-#: part/views.py:688
+#: part/views.py:692
msgid "Part image not found"
msgstr ""
-#: part/views.py:700
+#: part/views.py:704
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:730
+#: part/views.py:734
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:772
+#: part/views.py:776
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:783
+#: part/views.py:787
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:856
+#: part/views.py:860
msgid "Match Parts"
msgstr ""
-#: part/views.py:1192
+#: part/views.py:1196
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1244
+#: part/views.py:1248
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1251
+#: part/views.py:1255
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1260
+#: part/views.py:1264
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1409
+#: part/views.py:1413
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1419
+#: part/views.py:1423
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1426
+#: part/views.py:1430
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1485 templates/js/translated/part.js:310
+#: part/views.py:1489 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1523
+#: part/views.py:1527
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1529
+#: part/views.py:1533
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1538
+#: part/views.py:1542
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1639
+#: part/views.py:1643
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1695
+#: part/views.py:1699
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1717
+#: part/views.py:1721
msgid "Added new price break"
msgstr ""
-#: part/views.py:1793
+#: part/views.py:1797
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1801
+#: part/views.py:1805
msgid "Delete Internal Price Break"
msgstr ""
+#: report/api.py:234 report/api.py:278
+#, python-brace-format
+msgid "Template file '{filename}' is missing or does not exist"
+msgstr ""
+
#: report/models.py:182
msgid "Template name"
msgstr ""
@@ -5145,51 +5114,51 @@ msgstr ""
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:380
+#: report/models.py:382
msgid "Build Filters"
msgstr ""
-#: report/models.py:381
+#: report/models.py:383
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:423
+#: report/models.py:425
msgid "Part Filters"
msgstr ""
-#: report/models.py:424
+#: report/models.py:426
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:458
+#: report/models.py:460
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:496
+#: report/models.py:498
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:546
+#: report/models.py:548
msgid "Snippet"
msgstr ""
-#: report/models.py:547
+#: report/models.py:549
msgid "Report snippet file"
msgstr ""
-#: report/models.py:551
+#: report/models.py:553
msgid "Snippet file description"
msgstr ""
-#: report/models.py:586
+#: report/models.py:588
msgid "Asset"
msgstr ""
-#: report/models.py:587
+#: report/models.py:589
msgid "Report asset file"
msgstr ""
-#: report/models.py:590
+#: report/models.py:592
msgid "Asset file description"
msgstr ""
@@ -5201,49 +5170,59 @@ msgstr ""
msgid "Stock Item Test Report"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:75
+#: report/templates/report/inventree_test_report_base.html:79
#: stock/models.py:530 stock/templates/stock/item_base.html:238
#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
#: templates/js/translated/build.js:1013
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+#: templates/js/translated/order.js:1288 templates/js/translated/order.js:1377
msgid "Serial Number"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:83
+#: report/templates/report/inventree_test_report_base.html:88
msgid "Test Results"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:93
#: stock/models.py:1855
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:89
+#: report/templates/report/inventree_test_report_base.html:94
#: stock/models.py:1861
msgid "Result"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917
msgid "Date"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:103
+#: report/templates/report/inventree_test_report_base.html:108
msgid "Pass"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:105
+#: report/templates/report/inventree_test_report_base.html:110
msgid "Fail"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:123
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:137
+#: templates/js/translated/stock.js:2177
+msgid "Serial"
+msgstr ""
+
#: stock/api.py:422
msgid "Quantity is required"
msgstr ""
#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
#: stock/templates/stock/item_base.html:382
-#: templates/js/translated/stock.js:1246
+#: templates/js/translated/stock.js:1276
msgid "Expiry Date"
msgstr ""
@@ -5505,7 +5484,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:319 stock/serializers.py:687
+#: stock/serializers.py:319 stock/serializers.py:686
msgid "Destination stock location"
msgstr ""
@@ -5517,15 +5496,15 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:557
+#: stock/serializers.py:556
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:585
+#: stock/serializers.py:584
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:595
+#: stock/serializers.py:594
msgid "A list of stock items must be provided"
msgstr ""
@@ -5570,15 +5549,15 @@ msgstr ""
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
+#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:363
+#: stock/templates/stock/item.html:324
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:377
+#: stock/templates/stock/item.html:338
msgid "Delete Test Result"
msgstr ""
@@ -5752,7 +5731,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:1259
+#: templates/js/translated/stock.js:1289
msgid "Last Updated"
msgstr ""
@@ -5768,7 +5747,7 @@ msgstr ""
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:505
msgid "Edit Stock Status"
msgstr ""
@@ -5885,10 +5864,6 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:12
-msgid "Installed Items"
-msgstr ""
-
#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
@@ -5967,7 +5942,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:618
+#: stock/views.py:760 templates/js/translated/stock.js:648
msgid "Confirm stock adjustment"
msgstr ""
@@ -5975,7 +5950,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:288
+#: stock/views.py:793 templates/js/translated/stock.js:318
msgid "Edit Stock Item"
msgstr ""
@@ -5987,7 +5962,7 @@ msgstr ""
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:268
+#: stock/views.py:1186 templates/js/translated/stock.js:298
msgid "Duplicate Stock Item"
msgstr ""
@@ -6164,11 +6139,11 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/po.html:9
+#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
-#: templates/InvenTree/settings/report.html:10
+#: templates/InvenTree/settings/report.html:8
#: templates/InvenTree/settings/user_reports.html:9
msgid "Report Settings"
msgstr ""
@@ -6221,7 +6196,7 @@ msgid "User Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:8
-#: templates/InvenTree/settings/user.html:11
+#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
@@ -6273,140 +6248,136 @@ msgid "Stock Settings"
msgstr ""
#: templates/InvenTree/settings/user.html:18
-#: templates/js/translated/helpers.js:26
-msgid "Edit"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:20
#: 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:31
+#: templates/InvenTree/settings/user.html:22
+#: templates/js/translated/helpers.js:26
+msgid "Edit"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:32
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:35
+#: templates/InvenTree/settings/user.html:36
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:39
+#: templates/InvenTree/settings/user.html:40
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:54
+#: templates/InvenTree/settings/user.html:55
msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:74
+#: templates/InvenTree/settings/user.html:75
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:76
+#: templates/InvenTree/settings/user.html:77
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:78
+#: templates/InvenTree/settings/user.html:79
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:84
+#: templates/InvenTree/settings/user.html:85
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:85
+#: templates/InvenTree/settings/user.html:86
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:86
-#: templates/InvenTree/settings/user.html:153
+#: templates/InvenTree/settings/user.html:87
+#: templates/InvenTree/settings/user.html:154
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
+#: templates/InvenTree/settings/user.html:94
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:94
+#: templates/InvenTree/settings/user.html:95
msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:101
+#: templates/InvenTree/settings/user.html:102
msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:111
+#: templates/InvenTree/settings/user.html:112
msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:113
+#: templates/InvenTree/settings/user.html:114
msgid "Add Email"
msgstr ""
-#: templates/InvenTree/settings/user.html:123
+#: templates/InvenTree/settings/user.html:124
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:128
+#: templates/InvenTree/settings/user.html:129
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:162
+#: templates/InvenTree/settings/user.html:163
msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:167
+#: templates/InvenTree/settings/user.html:168
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:177
-msgid "Language Settings"
+#: templates/InvenTree/settings/user.html:179
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:185
+msgid "Log out active sessions (except this one)"
msgstr ""
#: templates/InvenTree/settings/user.html:186
-msgid "Select language"
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:195
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:196
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:200
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:201
+msgid "Device"
msgstr ""
#: templates/InvenTree/settings/user.html:202
-#, python-format
-msgid "%(lang_translated)s%% translated"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:204
-msgid "No translations available"
+msgid "Last Activity"
msgstr ""
#: templates/InvenTree/settings/user.html:211
-msgid "Set Language"
+#, python-format
+msgid "%(time)s ago (this session)"
msgstr ""
#: templates/InvenTree/settings/user.html:213
-msgid "Some languages are not complete"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:215
-msgid "Show only sufficent"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "and hidden."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "Show them too"
+#, python-format
+msgid "%(time)s ago"
msgstr ""
#: templates/InvenTree/settings/user.html:224
-msgid "Help the translation efforts!"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:225
-#, 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:233
msgid "Do you really want to remove the selected email address?"
msgstr ""
@@ -6422,6 +6393,52 @@ msgstr ""
msgid "Set Theme"
msgstr ""
+#: templates/InvenTree/settings/user_display.html:54
+msgid "Language Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:63
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:79
+#, python-format
+msgid "%(lang_translated)s%% translated"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:81
+msgid "No translations available"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:88
+msgid "Set Language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:91
+msgid "Some languages are not complete"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:93
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:101
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:102
+#, 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_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6619,6 +6636,14 @@ msgstr ""
msgid "View in administration panel"
msgstr ""
+#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54
+msgid "Add Link"
+msgstr ""
+
+#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36
+msgid "Add Attachment"
+msgstr ""
+
#: templates/base.html:96
msgid "Server Restart Required"
msgstr ""
@@ -6702,154 +6727,87 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/report.js:47 templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/report.js:55 templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/report.js:70 templates/js/translated/report.js:90
-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:594
-msgid "Select Stock Items"
-msgstr ""
-
-#: templates/js/report.js:99 templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:116 templates/js/report.js:169
-#: templates/js/report.js:223 templates/js/report.js:277
-#: templates/js/report.js:331 templates/js/translated/report.js:136
-#: 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 ""
-
-#: templates/js/report.js:117 templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/report.js:152 templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/report.js:153 templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: 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/build.js:1333
-#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
-#: templates/js/report.js:206 templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:224 templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/report.js:259 templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/report.js:260 templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/report.js:278 templates/js/report.js:332
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/report.js:313 templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/report.js:314 templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:191
+#: templates/js/translated/api.js:192
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:192
+#: templates/js/translated/api.js:193
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:215
+#: templates/js/translated/api.js:216
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:216
+#: templates/js/translated/api.js:217
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:27
+#: templates/js/translated/attachment.js:76
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:95
-msgid "Upload Date"
+#: templates/js/translated/attachment.js:98
+msgid "Edit Attachment"
msgstr ""
#: templates/js/translated/attachment.js:108
+msgid "Confirm Delete"
+msgstr ""
+
+#: templates/js/translated/attachment.js:109
+msgid "Delete Attachment"
+msgstr ""
+
+#: templates/js/translated/attachment.js:165
+msgid "Upload Date"
+msgstr ""
+
+#: templates/js/translated/attachment.js:178
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:115
+#: templates/js/translated/attachment.js:185
msgid "Delete attachment"
msgstr ""
@@ -6910,7 +6868,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:600
msgid "Remove stock item"
msgstr ""
@@ -7005,7 +6963,7 @@ msgid "View BOM"
msgstr ""
#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1320
msgid "Actions"
msgstr ""
@@ -7097,7 +7055,7 @@ msgstr ""
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1194
msgid "Location not specified"
msgstr ""
@@ -7106,12 +7064,12 @@ msgid "No active build outputs found"
msgstr ""
#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1305
+#: templates/js/translated/order.js:1327
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1306
+#: templates/js/translated/order.js:1328
msgid "Delete stock allocation"
msgstr ""
@@ -7132,11 +7090,11 @@ msgid "Quantity Per"
msgstr ""
#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1557
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1611
msgid "Build stock"
msgstr ""
@@ -7144,7 +7102,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1604
msgid "Allocate stock"
msgstr ""
@@ -7152,6 +7110,11 @@ msgstr ""
msgid "Specify stock allocation quantity"
msgstr ""
+#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
+#: templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
@@ -7181,8 +7144,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
-#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
-#: templates/js/translated/stock.js:1841
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1094
+#: templates/js/translated/stock.js:1871
msgid "Select"
msgstr ""
@@ -7190,7 +7153,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2090
msgid "No user information"
msgstr ""
@@ -7332,45 +7295,45 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
-#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
+#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365
+#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:351
+#: templates/js/translated/forms.js:352
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:366
+#: templates/js/translated/forms.js:367
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:380
+#: templates/js/translated/forms.js:381
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:394
+#: templates/js/translated/forms.js:395
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:679
+#: templates/js/translated/forms.js:680
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/js/translated/forms.js:1072 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1457
+#: templates/js/translated/forms.js:1463
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1661
+#: templates/js/translated/forms.js:1667
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1878
+#: templates/js/translated/forms.js:1884
msgid "Clear input"
msgstr ""
@@ -7382,6 +7345,11 @@ msgstr ""
msgid "NO"
msgstr ""
+#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
+#: templates/js/translated/stock.js:624
+msgid "Select Stock Items"
+msgstr ""
+
#: templates/js/translated/label.js:30
msgid "Stock item(s) must be selected before printing labels"
msgstr ""
@@ -7534,11 +7502,11 @@ msgstr ""
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:423
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:424
msgid "Select file format"
msgstr ""
@@ -7554,7 +7522,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1673
msgid "Stock Status"
msgstr ""
@@ -7582,100 +7550,104 @@ msgstr ""
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1063
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
+#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
+#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:801
+#: templates/js/translated/order.js:823
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
+#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:904 templates/js/translated/order.js:1492
#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+#: templates/js/translated/order.js:919 templates/js/translated/order.js:1508
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
+#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:976
+#: templates/js/translated/order.js:998
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:980
+#: templates/js/translated/order.js:1002
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1017
+#: templates/js/translated/order.js:1039
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1055
+#: templates/js/translated/order.js:1077
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1133
+#: templates/js/translated/order.js:1155
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1226
+#: templates/js/translated/order.js:1248
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1244
+#: templates/js/translated/order.js:1265
+msgid "Confirm Delete Operation"
+msgstr ""
+
+#: templates/js/translated/order.js:1266
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1308
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1535
+#: templates/js/translated/order.js:1557
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1579
+#: templates/js/translated/order.js:1601
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1585
+#: templates/js/translated/order.js:1607
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
+#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1596
+#: templates/js/translated/order.js:1618
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1719
+#: templates/js/translated/order.js:1741
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1779
+#: templates/js/translated/order.js:1801
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1793
+#: templates/js/translated/order.js:1815
msgid "No matching line items"
msgstr ""
@@ -7825,7 +7797,7 @@ msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
-#: templates/js/translated/stock.js:1802
+#: templates/js/translated/stock.js:1832
msgid "Display as list"
msgstr ""
@@ -7833,7 +7805,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1851
msgid "Display as tree"
msgstr ""
@@ -7841,7 +7813,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1895
msgid "Path"
msgstr ""
@@ -7849,11 +7821,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:816
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:817
msgid "Delete test result"
msgstr ""
@@ -7892,268 +7864,342 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:136 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 ""
+
+#: templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
#: templates/js/translated/stock.js:70
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:90
+#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167
+msgid "Next available serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169
+msgid "Latest serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:104
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:126
+#: templates/js/translated/stock.js:140
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:189
+#: templates/js/translated/stock.js:180
+msgid "This part cannot be serialized"
+msgstr ""
+
+#: templates/js/translated/stock.js:219
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:195
+#: templates/js/translated/stock.js:225
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:338
+#: templates/js/translated/stock.js:368
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:351
+#: templates/js/translated/stock.js:381
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:420
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:401
+#: templates/js/translated/stock.js:431
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:402
+#: templates/js/translated/stock.js:432
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:444
+#: templates/js/translated/stock.js:474
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:445
+#: templates/js/translated/stock.js:475
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:451
+#: templates/js/translated/stock.js:481
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:452
+#: templates/js/translated/stock.js:482
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:486
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:487
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:491
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:462 users/models.py:200
+#: templates/js/translated/stock.js:492 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:466 templates/stock_table.html:56
+#: templates/js/translated/stock.js:496 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:595
+#: templates/js/translated/stock.js:625
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:753
+#: templates/js/translated/stock.js:783
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:755
+#: templates/js/translated/stock.js:785
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:760
+#: templates/js/translated/stock.js:790
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:812
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:808
+#: templates/js/translated/stock.js:838
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:895
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:1002
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:1006
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:1010
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:984
+#: templates/js/translated/stock.js:1014
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:990
+#: templates/js/translated/stock.js:1020
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1148
+#: templates/js/translated/stock.js:1178
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1153
+#: templates/js/translated/stock.js:1183
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1156
+#: templates/js/translated/stock.js:1186
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1160
+#: templates/js/translated/stock.js:1190
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1162
+#: templates/js/translated/stock.js:1192
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1166
+#: templates/js/translated/stock.js:1196
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1170
+#: templates/js/translated/stock.js:1200
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1177
+#: templates/js/translated/stock.js:1207
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1179
+#: templates/js/translated/stock.js:1209
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1181
+#: templates/js/translated/stock.js:1211
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1185
+#: templates/js/translated/stock.js:1215
#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1235
+#: templates/js/translated/stock.js:1265
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1308
+#: templates/js/translated/stock.js:1338
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1346
+#: templates/js/translated/stock.js:1376
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
+#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1455
+#: templates/js/translated/stock.js:1485
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1482
+#: templates/js/translated/stock.js:1512
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1484
+#: templates/js/translated/stock.js:1514
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1658
+#: templates/js/translated/stock.js:1688
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1672
+#: templates/js/translated/stock.js:1702
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1673
+#: templates/js/translated/stock.js:1703
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1897
+#: templates/js/translated/stock.js:1927
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1944
+#: templates/js/translated/stock.js:1974
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1963
+#: templates/js/translated/stock.js:1993
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1982
+#: templates/js/translated/stock.js:2012
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2000
+#: templates/js/translated/stock.js:2030
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2023
+#: templates/js/translated/stock.js:2053
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2061
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2072
+#: templates/js/translated/stock.js:2102
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2073
+#: templates/js/translated/stock.js:2103
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2124
+#: templates/js/translated/stock.js:2154
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
-#: templates/js/translated/stock.js:2175
+#: templates/js/translated/stock.js:2205
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po
index f6a1da6da8..c068a30029 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-11-25 04:46+0000\n"
-"PO-Revision-Date: 2021-11-25 05:07\n"
+"POT-Creation-Date: 2021-11-30 21:49+0000\n"
+"PO-Revision-Date: 2021-11-30 21:52\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Language: tr_TR\n"
@@ -36,7 +36,7 @@ msgstr "Tarih giriniz"
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:594
+#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr "Onay"
@@ -114,99 +114,121 @@ 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:109 stock/models.py:1874
+#: InvenTree/models.py:114
+msgid "Missing file"
+msgstr ""
+
+#: InvenTree/models.py:115
+msgid "Missing external link"
+msgstr ""
+
+#: InvenTree/models.py:126 stock/models.py:1874
+#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr "Ek"
-#: InvenTree/models.py:110
+#: InvenTree/models.py:127
msgid "Select file to attach"
msgstr "Eklenecek dosyayı seç"
-#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
+#: InvenTree/models.py:133 company/models.py:131 company/models.py:348
+#: company/models.py:564 order/models.py:163 part/models.py:797
+#: report/templates/report/inventree_build_order_base.html:165
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
+msgid "Link"
+msgstr "Bağlantı"
+
+#: InvenTree/models.py:134 build/models.py:330 part/models.py:798
+#: stock/models.py:540
+msgid "Link to external URL"
+msgstr "Harici URL'ye bağlantı"
+
+#: InvenTree/models.py:137 templates/js/translated/attachment.js:161
msgid "Comment"
msgstr "Yorum"
-#: InvenTree/models.py:112
+#: InvenTree/models.py:137
msgid "File comment"
msgstr "Dosya yorumu"
-#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185
#: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:2054
+#: report/templates/report/inventree_test_report_base.html:96
+#: templates/js/translated/stock.js:2084
msgid "User"
msgstr "Kullanıcı"
-#: InvenTree/models.py:122
+#: InvenTree/models.py:147
msgid "upload date"
msgstr "yükleme tarihi"
-#: InvenTree/models.py:142
+#: InvenTree/models.py:170
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:165
+#: InvenTree/models.py:193
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:175
+#: InvenTree/models.py:203
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:178
+#: InvenTree/models.py:206
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:185
+#: InvenTree/models.py:213
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:192
+#: InvenTree/models.py:220
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:227
+#: InvenTree/models.py:255
msgid "Invalid choice"
msgstr "Geçersiz seçim"
-#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: InvenTree/models.py:271 InvenTree/models.py:272 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
#: part/templates/part/detail.html:25 report/models.py:181
#: templates/InvenTree/settings/settings.html:259
#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
-#: templates/js/translated/stock.js:1847
+#: templates/js/translated/stock.js:1877
msgid "Name"
msgstr "Adı"
-#: InvenTree/models.py:250 build/models.py:207
+#: InvenTree/models.py:278 build/models.py:207
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:80
#: company/templates/company/supplier_part.html:81 label/models.py:119
#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:551 report/models.py:590
+#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
#: templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
-#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/order.js:855 templates/js/translated/order.js:1091
#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
-#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
-#: templates/js/translated/stock.js:1904
+#: templates/js/translated/stock.js:1151 templates/js/translated/stock.js:1889
+#: templates/js/translated/stock.js:1934
msgid "Description"
msgstr "Açıklama"
-#: InvenTree/models.py:251
+#: InvenTree/models.py:279
msgid "Description (optional)"
msgstr "Açıklama (isteğe bağlı)"
-#: InvenTree/models.py:259
+#: InvenTree/models.py:287
msgid "parent"
msgstr "üst"
@@ -214,87 +236,87 @@ msgstr "üst"
msgid "Must be a valid number"
msgstr "Geçerli bir numara olmalı"
-#: InvenTree/serializers.py:251
+#: InvenTree/serializers.py:285
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:670
msgid "German"
msgstr "Almanca"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:671
msgid "Greek"
msgstr "Yunanca"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:672
msgid "English"
msgstr "İngilizce"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:673
msgid "Spanish"
msgstr "İspanyolca"
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:674
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:675
msgid "French"
msgstr "Fransızca"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:676
msgid "Hebrew"
msgstr "İbranice"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr "İtalyanca"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr "Japonca"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr "Korece"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr "Flemenkçe"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr "Norveççe"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr "Polonyaca"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:683
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:684
msgid "Russian"
msgstr "Rusça"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:685
msgid "Swedish"
msgstr "İsveççe"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:686
msgid "Thai"
msgstr "Tay dili"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:687
msgid "Turkish"
msgstr "Türkçe"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:688
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:689
msgid "Chinese"
msgstr "Çince"
@@ -479,27 +501,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:536
+#: InvenTree/views.py:538
msgid "Delete Item"
msgstr "Ögeyi Sil"
-#: InvenTree/views.py:585
+#: InvenTree/views.py:587
msgid "Check box to confirm item deletion"
msgstr "Öge silme işlemini onaylamak için kutuyu işaretleyin"
-#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
+#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21
msgid "Edit User Information"
msgstr "Kullanıcı Bilgisini Düzenle"
-#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
+#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr "Şifre Belirle"
-#: InvenTree/views.py:630
+#: InvenTree/views.py:632
msgid "Password fields must match"
msgstr "Parola alanları eşleşmelidir"
-#: InvenTree/views.py:863 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:101
msgid "System Information"
msgstr "Sistem Bilgisi"
@@ -552,12 +574,13 @@ msgstr "Barkod başka bir stok kalemiyle ilişkili"
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
+#: part/templates/part/detail.html:1076 part/templates/part/detail.html:1162
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:77
+#: report/templates/report/inventree_test_report_base.html:81
+#: report/templates/report/inventree_test_report_base.html:139
#: stock/forms.py:156 stock/serializers.py:286
#: stock/templates/stock/item_base.html:256
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
@@ -565,12 +588,12 @@ msgstr "Barkod başka bir stok kalemiyle ilişkili"
#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
-#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
-#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/order.js:892 templates/js/translated/order.js:1205
+#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290
+#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479
#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
-#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
-#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377
+#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171
msgid "Quantity"
msgstr "Miktar"
@@ -579,8 +602,8 @@ msgid "Enter quantity for build output"
msgstr "Yapım işi çıktısı için miktarını girin"
#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:307 templates/js/translated/stock.js:194
-#: templates/js/translated/stock.js:348
+#: stock/serializers.py:307 templates/js/translated/stock.js:224
+#: templates/js/translated/stock.js:378
msgid "Serial Numbers"
msgstr "Seri Numaraları"
@@ -639,7 +662,7 @@ msgstr "Yapım İşi Emri Referansı"
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
+#: templates/js/translated/order.js:886 templates/js/translated/order.js:1473
msgid "Reference"
msgstr "Referans"
@@ -677,10 +700,10 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/order.js:840 templates/js/translated/order.js:1457
#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
-#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
-#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508
+#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159
msgid "Part"
msgstr "Parça"
@@ -745,7 +768,7 @@ msgid "Batch code for this build output"
msgstr "Yapım işi çıktısı için sıra numarası"
#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1104
msgid "Creation Date"
msgstr "Oluşturulma tarihi"
@@ -779,7 +802,7 @@ msgstr "Bu yapım işi emrini veren kullanıcı"
#: order/templates/order/order_base.html:154
#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680
+#: templates/js/translated/build.js:1680 templates/js/translated/order.js:700
msgid "Responsible"
msgstr "Sorumlu"
@@ -795,27 +818,21 @@ msgstr "Bu yapım işi emrinden sorumlu kullanıcı"
msgid "External Link"
msgstr "Harici Bağlantı"
-#: build/models.py:330 part/models.py:798 stock/models.py:540
-msgid "Link to external URL"
-msgstr "Harici URL'ye bağlantı"
-
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:183 order/models.py:738
-#: order/templates/order/po_navbar.html:38
-#: order/templates/order/po_navbar.html:41
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:11 part/models.py:925
#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: stock/serializers.py:583 stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
-#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
-#: templates/js/translated/stock.js:1340
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:985
+#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1370
msgid "Notes"
msgstr "Notlar"
@@ -876,8 +893,8 @@ msgstr "Yapım işi için tahsis edilen parçalar"
#: stock/templates/stock/item_base.html:340
#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
-#: templates/js/translated/stock.js:1990
+#: templates/js/translated/order.js:1178 templates/js/translated/order.js:1183
+#: templates/js/translated/stock.js:2020
msgid "Stock Item"
msgstr "Stok Kalemi"
@@ -917,16 +934,16 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
-#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: build/serializers.py:190 order/serializers.py:219 order/serializers.py:287
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685
#: stock/templates/stock/item_base.html:286
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
-#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
-#: templates/js/translated/stock.js:1931
+#: templates/js/translated/order.js:1190 templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251
+#: templates/js/translated/stock.js:1961
msgid "Location"
msgstr "Konum"
@@ -936,11 +953,11 @@ msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:129
#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: order/serializers.py:240 stock/templates/stock/item_base.html:409
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
-#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
-#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+#: templates/js/translated/order.js:1096 templates/js/translated/stock.js:1226
+#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187
msgid "Status"
msgstr "Durum"
@@ -969,7 +986,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:233
#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1060,7 +1077,7 @@ msgstr "Stok, yapım işi emri için tamamen tahsis edilemedi"
#: order/templates/order/sales_order_base.html:140
#: report/templates/report/inventree_build_order_base.html:126
#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
-#: templates/js/translated/order.js:1087
+#: templates/js/translated/order.js:1109
msgid "Target Date"
msgstr "Hedeflenen tarih"
@@ -1096,7 +1113,7 @@ msgstr "Tamamlandı"
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/order.js:1029
+#: templates/js/translated/order.js:1051
msgid "Sales Order"
msgstr "Sipariş Emri"
@@ -1171,7 +1188,7 @@ msgid "Stock can be taken from any available location."
msgstr "Stok herhangi bir konumdan alınabilir."
#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:974
msgid "Destination"
msgstr "Hedef"
@@ -1185,7 +1202,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:304
-#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/stock.js:1240 templates/js/translated/stock.js:2194
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:233
msgid "Batch"
@@ -1286,7 +1303,6 @@ msgid "Completed Build Outputs"
msgstr "Tamamlanmış Yapım İşi Çıktıları"
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
-#: order/templates/order/po_navbar.html:35
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:52
@@ -1300,7 +1316,7 @@ msgstr "Ekler"
msgid "Build Notes"
msgstr "Yapım İşi Notları"
-#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:453
#: company/templates/company/detail.html:188
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
@@ -1312,45 +1328,11 @@ msgstr "Yapım İşi Notları"
msgid "Edit Notes"
msgstr "Notları Düzenle"
-#: build/templates/build/detail.html:448
-#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
-#: templates/attachment_button.html:4
-msgid "Add Attachment"
-msgstr "Dosya Ekle"
-
-#: build/templates/build/detail.html:467
-#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:142
-#: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
-msgid "Edit Attachment"
-msgstr "Ek Düzenle"
-
-#: build/templates/build/detail.html:474
-#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:149
-#: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
-#: templates/js/translated/order.js:1243
-msgid "Confirm Delete Operation"
-msgstr "Silme İşlemini Onayla"
-
-#: build/templates/build/detail.html:475
-#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:150
-#: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
-msgid "Delete Attachment"
-msgstr "Eki Sil"
-
-#: build/templates/build/detail.html:513
+#: build/templates/build/detail.html:477
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:514
+#: build/templates/build/detail.html:478
msgid "All untracked stock items have been allocated"
msgstr ""
@@ -1466,7 +1448,7 @@ msgstr "Dosya okurken hata (hatalı ölçüler)"
msgid "Error reading file (data could be corrupted)"
msgstr "Dosya okurken hata (veri bozulmuş olabilir)"
-#: common/forms.py:34 templates/js/translated/attachment.js:54
+#: common/forms.py:34
msgid "File"
msgstr "Dosya"
@@ -2168,13 +2150,11 @@ msgstr "Fiyat"
msgid "Unit price at specified quantity"
msgstr ""
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
-#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
-#: part/views.py:854
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
+#: part/views.py:858
msgid "Upload File"
msgstr "Dosya Yükle"
@@ -2182,7 +2162,7 @@ msgstr "Dosya Yükle"
#: 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:213
-#: part/views.py:855
+#: part/views.py:859
msgid "Match Fields"
msgstr "Alanları Eşleştir"
@@ -2200,13 +2180,13 @@ msgstr ""
#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:40
+#: order/templates/order/order_wizard/po_upload.html:47
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:43
+#: part/templates/part/import_wizard/part_upload.html:45
msgid "Previous Step"
msgstr ""
@@ -2252,7 +2232,7 @@ msgid "Contact phone number"
msgstr "İletişim telefon numarası"
#: company/models.py:125 company/templates/company/company_base.html:102
-#: templates/InvenTree/settings/user.html:46
+#: templates/InvenTree/settings/user.html:47
msgid "Email"
msgstr "E-posta"
@@ -2268,14 +2248,6 @@ msgstr "İletişim"
msgid "Point of contact"
msgstr ""
-#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:163 part/models.py:797
-#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:537
-#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
-msgid "Link"
-msgstr "Bağlantı"
-
#: company/models.py:131
msgid "Link to external company information"
msgstr ""
@@ -2343,7 +2315,7 @@ msgstr "Üretici seçin"
#: company/models.py:342 company/templates/company/manufacturer_part.html:97
#: company/templates/company/supplier_part.html:112
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:874
#: templates/js/translated/part.js:240
msgid "MPN"
msgstr "ÜPN"
@@ -2372,9 +2344,9 @@ msgid "Parameter name"
msgstr "Parametre adı"
#: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:90
+#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:1867 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878
msgid "Value"
msgstr "Değer"
@@ -2413,7 +2385,7 @@ msgid "Select supplier"
msgstr "Tedarikçi seçin"
#: company/models.py:551 company/templates/company/supplier_part.html:98
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:861
#: templates/js/translated/part.js:221
msgid "SKU"
msgstr "SKU"
@@ -2450,7 +2422,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:119
#: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1366
msgid "Packaging"
msgstr "Paketleme"
@@ -2515,8 +2487,8 @@ msgstr ""
#: company/templates/company/company_base.html:126 order/models.py:567
#: order/templates/order/sales_order_base.html:114 stock/models.py:525
#: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
-#: templates/js/translated/stock.js:1972
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1073
+#: templates/js/translated/stock.js:2002
msgid "Customer"
msgstr "Müşteri"
@@ -2721,7 +2693,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:974
+#: part/templates/part/detail.html:976
msgid "Add Parameter"
msgstr ""
@@ -2752,7 +2724,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:492
#: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1323
msgid "Supplier Part"
msgstr "Tedarikçi Parçası"
@@ -2778,7 +2750,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
-#: templates/js/translated/stock.js:324
+#: templates/js/translated/stock.js:354
msgid "New Stock Item"
msgstr ""
@@ -2799,7 +2771,7 @@ msgstr "Fiyat Bilgisi"
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1713
+#: part/templates/part/prices.html:271 part/views.py:1717
msgid "Add Price Break"
msgstr ""
@@ -2807,11 +2779,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1775
+#: company/templates/company/supplier_part.html:224 part/views.py:1779
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1761
+#: company/templates/company/supplier_part.html:238 part/views.py:1765
msgid "Edit Price Break"
msgstr ""
@@ -2831,8 +2803,8 @@ msgstr ""
#: templates/InvenTree/settings/sidebar.html:40
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
-#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
-#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:509
+#: templates/js/translated/stock.js:1162 templates/navbar.html:26
msgid "Stock"
msgstr "Stok"
@@ -2855,7 +2827,7 @@ msgstr "Fiyatlandırma"
#: stock/templates/stock/location.html:132
#: stock/templates/stock/location.html:144
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1901
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr "Stok Kalemleri"
@@ -2885,24 +2857,24 @@ msgstr "Şirketler"
msgid "New Company"
msgstr "Yeni Şirket"
-#: company/views.py:129 part/views.py:580
+#: company/views.py:129 part/views.py:584
msgid "Download Image"
msgstr "Resmi İndirin"
-#: company/views.py:158 part/views.py:612
+#: company/views.py:158 part/views.py:616
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:619
+#: company/views.py:165 part/views.py:623
#, python-brace-format
msgid "Invalid response: {code}"
msgstr "Geçersiz yanıt: {code}"
-#: company/views.py:174 part/views.py:628
+#: company/views.py:174 part/views.py:632
msgid "Supplied URL is not a valid image file"
msgstr "Sağlanan URL geçerli bir resim dosyası değil"
-#: label/api.py:57 report/api.py:201
+#: label/api.py:57 report/api.py:203
msgid "No valid objects provided to template"
msgstr "Şablon için geçerli bir nesne sağlanmadı"
@@ -2959,7 +2931,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
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
+#: report/models.py:322 report/models.py:459 report/models.py:497
msgid "Filters"
msgstr "Filtreler"
@@ -3089,7 +3061,7 @@ msgstr ""
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1092
+#: order/models.py:582 templates/js/translated/order.js:1114
msgid "Shipment Date"
msgstr ""
@@ -3114,7 +3086,7 @@ msgid "Line item notes"
msgstr ""
#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1144
+#: templates/js/translated/order.js:1166
msgid "Order"
msgstr ""
@@ -3122,8 +3094,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:325
-#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1300
+#: templates/js/translated/stock.js:1983
msgid "Purchase Order"
msgstr ""
@@ -3133,7 +3105,7 @@ msgstr ""
#: order/models.py:797 order/templates/order/order_base.html:147
#: order/templates/order/sales_order_base.html:154
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:954
msgid "Received"
msgstr ""
@@ -3143,7 +3115,7 @@ msgstr ""
#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1324
+#: templates/js/translated/stock.js:1354
msgid "Purchase Price"
msgstr ""
@@ -3204,47 +3176,47 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr "Stok tahsis miktarını girin"
-#: order/serializers.py:167
+#: order/serializers.py:169
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:202
+#: order/serializers.py:204
msgid "Line Item"
msgstr ""
-#: order/serializers.py:208
+#: order/serializers.py:210
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:286
+#: order/serializers.py:220 order/serializers.py:288
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:242
+#: order/serializers.py:244
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:243
+#: order/serializers.py:245
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:260
+#: order/serializers.py:262
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:298
+#: order/serializers.py:300
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:315
+#: order/serializers.py:317
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:328
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:568
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3390,19 +3362,23 @@ msgstr ""
msgid "Select Supplier Part"
msgstr "Tedarikçi Parçası Seçin"
-#: order/templates/order/order_wizard/po_upload.html:11
+#: order/templates/order/order_wizard/po_upload.html:8
+msgid "Return to Orders"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:17
msgid "Upload File for Purchase Order"
msgstr "Sipariş Emri için Dosya Yükle"
-#: order/templates/order/order_wizard/po_upload.html:18
+#: order/templates/order/order_wizard/po_upload.html:25
#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:21
+#: part/templates/part/import_wizard/part_upload.html:23
#, python-format
msgid "Step %(step)s of %(count)s"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:48
+#: order/templates/order/order_wizard/po_upload.html:55
msgid "Order is already processed. Files cannot be uploaded."
msgstr ""
@@ -3445,7 +3421,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:695 templates/js/translated/order.js:1097
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1119
msgid "Items"
msgstr "Ürünler"
@@ -3463,31 +3439,6 @@ msgstr ""
msgid "Select a purchase order for %(name)s"
msgstr ""
-#: order/templates/order/po_attachments.html:12
-#: order/templates/order/po_navbar.html:32
-msgid "Purchase Order Attachments"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:15
-#: part/templates/part/part_sidebar.html:8
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr "Detaylar"
-
-#: order/templates/order/po_navbar.html:26
-msgid "Received Stock Items"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:29
-#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
#: order/templates/order/po_sidebar.html:5
#: order/templates/order/so_sidebar.html:5
#: report/templates/report/inventree_po_report.html:85
@@ -3504,9 +3455,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:216
+#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:191
+#: order/templates/order/sales_order_detail.html:157
msgid "Add Line Item"
msgstr ""
@@ -3518,6 +3469,10 @@ msgstr ""
msgid "Receive Items"
msgstr ""
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
#: order/templates/order/purchase_order_detail.html:76
#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
@@ -3546,7 +3501,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:121
-#: templates/js/translated/order.js:1064
+#: templates/js/translated/order.js:1086
msgid "Customer Reference"
msgstr ""
@@ -3700,19 +3655,19 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:731
+#: part/api.py:758
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:735
+#: part/api.py:762
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:750
+#: part/api.py:777
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
+#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
msgid "This field is required"
msgstr ""
@@ -3926,7 +3881,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/detail.html:45
#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
-#: templates/js/translated/stock.js:1104
+#: templates/js/translated/stock.js:1134
msgid "IPN"
msgstr "DPN"
@@ -4047,7 +4002,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1467
-#: templates/js/translated/stock.js:828
+#: templates/js/translated/stock.js:858
msgid "Test Name"
msgstr "Test Adı"
@@ -4552,7 +4507,7 @@ msgstr ""
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:365 part/views.py:751
+#: part/templates/part/detail.html:365 part/views.py:755
msgid "Validate BOM"
msgstr ""
@@ -4604,44 +4559,48 @@ msgstr ""
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:770
+#: part/templates/part/detail.html:772
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:867
+#: part/templates/part/detail.html:869
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:924
+#: part/templates/part/detail.html:926
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:1076
+#: part/templates/part/detail.html:1039
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1088
+#: part/templates/part/detail.html:1051
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1100
+#: part/templates/part/detail.html:1063
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1189
+#: part/templates/part/detail.html:1152
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:51
+#: part/templates/part/import_wizard/part_upload.html:53
msgid "Unsuffitient privileges."
msgstr ""
-#: part/templates/part/import_wizard/part_upload.html:14
+#: part/templates/part/import_wizard/part_upload.html:8
+msgid "Return to Parts"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:16
msgid "Import Parts from File"
msgstr ""
@@ -4751,7 +4710,7 @@ msgstr "Pasif"
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:172 templates/js/translated/order.js:1524
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1546
#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
@@ -4846,6 +4805,11 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1949
+msgid "Details"
+msgstr "Detaylar"
+
#: part/templates/part/part_sidebar.html:13
msgid "Variants"
msgstr ""
@@ -4949,7 +4913,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1784
+#: part/templates/part/prices.html:215 part/views.py:1788
msgid "Add Internal Price Break"
msgstr ""
@@ -5005,110 +4969,115 @@ msgstr ""
msgid "Match References"
msgstr ""
-#: part/views.py:498
+#: part/views.py:502
msgid "None"
msgstr "Hiçbiri"
-#: part/views.py:557
+#: part/views.py:561
msgid "Part QR Code"
msgstr ""
-#: part/views.py:659
+#: part/views.py:663
msgid "Select Part Image"
msgstr ""
-#: part/views.py:685
+#: part/views.py:689
msgid "Updated part image"
msgstr ""
-#: part/views.py:688
+#: part/views.py:692
msgid "Part image not found"
msgstr ""
-#: part/views.py:700
+#: part/views.py:704
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:730
+#: part/views.py:734
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:772
+#: part/views.py:776
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:783
+#: part/views.py:787
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:856
+#: part/views.py:860
msgid "Match Parts"
msgstr ""
-#: part/views.py:1192
+#: part/views.py:1196
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1244
+#: part/views.py:1248
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1251
+#: part/views.py:1255
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1260
+#: part/views.py:1264
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1409
+#: part/views.py:1413
msgid "Create Part Parameter Template"
msgstr "Parça Parametre Şablonu Oluştur"
-#: part/views.py:1419
+#: part/views.py:1423
msgid "Edit Part Parameter Template"
msgstr "Parça Parametre Şablonu Düzenle"
-#: part/views.py:1426
+#: part/views.py:1430
msgid "Delete Part Parameter Template"
msgstr "Parça Parametre Şablonu Sil"
-#: part/views.py:1485 templates/js/translated/part.js:310
+#: part/views.py:1489 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1523
+#: part/views.py:1527
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1529
+#: part/views.py:1533
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1538
+#: part/views.py:1542
msgid "Create Category Parameter Template"
msgstr "Kategori Parametre Şablonu Oluştur"
-#: part/views.py:1639
+#: part/views.py:1643
msgid "Edit Category Parameter Template"
msgstr "Kategori Parametre Şablonu Düzenle"
-#: part/views.py:1695
+#: part/views.py:1699
msgid "Delete Category Parameter Template"
msgstr "Kategori Parametre Şablonu Sil"
-#: part/views.py:1717
+#: part/views.py:1721
msgid "Added new price break"
msgstr ""
-#: part/views.py:1793
+#: part/views.py:1797
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1801
+#: part/views.py:1805
msgid "Delete Internal Price Break"
msgstr ""
+#: report/api.py:234 report/api.py:278
+#, python-brace-format
+msgid "Template file '{filename}' is missing or does not exist"
+msgstr ""
+
#: report/models.py:182
msgid "Template name"
msgstr "Şablon adı"
@@ -5145,51 +5114,51 @@ msgstr ""
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:380
+#: report/models.py:382
msgid "Build Filters"
msgstr ""
-#: report/models.py:381
+#: report/models.py:383
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:423
+#: report/models.py:425
msgid "Part Filters"
msgstr ""
-#: report/models.py:424
+#: report/models.py:426
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:458
+#: report/models.py:460
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:496
+#: report/models.py:498
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:546
+#: report/models.py:548
msgid "Snippet"
msgstr ""
-#: report/models.py:547
+#: report/models.py:549
msgid "Report snippet file"
msgstr ""
-#: report/models.py:551
+#: report/models.py:553
msgid "Snippet file description"
msgstr ""
-#: report/models.py:586
+#: report/models.py:588
msgid "Asset"
msgstr ""
-#: report/models.py:587
+#: report/models.py:589
msgid "Report asset file"
msgstr ""
-#: report/models.py:590
+#: report/models.py:592
msgid "Asset file description"
msgstr ""
@@ -5201,49 +5170,59 @@ msgstr "İçin Gerekli Olan"
msgid "Stock Item Test Report"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:75
+#: report/templates/report/inventree_test_report_base.html:79
#: stock/models.py:530 stock/templates/stock/item_base.html:238
#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
#: templates/js/translated/build.js:1013
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+#: templates/js/translated/order.js:1288 templates/js/translated/order.js:1377
msgid "Serial Number"
msgstr "Seri Numara"
-#: report/templates/report/inventree_test_report_base.html:83
+#: report/templates/report/inventree_test_report_base.html:88
msgid "Test Results"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:93
#: stock/models.py:1855
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:89
+#: report/templates/report/inventree_test_report_base.html:94
#: stock/models.py:1861
msgid "Result"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917
msgid "Date"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:103
+#: report/templates/report/inventree_test_report_base.html:108
msgid "Pass"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:105
+#: report/templates/report/inventree_test_report_base.html:110
msgid "Fail"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:123
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:137
+#: templates/js/translated/stock.js:2177
+msgid "Serial"
+msgstr "Seri No"
+
#: stock/api.py:422
msgid "Quantity is required"
msgstr ""
#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
#: stock/templates/stock/item_base.html:382
-#: templates/js/translated/stock.js:1246
+#: templates/js/translated/stock.js:1276
msgid "Expiry Date"
msgstr ""
@@ -5505,7 +5484,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:319 stock/serializers.py:687
+#: stock/serializers.py:319 stock/serializers.py:686
msgid "Destination stock location"
msgstr ""
@@ -5517,15 +5496,15 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:557
+#: stock/serializers.py:556
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:585
+#: stock/serializers.py:584
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:595
+#: stock/serializers.py:594
msgid "A list of stock items must be provided"
msgstr ""
@@ -5570,15 +5549,15 @@ msgstr ""
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
+#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:363
+#: stock/templates/stock/item.html:324
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:377
+#: stock/templates/stock/item.html:338
msgid "Delete Test Result"
msgstr ""
@@ -5752,7 +5731,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:395
-#: templates/js/translated/stock.js:1259
+#: templates/js/translated/stock.js:1289
msgid "Last Updated"
msgstr ""
@@ -5768,7 +5747,7 @@ msgstr ""
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:505
msgid "Edit Stock Status"
msgstr ""
@@ -5885,10 +5864,6 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:12
-msgid "Installed Items"
-msgstr ""
-
#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
@@ -5967,7 +5942,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:618
+#: stock/views.py:760 templates/js/translated/stock.js:648
msgid "Confirm stock adjustment"
msgstr "Stok ayarlamasını onayla"
@@ -5975,7 +5950,7 @@ msgstr "Stok ayarlamasını onayla"
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:288
+#: stock/views.py:793 templates/js/translated/stock.js:318
msgid "Edit Stock Item"
msgstr ""
@@ -5987,7 +5962,7 @@ msgstr "Yeni Stok konumu oluştur"
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:268
+#: stock/views.py:1186 templates/js/translated/stock.js:298
msgid "Duplicate Stock Item"
msgstr ""
@@ -6164,11 +6139,11 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr "Parça Parametre Şablonu"
-#: templates/InvenTree/settings/po.html:9
+#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
-#: templates/InvenTree/settings/report.html:10
+#: templates/InvenTree/settings/report.html:8
#: templates/InvenTree/settings/user_reports.html:9
msgid "Report Settings"
msgstr ""
@@ -6221,7 +6196,7 @@ msgid "User Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:8
-#: templates/InvenTree/settings/user.html:11
+#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
@@ -6273,140 +6248,136 @@ msgid "Stock Settings"
msgstr ""
#: templates/InvenTree/settings/user.html:18
-#: templates/js/translated/helpers.js:26
-msgid "Edit"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:20
#: 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:31
+#: templates/InvenTree/settings/user.html:22
+#: templates/js/translated/helpers.js:26
+msgid "Edit"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:32
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:35
+#: templates/InvenTree/settings/user.html:36
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:39
+#: templates/InvenTree/settings/user.html:40
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:54
+#: templates/InvenTree/settings/user.html:55
msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:74
+#: templates/InvenTree/settings/user.html:75
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:76
+#: templates/InvenTree/settings/user.html:77
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:78
+#: templates/InvenTree/settings/user.html:79
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:84
+#: templates/InvenTree/settings/user.html:85
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:85
+#: templates/InvenTree/settings/user.html:86
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:86
-#: templates/InvenTree/settings/user.html:153
+#: templates/InvenTree/settings/user.html:87
+#: templates/InvenTree/settings/user.html:154
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
+#: templates/InvenTree/settings/user.html:94
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:94
+#: templates/InvenTree/settings/user.html:95
msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:101
+#: templates/InvenTree/settings/user.html:102
msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:111
+#: templates/InvenTree/settings/user.html:112
msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:113
+#: templates/InvenTree/settings/user.html:114
msgid "Add Email"
msgstr ""
-#: templates/InvenTree/settings/user.html:123
+#: templates/InvenTree/settings/user.html:124
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:128
+#: templates/InvenTree/settings/user.html:129
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:162
+#: templates/InvenTree/settings/user.html:163
msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:167
+#: templates/InvenTree/settings/user.html:168
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:177
-msgid "Language Settings"
-msgstr "Dil Ayarları"
+#: templates/InvenTree/settings/user.html:179
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:185
+msgid "Log out active sessions (except this one)"
+msgstr ""
#: templates/InvenTree/settings/user.html:186
-msgid "Select language"
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:195
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:196
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:200
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:201
+msgid "Device"
msgstr ""
#: templates/InvenTree/settings/user.html:202
-#, python-format
-msgid "%(lang_translated)s%% translated"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:204
-msgid "No translations available"
+msgid "Last Activity"
msgstr ""
#: templates/InvenTree/settings/user.html:211
-msgid "Set Language"
-msgstr "Dili Ayarla"
+#, python-format
+msgid "%(time)s ago (this session)"
+msgstr ""
#: templates/InvenTree/settings/user.html:213
-msgid "Some languages are not complete"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:215
-msgid "Show only sufficent"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "and hidden."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "Show them too"
+#, python-format
+msgid "%(time)s ago"
msgstr ""
#: templates/InvenTree/settings/user.html:224
-msgid "Help the translation efforts!"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:225
-#, 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:233
msgid "Do you really want to remove the selected email address?"
msgstr ""
@@ -6422,6 +6393,52 @@ msgstr ""
msgid "Set Theme"
msgstr "Tema Seç"
+#: templates/InvenTree/settings/user_display.html:54
+msgid "Language Settings"
+msgstr "Dil Ayarları"
+
+#: templates/InvenTree/settings/user_display.html:63
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:79
+#, python-format
+msgid "%(lang_translated)s%% translated"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:81
+msgid "No translations available"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:88
+msgid "Set Language"
+msgstr "Dili Ayarla"
+
+#: templates/InvenTree/settings/user_display.html:91
+msgid "Some languages are not complete"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:93
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:101
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:102
+#, 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_homepage.html:9
msgid "Home Page Settings"
msgstr "Ana Sayfa Ayarları"
@@ -6619,6 +6636,14 @@ msgstr ""
msgid "View in administration panel"
msgstr ""
+#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54
+msgid "Add Link"
+msgstr ""
+
+#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36
+msgid "Add Attachment"
+msgstr "Dosya Ekle"
+
#: templates/base.html:96
msgid "Server Restart Required"
msgstr ""
@@ -6702,154 +6727,87 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/report.js:47 templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/report.js:55 templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr "Rapor Şablonu Seç"
-
-#: templates/js/report.js:70 templates/js/translated/report.js:90
-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:594
-msgid "Select Stock Items"
-msgstr ""
-
-#: templates/js/report.js:99 templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:116 templates/js/report.js:169
-#: templates/js/report.js:223 templates/js/report.js:277
-#: templates/js/report.js:331 templates/js/translated/report.js:136
-#: 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 ""
-
-#: templates/js/report.js:117 templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr "Seçili stok kalemleri için rapor şablonu bulunamadı"
-
-#: templates/js/report.js:152 templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/report.js:153 templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:170 templates/js/translated/report.js:190
-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/build.js:1333
-#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr "Parçaları Seçin"
-
-#: templates/js/report.js:206 templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:224 templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr "Seçili parçalar için rapor şablonu bulunamadı"
-
-#: templates/js/report.js:259 templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/report.js:260 templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/report.js:278 templates/js/report.js:332
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr "Seçili emirler için rapor şablonu bulunamadı"
-
-#: templates/js/report.js:313 templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/report.js:314 templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr "Cevap Yok"
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:191
+#: templates/js/translated/api.js:192
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:192
+#: templates/js/translated/api.js:193
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
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:206 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:215
+#: templates/js/translated/api.js:216
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:216
+#: templates/js/translated/api.js:217
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:27
+#: templates/js/translated/attachment.js:76
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:95
+#: templates/js/translated/attachment.js:98
+msgid "Edit Attachment"
+msgstr "Ek Düzenle"
+
+#: templates/js/translated/attachment.js:108
+msgid "Confirm Delete"
+msgstr ""
+
+#: templates/js/translated/attachment.js:109
+msgid "Delete Attachment"
+msgstr "Eki Sil"
+
+#: templates/js/translated/attachment.js:165
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:108
+#: templates/js/translated/attachment.js:178
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:115
+#: templates/js/translated/attachment.js:185
msgid "Delete attachment"
msgstr ""
@@ -6910,7 +6868,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:600
msgid "Remove stock item"
msgstr ""
@@ -7005,7 +6963,7 @@ msgid "View BOM"
msgstr ""
#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1320
msgid "Actions"
msgstr "İşlemler"
@@ -7097,7 +7055,7 @@ msgstr ""
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1194
msgid "Location not specified"
msgstr ""
@@ -7106,12 +7064,12 @@ msgid "No active build outputs found"
msgstr ""
#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1305
+#: templates/js/translated/order.js:1327
msgid "Edit stock allocation"
msgstr "Stok tahsisini düzenle"
#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1306
+#: templates/js/translated/order.js:1328
msgid "Delete stock allocation"
msgstr "Stok tahsisini sil"
@@ -7132,11 +7090,11 @@ msgid "Quantity Per"
msgstr ""
#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1557
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1611
msgid "Build stock"
msgstr ""
@@ -7144,7 +7102,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1604
msgid "Allocate stock"
msgstr ""
@@ -7152,6 +7110,11 @@ msgstr ""
msgid "Specify stock allocation quantity"
msgstr ""
+#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
+#: templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr "Parçaları Seçin"
+
#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
@@ -7181,8 +7144,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
-#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
-#: templates/js/translated/stock.js:1841
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1094
+#: templates/js/translated/stock.js:1871
msgid "Select"
msgstr ""
@@ -7190,7 +7153,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2090
msgid "No user information"
msgstr ""
@@ -7332,45 +7295,45 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
-#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
+#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365
+#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:351
+#: templates/js/translated/forms.js:352
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:366
+#: templates/js/translated/forms.js:367
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:380
+#: templates/js/translated/forms.js:381
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:394
+#: templates/js/translated/forms.js:395
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:679
+#: templates/js/translated/forms.js:680
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/js/translated/forms.js:1072 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1457
+#: templates/js/translated/forms.js:1463
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1661
+#: templates/js/translated/forms.js:1667
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1878
+#: templates/js/translated/forms.js:1884
msgid "Clear input"
msgstr ""
@@ -7382,6 +7345,11 @@ msgstr ""
msgid "NO"
msgstr ""
+#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
+#: templates/js/translated/stock.js:624
+msgid "Select Stock Items"
+msgstr ""
+
#: templates/js/translated/label.js:30
msgid "Stock item(s) must be selected before printing labels"
msgstr "Etiket yazdırılmadan önce stok kalemleri seçilmeli"
@@ -7534,11 +7502,11 @@ msgstr ""
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:423
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:424
msgid "Select file format"
msgstr ""
@@ -7554,7 +7522,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1673
msgid "Stock Status"
msgstr ""
@@ -7582,100 +7550,104 @@ msgstr ""
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1063
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
+#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
+#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:801
+#: templates/js/translated/order.js:823
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
+#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:904 templates/js/translated/order.js:1492
#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+#: templates/js/translated/order.js:919 templates/js/translated/order.js:1508
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
+#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:976
+#: templates/js/translated/order.js:998
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:980
+#: templates/js/translated/order.js:1002
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1017
+#: templates/js/translated/order.js:1039
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1055
+#: templates/js/translated/order.js:1077
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1133
+#: templates/js/translated/order.js:1155
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1226
+#: templates/js/translated/order.js:1248
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1244
+#: templates/js/translated/order.js:1265
+msgid "Confirm Delete Operation"
+msgstr "Silme İşlemini Onayla"
+
+#: templates/js/translated/order.js:1266
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1308
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1535
+#: templates/js/translated/order.js:1557
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1579
+#: templates/js/translated/order.js:1601
msgid "Allocate serial numbers"
msgstr "Seri numaralarını tahsis et"
-#: templates/js/translated/order.js:1585
+#: templates/js/translated/order.js:1607
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
+#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1596
+#: templates/js/translated/order.js:1618
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1719
+#: templates/js/translated/order.js:1741
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1779
+#: templates/js/translated/order.js:1801
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1793
+#: templates/js/translated/order.js:1815
msgid "No matching line items"
msgstr ""
@@ -7825,7 +7797,7 @@ msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
-#: templates/js/translated/stock.js:1802
+#: templates/js/translated/stock.js:1832
msgid "Display as list"
msgstr ""
@@ -7833,7 +7805,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1851
msgid "Display as tree"
msgstr ""
@@ -7841,7 +7813,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1895
msgid "Path"
msgstr ""
@@ -7849,11 +7821,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr "Sorgu ile eşleşen test şablonu bulunamadı"
-#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:816
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:817
msgid "Delete test result"
msgstr ""
@@ -7892,268 +7864,342 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr "Rapor Şablonu Seç"
+
+#: templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr "Test Raporu Şablonu Seç"
+
+#: templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:136 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 ""
+
+#: templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr "Seçili stok kalemleri için rapor şablonu bulunamadı"
+
+#: templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr "Seçili yapım işleri için rapor şablonu bulunamadı"
+
+#: templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr "Seçili parçalar için rapor şablonu bulunamadı"
+
+#: templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr "Seçili emirler için rapor şablonu bulunamadı"
+
+#: templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
#: templates/js/translated/stock.js:70
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:90
+#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167
+msgid "Next available serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169
+msgid "Latest serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:104
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:126
+#: templates/js/translated/stock.js:140
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:189
+#: templates/js/translated/stock.js:180
+msgid "This part cannot be serialized"
+msgstr ""
+
+#: templates/js/translated/stock.js:219
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:195
+#: templates/js/translated/stock.js:225
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:338
+#: templates/js/translated/stock.js:368
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:351
+#: templates/js/translated/stock.js:381
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:420
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:401
+#: templates/js/translated/stock.js:431
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:402
+#: templates/js/translated/stock.js:432
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:444
+#: templates/js/translated/stock.js:474
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:445
+#: templates/js/translated/stock.js:475
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:451
+#: templates/js/translated/stock.js:481
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:452
+#: templates/js/translated/stock.js:482
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:486
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:487
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:491
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:462 users/models.py:200
+#: templates/js/translated/stock.js:492 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:466 templates/stock_table.html:56
+#: templates/js/translated/stock.js:496 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:595
+#: templates/js/translated/stock.js:625
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:753
+#: templates/js/translated/stock.js:783
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:755
+#: templates/js/translated/stock.js:785
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:760
+#: templates/js/translated/stock.js:790
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:812
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:808
+#: templates/js/translated/stock.js:838
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:895
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:1002
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:1006
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:1010
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:984
+#: templates/js/translated/stock.js:1014
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:990
+#: templates/js/translated/stock.js:1020
msgid "No stock location set"
msgstr "Stok konumu ayarlanmadı"
-#: templates/js/translated/stock.js:1148
+#: templates/js/translated/stock.js:1178
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1153
+#: templates/js/translated/stock.js:1183
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1156
+#: templates/js/translated/stock.js:1186
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1160
+#: templates/js/translated/stock.js:1190
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1162
+#: templates/js/translated/stock.js:1192
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1166
+#: templates/js/translated/stock.js:1196
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1170
+#: templates/js/translated/stock.js:1200
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1177
+#: templates/js/translated/stock.js:1207
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1179
+#: templates/js/translated/stock.js:1209
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1181
+#: templates/js/translated/stock.js:1211
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1185
+#: templates/js/translated/stock.js:1215
#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1235
+#: templates/js/translated/stock.js:1265
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1308
+#: templates/js/translated/stock.js:1338
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1346
+#: templates/js/translated/stock.js:1376
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
+#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1455
+#: templates/js/translated/stock.js:1485
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1482
+#: templates/js/translated/stock.js:1512
msgid "locations"
msgstr "konumlar"
-#: templates/js/translated/stock.js:1484
+#: templates/js/translated/stock.js:1514
msgid "Undefined location"
msgstr "Tanımsız konum"
-#: templates/js/translated/stock.js:1658
+#: templates/js/translated/stock.js:1688
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1672
+#: templates/js/translated/stock.js:1702
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1673
+#: templates/js/translated/stock.js:1703
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1897
+#: templates/js/translated/stock.js:1927
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1944
+#: templates/js/translated/stock.js:1974
msgid "Location no longer exists"
msgstr "Konum artık yok"
-#: templates/js/translated/stock.js:1963
+#: templates/js/translated/stock.js:1993
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1982
+#: templates/js/translated/stock.js:2012
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2000
+#: templates/js/translated/stock.js:2030
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2023
+#: templates/js/translated/stock.js:2053
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2061
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2072
+#: templates/js/translated/stock.js:2102
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2073
+#: templates/js/translated/stock.js:2103
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2124
+#: templates/js/translated/stock.js:2154
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr "Seri No"
-
-#: templates/js/translated/stock.js:2175
+#: templates/js/translated/stock.js:2205
msgid "Uninstall Stock Item"
msgstr ""
diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po
index 20b427ee2e..ac32301153 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-11-25 04:46+0000\n"
-"PO-Revision-Date: 2021-11-25 05:07\n"
+"POT-Creation-Date: 2021-11-30 21:49+0000\n"
+"PO-Revision-Date: 2021-11-30 21:51\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
"Language: vi_VN\n"
@@ -36,7 +36,7 @@ msgstr ""
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:594
+#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr ""
@@ -58,15 +58,15 @@ msgstr ""
#: InvenTree/forms.py:176
msgid "Confirm password"
-msgstr ""
+msgstr "Xác nhận mật khẩu"
#: InvenTree/forms.py:177
msgid "Confirm new password"
-msgstr ""
+msgstr "Xác nhận mật khẩu mới"
#: InvenTree/forms.py:209
msgid "Select Category"
-msgstr ""
+msgstr "Chọn danh mục"
#: InvenTree/forms.py:230
msgid "Email (again)"
@@ -114,99 +114,121 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:109 stock/models.py:1874
+#: InvenTree/models.py:114
+msgid "Missing file"
+msgstr ""
+
+#: InvenTree/models.py:115
+msgid "Missing external link"
+msgstr ""
+
+#: InvenTree/models.py:126 stock/models.py:1874
+#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:110
+#: InvenTree/models.py:127
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
-msgid "Comment"
+#: InvenTree/models.py:133 company/models.py:131 company/models.py:348
+#: company/models.py:564 order/models.py:163 part/models.py:797
+#: report/templates/report/inventree_build_order_base.html:165
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
+msgid "Link"
msgstr ""
-#: InvenTree/models.py:112
+#: InvenTree/models.py:134 build/models.py:330 part/models.py:798
+#: stock/models.py:540
+msgid "Link to external URL"
+msgstr ""
+
+#: InvenTree/models.py:137 templates/js/translated/attachment.js:161
+msgid "Comment"
+msgstr "Bình luận"
+
+#: InvenTree/models.py:137
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185
#: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:2054
+#: report/templates/report/inventree_test_report_base.html:96
+#: templates/js/translated/stock.js:2084
msgid "User"
-msgstr ""
+msgstr "Người dùng"
-#: InvenTree/models.py:122
+#: InvenTree/models.py:147
msgid "upload date"
-msgstr ""
+msgstr "Ngày tải lên"
-#: InvenTree/models.py:142
+#: InvenTree/models.py:170
msgid "Filename must not be empty"
-msgstr ""
+msgstr "Tên tập tin không được để trống"
-#: InvenTree/models.py:165
+#: InvenTree/models.py:193
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:175
+#: InvenTree/models.py:203
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:178
+#: InvenTree/models.py:206
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:185
+#: InvenTree/models.py:213
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:192
+#: InvenTree/models.py:220
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:227
+#: InvenTree/models.py:255
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: InvenTree/models.py:271 InvenTree/models.py:272 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
#: part/templates/part/detail.html:25 report/models.py:181
#: templates/InvenTree/settings/settings.html:259
#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
-#: templates/js/translated/stock.js:1847
+#: templates/js/translated/stock.js:1877
msgid "Name"
msgstr ""
-#: InvenTree/models.py:250 build/models.py:207
+#: InvenTree/models.py:278 build/models.py:207
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:80
#: company/templates/company/supplier_part.html:81 label/models.py:119
#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:551 report/models.py:590
+#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
#: templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
-#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/order.js:855 templates/js/translated/order.js:1091
#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
-#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
-#: templates/js/translated/stock.js:1904
+#: templates/js/translated/stock.js:1151 templates/js/translated/stock.js:1889
+#: templates/js/translated/stock.js:1934
msgid "Description"
-msgstr ""
+msgstr "Mô tả"
-#: InvenTree/models.py:251
+#: InvenTree/models.py:279
msgid "Description (optional)"
-msgstr ""
+msgstr "Mô tả (tùy chọn)"
-#: InvenTree/models.py:259
+#: InvenTree/models.py:287
msgid "parent"
msgstr ""
@@ -214,87 +236,87 @@ msgstr ""
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:251
+#: InvenTree/serializers.py:285
msgid "Filename"
-msgstr ""
+msgstr "Tên tập tin"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:670
msgid "German"
msgstr ""
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:671
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:672
msgid "English"
msgstr ""
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:673
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:674
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:675
msgid "French"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:676
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:683
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:684
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:685
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:686
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:687
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:688
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:689
msgid "Chinese"
msgstr ""
@@ -479,29 +501,29 @@ msgstr ""
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:536
+#: InvenTree/views.py:538
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:585
+#: InvenTree/views.py:587
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
+#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
+#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:630
+#: InvenTree/views.py:632
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:863 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:101
msgid "System Information"
-msgstr ""
+msgstr "Thông tin hệ thống"
#: barcodes/api.py:53 barcodes/api.py:150
msgid "Must provide barcode_data parameter"
@@ -552,12 +574,13 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
+#: part/templates/part/detail.html:1076 part/templates/part/detail.html:1162
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:77
+#: report/templates/report/inventree_test_report_base.html:81
+#: report/templates/report/inventree_test_report_base.html:139
#: stock/forms.py:156 stock/serializers.py:286
#: stock/templates/stock/item_base.html:256
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
@@ -565,12 +588,12 @@ msgstr ""
#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
-#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
-#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/order.js:892 templates/js/translated/order.js:1205
+#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290
+#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479
#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
-#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
-#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377
+#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171
msgid "Quantity"
msgstr ""
@@ -579,8 +602,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:307 templates/js/translated/stock.js:194
-#: templates/js/translated/stock.js:348
+#: stock/serializers.py:307 templates/js/translated/stock.js:224
+#: templates/js/translated/stock.js:378
msgid "Serial Numbers"
msgstr ""
@@ -617,7 +640,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/translated/build.js:397
msgid "Build Order"
-msgstr ""
+msgstr "Tạo đơn hàng"
#: build/models.py:138 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
@@ -627,7 +650,7 @@ msgstr ""
#: templates/InvenTree/search.html:145
#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
msgid "Build Orders"
-msgstr ""
+msgstr "Tạo đơn hàng"
#: build/models.py:198
msgid "Build Order Reference"
@@ -639,7 +662,7 @@ msgstr ""
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
+#: templates/js/translated/order.js:886 templates/js/translated/order.js:1473
msgid "Reference"
msgstr ""
@@ -677,12 +700,12 @@ msgstr ""
#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/order.js:840 templates/js/translated/order.js:1457
#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
-#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
-#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508
+#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159
msgid "Part"
-msgstr ""
+msgstr "Nguyên liệu"
#: build/models.py:233
msgid "Select part to build"
@@ -745,7 +768,7 @@ msgid "Batch code for this build output"
msgstr ""
#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1104
msgid "Creation Date"
msgstr ""
@@ -760,7 +783,7 @@ msgstr ""
#: build/models.py:300 order/models.py:291
#: templates/js/translated/build.js:1697
msgid "Completion Date"
-msgstr ""
+msgstr "Ngày hoàn thành"
#: build/models.py:306
msgid "completed by"
@@ -779,7 +802,7 @@ msgstr ""
#: order/templates/order/order_base.html:154
#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680
+#: templates/js/translated/build.js:1680 templates/js/translated/order.js:700
msgid "Responsible"
msgstr ""
@@ -795,27 +818,21 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:330 part/models.py:798 stock/models.py:540
-msgid "Link to external URL"
-msgstr ""
-
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:183 order/models.py:738
-#: order/templates/order/po_navbar.html:38
-#: order/templates/order/po_navbar.html:41
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:11 part/models.py:925
#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: stock/serializers.py:583 stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
-#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
-#: templates/js/translated/stock.js:1340
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:985
+#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1370
msgid "Notes"
msgstr ""
@@ -876,8 +893,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:340
#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
-#: templates/js/translated/stock.js:1990
+#: templates/js/translated/order.js:1178 templates/js/translated/order.js:1183
+#: templates/js/translated/stock.js:2020
msgid "Stock Item"
msgstr ""
@@ -917,16 +934,16 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
-#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: build/serializers.py:190 order/serializers.py:219 order/serializers.py:287
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685
#: stock/templates/stock/item_base.html:286
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
-#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
-#: templates/js/translated/stock.js:1931
+#: templates/js/translated/order.js:1190 templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251
+#: templates/js/translated/stock.js:1961
msgid "Location"
msgstr ""
@@ -936,13 +953,13 @@ msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:129
#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: order/serializers.py:240 stock/templates/stock/item_base.html:409
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
-#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
-#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+#: templates/js/translated/order.js:1096 templates/js/translated/stock.js:1226
+#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187
msgid "Status"
-msgstr ""
+msgstr "Trạng thái"
#: build/serializers.py:213
msgid "A list of build outputs must be provided"
@@ -969,7 +986,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:233
#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1060,7 +1077,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:140
#: report/templates/report/inventree_build_order_base.html:126
#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
-#: templates/js/translated/order.js:1087
+#: templates/js/translated/order.js:1109
msgid "Target Date"
msgstr ""
@@ -1086,7 +1103,7 @@ msgstr ""
#: templates/js/translated/build.js:1641
#: templates/js/translated/table_filters.js:304
msgid "Completed"
-msgstr ""
+msgstr "Đã hoàn thành"
#: build/templates/build/build_base.html:163
#: build/templates/build/detail.html:95 order/models.py:857
@@ -1096,7 +1113,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/order.js:1029
+#: templates/js/translated/order.js:1051
msgid "Sales Order"
msgstr ""
@@ -1171,7 +1188,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:974
msgid "Destination"
msgstr ""
@@ -1185,7 +1202,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:304
-#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/stock.js:1240 templates/js/translated/stock.js:2194
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:233
msgid "Batch"
@@ -1286,7 +1303,6 @@ msgid "Completed Build Outputs"
msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
-#: order/templates/order/po_navbar.html:35
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:52
@@ -1300,7 +1316,7 @@ msgstr ""
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:453
#: company/templates/company/detail.html:188
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
@@ -1312,45 +1328,11 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:448
-#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
-#: templates/attachment_button.html:4
-msgid "Add Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:467
-#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:142
-#: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
-msgid "Edit Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:474
-#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:149
-#: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
-#: templates/js/translated/order.js:1243
-msgid "Confirm Delete Operation"
-msgstr ""
-
-#: build/templates/build/detail.html:475
-#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:150
-#: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
-msgid "Delete Attachment"
-msgstr ""
-
-#: build/templates/build/detail.html:513
+#: build/templates/build/detail.html:477
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:514
+#: build/templates/build/detail.html:478
msgid "All untracked stock items have been allocated"
msgstr ""
@@ -1466,7 +1448,7 @@ msgstr ""
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:34 templates/js/translated/attachment.js:54
+#: common/forms.py:34
msgid "File"
msgstr ""
@@ -1964,11 +1946,11 @@ msgstr ""
#: common/models.py:1013
msgid "Show latest parts"
-msgstr ""
+msgstr "Hiển thị nguyên liệu mới nhất"
#: common/models.py:1014
msgid "Show latest parts on the homepage"
-msgstr ""
+msgstr "Hiển thị nguyên liệu mới nhất trên trang chủ"
#: common/models.py:1019
msgid "Recent Part Count"
@@ -2168,13 +2150,11 @@ msgstr ""
msgid "Unit price at specified quantity"
msgstr ""
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
-#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
-#: part/views.py:854
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
+#: part/views.py:858
msgid "Upload File"
msgstr ""
@@ -2182,7 +2162,7 @@ msgstr ""
#: 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:213
-#: part/views.py:855
+#: part/views.py:859
msgid "Match Fields"
msgstr ""
@@ -2200,13 +2180,13 @@ msgstr ""
#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:40
+#: order/templates/order/order_wizard/po_upload.html:47
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:43
+#: part/templates/part/import_wizard/part_upload.html:45
msgid "Previous Step"
msgstr ""
@@ -2252,7 +2232,7 @@ msgid "Contact phone number"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:102
-#: templates/InvenTree/settings/user.html:46
+#: templates/InvenTree/settings/user.html:47
msgid "Email"
msgstr ""
@@ -2268,14 +2248,6 @@ msgstr ""
msgid "Point of contact"
msgstr ""
-#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:163 part/models.py:797
-#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:537
-#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
-msgid "Link"
-msgstr ""
-
#: company/models.py:131
msgid "Link to external company information"
msgstr ""
@@ -2334,7 +2306,7 @@ msgstr ""
#: templates/js/translated/company.js:514
#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
msgid "Manufacturer"
-msgstr ""
+msgstr "Nhà sản xuất"
#: company/models.py:336 templates/js/translated/part.js:230
msgid "Select manufacturer"
@@ -2343,7 +2315,7 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:97
#: company/templates/company/supplier_part.html:112
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:874
#: templates/js/translated/part.js:240
msgid "MPN"
msgstr ""
@@ -2372,9 +2344,9 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:90
+#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:1867 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878
msgid "Value"
msgstr ""
@@ -2406,14 +2378,14 @@ msgstr ""
#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
#: templates/js/translated/part.js:210
msgid "Supplier"
-msgstr ""
+msgstr "Nhà cung cấp"
#: company/models.py:546 templates/js/translated/part.js:211
msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:98
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:861
#: templates/js/translated/part.js:221
msgid "SKU"
msgstr ""
@@ -2450,7 +2422,7 @@ msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:119
#: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1366
msgid "Packaging"
msgstr ""
@@ -2515,8 +2487,8 @@ msgstr ""
#: company/templates/company/company_base.html:126 order/models.py:567
#: order/templates/order/sales_order_base.html:114 stock/models.py:525
#: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
-#: templates/js/translated/stock.js:1972
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1073
+#: templates/js/translated/stock.js:2002
msgid "Customer"
msgstr ""
@@ -2721,7 +2693,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:974
+#: part/templates/part/detail.html:976
msgid "Add Parameter"
msgstr ""
@@ -2752,7 +2724,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:492
#: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1323
msgid "Supplier Part"
msgstr ""
@@ -2778,7 +2750,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
-#: templates/js/translated/stock.js:324
+#: templates/js/translated/stock.js:354
msgid "New Stock Item"
msgstr ""
@@ -2799,7 +2771,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1713
+#: part/templates/part/prices.html:271 part/views.py:1717
msgid "Add Price Break"
msgstr ""
@@ -2807,11 +2779,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1775
+#: company/templates/company/supplier_part.html:224 part/views.py:1779
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1761
+#: company/templates/company/supplier_part.html:238 part/views.py:1765
msgid "Edit Price Break"
msgstr ""
@@ -2831,10 +2803,10 @@ msgstr ""
#: templates/InvenTree/settings/sidebar.html:40
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
-#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
-#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:509
+#: templates/js/translated/stock.js:1162 templates/navbar.html:26
msgid "Stock"
-msgstr ""
+msgstr "Kiện hàng"
#: company/templates/company/supplier_part_navbar.html:22
msgid "Orders"
@@ -2855,7 +2827,7 @@ msgstr ""
#: stock/templates/stock/location.html:132
#: stock/templates/stock/location.html:144
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1901
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2885,24 +2857,24 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:580
+#: company/views.py:129 part/views.py:584
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:612
+#: company/views.py:158 part/views.py:616
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:619
+#: company/views.py:165 part/views.py:623
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:628
+#: company/views.py:174 part/views.py:632
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/api.py:57 report/api.py:201
+#: label/api.py:57 report/api.py:203
msgid "No valid objects provided to template"
msgstr ""
@@ -2959,7 +2931,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
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
+#: report/models.py:322 report/models.py:459 report/models.py:497
msgid "Filters"
msgstr ""
@@ -3089,7 +3061,7 @@ msgstr ""
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1092
+#: order/models.py:582 templates/js/translated/order.js:1114
msgid "Shipment Date"
msgstr ""
@@ -3114,7 +3086,7 @@ msgid "Line item notes"
msgstr ""
#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1144
+#: templates/js/translated/order.js:1166
msgid "Order"
msgstr ""
@@ -3122,10 +3094,10 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:325
-#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1300
+#: templates/js/translated/stock.js:1983
msgid "Purchase Order"
-msgstr ""
+msgstr "Đơn hàng"
#: order/models.py:790
msgid "Supplier part"
@@ -3133,7 +3105,7 @@ msgstr ""
#: order/models.py:797 order/templates/order/order_base.html:147
#: order/templates/order/sales_order_base.html:154
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:954
msgid "Received"
msgstr ""
@@ -3143,9 +3115,9 @@ msgstr ""
#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1324
+#: templates/js/translated/stock.js:1354
msgid "Purchase Price"
-msgstr ""
+msgstr "Giá mua"
#: order/models.py:806
msgid "Unit purchase price"
@@ -3204,47 +3176,47 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:167
+#: order/serializers.py:169
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:202
+#: order/serializers.py:204
msgid "Line Item"
msgstr ""
-#: order/serializers.py:208
+#: order/serializers.py:210
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:286
+#: order/serializers.py:220 order/serializers.py:288
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:242
+#: order/serializers.py:244
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:243
+#: order/serializers.py:245
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:260
+#: order/serializers.py:262
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:298
+#: order/serializers.py:300
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:315
+#: order/serializers.py:317
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:328
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:568
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3390,19 +3362,23 @@ msgstr ""
msgid "Select Supplier Part"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:11
+#: order/templates/order/order_wizard/po_upload.html:8
+msgid "Return to Orders"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:17
msgid "Upload File for Purchase Order"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:18
+#: order/templates/order/order_wizard/po_upload.html:25
#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:21
+#: part/templates/part/import_wizard/part_upload.html:23
#, python-format
msgid "Step %(step)s of %(count)s"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:48
+#: order/templates/order/order_wizard/po_upload.html:55
msgid "Order is already processed. Files cannot be uploaded."
msgstr ""
@@ -3445,7 +3421,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:695 templates/js/translated/order.js:1097
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1119
msgid "Items"
msgstr ""
@@ -3463,31 +3439,6 @@ msgstr ""
msgid "Select a purchase order for %(name)s"
msgstr ""
-#: order/templates/order/po_attachments.html:12
-#: order/templates/order/po_navbar.html:32
-msgid "Purchase Order Attachments"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:15
-#: part/templates/part/part_sidebar.html:8
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:26
-msgid "Received Stock Items"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:29
-#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
#: order/templates/order/po_sidebar.html:5
#: order/templates/order/so_sidebar.html:5
#: report/templates/report/inventree_po_report.html:85
@@ -3504,9 +3455,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:216
+#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:191
+#: order/templates/order/sales_order_detail.html:157
msgid "Add Line Item"
msgstr ""
@@ -3518,6 +3469,10 @@ msgstr ""
msgid "Receive Items"
msgstr ""
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
#: order/templates/order/purchase_order_detail.html:76
#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
@@ -3546,7 +3501,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:121
-#: templates/js/translated/order.js:1064
+#: templates/js/translated/order.js:1086
msgid "Customer Reference"
msgstr ""
@@ -3700,19 +3655,19 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:731
+#: part/api.py:758
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:735
+#: part/api.py:762
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:750
+#: part/api.py:777
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
+#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
msgid "This field is required"
msgstr ""
@@ -3853,7 +3808,7 @@ msgstr ""
#: templates/js/translated/part.js:1416 templates/navbar.html:19
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
-msgstr ""
+msgstr "Nguyên liệu"
#: part/models.py:450
msgid "Invalid choice for parent part"
@@ -3926,7 +3881,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/detail.html:45
#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
-#: templates/js/translated/stock.js:1104
+#: templates/js/translated/stock.js:1134
msgid "IPN"
msgstr ""
@@ -4047,7 +4002,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1467
-#: templates/js/translated/stock.js:828
+#: templates/js/translated/stock.js:858
msgid "Test Name"
msgstr ""
@@ -4481,7 +4436,7 @@ msgstr ""
#: part/templates/part/detail.html:97
msgid "Latest Serial Number"
-msgstr ""
+msgstr "Số seri mới nhất"
#: part/templates/part/detail.html:124
msgid "Part Stock"
@@ -4552,7 +4507,7 @@ msgstr ""
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:365 part/views.py:751
+#: part/templates/part/detail.html:365 part/views.py:755
msgid "Validate BOM"
msgstr ""
@@ -4604,44 +4559,48 @@ msgstr ""
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:770
+#: part/templates/part/detail.html:772
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:867
+#: part/templates/part/detail.html:869
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:924
+#: part/templates/part/detail.html:926
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:1076
+#: part/templates/part/detail.html:1039
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1088
+#: part/templates/part/detail.html:1051
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1100
+#: part/templates/part/detail.html:1063
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1189
+#: part/templates/part/detail.html:1152
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:51
+#: part/templates/part/import_wizard/part_upload.html:53
msgid "Unsuffitient privileges."
msgstr ""
-#: part/templates/part/import_wizard/part_upload.html:14
+#: part/templates/part/import_wizard/part_upload.html:8
+msgid "Return to Parts"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:16
msgid "Import Parts from File"
msgstr ""
@@ -4751,7 +4710,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1546
#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
@@ -4846,6 +4805,11 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1949
+msgid "Details"
+msgstr ""
+
#: part/templates/part/part_sidebar.html:13
msgid "Variants"
msgstr ""
@@ -4949,7 +4913,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1784
+#: part/templates/part/prices.html:215 part/views.py:1788
msgid "Add Internal Price Break"
msgstr ""
@@ -4977,7 +4941,7 @@ msgstr ""
#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158
msgid "Low Stock"
-msgstr ""
+msgstr "Hàng còn ít"
#: part/templates/part/variant_part.html:9
msgid "Create new part variant"
@@ -5005,110 +4969,115 @@ msgstr ""
msgid "Match References"
msgstr ""
-#: part/views.py:498
+#: part/views.py:502
msgid "None"
msgstr ""
-#: part/views.py:557
+#: part/views.py:561
msgid "Part QR Code"
msgstr ""
-#: part/views.py:659
+#: part/views.py:663
msgid "Select Part Image"
msgstr ""
-#: part/views.py:685
+#: part/views.py:689
msgid "Updated part image"
msgstr ""
-#: part/views.py:688
+#: part/views.py:692
msgid "Part image not found"
msgstr ""
-#: part/views.py:700
+#: part/views.py:704
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:730
+#: part/views.py:734
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:772
+#: part/views.py:776
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:783
+#: part/views.py:787
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:856
+#: part/views.py:860
msgid "Match Parts"
msgstr ""
-#: part/views.py:1192
+#: part/views.py:1196
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1244
+#: part/views.py:1248
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1251
+#: part/views.py:1255
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1260
+#: part/views.py:1264
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1409
+#: part/views.py:1413
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1419
+#: part/views.py:1423
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1426
+#: part/views.py:1430
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1485 templates/js/translated/part.js:310
+#: part/views.py:1489 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1523
+#: part/views.py:1527
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1529
+#: part/views.py:1533
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1538
+#: part/views.py:1542
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1639
+#: part/views.py:1643
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1695
+#: part/views.py:1699
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1717
+#: part/views.py:1721
msgid "Added new price break"
msgstr ""
-#: part/views.py:1793
+#: part/views.py:1797
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1801
+#: part/views.py:1805
msgid "Delete Internal Price Break"
msgstr ""
+#: report/api.py:234 report/api.py:278
+#, python-brace-format
+msgid "Template file '{filename}' is missing or does not exist"
+msgstr ""
+
#: report/models.py:182
msgid "Template name"
msgstr ""
@@ -5145,51 +5114,51 @@ msgstr ""
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:380
+#: report/models.py:382
msgid "Build Filters"
msgstr ""
-#: report/models.py:381
+#: report/models.py:383
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:423
+#: report/models.py:425
msgid "Part Filters"
msgstr ""
-#: report/models.py:424
+#: report/models.py:426
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:458
+#: report/models.py:460
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:496
+#: report/models.py:498
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:546
+#: report/models.py:548
msgid "Snippet"
msgstr ""
-#: report/models.py:547
+#: report/models.py:549
msgid "Report snippet file"
msgstr ""
-#: report/models.py:551
+#: report/models.py:553
msgid "Snippet file description"
msgstr ""
-#: report/models.py:586
+#: report/models.py:588
msgid "Asset"
msgstr ""
-#: report/models.py:587
+#: report/models.py:589
msgid "Report asset file"
msgstr ""
-#: report/models.py:590
+#: report/models.py:592
msgid "Asset file description"
msgstr ""
@@ -5201,49 +5170,59 @@ msgstr ""
msgid "Stock Item Test Report"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:75
+#: report/templates/report/inventree_test_report_base.html:79
#: stock/models.py:530 stock/templates/stock/item_base.html:238
#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
#: templates/js/translated/build.js:1013
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+#: templates/js/translated/order.js:1288 templates/js/translated/order.js:1377
msgid "Serial Number"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:83
+#: report/templates/report/inventree_test_report_base.html:88
msgid "Test Results"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:93
#: stock/models.py:1855
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:89
+#: report/templates/report/inventree_test_report_base.html:94
#: stock/models.py:1861
msgid "Result"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917
msgid "Date"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:103
+#: report/templates/report/inventree_test_report_base.html:108
msgid "Pass"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:105
+#: report/templates/report/inventree_test_report_base.html:110
msgid "Fail"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:123
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:137
+#: templates/js/translated/stock.js:2177
+msgid "Serial"
+msgstr ""
+
#: stock/api.py:422
msgid "Quantity is required"
msgstr ""
#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
#: stock/templates/stock/item_base.html:382
-#: templates/js/translated/stock.js:1246
+#: templates/js/translated/stock.js:1276
msgid "Expiry Date"
msgstr ""
@@ -5344,7 +5323,7 @@ msgstr ""
#: stock/models.py:498 stock/templates/stock/location.html:12
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
-msgstr ""
+msgstr "Kho hàng"
#: stock/models.py:501
msgid "Where is this stock item located?"
@@ -5505,7 +5484,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:319 stock/serializers.py:687
+#: stock/serializers.py:319 stock/serializers.py:686
msgid "Destination stock location"
msgstr ""
@@ -5517,15 +5496,15 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:557
+#: stock/serializers.py:556
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:585
+#: stock/serializers.py:584
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:595
+#: stock/serializers.py:594
msgid "A list of stock items must be provided"
msgstr ""
@@ -5570,15 +5549,15 @@ msgstr ""
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
+#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:363
+#: stock/templates/stock/item.html:324
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:377
+#: stock/templates/stock/item.html:338
msgid "Delete Test Result"
msgstr ""
@@ -5752,7 +5731,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:1259
+#: templates/js/translated/stock.js:1289
msgid "Last Updated"
msgstr ""
@@ -5768,7 +5747,7 @@ msgstr ""
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:505
msgid "Edit Stock Status"
msgstr ""
@@ -5885,10 +5864,6 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:12
-msgid "Installed Items"
-msgstr ""
-
#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
@@ -5967,7 +5942,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:618
+#: stock/views.py:760 templates/js/translated/stock.js:648
msgid "Confirm stock adjustment"
msgstr ""
@@ -5975,7 +5950,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:288
+#: stock/views.py:793 templates/js/translated/stock.js:318
msgid "Edit Stock Item"
msgstr ""
@@ -5987,7 +5962,7 @@ msgstr ""
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:268
+#: stock/views.py:1186 templates/js/translated/stock.js:298
msgid "Duplicate Stock Item"
msgstr ""
@@ -6045,7 +6020,7 @@ msgstr ""
#: templates/InvenTree/index.html:108
msgid "Latest Parts"
-msgstr ""
+msgstr "Nguyên liệu mới nhất"
#: templates/InvenTree/index.html:119
msgid "BOM Waiting Validation"
@@ -6164,11 +6139,11 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/po.html:9
+#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
-#: templates/InvenTree/settings/report.html:10
+#: templates/InvenTree/settings/report.html:8
#: templates/InvenTree/settings/user_reports.html:9
msgid "Report Settings"
msgstr ""
@@ -6183,15 +6158,15 @@ msgstr ""
#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
msgid "Settings"
-msgstr ""
+msgstr "Cài đặt"
#: templates/InvenTree/settings/settings.html:65
msgid "Edit Global Setting"
-msgstr ""
+msgstr "Chỉnh sửa cài đặt toàn cục"
#: templates/InvenTree/settings/settings.html:65
msgid "Edit User Setting"
-msgstr ""
+msgstr "Chỉnh sửa cài đặt người dùng"
#: templates/InvenTree/settings/settings.html:148
msgid "No category parameter templates found"
@@ -6218,17 +6193,17 @@ msgstr ""
#: templates/InvenTree/settings/sidebar.html:5
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
-msgstr ""
+msgstr "Cài đặt người dùng"
#: templates/InvenTree/settings/sidebar.html:8
-#: templates/InvenTree/settings/user.html:11
+#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
-msgstr ""
+msgstr "Cài đặt tài khoản"
#: templates/InvenTree/settings/sidebar.html:10
#: templates/InvenTree/settings/user_display.html:9
msgid "Display Settings"
-msgstr ""
+msgstr "Thiết đặt hiển thị"
#: templates/InvenTree/settings/sidebar.html:12
msgid "Home Page"
@@ -6237,7 +6212,7 @@ msgstr ""
#: templates/InvenTree/settings/sidebar.html:14
#: templates/InvenTree/settings/user_search.html:9
msgid "Search Settings"
-msgstr ""
+msgstr "Cài đặt tìm kiếm"
#: templates/InvenTree/settings/sidebar.html:16
msgid "Label Printing"
@@ -6250,7 +6225,7 @@ msgstr ""
#: templates/InvenTree/settings/sidebar.html:23
msgid "Global Settings"
-msgstr ""
+msgstr "Cài đặt toàn cục"
#: templates/InvenTree/settings/sidebar.html:26
msgid "Server Configuration"
@@ -6273,146 +6248,142 @@ msgid "Stock Settings"
msgstr ""
#: templates/InvenTree/settings/user.html:18
-#: templates/js/translated/helpers.js:26
-msgid "Edit"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:20
#: 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:31
+#: templates/InvenTree/settings/user.html:22
+#: templates/js/translated/helpers.js:26
+msgid "Edit"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:32
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:35
+#: templates/InvenTree/settings/user.html:36
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:39
+#: templates/InvenTree/settings/user.html:40
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:54
+#: templates/InvenTree/settings/user.html:55
msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:74
+#: templates/InvenTree/settings/user.html:75
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:76
+#: templates/InvenTree/settings/user.html:77
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:78
+#: templates/InvenTree/settings/user.html:79
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:84
+#: templates/InvenTree/settings/user.html:85
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:85
+#: templates/InvenTree/settings/user.html:86
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:86
-#: templates/InvenTree/settings/user.html:153
+#: templates/InvenTree/settings/user.html:87
+#: templates/InvenTree/settings/user.html:154
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
+#: templates/InvenTree/settings/user.html:94
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:94
+#: templates/InvenTree/settings/user.html:95
msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:101
+#: templates/InvenTree/settings/user.html:102
msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:111
+#: templates/InvenTree/settings/user.html:112
msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:113
+#: templates/InvenTree/settings/user.html:114
msgid "Add Email"
msgstr ""
-#: templates/InvenTree/settings/user.html:123
+#: templates/InvenTree/settings/user.html:124
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:128
+#: templates/InvenTree/settings/user.html:129
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:162
+#: templates/InvenTree/settings/user.html:163
msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:167
+#: templates/InvenTree/settings/user.html:168
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:177
-msgid "Language Settings"
+#: templates/InvenTree/settings/user.html:179
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:185
+msgid "Log out active sessions (except this one)"
msgstr ""
#: templates/InvenTree/settings/user.html:186
-msgid "Select language"
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:195
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:196
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:200
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:201
+msgid "Device"
msgstr ""
#: templates/InvenTree/settings/user.html:202
-#, python-format
-msgid "%(lang_translated)s%% translated"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:204
-msgid "No translations available"
+msgid "Last Activity"
msgstr ""
#: templates/InvenTree/settings/user.html:211
-msgid "Set Language"
+#, python-format
+msgid "%(time)s ago (this session)"
msgstr ""
#: templates/InvenTree/settings/user.html:213
-msgid "Some languages are not complete"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:215
-msgid "Show only sufficent"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "and hidden."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "Show them too"
+#, python-format
+msgid "%(time)s ago"
msgstr ""
#: templates/InvenTree/settings/user.html:224
-msgid "Help the translation efforts!"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:225
-#, 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:233
msgid "Do you really want to remove the selected email address?"
msgstr ""
#: templates/InvenTree/settings/user_display.html:25
msgid "Theme Settings"
-msgstr ""
+msgstr "Thiết lập giao diện"
#: templates/InvenTree/settings/user_display.html:35
msgid "Select theme"
@@ -6422,9 +6393,55 @@ msgstr ""
msgid "Set Theme"
msgstr ""
+#: templates/InvenTree/settings/user_display.html:54
+msgid "Language Settings"
+msgstr "Thiết lập ngôn ngữ"
+
+#: templates/InvenTree/settings/user_display.html:63
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:79
+#, python-format
+msgid "%(lang_translated)s%% translated"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:81
+msgid "No translations available"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:88
+msgid "Set Language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:91
+msgid "Some languages are not complete"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:93
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:101
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:102
+#, 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_homepage.html:9
msgid "Home Page Settings"
-msgstr ""
+msgstr "Thiết lập trang chủ"
#: templates/InvenTree/settings/user_labels.html:9
msgid "Label Settings"
@@ -6558,15 +6575,15 @@ msgstr ""
#: templates/account/logout.html:5 templates/account/logout.html:8
#: templates/account/logout.html:20
msgid "Sign Out"
-msgstr ""
+msgstr "Đăng xuất"
#: templates/account/logout.html:10
msgid "Are you sure you want to sign out?"
-msgstr ""
+msgstr "Bạn có chắc bạn muốn đăng xuất không?"
#: templates/account/logout.html:19
msgid "Back to Site"
-msgstr ""
+msgstr "Quay lại website"
#: templates/account/password_reset.html:5
#: templates/account/password_reset.html:12
@@ -6619,6 +6636,14 @@ msgstr ""
msgid "View in administration panel"
msgstr ""
+#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54
+msgid "Add Link"
+msgstr ""
+
+#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36
+msgid "Add Attachment"
+msgstr ""
+
#: templates/base.html:96
msgid "Server Restart Required"
msgstr ""
@@ -6702,154 +6727,87 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/report.js:47 templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/report.js:55 templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/report.js:70 templates/js/translated/report.js:90
-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:594
-msgid "Select Stock Items"
-msgstr ""
-
-#: templates/js/report.js:99 templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:116 templates/js/report.js:169
-#: templates/js/report.js:223 templates/js/report.js:277
-#: templates/js/report.js:331 templates/js/translated/report.js:136
-#: 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 ""
-
-#: templates/js/report.js:117 templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/report.js:152 templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/report.js:153 templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: 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/build.js:1333
-#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
-#: templates/js/report.js:206 templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/report.js:224 templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/report.js:259 templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/report.js:260 templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/report.js:278 templates/js/report.js:332
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/report.js:313 templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/report.js:314 templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:191
+#: templates/js/translated/api.js:192
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:192
+#: templates/js/translated/api.js:193
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:215
+#: templates/js/translated/api.js:216
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:216
+#: templates/js/translated/api.js:217
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:27
+#: templates/js/translated/attachment.js:76
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:95
-msgid "Upload Date"
+#: templates/js/translated/attachment.js:98
+msgid "Edit Attachment"
msgstr ""
#: templates/js/translated/attachment.js:108
+msgid "Confirm Delete"
+msgstr ""
+
+#: templates/js/translated/attachment.js:109
+msgid "Delete Attachment"
+msgstr ""
+
+#: templates/js/translated/attachment.js:165
+msgid "Upload Date"
+msgstr ""
+
+#: templates/js/translated/attachment.js:178
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:115
+#: templates/js/translated/attachment.js:185
msgid "Delete attachment"
msgstr ""
@@ -6910,7 +6868,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:600
msgid "Remove stock item"
msgstr ""
@@ -7005,7 +6963,7 @@ msgid "View BOM"
msgstr ""
#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1320
msgid "Actions"
msgstr ""
@@ -7097,7 +7055,7 @@ msgstr ""
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1194
msgid "Location not specified"
msgstr ""
@@ -7106,12 +7064,12 @@ msgid "No active build outputs found"
msgstr ""
#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1305
+#: templates/js/translated/order.js:1327
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1306
+#: templates/js/translated/order.js:1328
msgid "Delete stock allocation"
msgstr ""
@@ -7132,11 +7090,11 @@ msgid "Quantity Per"
msgstr ""
#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1557
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1611
msgid "Build stock"
msgstr ""
@@ -7144,7 +7102,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1604
msgid "Allocate stock"
msgstr ""
@@ -7152,6 +7110,11 @@ msgstr ""
msgid "Specify stock allocation quantity"
msgstr ""
+#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
+#: templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
@@ -7181,8 +7144,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
-#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
-#: templates/js/translated/stock.js:1841
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1094
+#: templates/js/translated/stock.js:1871
msgid "Select"
msgstr ""
@@ -7190,7 +7153,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2090
msgid "No user information"
msgstr ""
@@ -7332,45 +7295,45 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
-#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
+#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365
+#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:351
+#: templates/js/translated/forms.js:352
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:366
+#: templates/js/translated/forms.js:367
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:380
+#: templates/js/translated/forms.js:381
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:394
+#: templates/js/translated/forms.js:395
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:679
+#: templates/js/translated/forms.js:680
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/js/translated/forms.js:1072 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1457
+#: templates/js/translated/forms.js:1463
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1661
+#: templates/js/translated/forms.js:1667
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1878
+#: templates/js/translated/forms.js:1884
msgid "Clear input"
msgstr ""
@@ -7382,6 +7345,11 @@ msgstr ""
msgid "NO"
msgstr ""
+#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
+#: templates/js/translated/stock.js:624
+msgid "Select Stock Items"
+msgstr ""
+
#: templates/js/translated/label.js:30
msgid "Stock item(s) must be selected before printing labels"
msgstr ""
@@ -7534,11 +7502,11 @@ msgstr ""
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:423
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:424
msgid "Select file format"
msgstr ""
@@ -7554,7 +7522,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1673
msgid "Stock Status"
msgstr ""
@@ -7582,100 +7550,104 @@ msgstr ""
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1063
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
+#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
+#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:801
+#: templates/js/translated/order.js:823
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
+#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:904 templates/js/translated/order.js:1492
#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+#: templates/js/translated/order.js:919 templates/js/translated/order.js:1508
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
+#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:976
+#: templates/js/translated/order.js:998
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:980
+#: templates/js/translated/order.js:1002
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1017
+#: templates/js/translated/order.js:1039
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1055
+#: templates/js/translated/order.js:1077
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1133
+#: templates/js/translated/order.js:1155
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1226
+#: templates/js/translated/order.js:1248
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1244
+#: templates/js/translated/order.js:1265
+msgid "Confirm Delete Operation"
+msgstr ""
+
+#: templates/js/translated/order.js:1266
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1308
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1535
+#: templates/js/translated/order.js:1557
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1579
+#: templates/js/translated/order.js:1601
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1585
+#: templates/js/translated/order.js:1607
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
+#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1596
+#: templates/js/translated/order.js:1618
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1719
+#: templates/js/translated/order.js:1741
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1779
+#: templates/js/translated/order.js:1801
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1793
+#: templates/js/translated/order.js:1815
msgid "No matching line items"
msgstr ""
@@ -7825,7 +7797,7 @@ msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
-#: templates/js/translated/stock.js:1802
+#: templates/js/translated/stock.js:1832
msgid "Display as list"
msgstr ""
@@ -7833,7 +7805,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1851
msgid "Display as tree"
msgstr ""
@@ -7841,7 +7813,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1895
msgid "Path"
msgstr ""
@@ -7849,11 +7821,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:816
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:817
msgid "Delete test result"
msgstr ""
@@ -7892,268 +7864,342 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:136 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 ""
+
+#: templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
#: templates/js/translated/stock.js:70
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:90
+#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167
+msgid "Next available serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169
+msgid "Latest serial number"
+msgstr "Số seri mới nhất"
+
+#: templates/js/translated/stock.js:104
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:126
+#: templates/js/translated/stock.js:140
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:189
+#: templates/js/translated/stock.js:180
+msgid "This part cannot be serialized"
+msgstr ""
+
+#: templates/js/translated/stock.js:219
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:195
+#: templates/js/translated/stock.js:225
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:338
+#: templates/js/translated/stock.js:368
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:351
+#: templates/js/translated/stock.js:381
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:420
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:401
+#: templates/js/translated/stock.js:431
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:402
+#: templates/js/translated/stock.js:432
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:444
+#: templates/js/translated/stock.js:474
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:445
+#: templates/js/translated/stock.js:475
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:451
+#: templates/js/translated/stock.js:481
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:452
+#: templates/js/translated/stock.js:482
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:486
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:487
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:491
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:462 users/models.py:200
+#: templates/js/translated/stock.js:492 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:466 templates/stock_table.html:56
+#: templates/js/translated/stock.js:496 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:595
+#: templates/js/translated/stock.js:625
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:753
+#: templates/js/translated/stock.js:783
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:755
+#: templates/js/translated/stock.js:785
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:760
+#: templates/js/translated/stock.js:790
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:812
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:808
+#: templates/js/translated/stock.js:838
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:895
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:1002
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:1006
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:1010
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:984
+#: templates/js/translated/stock.js:1014
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:990
+#: templates/js/translated/stock.js:1020
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1148
+#: templates/js/translated/stock.js:1178
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1153
+#: templates/js/translated/stock.js:1183
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1156
+#: templates/js/translated/stock.js:1186
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1160
+#: templates/js/translated/stock.js:1190
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1162
+#: templates/js/translated/stock.js:1192
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1166
+#: templates/js/translated/stock.js:1196
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1170
+#: templates/js/translated/stock.js:1200
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1177
+#: templates/js/translated/stock.js:1207
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1179
+#: templates/js/translated/stock.js:1209
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1181
+#: templates/js/translated/stock.js:1211
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1185
+#: templates/js/translated/stock.js:1215
#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1235
+#: templates/js/translated/stock.js:1265
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1308
+#: templates/js/translated/stock.js:1338
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1346
+#: templates/js/translated/stock.js:1376
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
+#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1455
+#: templates/js/translated/stock.js:1485
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1482
+#: templates/js/translated/stock.js:1512
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1484
+#: templates/js/translated/stock.js:1514
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1658
+#: templates/js/translated/stock.js:1688
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1672
+#: templates/js/translated/stock.js:1702
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1673
+#: templates/js/translated/stock.js:1703
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1897
+#: templates/js/translated/stock.js:1927
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1944
+#: templates/js/translated/stock.js:1974
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1963
+#: templates/js/translated/stock.js:1993
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1982
+#: templates/js/translated/stock.js:2012
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2000
+#: templates/js/translated/stock.js:2030
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2023
+#: templates/js/translated/stock.js:2053
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2061
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2072
+#: templates/js/translated/stock.js:2102
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2073
+#: templates/js/translated/stock.js:2103
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2124
+#: templates/js/translated/stock.js:2154
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
-#: templates/js/translated/stock.js:2175
+#: templates/js/translated/stock.js:2205
msgid "Uninstall Stock Item"
msgstr ""
@@ -8405,19 +8451,19 @@ msgstr ""
#: templates/navbar.html:40
msgid "Buy"
-msgstr ""
+msgstr "Mua"
#: templates/navbar.html:52
msgid "Sell"
-msgstr ""
+msgstr "Bán"
#: templates/navbar.html:86 users/models.py:39
msgid "Admin"
-msgstr ""
+msgstr "Quản trị"
#: templates/navbar.html:88
msgid "Logout"
-msgstr ""
+msgstr "Đăng xuất"
#: templates/navbar.html:90
msgid "Login"
@@ -8425,7 +8471,7 @@ msgstr ""
#: templates/navbar.html:111
msgid "About InvenTree"
-msgstr ""
+msgstr "Giới thiệu"
#: templates/navbar_demo.html:5
msgid "InvenTree demo mode"
diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po
index 1017d54ef0..88f3d3ad18 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-11-25 04:46+0000\n"
-"PO-Revision-Date: 2021-11-25 05:07\n"
+"POT-Creation-Date: 2021-11-30 21:49+0000\n"
+"PO-Revision-Date: 2021-11-30 21:52\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
@@ -36,7 +36,7 @@ msgstr "输入日期"
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:594
+#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr "确认"
@@ -70,15 +70,15 @@ msgstr "选择分类"
#: InvenTree/forms.py:230
msgid "Email (again)"
-msgstr ""
+msgstr "Email (再次)"
#: InvenTree/forms.py:234
msgid "Email address confirmation"
-msgstr ""
+msgstr "Email 地址确认"
#: InvenTree/forms.py:254
msgid "You must type the same email each time."
-msgstr ""
+msgstr "您必须输入相同的 Email 。"
#: InvenTree/helpers.py:430
#, python-brace-format
@@ -114,99 +114,121 @@ msgstr "未找到序列号"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "唯一序列号 ({s}) 必须匹配数量 ({q})"
-#: InvenTree/models.py:109 stock/models.py:1874
+#: InvenTree/models.py:114
+msgid "Missing file"
+msgstr "缺少文件"
+
+#: InvenTree/models.py:115
+msgid "Missing external link"
+msgstr ""
+
+#: InvenTree/models.py:126 stock/models.py:1874
+#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr "附件"
-#: InvenTree/models.py:110
+#: InvenTree/models.py:127
msgid "Select file to attach"
msgstr "选择附件"
-#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
+#: InvenTree/models.py:133 company/models.py:131 company/models.py:348
+#: company/models.py:564 order/models.py:163 part/models.py:797
+#: report/templates/report/inventree_build_order_base.html:165
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
+msgid "Link"
+msgstr "链接"
+
+#: InvenTree/models.py:134 build/models.py:330 part/models.py:798
+#: stock/models.py:540
+msgid "Link to external URL"
+msgstr "链接到外部 URL"
+
+#: InvenTree/models.py:137 templates/js/translated/attachment.js:161
msgid "Comment"
msgstr "注释"
-#: InvenTree/models.py:112
+#: InvenTree/models.py:137
msgid "File comment"
msgstr "文件注释"
-#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185
#: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:2054
+#: report/templates/report/inventree_test_report_base.html:96
+#: templates/js/translated/stock.js:2084
msgid "User"
msgstr "用户"
-#: InvenTree/models.py:122
+#: InvenTree/models.py:147
msgid "upload date"
msgstr "上传日期"
-#: InvenTree/models.py:142
+#: InvenTree/models.py:170
msgid "Filename must not be empty"
msgstr "文件名不能为空!"
-#: InvenTree/models.py:165
+#: InvenTree/models.py:193
msgid "Invalid attachment directory"
msgstr "非法的附件目录"
-#: InvenTree/models.py:175
+#: InvenTree/models.py:203
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "文件名包含非法字符 '{c}'"
-#: InvenTree/models.py:178
+#: InvenTree/models.py:206
msgid "Filename missing extension"
msgstr "缺少文件名扩展"
-#: InvenTree/models.py:185
+#: InvenTree/models.py:213
msgid "Attachment with this filename already exists"
msgstr "使用此文件名的附件已存在"
-#: InvenTree/models.py:192
+#: InvenTree/models.py:220
msgid "Error renaming file"
msgstr "重命名文件出错"
-#: InvenTree/models.py:227
+#: InvenTree/models.py:255
msgid "Invalid choice"
msgstr "选择无效"
-#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: InvenTree/models.py:271 InvenTree/models.py:272 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
#: part/templates/part/detail.html:25 report/models.py:181
#: templates/InvenTree/settings/settings.html:259
#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
-#: templates/js/translated/stock.js:1847
+#: templates/js/translated/stock.js:1877
msgid "Name"
msgstr "名称"
-#: InvenTree/models.py:250 build/models.py:207
+#: InvenTree/models.py:278 build/models.py:207
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/manufacturer_part.html:80
#: company/templates/company/supplier_part.html:81 label/models.py:119
#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:551 report/models.py:590
+#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
#: templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
-#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/order.js:855 templates/js/translated/order.js:1091
#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
-#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
-#: templates/js/translated/stock.js:1904
+#: templates/js/translated/stock.js:1151 templates/js/translated/stock.js:1889
+#: templates/js/translated/stock.js:1934
msgid "Description"
msgstr "描述信息"
-#: InvenTree/models.py:251
+#: InvenTree/models.py:279
msgid "Description (optional)"
msgstr "描述 (可选)"
-#: InvenTree/models.py:259
+#: InvenTree/models.py:287
msgid "parent"
msgstr "上级项"
@@ -214,87 +236,87 @@ msgstr "上级项"
msgid "Must be a valid number"
msgstr "必须是有效数字"
-#: InvenTree/serializers.py:251
+#: InvenTree/serializers.py:285
msgid "Filename"
msgstr "文件名"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:670
msgid "German"
msgstr "德语"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:671
msgid "Greek"
msgstr "希腊语"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:672
msgid "English"
msgstr "英语"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:673
msgid "Spanish"
msgstr "西班牙语"
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:674
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:675
msgid "French"
msgstr "法语"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:676
msgid "Hebrew"
msgstr "希伯来语"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:677
msgid "Italian"
msgstr "意大利语"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:678
msgid "Japanese"
msgstr "日语"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:679
msgid "Korean"
msgstr "韩语"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:680
msgid "Dutch"
msgstr "荷兰语"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:681
msgid "Norwegian"
msgstr "挪威语"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:682
msgid "Polish"
msgstr "波兰语"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:683
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:684
msgid "Russian"
msgstr "俄语"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:685
msgid "Swedish"
msgstr "瑞典语"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:686
msgid "Thai"
msgstr "泰语"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:687
msgid "Turkish"
msgstr "土耳其语"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:688
msgid "Vietnamese"
msgstr "越南语"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:689
msgid "Chinese"
msgstr "中文(简体)"
@@ -479,27 +501,27 @@ msgstr "备损不能超过 100%"
msgid "Overage must be an integer value or a percentage"
msgstr "备损必须是整数值或百分比"
-#: InvenTree/views.py:536
+#: InvenTree/views.py:538
msgid "Delete Item"
msgstr "删除项"
-#: InvenTree/views.py:585
+#: InvenTree/views.py:587
msgid "Check box to confirm item deletion"
msgstr "选中方框以确认项目删除"
-#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
+#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21
msgid "Edit User Information"
msgstr "编辑用户信息"
-#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
+#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19
msgid "Set Password"
msgstr "设置密码"
-#: InvenTree/views.py:630
+#: InvenTree/views.py:632
msgid "Password fields must match"
msgstr "密码字段必须相匹配。"
-#: InvenTree/views.py:863 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:101
msgid "System Information"
msgstr "系统信息"
@@ -552,12 +574,13 @@ msgstr "与库存项关联的条形码"
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
+#: part/templates/part/detail.html:1076 part/templates/part/detail.html:1162
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:77
+#: report/templates/report/inventree_test_report_base.html:81
+#: report/templates/report/inventree_test_report_base.html:139
#: stock/forms.py:156 stock/serializers.py:286
#: stock/templates/stock/item_base.html:256
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
@@ -565,12 +588,12 @@ msgstr "与库存项关联的条形码"
#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
-#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
-#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/order.js:892 templates/js/translated/order.js:1205
+#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290
+#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479
#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
-#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
-#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377
+#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171
msgid "Quantity"
msgstr "数量"
@@ -579,8 +602,8 @@ msgid "Enter quantity for build output"
msgstr "输入生产产出数量"
#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:307 templates/js/translated/stock.js:194
-#: templates/js/translated/stock.js:348
+#: stock/serializers.py:307 templates/js/translated/stock.js:224
+#: templates/js/translated/stock.js:378
msgid "Serial Numbers"
msgstr "序列号"
@@ -639,7 +662,7 @@ msgstr "相关生产订单"
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
+#: templates/js/translated/order.js:886 templates/js/translated/order.js:1473
msgid "Reference"
msgstr "引用"
@@ -677,10 +700,10 @@ msgstr "此次生产匹配的订单"
#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/order.js:840 templates/js/translated/order.js:1457
#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
-#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
-#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508
+#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159
msgid "Part"
msgstr "商品"
@@ -745,7 +768,7 @@ msgid "Batch code for this build output"
msgstr "此生产产出的批量代码"
#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1104
msgid "Creation Date"
msgstr "创建日期"
@@ -779,7 +802,7 @@ msgstr "发布此生产订单的用户"
#: order/templates/order/order_base.html:154
#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680
+#: templates/js/translated/build.js:1680 templates/js/translated/order.js:700
msgid "Responsible"
msgstr "责任人"
@@ -795,27 +818,21 @@ msgstr "负责此生产订单的用户"
msgid "External Link"
msgstr "外部链接"
-#: build/models.py:330 part/models.py:798 stock/models.py:540
-msgid "Link to external URL"
-msgstr "链接到外部 URL"
-
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:183 order/models.py:738
-#: order/templates/order/po_navbar.html:38
-#: order/templates/order/po_navbar.html:41
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:11 part/models.py:925
#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: stock/serializers.py:583 stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
-#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
-#: templates/js/translated/stock.js:1340
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:985
+#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1370
msgid "Notes"
msgstr "备注"
@@ -876,8 +893,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:340
#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
-#: templates/js/translated/stock.js:1990
+#: templates/js/translated/order.js:1178 templates/js/translated/order.js:1183
+#: templates/js/translated/stock.js:2020
msgid "Stock Item"
msgstr "库存项"
@@ -917,16 +934,16 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
-#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: build/serializers.py:190 order/serializers.py:219 order/serializers.py:287
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685
#: stock/templates/stock/item_base.html:286
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
-#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
-#: templates/js/translated/stock.js:1931
+#: templates/js/translated/order.js:1190 templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251
+#: templates/js/translated/stock.js:1961
msgid "Location"
msgstr "地点"
@@ -936,11 +953,11 @@ msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:129
#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: order/serializers.py:240 stock/templates/stock/item_base.html:409
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
-#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
-#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+#: templates/js/translated/order.js:1096 templates/js/translated/stock.js:1226
+#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187
msgid "Status"
msgstr "状态"
@@ -969,7 +986,7 @@ msgstr ""
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:233
#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1060,7 +1077,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:140
#: report/templates/report/inventree_build_order_base.html:126
#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
-#: templates/js/translated/order.js:1087
+#: templates/js/translated/order.js:1109
msgid "Target Date"
msgstr "预计日期"
@@ -1096,7 +1113,7 @@ msgstr "已完成"
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:280
-#: templates/js/translated/order.js:1029
+#: templates/js/translated/order.js:1051
msgid "Sales Order"
msgstr "销售订单"
@@ -1171,7 +1188,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:974
msgid "Destination"
msgstr ""
@@ -1185,7 +1202,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:304
-#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/stock.js:1240 templates/js/translated/stock.js:2194
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:233
msgid "Batch"
@@ -1286,7 +1303,6 @@ msgid "Completed Build Outputs"
msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
-#: order/templates/order/po_navbar.html:35
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:52
@@ -1300,7 +1316,7 @@ msgstr "附件"
msgid "Build Notes"
msgstr "生产备注"
-#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:453
#: company/templates/company/detail.html:188
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
@@ -1312,45 +1328,11 @@ msgstr "生产备注"
msgid "Edit Notes"
msgstr "编辑备注"
-#: build/templates/build/detail.html:448
-#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
-#: templates/attachment_button.html:4
-msgid "Add Attachment"
-msgstr "添加附件"
-
-#: build/templates/build/detail.html:467
-#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:142
-#: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
-msgid "Edit Attachment"
-msgstr "编辑附件"
-
-#: build/templates/build/detail.html:474
-#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:149
-#: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
-#: templates/js/translated/order.js:1243
-msgid "Confirm Delete Operation"
-msgstr "确认删除操作"
-
-#: build/templates/build/detail.html:475
-#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:150
-#: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
-msgid "Delete Attachment"
-msgstr "删除附件"
-
-#: build/templates/build/detail.html:513
+#: build/templates/build/detail.html:477
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:514
+#: build/templates/build/detail.html:478
msgid "All untracked stock items have been allocated"
msgstr ""
@@ -1466,7 +1448,7 @@ msgstr ""
msgid "Error reading file (data could be corrupted)"
msgstr ""
-#: common/forms.py:34 templates/js/translated/attachment.js:54
+#: common/forms.py:34
msgid "File"
msgstr ""
@@ -2168,13 +2150,11 @@ msgstr "价格"
msgid "Unit price at specified quantity"
msgstr ""
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
-#: order/templates/order/po_navbar.html:19
-#: order/templates/order/po_navbar.html:22
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
-#: part/views.py:854
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
+#: part/views.py:858
msgid "Upload File"
msgstr "上传文件"
@@ -2182,7 +2162,7 @@ msgstr "上传文件"
#: 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:213
-#: part/views.py:855
+#: part/views.py:859
msgid "Match Fields"
msgstr "匹配字段"
@@ -2200,13 +2180,13 @@ msgstr "已导入商品"
#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:40
+#: order/templates/order/order_wizard/po_upload.html:47
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:43
+#: part/templates/part/import_wizard/part_upload.html:45
msgid "Previous Step"
msgstr ""
@@ -2252,7 +2232,7 @@ msgid "Contact phone number"
msgstr "联系电话"
#: company/models.py:125 company/templates/company/company_base.html:102
-#: templates/InvenTree/settings/user.html:46
+#: templates/InvenTree/settings/user.html:47
msgid "Email"
msgstr "电子邮件"
@@ -2268,14 +2248,6 @@ msgstr "联系人"
msgid "Point of contact"
msgstr ""
-#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:163 part/models.py:797
-#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:537
-#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
-msgid "Link"
-msgstr "链接"
-
#: company/models.py:131
msgid "Link to external company information"
msgstr "链接到外部公司信息"
@@ -2343,7 +2315,7 @@ msgstr "选择制造商"
#: company/models.py:342 company/templates/company/manufacturer_part.html:97
#: company/templates/company/supplier_part.html:112
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:874
#: templates/js/translated/part.js:240
msgid "MPN"
msgstr "MPN"
@@ -2372,9 +2344,9 @@ msgid "Parameter name"
msgstr "参数名称"
#: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:90
+#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:1867 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878
msgid "Value"
msgstr "数值"
@@ -2413,7 +2385,7 @@ msgid "Select supplier"
msgstr "选择供应商"
#: company/models.py:551 company/templates/company/supplier_part.html:98
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:861
#: templates/js/translated/part.js:221
msgid "SKU"
msgstr "SKU"
@@ -2450,7 +2422,7 @@ msgstr "最低收费(例如库存费)"
#: company/models.py:582 company/templates/company/supplier_part.html:119
#: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1366
msgid "Packaging"
msgstr "打包"
@@ -2515,8 +2487,8 @@ msgstr "电话"
#: company/templates/company/company_base.html:126 order/models.py:567
#: order/templates/order/sales_order_base.html:114 stock/models.py:525
#: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
-#: templates/js/translated/stock.js:1972
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1073
+#: templates/js/translated/stock.js:2002
msgid "Customer"
msgstr "客户"
@@ -2721,7 +2693,7 @@ msgid "Delete parameters"
msgstr "删除参数"
#: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:974
+#: part/templates/part/detail.html:976
msgid "Add Parameter"
msgstr "添加参数"
@@ -2752,7 +2724,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:492
#: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1323
msgid "Supplier Part"
msgstr "供应商商品"
@@ -2778,7 +2750,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
-#: templates/js/translated/stock.js:324
+#: templates/js/translated/stock.js:354
msgid "New Stock Item"
msgstr ""
@@ -2799,7 +2771,7 @@ msgstr "价格信息"
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1713
+#: part/templates/part/prices.html:271 part/views.py:1717
msgid "Add Price Break"
msgstr ""
@@ -2807,11 +2779,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1775
+#: company/templates/company/supplier_part.html:224 part/views.py:1779
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1761
+#: company/templates/company/supplier_part.html:238 part/views.py:1765
msgid "Edit Price Break"
msgstr ""
@@ -2831,8 +2803,8 @@ msgstr ""
#: templates/InvenTree/settings/sidebar.html:40
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
-#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
-#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:509
+#: templates/js/translated/stock.js:1162 templates/navbar.html:26
msgid "Stock"
msgstr "库存"
@@ -2855,7 +2827,7 @@ msgstr "定价"
#: stock/templates/stock/location.html:132
#: stock/templates/stock/location.html:144
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1901
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr "库存项"
@@ -2885,24 +2857,24 @@ msgstr "公司"
msgid "New Company"
msgstr "新建公司信息"
-#: company/views.py:129 part/views.py:580
+#: company/views.py:129 part/views.py:584
msgid "Download Image"
msgstr "下载图片"
-#: company/views.py:158 part/views.py:612
+#: company/views.py:158 part/views.py:616
msgid "Image size exceeds maximum allowable size for download"
msgstr "图像大小超过下载允许的最大尺寸"
-#: company/views.py:165 part/views.py:619
+#: company/views.py:165 part/views.py:623
#, python-brace-format
msgid "Invalid response: {code}"
msgstr "无效响应: {code}"
-#: company/views.py:174 part/views.py:628
+#: company/views.py:174 part/views.py:632
msgid "Supplied URL is not a valid image file"
msgstr "提供的 URL 不是一个有效的图片文件"
-#: label/api.py:57 report/api.py:201
+#: label/api.py:57 report/api.py:203
msgid "No valid objects provided to template"
msgstr "没有为模板提供有效对象"
@@ -2959,7 +2931,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
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
+#: report/models.py:322 report/models.py:459 report/models.py:497
msgid "Filters"
msgstr "筛选器"
@@ -3089,7 +3061,7 @@ msgstr ""
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1092
+#: order/models.py:582 templates/js/translated/order.js:1114
msgid "Shipment Date"
msgstr ""
@@ -3114,7 +3086,7 @@ msgid "Line item notes"
msgstr ""
#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1144
+#: templates/js/translated/order.js:1166
msgid "Order"
msgstr ""
@@ -3122,8 +3094,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:325
-#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1300
+#: templates/js/translated/stock.js:1983
msgid "Purchase Order"
msgstr ""
@@ -3133,7 +3105,7 @@ msgstr "供应商商品"
#: order/models.py:797 order/templates/order/order_base.html:147
#: order/templates/order/sales_order_base.html:154
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:954
msgid "Received"
msgstr ""
@@ -3143,7 +3115,7 @@ msgstr ""
#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1324
+#: templates/js/translated/stock.js:1354
msgid "Purchase Price"
msgstr "采购价格"
@@ -3204,47 +3176,47 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:167
+#: order/serializers.py:169
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:202
+#: order/serializers.py:204
msgid "Line Item"
msgstr ""
-#: order/serializers.py:208
+#: order/serializers.py:210
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:286
+#: order/serializers.py:220 order/serializers.py:288
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:242
+#: order/serializers.py:244
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:243
+#: order/serializers.py:245
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:260
+#: order/serializers.py:262
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:298
+#: order/serializers.py:300
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:315
+#: order/serializers.py:317
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:328
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:568
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3390,19 +3362,23 @@ msgstr "行"
msgid "Select Supplier Part"
msgstr "选择供应商商品"
-#: order/templates/order/order_wizard/po_upload.html:11
+#: order/templates/order/order_wizard/po_upload.html:8
+msgid "Return to Orders"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:17
msgid "Upload File for Purchase Order"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:18
+#: order/templates/order/order_wizard/po_upload.html:25
#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:21
+#: part/templates/part/import_wizard/part_upload.html:23
#, python-format
msgid "Step %(step)s of %(count)s"
msgstr "步骤 %(step)s / %(count)s"
-#: order/templates/order/order_wizard/po_upload.html:48
+#: order/templates/order/order_wizard/po_upload.html:55
msgid "Order is already processed. Files cannot be uploaded."
msgstr ""
@@ -3445,7 +3421,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:695 templates/js/translated/order.js:1097
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1119
msgid "Items"
msgstr ""
@@ -3463,31 +3439,6 @@ msgstr ""
msgid "Select a purchase order for %(name)s"
msgstr ""
-#: order/templates/order/po_attachments.html:12
-#: order/templates/order/po_navbar.html:32
-msgid "Purchase Order Attachments"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:15
-#: part/templates/part/part_sidebar.html:8
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr "详情"
-
-#: order/templates/order/po_navbar.html:26
-msgid "Received Stock Items"
-msgstr ""
-
-#: order/templates/order/po_navbar.html:29
-#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
#: order/templates/order/po_sidebar.html:5
#: order/templates/order/so_sidebar.html:5
#: report/templates/report/inventree_po_report.html:85
@@ -3504,9 +3455,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:216
+#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:191
+#: order/templates/order/sales_order_detail.html:157
msgid "Add Line Item"
msgstr ""
@@ -3518,6 +3469,10 @@ msgstr ""
msgid "Receive Items"
msgstr ""
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
#: order/templates/order/purchase_order_detail.html:76
#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
@@ -3546,7 +3501,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:121
-#: templates/js/translated/order.js:1064
+#: templates/js/translated/order.js:1086
msgid "Customer Reference"
msgstr ""
@@ -3700,19 +3655,19 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:731
+#: part/api.py:758
msgid "Must be greater than zero"
msgstr "必须大于0"
-#: part/api.py:735
+#: part/api.py:762
msgid "Must be a valid quantity"
msgstr "必须是有效的数量"
-#: part/api.py:750
+#: part/api.py:777
msgid "Specify location for initial part stock"
msgstr "指定初始初始商品仓储地点"
-#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
+#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
msgid "This field is required"
msgstr "此字段为必填"
@@ -3926,7 +3881,7 @@ msgstr "商品类别"
#: part/models.py:784 part/templates/part/detail.html:45
#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
-#: templates/js/translated/stock.js:1104
+#: templates/js/translated/stock.js:1134
msgid "IPN"
msgstr ""
@@ -4047,7 +4002,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1467
-#: templates/js/translated/stock.js:828
+#: templates/js/translated/stock.js:858
msgid "Test Name"
msgstr ""
@@ -4552,7 +4507,7 @@ msgstr ""
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:365 part/views.py:751
+#: part/templates/part/detail.html:365 part/views.py:755
msgid "Validate BOM"
msgstr ""
@@ -4604,44 +4559,48 @@ msgstr ""
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:770
+#: part/templates/part/detail.html:772
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:867
+#: part/templates/part/detail.html:869
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:924
+#: part/templates/part/detail.html:926
msgid "Edit Part Notes"
msgstr "编辑商品注释"
-#: part/templates/part/detail.html:1076
+#: part/templates/part/detail.html:1039
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1088
+#: part/templates/part/detail.html:1051
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1100
+#: part/templates/part/detail.html:1063
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1189
+#: part/templates/part/detail.html:1152
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:51
+#: part/templates/part/import_wizard/part_upload.html:53
msgid "Unsuffitient privileges."
msgstr ""
-#: part/templates/part/import_wizard/part_upload.html:14
+#: part/templates/part/import_wizard/part_upload.html:8
+msgid "Return to Parts"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:16
msgid "Import Parts from File"
msgstr "从文件导入商品"
@@ -4751,7 +4710,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1546
#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
@@ -4846,6 +4805,11 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr "此商品无价格信息可用。"
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1949
+msgid "Details"
+msgstr "详情"
+
#: part/templates/part/part_sidebar.html:13
msgid "Variants"
msgstr ""
@@ -4949,7 +4913,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1784
+#: part/templates/part/prices.html:215 part/views.py:1788
msgid "Add Internal Price Break"
msgstr ""
@@ -5005,110 +4969,115 @@ msgstr "为 {n} 个商品设置类别"
msgid "Match References"
msgstr ""
-#: part/views.py:498
+#: part/views.py:502
msgid "None"
msgstr ""
-#: part/views.py:557
+#: part/views.py:561
msgid "Part QR Code"
msgstr "商品二维码"
-#: part/views.py:659
+#: part/views.py:663
msgid "Select Part Image"
msgstr "选择商品图像"
-#: part/views.py:685
+#: part/views.py:689
msgid "Updated part image"
msgstr "更新商品图像"
-#: part/views.py:688
+#: part/views.py:692
msgid "Part image not found"
msgstr "未找到商品图像"
-#: part/views.py:700
+#: part/views.py:704
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:730
+#: part/views.py:734
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:772
+#: part/views.py:776
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:783
+#: part/views.py:787
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:856
+#: part/views.py:860
msgid "Match Parts"
msgstr "匹配商品"
-#: part/views.py:1192
+#: part/views.py:1196
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1244
+#: part/views.py:1248
msgid "Confirm Part Deletion"
msgstr "确认删除商品"
-#: part/views.py:1251
+#: part/views.py:1255
msgid "Part was deleted"
msgstr "商品已删除"
-#: part/views.py:1260
+#: part/views.py:1264
msgid "Part Pricing"
msgstr "商品价格"
-#: part/views.py:1409
+#: part/views.py:1413
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1419
+#: part/views.py:1423
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1426
+#: part/views.py:1430
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1485 templates/js/translated/part.js:310
+#: part/views.py:1489 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr "编辑商品类别"
-#: part/views.py:1523
+#: part/views.py:1527
msgid "Delete Part Category"
msgstr "删除商品类别"
-#: part/views.py:1529
+#: part/views.py:1533
msgid "Part category was deleted"
msgstr "商品类别已删除"
-#: part/views.py:1538
+#: part/views.py:1542
msgid "Create Category Parameter Template"
msgstr "创建类别参数模板"
-#: part/views.py:1639
+#: part/views.py:1643
msgid "Edit Category Parameter Template"
msgstr "编辑类别参数模板"
-#: part/views.py:1695
+#: part/views.py:1699
msgid "Delete Category Parameter Template"
msgstr "删除类别参数模板"
-#: part/views.py:1717
+#: part/views.py:1721
msgid "Added new price break"
msgstr ""
-#: part/views.py:1793
+#: part/views.py:1797
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1801
+#: part/views.py:1805
msgid "Delete Internal Price Break"
msgstr ""
+#: report/api.py:234 report/api.py:278
+#, python-brace-format
+msgid "Template file '{filename}' is missing or does not exist"
+msgstr ""
+
#: report/models.py:182
msgid "Template name"
msgstr ""
@@ -5145,51 +5114,51 @@ msgstr ""
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:380
+#: report/models.py:382
msgid "Build Filters"
msgstr ""
-#: report/models.py:381
+#: report/models.py:383
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:423
+#: report/models.py:425
msgid "Part Filters"
msgstr "商品过滤器"
-#: report/models.py:424
+#: report/models.py:426
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:458
+#: report/models.py:460
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:496
+#: report/models.py:498
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:546
+#: report/models.py:548
msgid "Snippet"
msgstr ""
-#: report/models.py:547
+#: report/models.py:549
msgid "Report snippet file"
msgstr ""
-#: report/models.py:551
+#: report/models.py:553
msgid "Snippet file description"
msgstr ""
-#: report/models.py:586
+#: report/models.py:588
msgid "Asset"
msgstr ""
-#: report/models.py:587
+#: report/models.py:589
msgid "Report asset file"
msgstr ""
-#: report/models.py:590
+#: report/models.py:592
msgid "Asset file description"
msgstr ""
@@ -5201,49 +5170,59 @@ msgstr ""
msgid "Stock Item Test Report"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:75
+#: report/templates/report/inventree_test_report_base.html:79
#: stock/models.py:530 stock/templates/stock/item_base.html:238
#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
#: templates/js/translated/build.js:1013
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+#: templates/js/translated/order.js:1288 templates/js/translated/order.js:1377
msgid "Serial Number"
msgstr "序列号"
-#: report/templates/report/inventree_test_report_base.html:83
+#: report/templates/report/inventree_test_report_base.html:88
msgid "Test Results"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:93
#: stock/models.py:1855
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:89
+#: report/templates/report/inventree_test_report_base.html:94
#: stock/models.py:1861
msgid "Result"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917
msgid "Date"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:103
+#: report/templates/report/inventree_test_report_base.html:108
msgid "Pass"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:105
+#: report/templates/report/inventree_test_report_base.html:110
msgid "Fail"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:123
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:137
+#: templates/js/translated/stock.js:2177
+msgid "Serial"
+msgstr ""
+
#: stock/api.py:422
msgid "Quantity is required"
msgstr ""
#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
#: stock/templates/stock/item_base.html:382
-#: templates/js/translated/stock.js:1246
+#: templates/js/translated/stock.js:1276
msgid "Expiry Date"
msgstr ""
@@ -5505,7 +5484,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:319 stock/serializers.py:687
+#: stock/serializers.py:319 stock/serializers.py:686
msgid "Destination stock location"
msgstr ""
@@ -5517,15 +5496,15 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:557
+#: stock/serializers.py:556
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:585
+#: stock/serializers.py:584
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:595
+#: stock/serializers.py:594
msgid "A list of stock items must be provided"
msgstr ""
@@ -5570,15 +5549,15 @@ msgstr ""
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
+#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:363
+#: stock/templates/stock/item.html:324
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:377
+#: stock/templates/stock/item.html:338
msgid "Delete Test Result"
msgstr ""
@@ -5752,7 +5731,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:1259
+#: templates/js/translated/stock.js:1289
msgid "Last Updated"
msgstr ""
@@ -5768,7 +5747,7 @@ msgstr ""
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:504
+#: stock/templates/stock/item_base.html:505
msgid "Edit Stock Status"
msgstr ""
@@ -5885,10 +5864,6 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:12
-msgid "Installed Items"
-msgstr ""
-
#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
@@ -5967,7 +5942,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:618
+#: stock/views.py:760 templates/js/translated/stock.js:648
msgid "Confirm stock adjustment"
msgstr ""
@@ -5975,7 +5950,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:288
+#: stock/views.py:793 templates/js/translated/stock.js:318
msgid "Edit Stock Item"
msgstr ""
@@ -5987,7 +5962,7 @@ msgstr "新建仓储地点"
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:268
+#: stock/views.py:1186 templates/js/translated/stock.js:298
msgid "Duplicate Stock Item"
msgstr ""
@@ -6164,11 +6139,11 @@ msgstr "导入商品"
msgid "Part Parameter Templates"
msgstr "商品参数模板"
-#: templates/InvenTree/settings/po.html:9
+#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr "采购订单设置"
-#: templates/InvenTree/settings/report.html:10
+#: templates/InvenTree/settings/report.html:8
#: templates/InvenTree/settings/user_reports.html:9
msgid "Report Settings"
msgstr "报表设置"
@@ -6221,7 +6196,7 @@ msgid "User Settings"
msgstr "用户设置"
#: templates/InvenTree/settings/sidebar.html:8
-#: templates/InvenTree/settings/user.html:11
+#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr "帐户设置"
@@ -6273,140 +6248,136 @@ msgid "Stock Settings"
msgstr "库存设置"
#: templates/InvenTree/settings/user.html:18
-#: templates/js/translated/helpers.js:26
-msgid "Edit"
-msgstr "编辑"
-
-#: templates/InvenTree/settings/user.html:20
#: 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:31
+#: templates/InvenTree/settings/user.html:22
+#: templates/js/translated/helpers.js:26
+msgid "Edit"
+msgstr "编辑"
+
+#: templates/InvenTree/settings/user.html:32
msgid "Username"
msgstr "用户名"
-#: templates/InvenTree/settings/user.html:35
+#: templates/InvenTree/settings/user.html:36
msgid "First Name"
msgstr "名字"
-#: templates/InvenTree/settings/user.html:39
+#: templates/InvenTree/settings/user.html:40
msgid "Last Name"
msgstr "姓氏"
-#: templates/InvenTree/settings/user.html:54
+#: templates/InvenTree/settings/user.html:55
msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:74
+#: templates/InvenTree/settings/user.html:75
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:76
+#: templates/InvenTree/settings/user.html:77
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:78
+#: templates/InvenTree/settings/user.html:79
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:84
+#: templates/InvenTree/settings/user.html:85
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:85
+#: templates/InvenTree/settings/user.html:86
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:86
-#: templates/InvenTree/settings/user.html:153
+#: templates/InvenTree/settings/user.html:87
+#: templates/InvenTree/settings/user.html:154
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
+#: templates/InvenTree/settings/user.html:94
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:94
+#: templates/InvenTree/settings/user.html:95
msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:101
+#: templates/InvenTree/settings/user.html:102
msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:111
+#: templates/InvenTree/settings/user.html:112
msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:113
+#: templates/InvenTree/settings/user.html:114
msgid "Add Email"
msgstr ""
-#: templates/InvenTree/settings/user.html:123
+#: templates/InvenTree/settings/user.html:124
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:128
+#: templates/InvenTree/settings/user.html:129
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:162
+#: templates/InvenTree/settings/user.html:163
msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:167
+#: templates/InvenTree/settings/user.html:168
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:177
-msgid "Language Settings"
-msgstr "语言设置"
+#: templates/InvenTree/settings/user.html:179
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:185
+msgid "Log out active sessions (except this one)"
+msgstr ""
#: templates/InvenTree/settings/user.html:186
-msgid "Select language"
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:195
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:196
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:200
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:201
+msgid "Device"
msgstr ""
#: templates/InvenTree/settings/user.html:202
-#, python-format
-msgid "%(lang_translated)s%% translated"
-msgstr "%(lang_translated)s%% 已翻译"
-
-#: templates/InvenTree/settings/user.html:204
-msgid "No translations available"
-msgstr "无可用翻译"
+msgid "Last Activity"
+msgstr ""
#: templates/InvenTree/settings/user.html:211
-msgid "Set Language"
-msgstr "设置语言"
+#, python-format
+msgid "%(time)s ago (this session)"
+msgstr ""
#: templates/InvenTree/settings/user.html:213
-msgid "Some languages are not complete"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:215
-msgid "Show only sufficent"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "and hidden."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:217
-msgid "Show them too"
+#, python-format
+msgid "%(time)s ago"
msgstr ""
#: templates/InvenTree/settings/user.html:224
-msgid "Help the translation efforts!"
-msgstr "帮助翻译工作!"
-
-#: templates/InvenTree/settings/user.html:225
-#, 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:233
msgid "Do you really want to remove the selected email address?"
msgstr ""
@@ -6422,6 +6393,52 @@ msgstr ""
msgid "Set Theme"
msgstr "设置主题"
+#: templates/InvenTree/settings/user_display.html:54
+msgid "Language Settings"
+msgstr "语言设置"
+
+#: templates/InvenTree/settings/user_display.html:63
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:79
+#, python-format
+msgid "%(lang_translated)s%% translated"
+msgstr "%(lang_translated)s%% 已翻译"
+
+#: templates/InvenTree/settings/user_display.html:81
+msgid "No translations available"
+msgstr "无可用翻译"
+
+#: templates/InvenTree/settings/user_display.html:88
+msgid "Set Language"
+msgstr "设置语言"
+
+#: templates/InvenTree/settings/user_display.html:91
+msgid "Some languages are not complete"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:93
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:95
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:101
+msgid "Help the translation efforts!"
+msgstr "帮助翻译工作!"
+
+#: templates/InvenTree/settings/user_display.html:102
+#, 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_homepage.html:9
msgid "Home Page Settings"
msgstr "主页设置"
@@ -6619,6 +6636,14 @@ msgstr ""
msgid "View in administration panel"
msgstr ""
+#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54
+msgid "Add Link"
+msgstr ""
+
+#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36
+msgid "Add Attachment"
+msgstr "添加附件"
+
#: templates/base.html:96
msgid "Server Restart Required"
msgstr ""
@@ -6702,154 +6727,87 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/report.js:47 templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/report.js:55 templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/report.js:70 templates/js/translated/report.js:90
-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:594
-msgid "Select Stock Items"
-msgstr "选择库存项"
-
-#: templates/js/report.js:99 templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr "在打印报表之前必须选择库存项目"
-
-#: templates/js/report.js:116 templates/js/report.js:169
-#: templates/js/report.js:223 templates/js/report.js:277
-#: templates/js/report.js:331 templates/js/translated/report.js:136
-#: 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 "没有找到报表"
-
-#: templates/js/report.js:117 templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/report.js:152 templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/report.js:153 templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-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/build.js:1333
-#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr "选择商品"
-
-#: templates/js/report.js:206 templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr "打印报表前必须选择商品"
-
-#: templates/js/report.js:224 templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/report.js:259 templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/report.js:260 templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/report.js:278 templates/js/report.js:332
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/report.js:313 templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/report.js:314 templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:191
+#: templates/js/translated/api.js:192
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:192
+#: templates/js/translated/api.js:193
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:215
+#: templates/js/translated/api.js:216
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:216
+#: templates/js/translated/api.js:217
msgid "Error code"
msgstr ""
-#: templates/js/translated/attachment.js:27
+#: templates/js/translated/attachment.js:76
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:95
+#: templates/js/translated/attachment.js:98
+msgid "Edit Attachment"
+msgstr "编辑附件"
+
+#: templates/js/translated/attachment.js:108
+msgid "Confirm Delete"
+msgstr ""
+
+#: templates/js/translated/attachment.js:109
+msgid "Delete Attachment"
+msgstr "删除附件"
+
+#: templates/js/translated/attachment.js:165
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:108
+#: templates/js/translated/attachment.js:178
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:115
+#: templates/js/translated/attachment.js:185
msgid "Delete attachment"
msgstr ""
@@ -6910,7 +6868,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:600
msgid "Remove stock item"
msgstr ""
@@ -7005,7 +6963,7 @@ msgid "View BOM"
msgstr ""
#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1298
+#: templates/js/translated/order.js:1320
msgid "Actions"
msgstr ""
@@ -7097,7 +7055,7 @@ msgstr ""
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1194
msgid "Location not specified"
msgstr "未指定仓储地点"
@@ -7106,12 +7064,12 @@ msgid "No active build outputs found"
msgstr ""
#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1305
+#: templates/js/translated/order.js:1327
msgid "Edit stock allocation"
msgstr ""
#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1306
+#: templates/js/translated/order.js:1328
msgid "Delete stock allocation"
msgstr ""
@@ -7132,11 +7090,11 @@ msgid "Quantity Per"
msgstr ""
#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1557
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1611
msgid "Build stock"
msgstr ""
@@ -7144,7 +7102,7 @@ msgstr ""
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1604
msgid "Allocate stock"
msgstr ""
@@ -7152,6 +7110,11 @@ msgstr ""
msgid "Specify stock allocation quantity"
msgstr ""
+#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
+#: templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr "选择商品"
+
#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
@@ -7181,8 +7144,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
-#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
-#: templates/js/translated/stock.js:1841
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1094
+#: templates/js/translated/stock.js:1871
msgid "Select"
msgstr ""
@@ -7190,7 +7153,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2090
msgid "No user information"
msgstr "没有用户信息"
@@ -7332,45 +7295,45 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
-#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
+#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365
+#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:351
+#: templates/js/translated/forms.js:352
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:366
+#: templates/js/translated/forms.js:367
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:380
+#: templates/js/translated/forms.js:381
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:394
+#: templates/js/translated/forms.js:395
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:679
+#: templates/js/translated/forms.js:680
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/js/translated/forms.js:1072 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1457
+#: templates/js/translated/forms.js:1463
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1661
+#: templates/js/translated/forms.js:1667
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1878
+#: templates/js/translated/forms.js:1884
msgid "Clear input"
msgstr ""
@@ -7382,6 +7345,11 @@ msgstr ""
msgid "NO"
msgstr ""
+#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
+#: templates/js/translated/stock.js:624
+msgid "Select Stock Items"
+msgstr "选择库存项"
+
#: templates/js/translated/label.js:30
msgid "Stock item(s) must be selected before printing labels"
msgstr "打印标签前必须选择库存项目"
@@ -7534,11 +7502,11 @@ msgstr ""
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:423
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:424
msgid "Select file format"
msgstr ""
@@ -7554,7 +7522,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1673
msgid "Stock Status"
msgstr ""
@@ -7582,100 +7550,104 @@ msgstr ""
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1063
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
+#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
+#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:801
+#: templates/js/translated/order.js:823
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
+#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/order.js:904 templates/js/translated/order.js:1492
#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr "单价"
-#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+#: templates/js/translated/order.js:919 templates/js/translated/order.js:1508
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
+#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:976
+#: templates/js/translated/order.js:998
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:980
+#: templates/js/translated/order.js:1002
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1017
+#: templates/js/translated/order.js:1039
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1055
+#: templates/js/translated/order.js:1077
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1133
+#: templates/js/translated/order.js:1155
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1226
+#: templates/js/translated/order.js:1248
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1244
+#: templates/js/translated/order.js:1265
+msgid "Confirm Delete Operation"
+msgstr "确认删除操作"
+
+#: templates/js/translated/order.js:1266
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1308
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1535
+#: templates/js/translated/order.js:1557
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1579
+#: templates/js/translated/order.js:1601
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1585
+#: templates/js/translated/order.js:1607
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
+#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1596
+#: templates/js/translated/order.js:1618
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1719
+#: templates/js/translated/order.js:1741
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1779
+#: templates/js/translated/order.js:1801
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1793
+#: templates/js/translated/order.js:1815
msgid "No matching line items"
msgstr ""
@@ -7825,7 +7797,7 @@ msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
-#: templates/js/translated/stock.js:1802
+#: templates/js/translated/stock.js:1832
msgid "Display as list"
msgstr ""
@@ -7833,7 +7805,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1851
msgid "Display as tree"
msgstr ""
@@ -7841,7 +7813,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1895
msgid "Path"
msgstr ""
@@ -7849,11 +7821,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:816
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:817
msgid "Delete test result"
msgstr ""
@@ -7892,268 +7864,342 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr "在打印报表之前必须选择库存项目"
+
+#: templates/js/translated/report.js:136 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 "没有找到报表"
+
+#: templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr "打印报表前必须选择Build(s)"
+
+#: templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr "打印报表前必须选择商品"
+
+#: templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
#: templates/js/translated/stock.js:70
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:90
+#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167
+msgid "Next available serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169
+msgid "Latest serial number"
+msgstr ""
+
+#: templates/js/translated/stock.js:104
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:126
+#: templates/js/translated/stock.js:140
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:189
+#: templates/js/translated/stock.js:180
+msgid "This part cannot be serialized"
+msgstr ""
+
+#: templates/js/translated/stock.js:219
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:195
+#: templates/js/translated/stock.js:225
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:338
+#: templates/js/translated/stock.js:368
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:351
+#: templates/js/translated/stock.js:381
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:420
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:401
+#: templates/js/translated/stock.js:431
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:402
+#: templates/js/translated/stock.js:432
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:444
+#: templates/js/translated/stock.js:474
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:445
+#: templates/js/translated/stock.js:475
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:451
+#: templates/js/translated/stock.js:481
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:452
+#: templates/js/translated/stock.js:482
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:486
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:487
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:491
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:462 users/models.py:200
+#: templates/js/translated/stock.js:492 users/models.py:200
msgid "Add"
msgstr "添加"
-#: templates/js/translated/stock.js:466 templates/stock_table.html:56
+#: templates/js/translated/stock.js:496 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:585
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:595
+#: templates/js/translated/stock.js:625
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:753
+#: templates/js/translated/stock.js:783
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:755
+#: templates/js/translated/stock.js:785
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:760
+#: templates/js/translated/stock.js:790
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:812
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:808
+#: templates/js/translated/stock.js:838
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:895
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:1002
msgid "In production"
msgstr "正在生产"
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:1006
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:1010
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:984
+#: templates/js/translated/stock.js:1014
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:990
+#: templates/js/translated/stock.js:1020
msgid "No stock location set"
msgstr "未设置仓储地点"
-#: templates/js/translated/stock.js:1148
+#: templates/js/translated/stock.js:1178
msgid "Stock item is in production"
msgstr "库存品正在生产"
-#: templates/js/translated/stock.js:1153
+#: templates/js/translated/stock.js:1183
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1156
+#: templates/js/translated/stock.js:1186
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1160
+#: templates/js/translated/stock.js:1190
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1162
+#: templates/js/translated/stock.js:1192
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1166
+#: templates/js/translated/stock.js:1196
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1170
+#: templates/js/translated/stock.js:1200
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1177
+#: templates/js/translated/stock.js:1207
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1179
+#: templates/js/translated/stock.js:1209
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1181
+#: templates/js/translated/stock.js:1211
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1185
+#: templates/js/translated/stock.js:1215
#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1235
+#: templates/js/translated/stock.js:1265
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1308
+#: templates/js/translated/stock.js:1338
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1346
+#: templates/js/translated/stock.js:1376
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
+#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1455
+#: templates/js/translated/stock.js:1485
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1482
+#: templates/js/translated/stock.js:1512
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1484
+#: templates/js/translated/stock.js:1514
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1658
+#: templates/js/translated/stock.js:1688
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1672
+#: templates/js/translated/stock.js:1702
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1673
+#: templates/js/translated/stock.js:1703
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1897
+#: templates/js/translated/stock.js:1927
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1944
+#: templates/js/translated/stock.js:1974
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1963
+#: templates/js/translated/stock.js:1993
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1982
+#: templates/js/translated/stock.js:2012
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2000
+#: templates/js/translated/stock.js:2030
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2023
+#: templates/js/translated/stock.js:2053
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2061
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2072
+#: templates/js/translated/stock.js:2102
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2073
+#: templates/js/translated/stock.js:2103
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2124
+#: templates/js/translated/stock.js:2154
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
-#: templates/js/translated/stock.js:2175
+#: templates/js/translated/stock.js:2205
msgid "Uninstall Stock Item"
msgstr ""