diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po index 60d2d7b8a4..50aecd55eb 100644 --- a/InvenTree/locale/de/LC_MESSAGES/django.po +++ b/InvenTree/locale/de/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-12-08 23:43+0000\n" -"PO-Revision-Date: 2021-12-08 23:46\n" +"POT-Creation-Date: 2021-12-21 02:57+0000\n" +"PO-Revision-Date: 2021-12-21 03:01\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -34,50 +34,50 @@ msgstr "Keine passende Aktion gefunden" msgid "Enter date" msgstr "Datum eingeben" -#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93 +#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 build/forms.py:93 #: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: part/forms.py:108 templates/account/email_confirm.html:20 +#: part/forms.py:78 templates/account/email_confirm.html:20 #: templates/js/translated/forms.js:595 msgid "Confirm" msgstr "Bestätigen" -#: InvenTree/forms.py:136 +#: InvenTree/forms.py:142 msgid "Confirm delete" msgstr "Löschung bestätigen" -#: InvenTree/forms.py:137 +#: InvenTree/forms.py:143 msgid "Confirm item deletion" msgstr "Löschung von Position bestätigen" -#: InvenTree/forms.py:168 +#: InvenTree/forms.py:174 msgid "Enter password" msgstr "Passwort eingeben" -#: InvenTree/forms.py:169 +#: InvenTree/forms.py:175 msgid "Enter new password" msgstr "Neues Passwort eingeben" -#: InvenTree/forms.py:176 +#: InvenTree/forms.py:182 msgid "Confirm password" msgstr "Passwort wiederholen" -#: InvenTree/forms.py:177 +#: InvenTree/forms.py:183 msgid "Confirm new password" msgstr "Neues Passwort bestätigen" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:215 msgid "Select Category" msgstr "Kategorie auswählen" -#: InvenTree/forms.py:230 +#: InvenTree/forms.py:236 msgid "Email (again)" msgstr "E-Mail (nochmal)" -#: InvenTree/forms.py:234 +#: InvenTree/forms.py:240 msgid "Email address confirmation" msgstr "Bestätigung der E-Mail Adresse" -#: InvenTree/forms.py:254 +#: InvenTree/forms.py:260 msgid "You must type the same email each time." msgstr "E-Mail Adressen müssen übereinstimmen." @@ -123,7 +123,7 @@ msgstr "Fehlende Datei" msgid "Missing external link" msgstr "Fehlender externer Link" -#: InvenTree/models.py:132 stock/models.py:1852 +#: InvenTree/models.py:132 stock/models.py:1967 #: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "Anhang" @@ -136,12 +136,12 @@ msgstr "Datei zum Anhängen auswählen" #: company/models.py:564 order/models.py:124 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:1258 +#: templates/js/translated/company.js:826 templates/js/translated/part.js:1260 msgid "Link" msgstr "Link" #: InvenTree/models.py:140 build/models.py:330 part/models.py:798 -#: stock/models.py:524 +#: stock/models.py:527 msgid "Link to external URL" msgstr "Link zu einer externen URL" @@ -153,10 +153,10 @@ msgstr "Kommentar" msgid "File comment" msgstr "Datei-Kommentar" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213 -#: common/models.py:1214 part/models.py:2205 part/models.py:2225 +#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1219 +#: common/models.py:1220 part/models.py:2205 part/models.py:2225 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2341 +#: templates/js/translated/stock.js:2534 msgid "User" msgstr "Benutzer" @@ -202,8 +202,8 @@ msgstr "Ungültige Auswahl" #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:268 #: templates/js/translated/company.js:638 templates/js/translated/part.js:506 -#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565 -#: templates/js/translated/stock.js:2134 +#: templates/js/translated/part.js:643 templates/js/translated/part.js:1567 +#: templates/js/translated/stock.js:2327 msgid "Name" msgstr "Name" @@ -212,23 +212,23 @@ msgstr "Name" #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70 +#: order/models.py:122 part/models.py:764 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:89 +#: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428 +#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540 #: templates/js/translated/build.js:1627 templates/js/translated/company.js:345 #: templates/js/translated/company.js:548 #: templates/js/translated/company.js:837 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 -#: templates/js/translated/part.js:565 templates/js/translated/part.js:933 -#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188 -#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653 -#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146 -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/part.js:565 templates/js/translated/part.js:935 +#: templates/js/translated/part.js:1020 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1586 templates/js/translated/part.js:1655 +#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339 +#: templates/js/translated/stock.js:2384 msgid "Description" msgstr "Beschreibung" @@ -248,83 +248,83 @@ msgstr "Muss eine gültige Nummer sein" msgid "Filename" msgstr "Dateiname" -#: InvenTree/settings.py:689 +#: InvenTree/settings.py:698 msgid "German" msgstr "Deutsch" -#: InvenTree/settings.py:690 +#: InvenTree/settings.py:699 msgid "Greek" msgstr "Griechisch" -#: InvenTree/settings.py:691 +#: InvenTree/settings.py:700 msgid "English" msgstr "Englisch" -#: InvenTree/settings.py:692 +#: InvenTree/settings.py:701 msgid "Spanish" msgstr "Spanisch" -#: InvenTree/settings.py:693 +#: InvenTree/settings.py:702 msgid "Spanish (Mexican)" msgstr "Spanisch (Mexikanisch)" -#: InvenTree/settings.py:694 +#: InvenTree/settings.py:703 msgid "French" msgstr "Französisch" -#: InvenTree/settings.py:695 +#: InvenTree/settings.py:704 msgid "Hebrew" msgstr "Hebräisch" -#: InvenTree/settings.py:696 +#: InvenTree/settings.py:705 msgid "Italian" msgstr "Italienisch" -#: InvenTree/settings.py:697 +#: InvenTree/settings.py:706 msgid "Japanese" msgstr "Japanisch" -#: InvenTree/settings.py:698 +#: InvenTree/settings.py:707 msgid "Korean" msgstr "Koreanisch" -#: InvenTree/settings.py:699 +#: InvenTree/settings.py:708 msgid "Dutch" msgstr "Niederländisch" -#: InvenTree/settings.py:700 +#: InvenTree/settings.py:709 msgid "Norwegian" msgstr "Norwegisch" -#: InvenTree/settings.py:701 +#: InvenTree/settings.py:710 msgid "Polish" msgstr "Polnisch" -#: InvenTree/settings.py:702 +#: InvenTree/settings.py:711 msgid "Portugese" msgstr "Portugiesisch" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:712 msgid "Russian" msgstr "Russisch" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:713 msgid "Swedish" msgstr "Schwedisch" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:714 msgid "Thai" msgstr "Thailändisch" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:715 msgid "Turkish" msgstr "Türkisch" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:716 msgid "Vietnamese" msgstr "Vietnamesisch" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:717 msgid "Chinese" msgstr "Chinesisch" @@ -341,7 +341,7 @@ msgid "InvenTree system health checks failed" msgstr "InvenTree Status-Überprüfung fehlgeschlagen" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 msgid "Pending" msgstr "Ausstehend" @@ -349,14 +349,14 @@ msgstr "Ausstehend" msgid "Placed" msgstr "Platziert" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:319 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "Fertig" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:313 +#: InvenTree/status_codes.py:318 msgid "Cancelled" msgstr "Storniert" @@ -370,7 +370,7 @@ msgstr "Verloren" msgid "Returned" msgstr "Zurückgegeben" -#: InvenTree/status_codes.py:143 order/models.py:939 +#: InvenTree/status_codes.py:143 order/models.py:941 #: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255 msgid "Shipped" msgstr "Versendet" @@ -395,83 +395,87 @@ msgstr "Zerstört" msgid "Rejected" msgstr "Zurückgewiesen" -#: InvenTree/status_codes.py:269 +#: InvenTree/status_codes.py:272 msgid "Legacy stock tracking entry" msgstr "Alter Bestand-Verfolgungs-Eintrag" -#: InvenTree/status_codes.py:271 +#: InvenTree/status_codes.py:274 msgid "Stock item created" msgstr "Lagerartikel erstellt" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Edited stock item" msgstr "Lagerartikel bearbeitet" -#: InvenTree/status_codes.py:274 +#: InvenTree/status_codes.py:277 msgid "Assigned serial number" msgstr "Seriennummer hinzugefügt" -#: InvenTree/status_codes.py:276 +#: InvenTree/status_codes.py:279 msgid "Stock counted" msgstr "Bestand gezählt" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Stock manually added" msgstr "Bestand manuell hinzugefügt" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Stock manually removed" msgstr "Bestand manuell entfernt" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Location changed" msgstr "Standort geändert" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Installed into assembly" msgstr "In Baugruppe installiert" -#: InvenTree/status_codes.py:283 +#: InvenTree/status_codes.py:286 msgid "Removed from assembly" msgstr "Aus Baugruppe entfernt" -#: InvenTree/status_codes.py:285 +#: InvenTree/status_codes.py:288 msgid "Installed component item" msgstr "Komponente installiert" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Removed component item" msgstr "Komponente entfernt" -#: InvenTree/status_codes.py:288 +#: InvenTree/status_codes.py:291 msgid "Split from parent item" msgstr "Vom übergeordneten Element geteilt" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Split child item" msgstr "Unterobjekt geteilt" -#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064 +msgid "Merged stock items" +msgstr "" + +#: InvenTree/status_codes.py:296 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "Zum Kunden geschickt" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:297 msgid "Returned from customer" msgstr "Rücksendung vom Kunden" -#: InvenTree/status_codes.py:294 +#: InvenTree/status_codes.py:299 msgid "Build order output created" msgstr "Endprodukt erstellt" -#: InvenTree/status_codes.py:295 +#: InvenTree/status_codes.py:300 msgid "Build order output completed" msgstr "Endprodukt fertiggestellt" -#: InvenTree/status_codes.py:297 +#: InvenTree/status_codes.py:302 msgid "Received against purchase order" msgstr "Gegen Bestellung empfangen" -#: InvenTree/status_codes.py:312 +#: InvenTree/status_codes.py:317 msgid "Production" msgstr "in Arbeit" @@ -575,16 +579,16 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1283 -#: build/templates/build/build_base.html:132 -#: build/templates/build/detail.html:35 common/models.py:1253 +#: build/forms.py:36 build/models.py:1286 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1259 #: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:794 order/models.py:1205 order/serializers.py:810 +#: order/models.py:796 order/models.py:1207 order/serializers.py:810 #: order/templates/order/order_wizard/match_parts.html:30 -#: 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 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:193 +#: part/forms.py:209 part/forms.py:225 part/models.py:2576 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:967 part/templates/part/detail.html:1053 +#: part/templates/part/detail.html:961 part/templates/part/detail.html:1047 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -592,10 +596,10 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:174 -#: stock/templates/stock/item_base.html:255 -#: stock/templates/stock/item_base.html:263 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443 +#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:261 +#: stock/templates/stock/item_base.html:269 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555 #: templates/js/translated/build.js:240 templates/js/translated/build.js:440 #: templates/js/translated/build.js:634 templates/js/translated/build.js:644 #: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367 @@ -604,10 +608,10 @@ msgstr "" #: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 #: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 #: templates/js/translated/order.js:2150 templates/js/translated/part.js:843 -#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919 -#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382 -#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326 -#: templates/js/translated/stock.js:2428 +#: templates/js/translated/part.js:1798 templates/js/translated/part.js:1921 +#: templates/js/translated/part.js:1999 templates/js/translated/stock.js:383 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750 +#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621 msgid "Quantity" msgstr "Anzahl" @@ -616,8 +620,8 @@ msgid "Enter quantity for build output" msgstr "Menge der Endprodukte angeben" #: build/forms.py:41 order/serializers.py:814 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:229 -#: templates/js/translated/stock.js:383 +#: stock/serializers.py:314 templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:384 msgid "Serial Numbers" msgstr "Seriennummer" @@ -661,7 +665,7 @@ msgstr "Bauauftrag" #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:145 +#: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" msgstr "Bauaufträge" @@ -671,11 +675,11 @@ msgid "Build Order Reference" msgstr "Bauauftragsreferenz" #: build/models.py:199 order/models.py:210 order/models.py:536 -#: order/models.py:801 part/models.py:2585 +#: order/models.py:803 part/models.py:2585 #: part/templates/part/bom_upload/match_parts.html:30 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124 +#: templates/js/translated/bom.js:547 templates/js/translated/build.js:1124 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "Referenz" @@ -695,7 +699,7 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist" #: build/models.py:225 build/templates/build/build_base.html:77 #: build/templates/build/detail.html:30 company/models.py:705 -#: order/models.py:854 order/models.py:928 +#: order/models.py:856 order/models.py:930 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357 #: part/models.py:2151 part/models.py:2167 part/models.py:2186 #: part/models.py:2203 part/models.py:2305 part/models.py:2427 @@ -706,20 +710,21 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist" #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 -#: templates/InvenTree/search.html:86 +#: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214 -#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326 +#: templates/js/translated/bom.js:505 templates/js/translated/build.js:625 #: templates/js/translated/build.js:993 templates/js/translated/build.js:1364 #: templates/js/translated/build.js:1632 templates/js/translated/company.js:489 #: templates/js/translated/company.js:746 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 -#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918 -#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166 -#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747 -#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416 +#: templates/js/translated/order.js:2128 templates/js/translated/part.js:920 +#: templates/js/translated/part.js:1001 templates/js/translated/part.js:1168 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719 +#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:2609 msgid "Part" msgstr "Teil" @@ -776,7 +781,7 @@ msgstr "Bauauftrags-Status" msgid "Build status code" msgstr "Bau-Statuscode" -#: build/models.py:285 stock/models.py:528 +#: build/models.py:285 stock/models.py:531 msgid "Batch Code" msgstr "Losnummer" @@ -830,27 +835,27 @@ msgstr "Nutzer der für diesen Bauauftrag zuständig ist" #: build/models.py:329 build/templates/build/detail.html:102 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:354 stock/models.py:522 -#: stock/templates/stock/item_base.html:374 +#: part/templates/part/part_base.html:354 stock/models.py:525 +#: stock/templates/stock/item_base.html:372 msgid "External Link" msgstr "Externer Link" #: 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:144 order/models.py:803 order/models.py:1049 +#: order/models.py:144 order/models.py:805 order/models.py:1051 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:925 -#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50 +#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594 -#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332 -#: stock/serializers.py:624 stock/serializers.py:711 +#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597 +#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332 +#: stock/serializers.py:638 stock/serializers.py:736 stock/serializers.py:868 #: stock/templates/stock/stock_sidebar.html:21 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711 #: templates/js/translated/company.js:842 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795 msgid "Notes" msgstr "Notizen" @@ -883,7 +888,7 @@ msgstr "Zugewiesene Menge ({q}) darf nicht verfügbare Menge ({a}) übersteigen" msgid "Stock item is over-allocated" msgstr "BestandObjekt ist zu oft zugewiesen" -#: build/models.py:1133 order/models.py:1165 +#: build/models.py:1133 order/models.py:1167 msgid "Allocation quantity must be greater than zero" msgstr "Reserviermenge muss größer null sein" @@ -891,51 +896,52 @@ msgstr "Reserviermenge muss größer null sein" msgid "Quantity must be 1 for serialized stock" msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein" -#: build/models.py:1193 +#: build/models.py:1196 msgid "Selected stock item not found in BOM" msgstr "Ausgewähltes Bestands-Objekt nicht in Stückliste für Teil '{p}' gefunden" -#: build/models.py:1253 stock/templates/stock/item_base.html:346 -#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605 +#: build/models.py:1256 stock/templates/stock/item_base.html:344 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1605 #: templates/navbar.html:35 msgid "Build" msgstr "Bauauftrag" -#: build/models.py:1254 +#: build/models.py:1257 msgid "Build to allocate parts" msgstr "Bauauftrag starten um Teile zuzuweisen" -#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690 -#: order/serializers.py:708 stock/serializers.py:562 +#: build/models.py:1273 build/serializers.py:334 order/serializers.py:690 +#: order/serializers.py:708 stock/serializers.py:576 stock/serializers.py:694 #: stock/templates/stock/item_base.html:8 -#: stock/templates/stock/item_base.html:16 -#: stock/templates/stock/item_base.html:368 +#: stock/templates/stock/item_base.html:22 +#: stock/templates/stock/item_base.html:366 #: templates/js/translated/build.js:413 templates/js/translated/build.js:418 #: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277 +#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:2470 msgid "Stock Item" msgstr "Lagerartikel" -#: build/models.py:1271 +#: build/models.py:1274 msgid "Source stock item" msgstr "Quell-Lagerartikel" -#: build/models.py:1284 +#: build/models.py:1287 msgid "Stock quantity to allocate to build" msgstr "Anzahl an Lagerartikel dem Bauauftrag zuweisen" -#: build/models.py:1292 +#: build/models.py:1295 msgid "Install into" msgstr "Installiere in" -#: build/models.py:1293 +#: build/models.py:1296 msgid "Destination stock item" msgstr "Ziel-Lagerartikel" -#: build/serializers.py:137 build/serializers.py:357 +#: build/serializers.py:137 build/serializers.py:363 msgid "Build Output" msgstr "Endprodukt" @@ -956,16 +962,16 @@ msgid "This build output is not fully allocated" msgstr "Dieses Endprodukt ist nicht vollständig zugewiesen" #: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813 -#: stock/templates/stock/item_base.html:314 +#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:729 +#: stock/serializers.py:970 stock/templates/stock/item_base.html:312 #: templates/js/translated/barcode.js:384 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425 #: templates/js/translated/build.js:1032 templates/js/translated/order.js:508 #: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 #: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497 -#: templates/js/translated/stock.js:2218 +#: templates/js/translated/part.js:177 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411 msgid "Location" msgstr "Lagerort" @@ -975,11 +981,11 @@ msgstr "Lagerort für fertige Endprodukte" #: build/serializers.py:197 build/templates/build/build_base.html:137 #: build/templates/build/detail.html:63 order/models.py:552 -#: order/serializers.py:247 stock/templates/stock/item_base.html:180 +#: order/serializers.py:247 stock/templates/stock/item_base.html:186 #: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661 #: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472 -#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651 +#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637 msgid "Status" msgstr "Status" @@ -1000,33 +1006,33 @@ msgstr "Endprodukt" msgid "Build output must point to the same build" msgstr "Endprodukt muss auf den gleichen Bauauftrag verweisen" -#: build/serializers.py:319 +#: build/serializers.py:325 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part muss auf dasselbe Teil verweisen wie der Bauauftrag" -#: build/serializers.py:334 stock/serializers.py:569 +#: build/serializers.py:340 stock/serializers.py:583 msgid "Item must be in stock" msgstr "Teil muss auf Lager sein" -#: build/serializers.py:348 order/models.py:277 order/serializers.py:240 -#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305 +#: build/serializers.py:354 order/models.py:277 order/serializers.py:240 +#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "Anzahl muss größer Null sein" -#: build/serializers.py:390 order/serializers.py:741 +#: build/serializers.py:396 order/serializers.py:741 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Verfügbare Menge ({q}) überschritten" -#: build/serializers.py:396 +#: build/serializers.py:402 msgid "Build output must be specified for allocation of tracked parts" msgstr "Für Zuweisung von verfolgten Teilen muss ein Endprodukt angegeben sein" -#: build/serializers.py:403 +#: build/serializers.py:409 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "Endprodukt kann bei Zuweisung nicht-verfolgter Teile nicht angegeben werden" -#: build/serializers.py:431 order/serializers.py:984 +#: build/serializers.py:437 order/serializers.py:984 msgid "Allocation items must be provided" msgstr "Zuweisungen müssen angegeben werden" @@ -1067,33 +1073,33 @@ msgstr "Bauauftrag löschen" msgid "Complete Build" msgstr "Bauauftrag fertigstellen" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:87 msgid "Build Description" msgstr "Baubeschreibung" -#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:96 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "Dieser Bauauftrag ist dem Auftrag %(link)s zugeordnet" -#: build/templates/build/build_base.html:98 +#: build/templates/build/build_base.html:103 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "Dieser Bauauftrag ist dem Bauauftrag %(link)s untergeordnet" -#: build/templates/build/build_base.html:105 +#: build/templates/build/build_base.html:110 msgid "Build Order is ready to mark as completed" msgstr "Bauauftrag ist bereit abgeschlossen zu werden" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "Bauauftrag kann nicht abgeschlossen werden, da es noch ausstehende Endprodukte gibt" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Required build quantity has not yet been completed" msgstr "Benötigte Teil-Anzahl wurde noch nicht fertiggestellt" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Stock has not been fully allocated to this Build Order" msgstr "Bestand wurde Bauauftrag noch nicht vollständig zugewiesen" @@ -1131,12 +1137,12 @@ msgid "Completed" msgstr "Fertig" #: build/templates/build/build_base.html:171 -#: build/templates/build/detail.html:95 order/models.py:925 -#: order/models.py:1021 order/templates/order/sales_order_base.html:9 +#: build/templates/build/detail.html:95 order/models.py:927 +#: order/models.py:1023 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:308 +#: stock/templates/stock/item_base.html:306 #: templates/js/translated/order.js:1218 msgid "Sales Order" msgstr "Auftrag" @@ -1211,7 +1217,7 @@ msgstr "Ausgangs-Lager" msgid "Stock can be taken from any available location." msgstr "Bestand kann jedem verfügbaren Lagerort entnommen werden." -#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "Ziel-Lager" @@ -1225,8 +1231,8 @@ msgid "Allocated Parts" msgstr "Zugewiesene Teile" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:332 -#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451 +#: stock/templates/stock/item_base.html:330 +#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1278,7 +1284,7 @@ msgstr "Benötigte Teile bestellen" #: build/templates/build/detail.html:185 #: company/templates/company/detail.html:38 #: company/templates/company/detail.html:85 order/views.py:463 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order Parts" msgstr "Teile bestellen" @@ -1347,7 +1353,7 @@ msgstr "Bauauftrags-Notizen" #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115 +#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115 #: stock/templates/stock/item.html:205 msgid "Edit Notes" msgstr "Anmerkungen bearbeiten" @@ -1489,7 +1495,7 @@ msgstr "{name.title()} Datei" msgid "Select {name} file to upload" msgstr "{name} Datei zum Hochladen auswählen" -#: common/models.py:340 common/models.py:998 common/models.py:1206 +#: common/models.py:340 common/models.py:1004 common/models.py:1212 msgid "Settings key (must be unique - case insensitive" msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)" @@ -1651,7 +1657,7 @@ msgstr "Vorlage" msgid "Parts are templates by default" msgstr "Teile sind standardmäßig Vorlagen" -#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956 +#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:1068 #: templates/js/translated/table_filters.js:168 #: templates/js/translated/table_filters.js:416 msgid "Assembly" @@ -1953,256 +1959,264 @@ msgid "Group to which new users are assigned on registration" msgstr "Gruppe der neue Benutzer bei der Registrierung zugewiesen werden" #: common/models.py:961 -msgid "Enable URL integration" +msgid "Enforce MFA" msgstr "" #: common/models.py:962 -msgid "Enable plugins to add URL routes" +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:967 +msgid "Enable URL integration" msgstr "" #: common/models.py:968 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:974 msgid "Enable navigation integration" msgstr "" -#: common/models.py:969 +#: common/models.py:975 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:975 +#: common/models.py:981 msgid "Enable global setting integration" msgstr "" -#: common/models.py:976 +#: common/models.py:982 msgid "Enable plugins to integrate into inventree global settings" msgstr "" -#: common/models.py:982 +#: common/models.py:988 msgid "Enable app integration" msgstr "" -#: common/models.py:983 +#: common/models.py:989 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1029 +#: common/models.py:1035 msgid "Show subscribed parts" msgstr "Abonnierte Teile anzeigen" -#: common/models.py:1030 +#: common/models.py:1036 msgid "Show subscribed parts on the homepage" msgstr "Zeige abonnierte Teile auf der Startseite" -#: common/models.py:1035 +#: common/models.py:1041 msgid "Show subscribed categories" msgstr "Abonnierte Kategorien anzeigen" -#: common/models.py:1036 +#: common/models.py:1042 msgid "Show subscribed part categories on the homepage" msgstr "Zeige abonnierte Teilkategorien auf der Startseite" -#: common/models.py:1041 +#: common/models.py:1047 msgid "Show latest parts" msgstr "Neueste Teile anzeigen" -#: common/models.py:1042 +#: common/models.py:1048 msgid "Show latest parts on the homepage" msgstr "Zeige neueste Teile auf der Startseite" -#: common/models.py:1047 +#: common/models.py:1053 msgid "Recent Part Count" msgstr "Aktuelle Teile-Stände" -#: common/models.py:1048 +#: common/models.py:1054 msgid "Number of recent parts to display on index page" msgstr "Anzahl der neusten Teile auf der Startseite" -#: common/models.py:1054 +#: common/models.py:1060 msgid "Show unvalidated BOMs" msgstr "Nicht validierte Stücklisten anzeigen" -#: common/models.py:1055 +#: common/models.py:1061 msgid "Show BOMs that await validation on the homepage" msgstr "Zeige Stücklisten, die noch nicht validiert sind, auf der Startseite" -#: common/models.py:1060 +#: common/models.py:1066 msgid "Show recent stock changes" msgstr "Neueste Bestandänderungen anzeigen" -#: common/models.py:1061 +#: common/models.py:1067 msgid "Show recently changed stock items on the homepage" msgstr "Zeige zuletzt geänderte Lagerbestände auf der Startseite" -#: common/models.py:1066 +#: common/models.py:1072 msgid "Recent Stock Count" msgstr "aktueller Bestand" -#: common/models.py:1067 +#: common/models.py:1073 msgid "Number of recent stock items to display on index page" msgstr "Anzahl des geänderten Bestands auf der Startseite" -#: common/models.py:1072 +#: common/models.py:1078 msgid "Show low stock" msgstr "Niedrigen Bestand anzeigen" -#: common/models.py:1073 +#: common/models.py:1079 msgid "Show low stock items on the homepage" msgstr "Zeige geringen Bestand auf der Startseite" -#: common/models.py:1078 +#: common/models.py:1084 msgid "Show depleted stock" msgstr "Lerren Bestand anzeigen" -#: common/models.py:1079 +#: common/models.py:1085 msgid "Show depleted stock items on the homepage" msgstr "Zeige aufgebrauchte Lagerartikel auf der Startseite" -#: common/models.py:1084 +#: common/models.py:1090 msgid "Show needed stock" msgstr "Benötigten Bestand anzeigen" -#: common/models.py:1085 +#: common/models.py:1091 msgid "Show stock items needed for builds on the homepage" msgstr "Zeige Bestand für Bauaufträge auf der Startseite" -#: common/models.py:1090 +#: common/models.py:1096 msgid "Show expired stock" msgstr "Abgelaufenen Bestand anzeigen" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Show expired stock items on the homepage" msgstr "Zeige abgelaufene Lagerbestände auf der Startseite" -#: common/models.py:1096 +#: common/models.py:1102 msgid "Show stale stock" msgstr "Alten Bestand anzeigen" -#: common/models.py:1097 +#: common/models.py:1103 msgid "Show stale stock items on the homepage" msgstr "Zeige überfällige Lagerartikel auf der Startseite" -#: common/models.py:1102 +#: common/models.py:1108 msgid "Show pending builds" msgstr "Ausstehende Bauaufträge anzeigen" -#: common/models.py:1103 +#: common/models.py:1109 msgid "Show pending builds on the homepage" msgstr "Zeige ausstehende Bauaufträge auf der Startseite" -#: common/models.py:1108 +#: common/models.py:1114 msgid "Show overdue builds" msgstr "Zeige überfällige Bauaufträge" -#: common/models.py:1109 +#: common/models.py:1115 msgid "Show overdue builds on the homepage" msgstr "Zeige überfällige Bauaufträge auf der Startseite" -#: common/models.py:1114 +#: common/models.py:1120 msgid "Show outstanding POs" msgstr "Ausstehende POs anzeigen" -#: common/models.py:1115 +#: common/models.py:1121 msgid "Show outstanding POs on the homepage" msgstr "Zeige ausstehende POs auf der Startseite" -#: common/models.py:1120 +#: common/models.py:1126 msgid "Show overdue POs" msgstr "Überfällige POs anzeigen" -#: common/models.py:1121 +#: common/models.py:1127 msgid "Show overdue POs on the homepage" msgstr "Zeige überfällige POs auf der Startseite" -#: common/models.py:1126 +#: common/models.py:1132 msgid "Show outstanding SOs" msgstr "Ausstehende SOs anzeigen" -#: common/models.py:1127 +#: common/models.py:1133 msgid "Show outstanding SOs on the homepage" msgstr "Zeige ausstehende SOs auf der Startseite" -#: common/models.py:1132 +#: common/models.py:1138 msgid "Show overdue SOs" msgstr "Überfällige SOs anzeigen" -#: common/models.py:1133 +#: common/models.py:1139 msgid "Show overdue SOs on the homepage" msgstr "Zeige überfällige SOs auf der Startseite" -#: common/models.py:1139 +#: common/models.py:1145 msgid "Inline label display" msgstr "Label inline anzeigen" -#: common/models.py:1140 +#: common/models.py:1146 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "PDF-Labels im Browser anzeigen, anstatt als Datei herunterzuladen" -#: common/models.py:1146 +#: common/models.py:1152 msgid "Inline report display" msgstr "Berichte inline anzeigen" -#: common/models.py:1147 +#: common/models.py:1153 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "PDF-Berichte im Browser anzeigen, anstatt als Datei herunterzuladen" -#: common/models.py:1153 +#: common/models.py:1159 msgid "Search Preview Results" msgstr "Anzahl Suchergebnisse" -#: common/models.py:1154 +#: common/models.py:1160 msgid "Number of results to show in search preview window" msgstr "Anzahl der Ergebnisse, die in der Vorschau angezeigt werden sollen" -#: common/models.py:1160 +#: common/models.py:1166 msgid "Search Show Stock" msgstr "Suche Bestand anzeigen" -#: common/models.py:1161 +#: common/models.py:1167 msgid "Display stock levels in search preview window" msgstr "Bestand in Suchvorschau anzeigen" -#: common/models.py:1167 +#: common/models.py:1173 msgid "Hide Inactive Parts" msgstr "Inaktive Teile ausblenden" -#: common/models.py:1168 +#: common/models.py:1174 msgid "Hide inactive parts in search preview window" msgstr "Inaktive Teile in der Suchvorschau ausblenden" -#: common/models.py:1174 +#: common/models.py:1180 msgid "Show Quantity in Forms" msgstr "zeige Bestand in Eingabemasken" -#: common/models.py:1175 +#: common/models.py:1181 msgid "Display available part quantity in some forms" msgstr "Zeige den verfügbaren Bestand in einigen Eingabemasken" -#: common/models.py:1181 +#: common/models.py:1187 msgid "Escape Key Closes Forms" msgstr "Esc-Taste schließt Formulare" -#: common/models.py:1182 +#: common/models.py:1188 msgid "Use the escape key to close modal forms" msgstr "Benutze die Esc-Taste, um Formulare zu schließen" -#: common/models.py:1188 +#: common/models.py:1194 msgid "Fixed Navbar" msgstr "Fixierter Navigationsleiste" -#: common/models.py:1189 +#: common/models.py:1195 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "Position der InvenTree Navigationsleiste am oberen Bildschirmrand fixieren" -#: common/models.py:1254 company/forms.py:43 +#: common/models.py:1260 company/forms.py:43 msgid "Price break quantity" msgstr "Preisstaffelungs Anzahl" -#: common/models.py:1261 company/serializers.py:264 +#: common/models.py:1267 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801 +#: templates/js/translated/part.js:852 templates/js/translated/part.js:1803 msgid "Price" msgstr "Preis" -#: common/models.py:1262 +#: common/models.py:1268 msgid "Unit price at specified quantity" msgstr "Stückpreis für die angegebene Anzahl" @@ -2290,7 +2304,7 @@ msgid "Contact phone number" msgstr "Kontakt-Telefon" #: company/models.py:125 company/templates/company/company_base.html:129 -#: templates/InvenTree/settings/user.html:47 +#: templates/InvenTree/settings/user.html:48 msgid "Email" msgstr "Email" @@ -2347,8 +2361,8 @@ msgstr "Währung" msgid "Default currency used for this company" msgstr "Standard-Währung für diese Firma" -#: company/models.py:320 company/models.py:535 stock/models.py:468 -#: stock/templates/stock/item_base.html:135 +#: company/models.py:320 company/models.py:535 stock/models.py:469 +#: stock/templates/stock/item_base.html:141 msgid "Base Part" msgstr "Basisteil" @@ -2359,7 +2373,7 @@ msgstr "Teil auswählen" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:381 +#: stock/templates/stock/item_base.html:379 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:514 #: templates/js/translated/company.js:797 templates/js/translated/part.js:232 @@ -2393,7 +2407,7 @@ msgstr "Teilbeschreibung des Herstellers" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:391 +#: stock/templates/stock/item_base.html:389 msgid "Manufacturer Part" msgstr "Herstellerteil" @@ -2403,8 +2417,8 @@ msgstr "Parametername" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:1845 templates/js/translated/company.js:644 -#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117 +#: stock/models.py:1960 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1296 msgid "Value" msgstr "Wert" @@ -2431,7 +2445,7 @@ msgstr "Verlinktes Herstellerteil muss dasselbe Basisteil referenzieren" #: company/templates/company/supplier_part.html:87 order/models.py:224 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219 -#: part/bom.py:247 stock/templates/stock/item_base.html:398 +#: part/bom.py:247 stock/templates/stock/item_base.html:396 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:771 templates/js/translated/order.js:823 #: templates/js/translated/part.js:213 templates/js/translated/part.js:800 @@ -2479,8 +2493,8 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "Mindestpreis" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:491 stock/templates/stock/item_base.html:339 -#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612 +#: stock/models.py:493 stock/templates/stock/item_base.html:337 +#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1791 msgid "Packaging" msgstr "Verpackungen" @@ -2506,7 +2520,7 @@ msgstr "Währungscode" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322 +#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322 msgid "Company" msgstr "Firma" @@ -2548,11 +2562,11 @@ msgid "Download image from URL" msgstr "Bild von URL herunterladen" #: company/templates/company/company_base.html:83 order/models.py:547 -#: order/templates/order/sales_order_base.html:115 stock/models.py:509 -#: stock/models.py:510 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:291 +#: order/templates/order/sales_order_base.html:115 stock/models.py:512 +#: stock/models.py:513 stock/serializers.py:624 +#: stock/templates/stock/item_base.html:289 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2259 +#: templates/js/translated/stock.js:2452 msgid "Customer" msgstr "Kunde" @@ -2571,7 +2585,7 @@ msgstr "Bild hochladen" #: company/templates/company/detail.html:15 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:124 +#: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "Zuliefererteile" @@ -2590,14 +2604,14 @@ msgstr "Neues Zuliefererteil" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:167 part/templates/part/detail.html:342 +#: part/templates/part/category.html:171 part/templates/part/detail.html:342 #: part/templates/part/detail.html:370 msgid "Options" msgstr "Optionen" #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order parts" msgstr "Teile bestellen" @@ -2611,7 +2625,7 @@ msgstr "Teile löschen" msgid "Delete Parts" msgstr "Teile löschen" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109 +#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "Herstellerteile" @@ -2633,8 +2647,8 @@ msgstr "Zulieferer-Bestand" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203 +#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" @@ -2655,8 +2669,8 @@ msgstr "Neue Bestellung" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223 +#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" @@ -2698,7 +2712,7 @@ msgid "Supplier List" msgstr "Zulieferer-Liste" #: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184 +#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 #: templates/navbar.html:46 msgid "Manufacturers" msgstr "Hersteller" @@ -2706,7 +2720,7 @@ msgstr "Hersteller" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:67 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76 msgid "Order part" msgstr "Teil bestellen" @@ -2728,7 +2742,7 @@ msgstr "Internes Teil" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 #: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:194 templates/navbar.html:45 +#: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "Zulieferer" @@ -2742,7 +2756,7 @@ msgstr "Zuliefererteil entfernen" #: company/templates/company/manufacturer_part.html:254 #: part/templates/part/detail.html:344 part/templates/part/detail.html:372 #: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31 -#: users/models.py:206 +#: users/models.py:209 msgid "Delete" msgstr "Löschen" @@ -2765,7 +2779,7 @@ msgid "Delete parameters" msgstr "Parameter löschen" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:867 +#: part/templates/part/detail.html:861 msgid "Add Parameter" msgstr "Parameter hinzufügen" @@ -2794,9 +2808,9 @@ msgid "Assigned Stock Items" msgstr "Zugewiesene Lagerartikel" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:476 -#: stock/templates/stock/item_base.html:403 -#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569 +#: company/templates/company/supplier_part.html:24 stock/models.py:477 +#: stock/templates/stock/item_base.html:401 +#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1748 msgid "Supplier Part" msgstr "Zuliefererteil" @@ -2816,13 +2830,13 @@ msgid "Supplier Part Stock" msgstr "Zulieferer-Bestand" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:20 stock/templates/stock/location.html:162 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:166 msgid "Create new stock item" msgstr "Neuen Lagerartikel hinzufügen" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163 -#: templates/js/translated/stock.js:359 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 +#: templates/js/translated/stock.js:360 msgid "New Stock Item" msgstr "Neuer Lagerartikel" @@ -2832,7 +2846,7 @@ msgid "Supplier Part Orders" msgstr "Zulieferer-Bestellungen" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:68 +#: part/templates/part/detail.html:72 msgid "Order Part" msgstr "Teil bestellen" @@ -2843,7 +2857,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:1717 +#: part/templates/part/prices.html:271 part/views.py:1713 msgid "Add Price Break" msgstr "Preisstaffel hinzufügen" @@ -2851,11 +2865,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:1779 +#: company/templates/company/supplier_part.html:224 part/views.py:1775 msgid "Delete Price Break" msgstr "Preisstaffel löschen" -#: company/templates/company/supplier_part.html:238 part/views.py:1765 +#: company/templates/company/supplier_part.html:238 part/views.py:1761 msgid "Edit Price Break" msgstr "Preisstaffel bearbeiten" @@ -2869,14 +2883,14 @@ msgstr "Preisstaffel löschen" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:156 +#: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434 -#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059 -#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:1401 templates/navbar.html:28 +#: templates/js/translated/bom.js:328 templates/js/translated/part.js:434 +#: templates/js/translated/part.js:569 templates/js/translated/part.js:1061 +#: templates/js/translated/part.js:1222 templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:1580 templates/navbar.html:28 msgid "Stock" msgstr "Bestand" @@ -2895,11 +2909,11 @@ msgid "Pricing" msgstr "Bepreisung" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:133 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:159 +#: stock/templates/stock/location.html:137 +#: stock/templates/stock/location.html:151 +#: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "Lagerartikel" @@ -2912,7 +2926,7 @@ msgstr "Neuer Zulieferer" msgid "New Manufacturer" msgstr "Neuer Hersteller" -#: company/views.py:61 templates/InvenTree/search.html:214 +#: company/views.py:61 templates/InvenTree/search.html:208 #: templates/navbar.html:57 msgid "Customers" msgstr "Kunden" @@ -3121,7 +3135,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:562 order/models.py:1026 +#: order/models.py:562 order/models.py:1028 #: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429 msgid "Shipment Date" msgstr "Versanddatum" @@ -3130,7 +3144,7 @@ msgstr "Versanddatum" msgid "shipped by" msgstr "Versand von" -#: order/models.py:634 +#: order/models.py:635 msgid "Order cannot be completed as no parts have been assigned" msgstr "" @@ -3138,172 +3152,172 @@ msgstr "" msgid "Only a pending order can be marked as complete" msgstr "" -#: order/models.py:643 +#: order/models.py:642 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:647 +#: order/models.py:645 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:795 +#: order/models.py:797 msgid "Item quantity" msgstr "Anzahl" -#: order/models.py:801 +#: order/models.py:803 msgid "Line item reference" msgstr "Position - Referenz" -#: order/models.py:803 +#: order/models.py:805 msgid "Line item notes" msgstr "Position - Notizen" -#: order/models.py:833 order/models.py:924 order/models.py:1020 +#: order/models.py:835 order/models.py:926 order/models.py:1022 #: templates/js/translated/order.js:1820 msgid "Order" msgstr "Bestellung" -#: order/models.py:834 order/templates/order/order_base.html:9 +#: order/models.py:836 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:353 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/order.js:801 templates/js/translated/part.js:775 -#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240 +#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433 msgid "Purchase Order" msgstr "Bestellung" -#: order/models.py:855 +#: order/models.py:857 msgid "Supplier part" msgstr "Zuliefererteil" -#: order/models.py:862 order/templates/order/order_base.html:163 +#: order/models.py:864 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:847 templates/js/translated/part.js:873 #: templates/js/translated/table_filters.js:317 msgid "Received" msgstr "Empfangen" -#: order/models.py:863 +#: order/models.py:865 msgid "Number of items received" msgstr "Empfangene Objekt-Anzahl" -#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:360 -#: templates/js/translated/stock.js:1600 +#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:358 +#: templates/js/translated/stock.js:1779 msgid "Purchase Price" msgstr "Preis" -#: order/models.py:871 +#: order/models.py:873 msgid "Unit purchase price" msgstr "Preis pro Einheit" -#: order/models.py:879 +#: order/models.py:881 msgid "Where does the Purchaser want this item to be stored?" msgstr "Wo möchte der Käufer diesen Artikel gelagert haben?" -#: order/models.py:934 part/templates/part/part_pricing.html:112 +#: order/models.py:936 part/templates/part/part_pricing.html:112 #: part/templates/part/prices.html:116 part/templates/part/prices.html:284 msgid "Sale Price" msgstr "Verkaufspreis" -#: order/models.py:935 +#: order/models.py:937 msgid "Unit sale price" msgstr "Stückverkaufspreis" -#: order/models.py:940 +#: order/models.py:942 msgid "Shipped quantity" msgstr "" -#: order/models.py:1027 +#: order/models.py:1029 msgid "Date of shipment" msgstr "" -#: order/models.py:1034 +#: order/models.py:1036 msgid "Checked By" msgstr "" -#: order/models.py:1035 +#: order/models.py:1037 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1043 +#: order/models.py:1045 msgid "Shipment number" msgstr "" -#: order/models.py:1050 +#: order/models.py:1052 msgid "Shipment notes" msgstr "" -#: order/models.py:1057 +#: order/models.py:1059 msgid "Tracking Number" msgstr "" -#: order/models.py:1058 +#: order/models.py:1060 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1068 +#: order/models.py:1070 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1071 +#: order/models.py:1073 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1147 order/models.py:1149 +#: order/models.py:1149 order/models.py:1151 msgid "Stock item has not been assigned" msgstr "Lagerartikel wurde nicht zugewiesen" -#: order/models.py:1153 +#: order/models.py:1155 msgid "Cannot allocate stock item to a line with a different part" msgstr "Kann Lagerartikel keiner Zeile mit einem anderen Teil hinzufügen" -#: order/models.py:1155 +#: order/models.py:1157 msgid "Cannot allocate stock to a line without a part" msgstr "Kann Lagerartikel keiner Zeile ohne Teil hinzufügen" -#: order/models.py:1158 +#: order/models.py:1160 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Die zugeordnete Anzahl darf nicht die verfügbare Anzahl überschreiten" -#: order/models.py:1162 +#: order/models.py:1164 msgid "StockItem is over-allocated" msgstr "Zu viele Lagerartikel zugewiesen" -#: order/models.py:1168 order/serializers.py:734 +#: order/models.py:1170 order/serializers.py:734 msgid "Quantity must be 1 for serialized stock item" msgstr "Anzahl für serialisierte Lagerartikel muss 1 sein" -#: order/models.py:1171 +#: order/models.py:1173 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1172 +#: order/models.py:1174 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1180 +#: order/models.py:1182 msgid "Line" msgstr "Position" -#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953 +#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953 #: templates/js/translated/model_renderers.js:251 msgid "Shipment" msgstr "" -#: order/models.py:1189 +#: order/models.py:1191 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1201 +#: order/models.py:1203 msgid "Item" msgstr "Position" -#: order/models.py:1202 +#: order/models.py:1204 msgid "Select stock item to allocate" msgstr "Lagerartikel für Zuordnung auswählen" -#: order/models.py:1205 +#: order/models.py:1207 msgid "Enter stock allocation quantity" msgstr "Anzahl für Bestandszuordnung eingeben" @@ -3530,7 +3544,7 @@ msgstr "Auswahl duplizieren" #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/build.js:245 templates/js/translated/build.js:1256 #: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:592 +#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761 msgid "Remove row" msgstr "Zeile entfernen" @@ -3722,7 +3736,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188 +#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1188 msgid "Actions" msgstr "Aktionen" @@ -3797,24 +3811,24 @@ 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:760 +#: part/api.py:777 msgid "Must be greater than zero" msgstr "Muss größer als 0 sein" -#: part/api.py:764 +#: part/api.py:781 msgid "Must be a valid quantity" msgstr "Muss eine gültige Nummer sein" -#: part/api.py:779 +#: part/api.py:796 msgid "Specify location for initial part stock" msgstr "Standort für anfänglichen Bestand angeben" -#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833 +#: part/api.py:827 part/api.py:831 part/api.py:846 part/api.py:850 msgid "This field is required" msgstr "Dieses Feld ist erforderlich" #: part/bom.py:125 part/models.py:81 part/models.py:816 -#: part/templates/part/category.html:104 part/templates/part/part_base.html:338 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "Standard-Lagerort" @@ -3822,99 +3836,43 @@ msgstr "Standard-Lagerort" msgid "Available Stock" msgstr "Verfügbarer Bestand" -#: part/forms.py:63 -msgid "File Format" -msgstr "Dateiformat" - -#: part/forms.py:63 -msgid "Select output file format" -msgstr "Ausgabe-Dateiformat auswählen" - -#: part/forms.py:65 -msgid "Cascading" -msgstr "Kaskadierend" - -#: part/forms.py:65 -msgid "Download cascading / multi-level BOM" -msgstr "Kaskadierende Stückliste herunterladen" - -#: part/forms.py:67 -msgid "Levels" -msgstr "Ebenen" - -#: part/forms.py:67 -msgid "Select maximum number of BOM levels to export (0 = all levels)" -msgstr "Maximale Anzahl an Ebenen für Stückliste-Export auswählen (0 = alle Ebenen)" - -#: part/forms.py:69 -msgid "Include Parameter Data" -msgstr "Parameter-Daten einschließen" - -#: part/forms.py:69 -msgid "Include part parameters data in exported BOM" -msgstr "Teil-Parameter in Stückliste-Export einschließen" - -#: part/forms.py:71 -msgid "Include Stock Data" -msgstr "Bestand einschließen" - -#: part/forms.py:71 -msgid "Include part stock data in exported BOM" -msgstr "Teil-Bestand in Stückliste-Export einschließen" - -#: part/forms.py:73 -msgid "Include Manufacturer Data" -msgstr "Herstellerdaten einschließen" - -#: part/forms.py:73 -msgid "Include part manufacturer data in exported BOM" -msgstr "Teil-Herstellerdaten in Stückliste-Export einschließen" - -#: part/forms.py:75 -msgid "Include Supplier Data" -msgstr "Zulieferer einschließen" - -#: part/forms.py:75 -msgid "Include part supplier data in exported BOM" -msgstr "Zulieferer-Daten in Stückliste-Export einschließen" - -#: part/forms.py:96 part/models.py:2427 +#: part/forms.py:66 part/models.py:2427 msgid "Parent Part" msgstr "Ausgangsteil" -#: part/forms.py:97 part/templates/part/bom_duplicate.html:7 +#: part/forms.py:67 part/templates/part/bom_duplicate.html:7 msgid "Select parent part to copy BOM from" msgstr "Teil für Stücklisten-Kopie auswählen" -#: part/forms.py:103 +#: part/forms.py:73 msgid "Clear existing BOM items" msgstr "Stücklisten-Position(en) löschen" -#: part/forms.py:109 +#: part/forms.py:79 msgid "Confirm BOM duplication" msgstr "Kopie von Stückliste bestätigen" -#: part/forms.py:127 +#: part/forms.py:97 msgid "validate" msgstr "kontrollieren" -#: part/forms.py:127 +#: part/forms.py:97 msgid "Confirm that the BOM is correct" msgstr "Bestätigen, dass die Stückliste korrekt ist" -#: part/forms.py:163 +#: part/forms.py:133 msgid "Select part category" msgstr "Teil-Kategorie wählen" -#: part/forms.py:200 +#: part/forms.py:170 msgid "Add parameter template to same level categories" msgstr "Parameter-Vorlage zu Kategorien dieser Ebene hinzufügen" -#: part/forms.py:204 +#: part/forms.py:174 msgid "Add parameter template to all categories" msgstr "Parameter-Vorlage zu allen Kategorien hinzufügen" -#: part/forms.py:224 +#: part/forms.py:194 msgid "Input quantity for price calculation" msgstr "Menge für die Preisberechnung" @@ -3930,24 +3888,24 @@ msgstr "Standard Stichwörter" msgid "Default keywords for parts in this category" msgstr "Standard-Stichworte für Teile dieser Kategorie" -#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11 +#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Teil-Kategorie" -#: part/models.py:96 part/templates/part/category.html:124 -#: templates/InvenTree/search.html:101 templates/stats.html:84 +#: part/models.py:96 part/templates/part/category.html:128 +#: templates/InvenTree/search.html:95 templates/stats.html:84 #: users/models.py:40 msgid "Part Categories" msgstr "Teil-Kategorien" #: part/models.py:358 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:13 part/templates/part/category.html:129 -#: part/templates/part/category.html:149 +#: part/templates/part/category.html:17 part/templates/part/category.html:133 +#: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1597 templates/navbar.html:21 +#: templates/js/translated/part.js:1599 templates/navbar.html:21 #: templates/stats.html:80 templates/stats.html:89 users/models.py:41 msgid "Parts" msgstr "Teile" @@ -4001,7 +3959,7 @@ msgstr "Variante von" msgid "Part description" msgstr "Beschreibung des Teils" -#: part/models.py:770 part/templates/part/category.html:82 +#: part/models.py:770 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "Schlüsselwörter" @@ -4014,7 +3972,7 @@ msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern" #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 #: templates/InvenTree/settings/settings.html:172 -#: templates/js/translated/part.js:1202 +#: templates/js/translated/part.js:1204 msgid "Category" msgstr "Kategorie" @@ -4023,8 +3981,8 @@ msgid "Part category" msgstr "Teile-Kategorie" #: part/models.py:784 part/templates/part/part_base.html:274 -#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155 -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/part.js:557 templates/js/translated/part.js:1157 +#: templates/js/translated/stock.js:1552 msgid "IPN" msgstr "IPN (Interne Produktnummer)" @@ -4145,8 +4103,8 @@ msgstr "Test-Vorlagen können nur für verfolgbare Teile angelegt werden" 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:1648 -#: templates/js/translated/stock.js:1097 +#: part/models.py:2310 templates/js/translated/part.js:1650 +#: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "Test-Name" @@ -4162,7 +4120,7 @@ msgstr "Test-Beschreibung" msgid "Enter description for this test" msgstr "Beschreibung für diesen Test eingeben" -#: part/models.py:2322 templates/js/translated/part.js:1657 +#: part/models.py:2322 templates/js/translated/part.js:1659 #: templates/js/translated/table_filters.js:281 msgid "Required" msgstr "Benötigt" @@ -4171,7 +4129,7 @@ msgstr "Benötigt" msgid "Is this test required to pass?" msgstr "Muss dieser Test erfolgreich sein?" -#: part/models.py:2328 templates/js/translated/part.js:1665 +#: part/models.py:2328 templates/js/translated/part.js:1667 msgid "Requires Value" msgstr "Erfordert Wert" @@ -4179,7 +4137,7 @@ msgstr "Erfordert Wert" msgid "Does this test require a value when adding a test result?" msgstr "Muss für diesen Test ein Wert für das Test-Ergebnis eingetragen werden?" -#: part/models.py:2334 templates/js/translated/part.js:1672 +#: part/models.py:2334 templates/js/translated/part.js:1674 msgid "Requires Attachment" msgstr "Anhang muss eingegeben werden" @@ -4241,8 +4199,8 @@ msgstr "Teil für die Nutzung in der Stückliste auswählen" msgid "BOM quantity for this BOM item" msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil" -#: part/models.py:2578 templates/js/translated/bom.js:454 -#: templates/js/translated/bom.js:528 +#: part/models.py:2578 templates/js/translated/bom.js:566 +#: templates/js/translated/bom.js:640 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "Optional" @@ -4275,8 +4233,8 @@ msgstr "Prüfsumme" msgid "BOM line checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:2594 templates/js/translated/bom.js:545 -#: templates/js/translated/bom.js:552 +#: part/models.py:2594 templates/js/translated/bom.js:657 +#: templates/js/translated/bom.js:664 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" @@ -4286,7 +4244,7 @@ msgstr "Geerbt" msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Diese Stücklisten-Position wird in die Stücklisten von Teil-Varianten vererbt" -#: part/models.py:2600 templates/js/translated/bom.js:537 +#: part/models.py:2600 templates/js/translated/bom.js:649 msgid "Allow Variants" msgstr "Varianten zulassen" @@ -4406,100 +4364,100 @@ msgstr "Bestätigen Sie das die Stückliste für
%(part)s korrekt i msgid "This will validate each line in the BOM." msgstr "Damit wird jede Zeile der Stückliste kontrolliert" -#: part/templates/part/category.html:24 part/templates/part/category.html:28 +#: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "Sie haben Benachrichtigungen für diese Kategorie abonniert" -#: part/templates/part/category.html:32 +#: part/templates/part/category.html:36 msgid "Subscribe to notifications for this category" msgstr "Benachrichtigungen für diese Kategorie abonnieren" -#: part/templates/part/category.html:38 +#: part/templates/part/category.html:42 msgid "Category Actions" msgstr "Kategorieaktionen" -#: part/templates/part/category.html:43 +#: part/templates/part/category.html:47 msgid "Edit category" msgstr "Kategorie bearbeiten" -#: part/templates/part/category.html:44 +#: part/templates/part/category.html:48 msgid "Edit Category" msgstr "Kategorie bearbeiten" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:52 msgid "Delete category" msgstr "Kategorie löschen" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:53 msgid "Delete Category" msgstr "Kategorie löschen" -#: part/templates/part/category.html:57 +#: part/templates/part/category.html:61 msgid "Create new part category" msgstr "Teil-Kategorie anlegen" -#: part/templates/part/category.html:58 +#: part/templates/part/category.html:62 msgid "New Category" msgstr "Neue Kategorie" -#: part/templates/part/category.html:76 part/templates/part/category.html:89 +#: part/templates/part/category.html:80 part/templates/part/category.html:93 msgid "Category Path" msgstr "Pfad zur Kategorie" -#: part/templates/part/category.html:90 +#: part/templates/part/category.html:94 msgid "Top level part category" msgstr "Oberste Teil-Kategorie" -#: part/templates/part/category.html:110 part/templates/part/category.html:201 +#: part/templates/part/category.html:114 part/templates/part/category.html:205 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Unter-Kategorien" -#: part/templates/part/category.html:115 +#: part/templates/part/category.html:119 msgid "Parts (Including subcategories)" msgstr "Teile (inklusive Unter-Kategorien)" -#: part/templates/part/category.html:152 +#: part/templates/part/category.html:156 msgid "Export Part Data" msgstr "Teile-Daten exportieren" -#: part/templates/part/category.html:153 part/templates/part/category.html:177 +#: part/templates/part/category.html:157 part/templates/part/category.html:181 msgid "Export" msgstr "Exportieren" -#: part/templates/part/category.html:156 +#: part/templates/part/category.html:160 msgid "Create new part" msgstr "Neues Teil anlegen" -#: part/templates/part/category.html:157 templates/js/translated/bom.js:40 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 msgid "New Part" msgstr "Neues Teil" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set category" msgstr "Teil-Kategorie auswählen" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set Category" msgstr "Teil-Kategorie auswählen" -#: part/templates/part/category.html:175 +#: part/templates/part/category.html:179 msgid "Print Labels" msgstr "Label drucken" -#: part/templates/part/category.html:177 +#: part/templates/part/category.html:181 msgid "Export Data" msgstr "Exportieren" -#: part/templates/part/category.html:191 +#: part/templates/part/category.html:195 msgid "Part Parameters" msgstr "Teilparameter" -#: part/templates/part/category.html:268 +#: part/templates/part/category.html:288 msgid "Create Part Category" msgstr "Teil-Kategorie hinzufügen" -#: part/templates/part/category.html:295 +#: part/templates/part/category.html:315 msgid "Create Part" msgstr "Teil hinzufügen" @@ -4566,24 +4524,24 @@ msgstr "Teil evtl. Duplikat dieser Teile" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "%(full_name)s - %(desc)s (%(match_per)s%% übereinstimmend)" -#: part/templates/part/detail.html:17 +#: part/templates/part/detail.html:21 msgid "Part Stock" msgstr "Teilbestand" -#: part/templates/part/detail.html:29 +#: part/templates/part/detail.html:33 #, python-format msgid "Showing stock for all variants of %(full_name)s" msgstr "Bestand aller Varianten von %(full_name)s" -#: part/templates/part/detail.html:39 +#: part/templates/part/detail.html:43 msgid "Part Test Templates" msgstr "Teil Test-Vorlagen" -#: part/templates/part/detail.html:44 +#: part/templates/part/detail.html:48 msgid "Add Test Template" msgstr "Test Vorlage hinzufügen" -#: part/templates/part/detail.html:101 +#: part/templates/part/detail.html:105 msgid "Sales Order Allocations" msgstr "Verkaufsauftragszuweisungen" @@ -4619,7 +4577,7 @@ msgstr "Stückliste" msgid "Export actions" msgstr "Export-Aktionen" -#: part/templates/part/detail.html:242 +#: part/templates/part/detail.html:242 templates/js/translated/bom.js:70 msgid "Export BOM" msgstr "Stückliste exportieren" @@ -4683,38 +4641,38 @@ msgstr "Alle ausgewählte Stücklistenpositionen werden gelöscht" msgid "Create BOM Item" msgstr "Stücklisten-Position anlegen" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:651 msgid "Related Part" msgstr "verknüpftes Teil" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:659 msgid "Add Related Part" msgstr "verknüpftes Teil hinzufügen" -#: part/templates/part/detail.html:760 +#: part/templates/part/detail.html:754 msgid "Add Test Result Template" msgstr "Testergebnis-Vorlage hinzufügen" -#: part/templates/part/detail.html:817 +#: part/templates/part/detail.html:811 msgid "Edit Part Notes" msgstr "Teilenotizen bearbeiten" -#: part/templates/part/detail.html:930 +#: part/templates/part/detail.html:924 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "Stückpreis Einkauf - %(currency)s" -#: part/templates/part/detail.html:942 +#: part/templates/part/detail.html:936 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "Stückpreis Differenz - %(currency)s" -#: part/templates/part/detail.html:954 +#: part/templates/part/detail.html:948 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "Stückpreis Zulieferer - %(currency)s" -#: part/templates/part/detail.html:1043 +#: part/templates/part/detail.html:1037 #, python-format msgid "Unit Price - %(currency)s" msgstr "Stückpreis - %(currency)s" @@ -4745,20 +4703,20 @@ msgid "Subscribe to notifications for this part" msgstr "Benachrichtigungen für dieses Teil abonnieren" #: part/templates/part/part_base.html:43 -#: stock/templates/stock/item_base.html:28 -#: stock/templates/stock/location.html:29 +#: stock/templates/stock/item_base.html:34 +#: stock/templates/stock/location.html:33 msgid "Barcode actions" msgstr "Barcode Aktionen" #: part/templates/part/part_base.html:45 -#: stock/templates/stock/item_base.html:32 -#: stock/templates/stock/location.html:31 templates/qr_button.html:1 +#: stock/templates/stock/item_base.html:38 +#: stock/templates/stock/location.html:35 templates/qr_button.html:1 msgid "Show QR Code" msgstr "QR-Code anzeigen" #: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:48 -#: stock/templates/stock/location.html:32 +#: stock/templates/stock/item_base.html:54 +#: stock/templates/stock/location.html:36 msgid "Print Label" msgstr "Label drucken" @@ -4767,8 +4725,8 @@ msgid "Show pricing information" msgstr "Kosteninformationen ansehen" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:103 -#: stock/templates/stock/location.html:40 +#: stock/templates/stock/item_base.html:109 +#: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "Bestands-Aktionen" @@ -4848,7 +4806,7 @@ msgstr "Dieses Teil ist eine Variante von %(link)s" msgid "In Stock" msgstr "Auf Lager" -#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1235 +#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1237 msgid "On Order" msgstr "Bestellt" @@ -4864,12 +4822,12 @@ msgstr "Benötigt für Aufträge" msgid "Allocated to Orders" msgstr "Zu Bauaufträgen zugeordnet" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:566 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678 msgid "Can Build" msgstr "Herstellbar" -#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1066 -#: templates/js/translated/part.js:1239 +#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1068 +#: templates/js/translated/part.js:1241 msgid "Building" msgstr "Im Bau" @@ -4882,7 +4840,7 @@ msgid "Latest Serial Number" msgstr "letzte Seriennummer" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:159 +#: stock/templates/stock/item_base.html:165 msgid "Search for serial number" msgstr "Nach Seriennummer suchen" @@ -4921,7 +4879,7 @@ msgid "Total Cost" msgstr "Gesamtkosten" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:520 +#: templates/js/translated/bom.js:632 msgid "No supplier pricing available" msgstr "Keine Zulieferer-Preise verfügbar" @@ -5038,7 +4996,7 @@ msgstr "Verkaufspreis anzeigen" msgid "Calculation parameters" msgstr "Berechnungsparameter" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626 msgid "Supplier Cost" msgstr "Zuliefererkosten" @@ -5060,7 +5018,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:1788 +#: part/templates/part/prices.html:215 part/views.py:1784 msgid "Add Internal Price Break" msgstr "Interne Preisspanne hinzufügen" @@ -5080,9 +5038,9 @@ msgstr "Keine Verkaufsgeschichte für diesen Teil verfügbar." msgid "Set category for the following parts" msgstr "Kategorie für Teile setzen" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476 -#: templates/js/translated/part.js:436 templates/js/translated/part.js:1056 -#: templates/js/translated/part.js:1243 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588 +#: templates/js/translated/part.js:436 templates/js/translated/part.js:1058 +#: templates/js/translated/part.js:1245 msgid "No Stock" msgstr "Kein Bestand" @@ -5156,67 +5114,67 @@ msgstr "überprüfte Stückliste" msgid "Match Parts" msgstr "Teile zuordnen" -#: part/views.py:1196 +#: part/views.py:1195 msgid "Export Bill of Materials" msgstr "Stückliste exportieren" -#: part/views.py:1248 +#: part/views.py:1244 msgid "Confirm Part Deletion" msgstr "Löschen des Teils bestätigen" -#: part/views.py:1255 +#: part/views.py:1251 msgid "Part was deleted" msgstr "Teil wurde gelöscht" -#: part/views.py:1264 +#: part/views.py:1260 msgid "Part Pricing" msgstr "Teilbepreisung" -#: part/views.py:1413 +#: part/views.py:1409 msgid "Create Part Parameter Template" msgstr "Teilparametervorlage anlegen" -#: part/views.py:1423 +#: part/views.py:1419 msgid "Edit Part Parameter Template" msgstr "Teilparametervorlage bearbeiten" -#: part/views.py:1430 +#: part/views.py:1426 msgid "Delete Part Parameter Template" msgstr "Teilparametervorlage löschen" -#: part/views.py:1489 templates/js/translated/part.js:313 +#: part/views.py:1485 templates/js/translated/part.js:313 msgid "Edit Part Category" msgstr "Teil-Kategorie bearbeiten" -#: part/views.py:1527 +#: part/views.py:1523 msgid "Delete Part Category" msgstr "Teil-Kategorie löschen" -#: part/views.py:1533 +#: part/views.py:1529 msgid "Part category was deleted" msgstr "Teil-Kategorie wurde gelöscht" -#: part/views.py:1542 +#: part/views.py:1538 msgid "Create Category Parameter Template" msgstr "Kategorieparametervorlage anlegen" -#: part/views.py:1643 +#: part/views.py:1639 msgid "Edit Category Parameter Template" msgstr "Kategorieparametervorlage bearbeiten" -#: part/views.py:1699 +#: part/views.py:1695 msgid "Delete Category Parameter Template" msgstr "Kategorieparametervorlage löschen" -#: part/views.py:1721 +#: part/views.py:1717 msgid "Added new price break" msgstr "neue Preisstaffel hinzufügt" -#: part/views.py:1797 +#: part/views.py:1793 msgid "Edit Internal Price Break" msgstr "Interne Preisspanne bearbeiten" -#: part/views.py:1805 +#: part/views.py:1801 msgid "Delete Internal Price Break" msgstr "Interne Preisspanne löschen" @@ -5390,12 +5348,12 @@ msgid "Stock Item Test Report" msgstr "Lagerartikel Test-Bericht" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:514 stock/templates/stock/item_base.html:149 +#: stock/models.py:517 stock/templates/stock/item_base.html:155 #: templates/js/translated/build.js:238 templates/js/translated/build.js:642 #: templates/js/translated/build.js:1018 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415 msgid "Serial Number" msgstr "Seriennummer" @@ -5404,19 +5362,19 @@ msgid "Test Results" msgstr "Testergebnisse" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:1833 +#: stock/models.py:1948 msgid "Test" msgstr "Test" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:1839 +#: stock/models.py:1954 msgid "Result" msgstr "Ergebnis" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:49 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367 msgid "Date" msgstr "Datum" @@ -5434,17 +5392,18 @@ msgid "Installed Items" msgstr "Verbaute Objekte" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434 +#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748 +#: templates/js/translated/stock.js:2627 msgid "Serial" msgstr "Seriennummer" -#: stock/api.py:446 +#: stock/api.py:478 msgid "Quantity is required" msgstr "Menge ist erforderlich" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571 -#: stock/templates/stock/item_base.html:186 -#: templates/js/translated/stock.js:1522 +#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574 +#: stock/templates/stock/item_base.html:192 +#: templates/js/translated/stock.js:1701 msgid "Expiry Date" msgstr "Ablaufdatum" @@ -5492,12 +5451,12 @@ msgstr "nicht mehr verbauen bestätigen" msgid "Confirm removal of installed stock items" msgstr "Entfernen der verbauten Lagerartikel bestätigen" -#: stock/models.py:60 stock/models.py:608 -#: stock/templates/stock/item_base.html:417 +#: stock/models.py:60 stock/models.py:611 +#: stock/templates/stock/item_base.html:415 msgid "Owner" msgstr "Besitzer" -#: stock/models.py:61 stock/models.py:609 +#: stock/models.py:61 stock/models.py:612 msgid "Select Owner" msgstr "Besitzer auswählen" @@ -5530,150 +5489,190 @@ msgstr "Teil muss eine Referenz haben wenn is_building wahr ist" msgid "Build reference does not point to the same part object" msgstr "Referenz verweist nicht auf das gleiche Teil" -#: stock/models.py:460 +#: stock/models.py:461 msgid "Parent Stock Item" msgstr "Eltern-Lagerartikel" -#: stock/models.py:469 +#: stock/models.py:470 msgid "Base part" msgstr "Basis-Teil" -#: stock/models.py:477 +#: stock/models.py:478 msgid "Select a matching supplier part for this stock item" msgstr "Passendes Zuliefererteil für diesen Lagerartikel auswählen" -#: stock/models.py:482 stock/templates/stock/location.html:12 +#: stock/models.py:484 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Bestand-Lagerort" -#: stock/models.py:485 +#: stock/models.py:487 msgid "Where is this stock item located?" msgstr "Wo wird dieses Teil normalerweise gelagert?" -#: stock/models.py:492 +#: stock/models.py:494 msgid "Packaging this stock item is stored in" msgstr "Die Verpackung dieses Lagerartikel ist gelagert in" -#: stock/models.py:497 stock/templates/stock/item_base.html:299 +#: stock/models.py:500 stock/templates/stock/item_base.html:297 msgid "Installed In" msgstr "verbaut in" -#: stock/models.py:500 +#: stock/models.py:503 msgid "Is this item installed in another item?" msgstr "Ist dieses Teil in einem anderen verbaut?" -#: stock/models.py:516 +#: stock/models.py:519 msgid "Serial number for this item" msgstr "Seriennummer für dieses Teil" -#: stock/models.py:530 +#: stock/models.py:533 msgid "Batch code for this stock item" msgstr "Losnummer für diesen Lagerartikel" -#: stock/models.py:534 +#: stock/models.py:537 msgid "Stock Quantity" msgstr "Bestand" -#: stock/models.py:543 +#: stock/models.py:546 msgid "Source Build" msgstr "Quellbau" -#: stock/models.py:545 +#: stock/models.py:548 msgid "Build for this stock item" msgstr "Bauauftrag für diesen Lagerartikel" -#: stock/models.py:556 +#: stock/models.py:559 msgid "Source Purchase Order" msgstr "Quelle Bestellung" -#: stock/models.py:559 +#: stock/models.py:562 msgid "Purchase order for this stock item" msgstr "Bestellung für diesen Lagerartikel" -#: stock/models.py:565 +#: stock/models.py:568 msgid "Destination Sales Order" msgstr "Ziel-Auftrag" -#: stock/models.py:572 +#: stock/models.py:575 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Ablaufdatum für Lagerartikel. Bestand wird danach als abgelaufen gekennzeichnet" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete on deplete" msgstr "Löschen wenn leer" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete this Stock Item when stock is depleted" msgstr "Diesen Lagerartikel löschen wenn der Bestand aufgebraucht ist" -#: stock/models.py:595 stock/templates/stock/item.html:111 +#: stock/models.py:598 stock/templates/stock/item.html:111 msgid "Stock Item Notes" msgstr "Lagerartikel-Notizen" -#: stock/models.py:604 +#: stock/models.py:607 msgid "Single unit purchase price at time of purchase" msgstr "Preis für eine Einheit bei Einkauf" -#: stock/models.py:1072 +#: stock/models.py:1068 msgid "Part is not set as trackable" msgstr "Teil ist nicht verfolgbar" -#: stock/models.py:1078 +#: stock/models.py:1074 msgid "Quantity must be integer" msgstr "Anzahl muss eine Ganzzahl sein" -#: stock/models.py:1084 +#: stock/models.py:1080 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "Anzahl darf nicht die verfügbare Anzahl überschreiten ({n})" -#: stock/models.py:1087 +#: stock/models.py:1083 msgid "Serial numbers must be a list of integers" msgstr "Seriennummern muss eine Liste von Ganzzahlen sein" -#: stock/models.py:1090 +#: stock/models.py:1086 msgid "Quantity does not match serial numbers" msgstr "Anzahl stimmt nicht mit den Seriennummern überein" -#: stock/models.py:1097 +#: stock/models.py:1093 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "Seriennummern {exists} existieren bereits" -#: stock/models.py:1255 +#: stock/models.py:1164 +msgid "Stock item has been assigned to a sales order" +msgstr "" + +#: stock/models.py:1167 +msgid "Stock item is installed in another item" +msgstr "" + +#: stock/models.py:1170 +msgid "Stock item contains other items" +msgstr "" + +#: stock/models.py:1173 +msgid "Stock item has been assigned to a customer" +msgstr "" + +#: stock/models.py:1176 +msgid "Stock item is currently in production" +msgstr "" + +#: stock/models.py:1179 +msgid "Serialized stock cannot be merged" +msgstr "" + +#: stock/models.py:1186 stock/serializers.py:773 +msgid "Duplicate stock items" +msgstr "" + +#: stock/models.py:1190 +msgid "Stock items must refer to the same part" +msgstr "" + +#: stock/models.py:1194 +msgid "Stock items must refer to the same supplier part" +msgstr "" + +#: stock/models.py:1198 +msgid "Stock status codes must match" +msgstr "" + +#: stock/models.py:1369 msgid "StockItem cannot be moved as it is not in stock" msgstr "Lagerartikel kann nicht bewegt werden, da kein Bestand vorhanden ist" -#: stock/models.py:1753 +#: stock/models.py:1868 msgid "Entry notes" msgstr "Eintrags-Notizen" -#: stock/models.py:1810 +#: stock/models.py:1925 msgid "Value must be provided for this test" msgstr "Wert muss für diesen Test angegeben werden" -#: stock/models.py:1816 +#: stock/models.py:1931 msgid "Attachment must be uploaded for this test" msgstr "Anhang muss für diesen Test hochgeladen werden" -#: stock/models.py:1834 +#: stock/models.py:1949 msgid "Test name" msgstr "Name des Tests" -#: stock/models.py:1840 templates/js/translated/table_filters.js:271 +#: stock/models.py:1955 templates/js/translated/table_filters.js:271 msgid "Test result" msgstr "Testergebnis" -#: stock/models.py:1846 +#: stock/models.py:1961 msgid "Test output value" msgstr "Test Ausgabe Wert" -#: stock/models.py:1853 +#: stock/models.py:1968 msgid "Test result attachment" msgstr "Test Ergebnis Anhang" -#: stock/models.py:1859 +#: stock/models.py:1974 msgid "Test notes" msgstr "Test Notizen" @@ -5698,7 +5697,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:326 stock/serializers.py:814 +#: stock/serializers.py:326 stock/serializers.py:730 stock/serializers.py:971 msgid "Destination stock location" msgstr "Ziel-Bestand" @@ -5710,39 +5709,63 @@ msgstr "Optionales Notizfeld" msgid "Serial numbers cannot be assigned to this part" msgstr "Seriennummern können diesem Teil nicht zugewiesen werden" -#: stock/serializers.py:573 +#: stock/serializers.py:587 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:577 +#: stock/serializers.py:591 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:581 +#: stock/serializers.py:595 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:611 +#: stock/serializers.py:625 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:617 +#: stock/serializers.py:631 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:639 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:635 stock/serializers.py:722 +#: stock/serializers.py:649 stock/serializers.py:879 msgid "A list of stock items must be provided" msgstr "Eine Liste der Lagerbestände muss angegeben werden" -#: stock/serializers.py:684 +#: stock/serializers.py:737 +msgid "Stock merging notes" +msgstr "" + +#: stock/serializers.py:742 +msgid "Allow mismatched suppliers" +msgstr "" + +#: stock/serializers.py:743 +msgid "Allow stock items with different supplier parts to be merged" +msgstr "" + +#: stock/serializers.py:748 +msgid "Allow mismatched status" +msgstr "" + +#: stock/serializers.py:749 +msgid "Allow stock items with different status codes to be merged" +msgstr "" + +#: stock/serializers.py:759 +msgid "At least two stock items must be provided" +msgstr "" + +#: stock/serializers.py:841 msgid "StockItem primary key value" msgstr "Primärschlüssel Lagerelement" -#: stock/serializers.py:712 +#: stock/serializers.py:869 msgid "Stock transaction notes" msgstr "Bestandsbewegungsnotizen" @@ -5767,7 +5790,7 @@ msgstr "Dieser Lagerartikel hat keine Kinder" msgid "Test Data" msgstr "Testdaten" -#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50 +#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:56 msgid "Test Report" msgstr "Test-Bericht" @@ -5799,197 +5822,189 @@ msgstr "Testergebnis bearbeiten" msgid "Delete Test Result" msgstr "Testergebnis löschen" -#: stock/templates/stock/item_base.html:35 +#: stock/templates/stock/item_base.html:41 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 msgid "Unlink Barcode" msgstr "Barcode abhängen" -#: stock/templates/stock/item_base.html:37 +#: stock/templates/stock/item_base.html:43 msgid "Link Barcode" msgstr "Barcode anhängen" -#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24 +#: stock/templates/stock/item_base.html:45 templates/stock_table.html:24 msgid "Scan to Location" msgstr "zu Lagerort einscannen" -#: stock/templates/stock/item_base.html:46 +#: stock/templates/stock/item_base.html:52 msgid "Printing actions" msgstr "Druck Aktionen" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:71 msgid "Stock adjustment actions" msgstr "Bestands-Anpassungs Aktionen" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:47 templates/stock_table.html:50 +#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/location.html:51 templates/stock_table.html:50 msgid "Count stock" msgstr "Bestand zählen" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:78 templates/stock_table.html:48 msgid "Add stock" msgstr "Bestand hinzufügen" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49 +#: stock/templates/stock/item_base.html:81 templates/stock_table.html:49 msgid "Remove stock" msgstr "Bestand entfernen" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:84 msgid "Serialize stock" msgstr "Bestand serialisieren" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:53 +#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/location.html:57 msgid "Transfer stock" msgstr "Bestand verschieben" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53 +#: stock/templates/stock/item_base.html:91 templates/stock_table.html:54 msgid "Assign to customer" msgstr "Kunden zuweisen" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:94 msgid "Return to stock" msgstr "zu Bestand zurückgeben" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall stock item" msgstr "Lagerartikel deinstallieren" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall" msgstr "Deinstallieren" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "Lagerartikel installieren" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "Installieren" -#: stock/templates/stock/item_base.html:108 +#: stock/templates/stock/item_base.html:114 msgid "Convert to variant" msgstr "in Variante ändern" -#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/item_base.html:117 msgid "Duplicate stock item" msgstr "Lagerartikel duplizieren" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:119 msgid "Edit stock item" msgstr "Lagerartikel bearbeiten" -#: stock/templates/stock/item_base.html:116 +#: stock/templates/stock/item_base.html:122 msgid "Delete stock item" msgstr "Lagerartikel löschen" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "previous page" msgstr "vorherige Seite" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "Navigate to previous serial number" msgstr "Zur vorherigen Seriennummer wechseln" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "next page" msgstr "nächste Seite" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "Navigate to next serial number" msgstr "Zur nächsten Seriennummer wechseln" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Dieser Lagerartikel lief am %(item.expiry_date)s ab" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "abgelaufen" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #, python-format 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:192 +#: stock/templates/stock/item_base.html:198 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "überfällig" -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/stock.js:1535 +#: stock/templates/stock/item_base.html:205 +#: templates/js/translated/stock.js:1714 msgid "Last Updated" msgstr "Zuletzt aktualisiert" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Last Stocktake" msgstr "Letzte Inventur" -#: stock/templates/stock/item_base.html:208 +#: stock/templates/stock/item_base.html:214 msgid "No stocktake performed" msgstr "Keine Inventur ausgeführt" -#: stock/templates/stock/item_base.html:226 +#: stock/templates/stock/item_base.html:232 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "Sie gehören nicht zu den Eigentümern dieses Objekts und können es nicht ändern." -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:239 msgid "This stock item is in production and cannot be edited." msgstr "Dieser Lagerartikel wird gerade hergestellt und kann nicht geändert werden." -#: stock/templates/stock/item_base.html:234 +#: stock/templates/stock/item_base.html:240 msgid "Edit the stock item from the build view." msgstr "Ändern des Lagerartikel in der Bauauftrag-Ansicht." -#: stock/templates/stock/item_base.html:247 +#: stock/templates/stock/item_base.html:253 msgid "This stock item has not passed all required tests" msgstr "Dieser Lagerartikel hat nicht alle Tests bestanden" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:261 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:263 +#: stock/templates/stock/item_base.html:269 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:269 +#: stock/templates/stock/item_base.html:275 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "Diesesr Lagerartikel ist serialisiert. Es hat eine eindeutige Seriennummer und die Anzahl kann nicht angepasst werden." -#: stock/templates/stock/item_base.html:273 -msgid "This stock item cannot be deleted as it has child items" -msgstr "Dieser Lagerartikel kann nicht gelöscht werden, da es Kinder besitzt" - -#: stock/templates/stock/item_base.html:277 -msgid "This stock item will be automatically deleted when all stock is depleted." -msgstr "Dieser Bestand wird automatisch gelöscht wenn der Bestand aufgebraucht ist." - -#: stock/templates/stock/item_base.html:318 +#: stock/templates/stock/item_base.html:316 #: templates/js/translated/build.js:1040 msgid "No location set" msgstr "Kein Lagerort gesetzt" -#: stock/templates/stock/item_base.html:325 +#: stock/templates/stock/item_base.html:323 msgid "Barcode Identifier" msgstr "Barcode-Bezeichner" -#: stock/templates/stock/item_base.html:367 +#: stock/templates/stock/item_base.html:365 msgid "Parent Item" msgstr "Elternposition" -#: stock/templates/stock/item_base.html:385 +#: stock/templates/stock/item_base.html:383 msgid "No manufacturer set" msgstr "Kein Hersteller ausgewählt" -#: stock/templates/stock/item_base.html:410 +#: stock/templates/stock/item_base.html:408 msgid "Tests" msgstr "Tests" -#: stock/templates/stock/item_base.html:500 +#: stock/templates/stock/item_base.html:498 msgid "Edit Stock Status" msgstr "Bestandsstatus bearbeiten" @@ -6043,59 +6058,59 @@ msgstr "Teile mit Seriennummern mit diesem BestandObjekt anlegen." msgid "Select quantity to serialize, and unique serial numbers." msgstr "Zu serialisierende Anzahl und eindeutige Seriennummern angeben." -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:37 msgid "Check-in Items" msgstr "Teile einchecken" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:65 msgid "Location actions" msgstr "Lagerort-Aktionen" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:67 msgid "Edit location" msgstr "Lagerort bearbeiten" -#: stock/templates/stock/location.html:65 +#: stock/templates/stock/location.html:69 msgid "Delete location" msgstr "Lagerort löschen" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:79 msgid "Create new stock location" msgstr "Neuen Lagerort anlegen" -#: stock/templates/stock/location.html:76 +#: stock/templates/stock/location.html:80 msgid "New Location" msgstr "Neuer Lagerort" -#: stock/templates/stock/location.html:95 -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:99 +#: stock/templates/stock/location.html:105 msgid "Location Path" msgstr "Lagerortpfad" -#: stock/templates/stock/location.html:102 +#: stock/templates/stock/location.html:106 msgid "Top level stock location" msgstr "Oberster Lagerstandort" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:119 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "Sie sind nicht auf der Liste der Besitzer dieses Lagerorts. Der Bestands-Lagerort kann nicht verändert werden." -#: stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:175 +#: stock/templates/stock/location.html:132 +#: stock/templates/stock/location.html:179 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Unter-Lagerorte" -#: stock/templates/stock/location.html:142 templates/InvenTree/search.html:170 +#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "Bestand-Lagerorte" -#: stock/templates/stock/location.html:182 templates/stock_table.html:30 +#: stock/templates/stock/location.html:186 templates/stock_table.html:30 msgid "Printing Actions" msgstr "Druck Aktionen" -#: stock/templates/stock/location.html:186 templates/stock_table.html:34 +#: stock/templates/stock/location.html:190 templates/stock_table.html:34 msgid "Print labels" msgstr "Label drucken" @@ -6180,7 +6195,7 @@ msgstr "Lagerartikel-QR-Code" msgid "Uninstall Stock Items" msgstr "Lagerartikel deinstallieren" -#: stock/views.py:727 templates/js/translated/stock.js:887 +#: stock/views.py:727 templates/js/translated/stock.js:1066 msgid "Confirm stock adjustment" msgstr "Bestands-Anpassung bestätigen" @@ -6188,7 +6203,7 @@ msgstr "Bestands-Anpassung bestätigen" msgid "Uninstalled stock items" msgstr "Lagerartikel deinstalliert" -#: stock/views.py:760 templates/js/translated/stock.js:323 +#: stock/views.py:760 templates/js/translated/stock.js:324 msgid "Edit Stock Item" msgstr "Lagerartikel bearbeiten" @@ -6200,7 +6215,7 @@ msgstr "Neuen Lagerort erstellen" msgid "Create new Stock Item" msgstr "Neuen Lagerartikel hinzufügen" -#: stock/views.py:1153 templates/js/translated/stock.js:303 +#: stock/views.py:1153 templates/js/translated/stock.js:304 msgid "Duplicate Stock Item" msgstr "Bestand duplizieren" @@ -6316,10 +6331,6 @@ msgstr "überfällige Aufträge" msgid "Search Results" msgstr "Suchergebnisse" -#: templates/InvenTree/search.html:22 -msgid "Enter a search query" -msgstr "Eine Sucheanfrage eingeben" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "Barcode-Einstellungen" @@ -6365,7 +6376,7 @@ msgstr "Server Einstellungen" msgid "Login Settings" msgstr "Anmeldeeinstellungen" -#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5 +#: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5 msgid "Signup" msgstr "Anmelden" @@ -6650,7 +6661,7 @@ msgstr "Vorname" msgid "Last Name" msgstr "Nachname" -#: templates/InvenTree/settings/user.html:55 +#: templates/InvenTree/settings/user.html:54 msgid "The following email addresses are associated with your account:" msgstr "Die folgenden E-Mail-Adressen sind mit deinem Konto verknüpft:" @@ -6675,145 +6686,193 @@ msgid "Re-send Verification" msgstr "Verifikation erneut senden" #: templates/InvenTree/settings/user.html:87 -#: templates/InvenTree/settings/user.html:154 +#: templates/InvenTree/settings/user.html:149 msgid "Remove" msgstr "Entfernen" -#: templates/InvenTree/settings/user.html:94 +#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:201 msgid "Warning:" msgstr "Warnung:" -#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:96 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:102 +#: templates/InvenTree/settings/user.html:104 msgid "Add Email Address" msgstr "E-Mail-Adresse hinzufügen" -#: templates/InvenTree/settings/user.html:112 -msgid "Enter e-mail address" -msgstr "Geben Sie Ihre Email-Adresse ein" - -#: templates/InvenTree/settings/user.html:114 +#: templates/InvenTree/settings/user.html:109 msgid "Add Email" msgstr "E-Mail-Adresse hinzufügen" -#: templates/InvenTree/settings/user.html:124 +#: templates/InvenTree/settings/user.html:117 msgid "Social Accounts" msgstr "Soziale Konten" -#: templates/InvenTree/settings/user.html:129 +#: templates/InvenTree/settings/user.html:122 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: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:157 +msgid "You currently have no social network accounts connected to this account." +msgstr "" -#: templates/InvenTree/settings/user.html:168 +#: templates/InvenTree/settings/user.html:162 msgid "Add a 3rd Party Account" msgstr "Drittanbieter-Konto hinzufügen" -#: templates/InvenTree/settings/user.html:179 -msgid "Active Sessions" -msgstr "Aktive Sitzungen" +#: templates/InvenTree/settings/user.html:172 +msgid "Multifactor" +msgstr "" -#: 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:177 +msgid "You have these factors available:" +msgstr "" -#: templates/InvenTree/settings/user.html:186 -msgid "Log Out Active Sessions" -msgstr "Aktive Sitzungen abmelden" +#: templates/InvenTree/settings/user.html:187 +msgid "TOTP" +msgstr "" -#: 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:193 +msgid "Static" +msgstr "" #: templates/InvenTree/settings/user.html:202 -msgid "Last Activity" -msgstr "Letzte Aktivität" +msgid "You currently do not have any factors set up." +msgstr "" -#: templates/InvenTree/settings/user.html:211 -#, python-format -msgid "%(time)s ago (this session)" -msgstr "%(time)s vor (diese Sitzung)" +#: templates/InvenTree/settings/user.html:209 +msgid "Change factors" +msgstr "" -#: templates/InvenTree/settings/user.html:213 -#, python-format -msgid "%(time)s ago" -msgstr "%(time)s vor" +#: templates/InvenTree/settings/user.html:210 +msgid "Setup multifactor" +msgstr "" -#: templates/InvenTree/settings/user.html:224 -msgid "Do you really want to remove the selected email address?" -msgstr "Möchten Sie die ausgewählte E-Mail-Adresse wirklich entfernen?" +#: templates/InvenTree/settings/user.html:212 +msgid "Remove multifactor" +msgstr "" +#: templates/InvenTree/settings/user.html:219 #: templates/InvenTree/settings/user_display.html:25 msgid "Theme Settings" msgstr "Anzeige-Einstellungen" +#: templates/InvenTree/settings/user.html:227 #: templates/InvenTree/settings/user_display.html:35 msgid "Select theme" msgstr "Stil auswählen" +#: templates/InvenTree/settings/user.html:237 #: templates/InvenTree/settings/user_display.html:46 msgid "Set Theme" msgstr "Design auswählen" +#: templates/InvenTree/settings/user.html:246 #: templates/InvenTree/settings/user_display.html:54 msgid "Language Settings" msgstr "Spracheinstellung" +#: templates/InvenTree/settings/user.html:254 #: templates/InvenTree/settings/user_display.html:63 msgid "Select language" msgstr "Sprache festlegen" +#: templates/InvenTree/settings/user.html:270 #: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "%(lang_translated)s%% übersetzt" +#: templates/InvenTree/settings/user.html:272 #: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "Keine Übersetzungen verfügbar" +#: templates/InvenTree/settings/user.html:279 #: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "Sprache festlegen" +#: templates/InvenTree/settings/user.html:281 #: 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.html:283 #: 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.html:285 #: templates/InvenTree/settings/user_display.html:95 msgid "Show them too" msgstr "Auch unvollständige anzeigen" +#: templates/InvenTree/settings/user.html:292 #: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "Hilf bei der Übersetzung!" +#: templates/InvenTree/settings/user.html:293 +#, python-format +msgid "Native language translation of the\n" +" InvenTree web application is community contributed via crowdin. Contributions are\n" +" welcomed and encouraged." +msgstr "" + +#: templates/InvenTree/settings/user.html:302 +msgid "Active Sessions" +msgstr "Aktive Sitzungen" + +#: templates/InvenTree/settings/user.html:308 +msgid "Log out active sessions (except this one)" +msgstr "Aktive Sitzungen abmelden (ausgenommen diese)" + +#: templates/InvenTree/settings/user.html:309 +msgid "Log Out Active Sessions" +msgstr "Aktive Sitzungen abmelden" + +#: templates/InvenTree/settings/user.html:318 +msgid "unknown on unknown" +msgstr "unbekannt auf unbekanntem" + +#: templates/InvenTree/settings/user.html:319 +msgid "unknown" +msgstr "unbekannt" + +#: templates/InvenTree/settings/user.html:323 +msgid "IP Address" +msgstr "IP Adresse" + +#: templates/InvenTree/settings/user.html:324 +msgid "Device" +msgstr "Gerät" + +#: templates/InvenTree/settings/user.html:325 +msgid "Last Activity" +msgstr "Letzte Aktivität" + +#: templates/InvenTree/settings/user.html:334 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "%(time)s vor (diese Sitzung)" + +#: templates/InvenTree/settings/user.html:336 +#, python-format +msgid "%(time)s ago" +msgstr "%(time)s vor" + +#: templates/InvenTree/settings/user.html:348 +msgid "Do you really want to remove the selected email address?" +msgstr "Möchten Sie die ausgewählte E-Mail-Adresse wirklich entfernen?" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +msgstr "und versteckt." + #: 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." @@ -6832,7 +6891,7 @@ msgid "InvenTree Version Information" msgstr "InvenTree-Versionsinformationen" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53 +#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53 #: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662 #: templates/js/translated/modals.js:965 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 @@ -7008,6 +7067,71 @@ msgstr "Oder verwenden Sie einen SSO-Anbieter für die Anmeldung" msgid "View in administration panel" msgstr "Im Administrationsbereich anzeigen" +#: templates/allauth_2fa/authenticate.html:5 +msgid "Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:12 +msgid "Authenticate" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:6 +msgid "Two-Factor Authentication Backup Tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:17 +msgid "Backup tokens have been generated, but are not revealed here for security reasons. Press the button below to generate new ones." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:20 +msgid "No tokens. Press the button below to generate some." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:27 +msgid "Generate backup tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:31 +#: templates/allauth_2fa/setup.html:40 +msgid "back to settings" +msgstr "" + +#: templates/allauth_2fa/remove.html:6 +msgid "Disable Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/remove.html:9 +msgid "Are you sure?" +msgstr "" + +#: templates/allauth_2fa/remove.html:14 +msgid "Disable Two-Factor" +msgstr "" + +#: templates/allauth_2fa/setup.html:6 +msgid "Setup Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/setup.html:10 +msgid "Step 1" +msgstr "" + +#: templates/allauth_2fa/setup.html:14 +msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." +msgstr "" + +#: templates/allauth_2fa/setup.html:23 +msgid "Step 2" +msgstr "" + +#: templates/allauth_2fa/setup.html:27 +msgid "Input a token generated by the app:" +msgstr "" + +#: templates/allauth_2fa/setup.html:35 +msgid "Verify" +msgstr "" + #: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 msgid "Add Link" msgstr "Link hinzufügen" @@ -7046,13 +7170,13 @@ msgid "The following parts are low on required stock" msgstr "Bei den folgenden Teilen gibt es wenige Lagerartikel" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:1103 msgid "Required Quantity" msgstr "Benötigte Menge" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134 +#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1134 #: templates/js/translated/build.js:1755 #: templates/js/translated/table_filters.js:178 msgid "Available" @@ -7241,7 +7365,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:839 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018 msgid "Remove stock item" msgstr "Lagerartikel entfernen" @@ -7283,91 +7407,153 @@ msgstr "In Lagerorten buchen" msgid "Barcode does not match a valid location" msgstr "Barcode entspricht keinem Lagerort" -#: templates/js/translated/bom.js:184 +#: templates/js/translated/bom.js:36 +msgid "Download BOM Template" +msgstr "" + +#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510 +msgid "Format" +msgstr "Format" + +#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511 +msgid "Select file format" +msgstr "Dateiformat auswählen" + +#: templates/js/translated/bom.js:81 +msgid "Cascading" +msgstr "Kaskadierend" + +#: templates/js/translated/bom.js:82 +msgid "Download cascading / multi-level BOM" +msgstr "Kaskadierende Stückliste herunterladen" + +#: templates/js/translated/bom.js:87 +msgid "Levels" +msgstr "Ebenen" + +#: templates/js/translated/bom.js:88 +msgid "Select maximum number of BOM levels to export (0 = all levels)" +msgstr "Maximale Anzahl an Ebenen für Stückliste-Export auswählen (0 = alle Ebenen)" + +#: templates/js/translated/bom.js:94 +msgid "Include Parameter Data" +msgstr "Parameter-Daten einschließen" + +#: templates/js/translated/bom.js:95 +msgid "Include part parameter data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:100 +msgid "Include Stock Data" +msgstr "Bestand einschließen" + +#: templates/js/translated/bom.js:101 +msgid "Include part stock data in exported BOM" +msgstr "Teil-Bestand in Stückliste-Export einschließen" + +#: templates/js/translated/bom.js:106 +msgid "Include Manufacturer Data" +msgstr "Herstellerdaten einschließen" + +#: templates/js/translated/bom.js:107 +msgid "Include part manufacturer data in exported BOM" +msgstr "Teil-Herstellerdaten in Stückliste-Export einschließen" + +#: templates/js/translated/bom.js:112 +msgid "Include Supplier Data" +msgstr "Zulieferer einschließen" + +#: templates/js/translated/bom.js:113 +msgid "Include part supplier data in exported BOM" +msgstr "Zulieferer-Daten in Stückliste-Export einschließen" + +#: templates/js/translated/bom.js:296 msgid "Remove substitute part" msgstr "Ersatzteil entfernen" -#: templates/js/translated/bom.js:228 +#: templates/js/translated/bom.js:340 msgid "Select and add a new variant item using the input below" msgstr "Wählen Sie eine neue Variante aus und fügen Sie sie mit den folgenden Eingaben hinzu" -#: templates/js/translated/bom.js:239 +#: templates/js/translated/bom.js:351 msgid "Are you sure you wish to remove this substitute part link?" msgstr "Sind Sie sicher, dass Sie dieses Ersatzteil entfernen möchten?" -#: templates/js/translated/bom.js:245 +#: templates/js/translated/bom.js:357 msgid "Remove Substitute Part" msgstr "Ersatzteil entfernen" -#: templates/js/translated/bom.js:284 +#: templates/js/translated/bom.js:396 msgid "Add Substitute" msgstr "Ersatzteil hinzufügen" -#: templates/js/translated/bom.js:285 +#: templates/js/translated/bom.js:397 msgid "Edit BOM Item Substitutes" msgstr "Stücklisten Ersatzteile bearbeiten" -#: templates/js/translated/bom.js:404 +#: templates/js/translated/bom.js:516 msgid "Substitutes Available" msgstr "Ersatzteile verfügbar" -#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116 +#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1116 msgid "Variant stock allowed" msgstr "Varianten erlaubt" -#: templates/js/translated/bom.js:413 +#: templates/js/translated/bom.js:525 msgid "Open subassembly" msgstr "Unterbaugruppe öffnen" -#: templates/js/translated/bom.js:485 +#: templates/js/translated/bom.js:597 msgid "Substitutes" msgstr "Ersatzteile" -#: templates/js/translated/bom.js:500 +#: templates/js/translated/bom.js:612 msgid "Purchase Price Range" msgstr "Kaufpreisspanne" -#: templates/js/translated/bom.js:507 +#: templates/js/translated/bom.js:619 msgid "Purchase Price Average" msgstr "Durchschnittlicher Kaufpreis" -#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645 +#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757 msgid "View BOM" msgstr "Stückliste anzeigen" -#: templates/js/translated/bom.js:616 +#: templates/js/translated/bom.js:728 msgid "Validate BOM Item" msgstr "Stücklisten-Position kontrollieren" -#: templates/js/translated/bom.js:618 +#: templates/js/translated/bom.js:730 msgid "This line has been validated" msgstr "Diese Position wurde kontrolliert" -#: templates/js/translated/bom.js:620 +#: templates/js/translated/bom.js:732 msgid "Edit substitute parts" msgstr "Ersatzteile bearbeiten" -#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796 +#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908 msgid "Edit BOM Item" msgstr "Stücklisten-Position bearbeiten" -#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779 +#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891 msgid "Delete BOM Item" msgstr "Stücklisten-Position löschen" -#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860 +#: templates/js/translated/bom.js:830 templates/js/translated/build.js:860 msgid "No BOM items found" msgstr "Keine Stücklisten-Position(en) gefunden" -#: templates/js/translated/bom.js:774 +#: templates/js/translated/bom.js:886 msgid "Are you sure you want to delete this BOM item?" msgstr "Sind Sie sicher, dass Sie diese Stücklisten-Position löschen wollen?" -#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100 +#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1100 msgid "Required Part" msgstr "benötigtes Teil" -#: templates/js/translated/bom.js:996 +#: templates/js/translated/bom.js:1108 msgid "Inherited from parent BOM" msgstr "Geerbt von übergeordneter Stückliste" @@ -7466,7 +7652,7 @@ msgstr "Zugeordnet" msgid "Build stock" msgstr "Bestand bauen" -#: templates/js/translated/build.js:1199 templates/stock_table.html:52 +#: templates/js/translated/build.js:1199 templates/stock_table.html:53 msgid "Order stock" msgstr "Bestand bestellen" @@ -7511,9 +7697,9 @@ msgstr "Keine passenden Lagerbestände" msgid "No builds matching query" msgstr "Keine Bauaufträge passen zur Anfrage" -#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147 -#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333 -#: templates/js/translated/stock.js:2128 +#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1149 +#: templates/js/translated/part.js:1560 templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:2321 msgid "Select" msgstr "Auswählen" @@ -7521,7 +7707,7 @@ msgstr "Auswählen" msgid "Build order is overdue" msgstr "Bauauftrag ist überfällig" -#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347 +#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2540 msgid "No user information" msgstr "Keine Benutzerinformation" @@ -7684,20 +7870,20 @@ msgstr "Anzeigevorgang nicht erlaubt" msgid "Enter a valid number" msgstr "Gib eine gültige Nummer ein" -#: templates/js/translated/forms.js:1078 templates/modals.html:19 +#: templates/js/translated/forms.js:1080 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "Fehler in Formular" -#: templates/js/translated/forms.js:1469 +#: templates/js/translated/forms.js:1471 msgid "No results found" msgstr "Keine Ergebnisse gefunden" -#: templates/js/translated/forms.js:1673 +#: templates/js/translated/forms.js:1675 msgid "Searching" msgstr "Suche" -#: templates/js/translated/forms.js:1893 +#: templates/js/translated/forms.js:1895 msgid "Clear input" msgstr "Eingabe leeren" @@ -7710,7 +7896,7 @@ msgid "NO" msgstr "NEIN" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:863 +#: templates/js/translated/stock.js:1042 msgid "Select Stock Items" msgstr "Lagerartikel auswählen" @@ -7890,14 +8076,6 @@ msgstr "Auftrag anlegen" msgid "Export Order" msgstr "Bestellung exportieren" -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509 -msgid "Format" -msgstr "Format" - -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510 -msgid "Select file format" -msgstr "Dateiformat auswählen" - #: templates/js/translated/order.js:460 msgid "Select Line Items" msgstr "Positionen auswählen" @@ -7910,7 +8088,7 @@ msgstr "Mindestens eine Position muss ausgewählt werden" msgid "Quantity to receive" msgstr "Zu erhaltende Menge" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123 msgid "Stock Status" msgstr "Status" @@ -7959,7 +8137,7 @@ msgid "Total" msgstr "Summe" #: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163 -#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986 +#: templates/js/translated/part.js:1777 templates/js/translated/part.js:1988 msgid "Unit Price" msgstr "Stück-Preis" @@ -8044,7 +8222,7 @@ msgid "Delete Stock Allocation" msgstr "Bestands-Zuordnung löschen" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1249 +#: templates/js/translated/stock.js:1428 msgid "Shipped to customer" msgstr "an Kunde versand" @@ -8208,92 +8386,92 @@ msgstr "Verkäufliches Teil" msgid "No variants found" msgstr "Keine Varianten gefunden" -#: templates/js/translated/part.js:946 +#: templates/js/translated/part.js:948 msgid "Delete part relationship" msgstr "Teile-Beziehung löschen" -#: templates/js/translated/part.js:970 +#: templates/js/translated/part.js:972 msgid "Delete Part Relationship" msgstr "Teile-Beziehung löschen" -#: templates/js/translated/part.js:1037 templates/js/translated/part.js:1297 +#: templates/js/translated/part.js:1039 templates/js/translated/part.js:1299 msgid "No parts found" msgstr "Keine Teile gefunden" -#: templates/js/translated/part.js:1207 +#: templates/js/translated/part.js:1209 msgid "No category" msgstr "Keine Kategorie" -#: templates/js/translated/part.js:1230 +#: templates/js/translated/part.js:1232 #: templates/js/translated/table_filters.js:412 msgid "Low stock" msgstr "Bestand niedrig" -#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493 -#: templates/js/translated/stock.js:2089 +#: templates/js/translated/part.js:1323 templates/js/translated/part.js:1495 +#: templates/js/translated/stock.js:2282 msgid "Display as list" msgstr "Listenansicht" -#: templates/js/translated/part.js:1337 +#: templates/js/translated/part.js:1339 msgid "Display as grid" msgstr "Rasteransicht" -#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108 +#: templates/js/translated/part.js:1514 templates/js/translated/stock.js:2301 msgid "Display as tree" msgstr "Baumansicht" -#: templates/js/translated/part.js:1576 +#: templates/js/translated/part.js:1578 msgid "Subscribed category" msgstr "Abonnierte Kategorie" -#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152 +#: templates/js/translated/part.js:1592 templates/js/translated/stock.js:2345 msgid "Path" msgstr "Pfad" -#: templates/js/translated/part.js:1634 +#: templates/js/translated/part.js:1636 msgid "No test templates matching query" msgstr "Keine zur Anfrage passenden Testvorlagen" -#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055 +#: templates/js/translated/part.js:1687 templates/js/translated/stock.js:1234 msgid "Edit test result" msgstr "Testergebnis bearbeiten" -#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056 +#: templates/js/translated/part.js:1688 templates/js/translated/stock.js:1235 msgid "Delete test result" msgstr "Testergebnis löschen" -#: templates/js/translated/part.js:1692 +#: templates/js/translated/part.js:1694 msgid "This test is defined for a parent part" msgstr "Dieses Testergebnis ist für ein Hauptteil" -#: templates/js/translated/part.js:1714 +#: templates/js/translated/part.js:1716 msgid "Edit Test Result Template" msgstr "Testergebnis-Vorlage bearbeiten" -#: templates/js/translated/part.js:1728 +#: templates/js/translated/part.js:1730 msgid "Delete Test Result Template" msgstr "Testergebnis-Vorlage löschen" -#: templates/js/translated/part.js:1753 +#: templates/js/translated/part.js:1755 #, python-brace-format msgid "No ${human_name} information found" msgstr "Keine ${human_name} Informationen gefunden" -#: templates/js/translated/part.js:1808 +#: templates/js/translated/part.js:1810 #, python-brace-format msgid "Edit ${human_name}" msgstr "${human_name} bearbeiten" -#: templates/js/translated/part.js:1809 +#: templates/js/translated/part.js:1811 #, python-brace-format msgid "Delete ${human_name}" msgstr "${human_name} löschen" -#: templates/js/translated/part.js:1910 +#: templates/js/translated/part.js:1912 msgid "Single Price" msgstr "Einzelpreis" -#: templates/js/translated/part.js:1929 +#: templates/js/translated/part.js:1931 msgid "Single Price Difference" msgstr "Einzelpreisdifferenz" @@ -8367,316 +8545,340 @@ msgstr "Aufträge auswählen" msgid "Sales Order(s) must be selected before printing report" msgstr "Auftrag muss vor dem Berichtsdruck ausgewählt werden" -#: templates/js/translated/stock.js:72 +#: templates/js/translated/stock.js:73 msgid "Serialize Stock Item" msgstr "Lagerartikel serialisieren" -#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173 msgid "Next available serial number" msgstr "Nächste verfügbare Seriennummer" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174 +#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175 msgid "Latest serial number" msgstr "Letzte Seriennummer" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:101 msgid "Confirm Stock Serialization" msgstr "Lager-Serialisierung bestätigen" -#: templates/js/translated/stock.js:109 +#: templates/js/translated/stock.js:110 msgid "Parent stock location" msgstr "Übergeordneter Lagerort" -#: templates/js/translated/stock.js:145 +#: templates/js/translated/stock.js:146 msgid "New Stock Location" msgstr "Neuer Lagerstandort" -#: templates/js/translated/stock.js:185 +#: templates/js/translated/stock.js:186 msgid "This part cannot be serialized" msgstr "Dieser Teil kann nicht serialisiert werden" -#: templates/js/translated/stock.js:224 +#: templates/js/translated/stock.js:225 msgid "Enter initial quantity for this stock item" msgstr "Ausgangsmenge für diesen Lagerartikel eingeben" -#: templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:231 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:373 +#: templates/js/translated/stock.js:374 msgid "Created new stock item" msgstr "Neuer Lagerartikel erstellt" -#: templates/js/translated/stock.js:386 +#: templates/js/translated/stock.js:387 msgid "Created multiple stock items" msgstr "Mehrere Lagerartikel erstellt" -#: templates/js/translated/stock.js:411 +#: templates/js/translated/stock.js:412 msgid "Find Serial Number" msgstr "Seriennummer finden" -#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416 +#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417 msgid "Enter serial number" msgstr "Seriennummer eingeben" -#: templates/js/translated/stock.js:432 +#: templates/js/translated/stock.js:433 msgid "Enter a serial number" msgstr "Eine Seriennummer eingeben" -#: templates/js/translated/stock.js:452 +#: templates/js/translated/stock.js:453 msgid "No matching serial number" msgstr "Keine passende Seriennummer" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "More than one matching result found" msgstr "Mehrere Ergebnisse gefunden" -#: templates/js/translated/stock.js:506 +#: templates/js/translated/stock.js:507 msgid "Export Stock" msgstr "Bestand exportieren" -#: templates/js/translated/stock.js:517 +#: templates/js/translated/stock.js:518 msgid "Include Sublocations" msgstr "Einschließlich Unterstandorte" -#: templates/js/translated/stock.js:518 +#: templates/js/translated/stock.js:519 msgid "Include stock items in sublocations" msgstr "Lagerartikel in untergeordneten Lagerorten einschließen" -#: templates/js/translated/stock.js:627 +#: templates/js/translated/stock.js:628 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:628 +#: templates/js/translated/stock.js:629 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:713 +#: templates/js/translated/stock.js:706 +msgid "Warning: Merge operation cannot be reversed" +msgstr "" + +#: templates/js/translated/stock.js:707 +msgid "Some information will be lost when merging stock items" +msgstr "" + +#: templates/js/translated/stock.js:709 +msgid "Stock transaction history will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:710 +msgid "Supplier part information will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:796 +msgid "Confirm stock item merge" +msgstr "" + +#: templates/js/translated/stock.js:797 +msgid "Merge Stock Items" +msgstr "" + +#: templates/js/translated/stock.js:892 msgid "Transfer Stock" msgstr "Bestand verschieben" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:893 msgid "Move" msgstr "Verschieben" -#: templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:899 msgid "Count Stock" msgstr "Bestand zählen" -#: templates/js/translated/stock.js:721 +#: templates/js/translated/stock.js:900 msgid "Count" msgstr "Anzahl" -#: templates/js/translated/stock.js:725 +#: templates/js/translated/stock.js:904 msgid "Remove Stock" msgstr "Bestand entfernen" -#: templates/js/translated/stock.js:726 +#: templates/js/translated/stock.js:905 msgid "Take" msgstr "Entfernen" -#: templates/js/translated/stock.js:730 +#: templates/js/translated/stock.js:909 msgid "Add Stock" msgstr "Bestand hinzufügen" -#: templates/js/translated/stock.js:731 users/models.py:202 +#: templates/js/translated/stock.js:910 users/models.py:205 msgid "Add" msgstr "Hinzufügen" -#: templates/js/translated/stock.js:735 templates/stock_table.html:57 +#: templates/js/translated/stock.js:914 templates/stock_table.html:58 msgid "Delete Stock" msgstr "Bestand löschen" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Quantity cannot be adjusted for serialized stock" msgstr "Menge von serialisiertem Bestand kann nicht bearbeitet werden" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Specify stock quantity" msgstr "Bestandsanzahl angeben" -#: templates/js/translated/stock.js:864 +#: templates/js/translated/stock.js:1043 msgid "You must select at least one available stock item" msgstr "Sie müssen mindestens einen Lagerartikel auswählen" -#: templates/js/translated/stock.js:1022 +#: templates/js/translated/stock.js:1201 msgid "PASS" msgstr "ERFOLGREICH" -#: templates/js/translated/stock.js:1024 +#: templates/js/translated/stock.js:1203 msgid "FAIL" msgstr "FEHLGESCHLAGEN" -#: templates/js/translated/stock.js:1029 +#: templates/js/translated/stock.js:1208 msgid "NO RESULT" msgstr "KEIN ERGEBNIS" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1230 msgid "Add test result" msgstr "Testergebnis hinzufügen" -#: templates/js/translated/stock.js:1077 +#: templates/js/translated/stock.js:1256 msgid "No test results found" msgstr "Keine Testergebnisse gefunden" -#: templates/js/translated/stock.js:1134 +#: templates/js/translated/stock.js:1313 msgid "Test Date" msgstr "Testdatum" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1420 msgid "In production" msgstr "In Arbeit" -#: templates/js/translated/stock.js:1245 +#: templates/js/translated/stock.js:1424 msgid "Installed in Stock Item" msgstr "In Lagerartikel installiert" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1432 msgid "Assigned to Sales Order" msgstr "Auftrag zugewiesen" -#: templates/js/translated/stock.js:1259 +#: templates/js/translated/stock.js:1438 msgid "No stock location set" msgstr "Kein Lagerort gesetzt" -#: templates/js/translated/stock.js:1417 +#: templates/js/translated/stock.js:1596 msgid "Stock item is in production" msgstr "Lagerartikel wird produziert" -#: templates/js/translated/stock.js:1422 +#: templates/js/translated/stock.js:1601 msgid "Stock item assigned to sales order" msgstr "Lagerartikel wurde Auftrag zugewiesen" -#: templates/js/translated/stock.js:1425 +#: templates/js/translated/stock.js:1604 msgid "Stock item assigned to customer" msgstr "Lagerartikel wurde Kunden zugewiesen" -#: templates/js/translated/stock.js:1429 +#: templates/js/translated/stock.js:1608 msgid "Stock item has expired" msgstr "Lagerartikel ist abgelaufen" -#: templates/js/translated/stock.js:1431 +#: templates/js/translated/stock.js:1610 msgid "Stock item will expire soon" msgstr "Lagerartikel läuft demnächst ab" -#: templates/js/translated/stock.js:1437 +#: templates/js/translated/stock.js:1616 msgid "Serialized stock item has been allocated" msgstr "Serialisierter Lagerartikel wurde zugewiesen" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1618 msgid "Stock item has been fully allocated" msgstr "Lagerartikel wurde vollständig zugewiesen" -#: templates/js/translated/stock.js:1441 +#: templates/js/translated/stock.js:1620 msgid "Stock item has been partially allocated" msgstr "Lagerartikel wurde teilweise zugewiesen" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1625 msgid "Stock item has been installed in another item" msgstr "Lagerartikel in anderem Element verbaut" -#: templates/js/translated/stock.js:1453 +#: templates/js/translated/stock.js:1632 msgid "Stock item has been rejected" msgstr "Lagerartikel abgewiesen" -#: templates/js/translated/stock.js:1455 +#: templates/js/translated/stock.js:1634 msgid "Stock item is lost" msgstr "Lagerartikel verloren" -#: templates/js/translated/stock.js:1457 +#: templates/js/translated/stock.js:1636 msgid "Stock item is destroyed" msgstr "Lagerartikel zerstört" -#: templates/js/translated/stock.js:1461 +#: templates/js/translated/stock.js:1640 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "gelöscht" -#: templates/js/translated/stock.js:1511 +#: templates/js/translated/stock.js:1690 msgid "Stocktake" msgstr "Inventur" -#: templates/js/translated/stock.js:1584 +#: templates/js/translated/stock.js:1763 msgid "Supplier part not specified" msgstr "Zuliefererteil nicht angegeben" -#: templates/js/translated/stock.js:1622 +#: templates/js/translated/stock.js:1801 msgid "No stock items matching query" msgstr "Keine zur Anfrage passenden Lagerartikel" -#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691 +#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870 msgid "items" msgstr "Teile" -#: templates/js/translated/stock.js:1731 +#: templates/js/translated/stock.js:1910 msgid "batches" msgstr "lose" -#: templates/js/translated/stock.js:1758 +#: templates/js/translated/stock.js:1937 msgid "locations" msgstr "Lagerorte" -#: templates/js/translated/stock.js:1760 +#: templates/js/translated/stock.js:1939 msgid "Undefined location" msgstr "unbekannter Lagerort" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2138 msgid "Set Stock Status" msgstr "Status setzen" -#: templates/js/translated/stock.js:1959 +#: templates/js/translated/stock.js:2152 msgid "Select Status Code" msgstr "Status Code setzen" -#: templates/js/translated/stock.js:1960 +#: templates/js/translated/stock.js:2153 msgid "Status code must be selected" msgstr "Status Code muss ausgewählt werden" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2377 msgid "Invalid date" msgstr "Ungültiges Datum" -#: templates/js/translated/stock.js:2206 +#: templates/js/translated/stock.js:2399 msgid "Details" msgstr "Details" -#: templates/js/translated/stock.js:2231 +#: templates/js/translated/stock.js:2424 msgid "Location no longer exists" msgstr "Standort nicht mehr vorhanden" -#: templates/js/translated/stock.js:2250 +#: templates/js/translated/stock.js:2443 msgid "Purchase order no longer exists" msgstr "Bestellung existiert nicht mehr" -#: templates/js/translated/stock.js:2269 +#: templates/js/translated/stock.js:2462 msgid "Customer no longer exists" msgstr "Kunde existiert nicht mehr" -#: templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2480 msgid "Stock item no longer exists" msgstr "Lagerartikel existiert nicht mehr" -#: templates/js/translated/stock.js:2310 +#: templates/js/translated/stock.js:2503 msgid "Added" msgstr "Hinzugefügt" -#: templates/js/translated/stock.js:2318 +#: templates/js/translated/stock.js:2511 msgid "Removed" msgstr "Entfernt" -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2552 msgid "Edit tracking entry" msgstr "Tracking-Eintrag bearbeiten" -#: templates/js/translated/stock.js:2360 +#: templates/js/translated/stock.js:2553 msgid "Delete tracking entry" msgstr "Tracking-Eintrag löschen" -#: templates/js/translated/stock.js:2411 +#: templates/js/translated/stock.js:2604 msgid "No installed items" msgstr "Keine installierten Elemente" -#: templates/js/translated/stock.js:2462 +#: templates/js/translated/stock.js:2655 msgid "Uninstall Stock Item" msgstr "Lagerartikel entfernen" @@ -9061,18 +9263,26 @@ msgid "Move stock" msgstr "Bestand verschieben" #: templates/stock_table.html:52 +msgid "Merge selected stock items" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Merge stock" +msgstr "" + +#: templates/stock_table.html:53 msgid "Order selected items" msgstr "Ausgewählte Positionen bestellen" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change status" msgstr "Status ändern" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change stock status" msgstr "Status ändern" -#: templates/stock_table.html:57 +#: templates/stock_table.html:58 msgid "Delete selected items" msgstr "Ausgewählte Positionen löschen" @@ -9108,35 +9318,35 @@ msgstr "Berechtigungen" msgid "Important dates" msgstr "wichtige Daten" -#: users/models.py:189 +#: users/models.py:192 msgid "Permission set" msgstr "Berechtigung geändert" -#: users/models.py:197 +#: users/models.py:200 msgid "Group" msgstr "Gruppe" -#: users/models.py:200 +#: users/models.py:203 msgid "View" msgstr "Ansicht" -#: users/models.py:200 +#: users/models.py:203 msgid "Permission to view items" msgstr "Berechtigung Einträge anzuzeigen" -#: users/models.py:202 +#: users/models.py:205 msgid "Permission to add items" msgstr "Berechtigung Einträge zu erstellen" -#: users/models.py:204 +#: users/models.py:207 msgid "Change" msgstr "Ändern" -#: users/models.py:204 +#: users/models.py:207 msgid "Permissions to edit items" msgstr "Berechtigungen Einträge zu ändern" -#: users/models.py:206 +#: users/models.py:209 msgid "Permission to delete items" msgstr "Berechtigung Einträge zu löschen" diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po index 8882c2081b..0cc31b6263 100644 --- a/InvenTree/locale/el/LC_MESSAGES/django.po +++ b/InvenTree/locale/el/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-12-08 23:43+0000\n" -"PO-Revision-Date: 2021-12-08 23:46\n" +"POT-Creation-Date: 2021-12-21 02:57+0000\n" +"PO-Revision-Date: 2021-12-21 03:01\n" "Last-Translator: \n" "Language-Team: Greek\n" "Language: el_GR\n" @@ -34,50 +34,50 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93 +#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 build/forms.py:93 #: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: part/forms.py:108 templates/account/email_confirm.html:20 +#: part/forms.py:78 templates/account/email_confirm.html:20 #: templates/js/translated/forms.js:595 msgid "Confirm" msgstr "" -#: InvenTree/forms.py:136 +#: InvenTree/forms.py:142 msgid "Confirm delete" msgstr "" -#: InvenTree/forms.py:137 +#: InvenTree/forms.py:143 msgid "Confirm item deletion" msgstr "" -#: InvenTree/forms.py:168 +#: InvenTree/forms.py:174 msgid "Enter password" msgstr "" -#: InvenTree/forms.py:169 +#: InvenTree/forms.py:175 msgid "Enter new password" msgstr "" -#: InvenTree/forms.py:176 +#: InvenTree/forms.py:182 msgid "Confirm password" msgstr "" -#: InvenTree/forms.py:177 +#: InvenTree/forms.py:183 msgid "Confirm new password" msgstr "" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:215 msgid "Select Category" msgstr "" -#: InvenTree/forms.py:230 +#: InvenTree/forms.py:236 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:234 +#: InvenTree/forms.py:240 msgid "Email address confirmation" msgstr "" -#: InvenTree/forms.py:254 +#: InvenTree/forms.py:260 msgid "You must type the same email each time." msgstr "" @@ -123,7 +123,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:132 stock/models.py:1852 +#: InvenTree/models.py:132 stock/models.py:1967 #: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "" @@ -136,12 +136,12 @@ msgstr "" #: company/models.py:564 order/models.py:124 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:1258 +#: templates/js/translated/company.js:826 templates/js/translated/part.js:1260 msgid "Link" msgstr "" #: InvenTree/models.py:140 build/models.py:330 part/models.py:798 -#: stock/models.py:524 +#: stock/models.py:527 msgid "Link to external URL" msgstr "" @@ -153,10 +153,10 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213 -#: common/models.py:1214 part/models.py:2205 part/models.py:2225 +#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1219 +#: common/models.py:1220 part/models.py:2205 part/models.py:2225 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2341 +#: templates/js/translated/stock.js:2534 msgid "User" msgstr "" @@ -202,8 +202,8 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:268 #: templates/js/translated/company.js:638 templates/js/translated/part.js:506 -#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565 -#: templates/js/translated/stock.js:2134 +#: templates/js/translated/part.js:643 templates/js/translated/part.js:1567 +#: templates/js/translated/stock.js:2327 msgid "Name" msgstr "" @@ -212,23 +212,23 @@ msgstr "" #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70 +#: order/models.py:122 part/models.py:764 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:89 +#: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428 +#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540 #: templates/js/translated/build.js:1627 templates/js/translated/company.js:345 #: templates/js/translated/company.js:548 #: templates/js/translated/company.js:837 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 -#: templates/js/translated/part.js:565 templates/js/translated/part.js:933 -#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188 -#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653 -#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146 -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/part.js:565 templates/js/translated/part.js:935 +#: templates/js/translated/part.js:1020 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1586 templates/js/translated/part.js:1655 +#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339 +#: templates/js/translated/stock.js:2384 msgid "Description" msgstr "" @@ -248,83 +248,83 @@ msgstr "" msgid "Filename" msgstr "" -#: InvenTree/settings.py:689 +#: InvenTree/settings.py:698 msgid "German" msgstr "" -#: InvenTree/settings.py:690 +#: InvenTree/settings.py:699 msgid "Greek" msgstr "" -#: InvenTree/settings.py:691 +#: InvenTree/settings.py:700 msgid "English" msgstr "" -#: InvenTree/settings.py:692 +#: InvenTree/settings.py:701 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:693 +#: InvenTree/settings.py:702 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:694 +#: InvenTree/settings.py:703 msgid "French" msgstr "" -#: InvenTree/settings.py:695 +#: InvenTree/settings.py:704 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:696 +#: InvenTree/settings.py:705 msgid "Italian" msgstr "" -#: InvenTree/settings.py:697 +#: InvenTree/settings.py:706 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:698 +#: InvenTree/settings.py:707 msgid "Korean" msgstr "" -#: InvenTree/settings.py:699 +#: InvenTree/settings.py:708 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:700 +#: InvenTree/settings.py:709 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:701 +#: InvenTree/settings.py:710 msgid "Polish" msgstr "" -#: InvenTree/settings.py:702 +#: InvenTree/settings.py:711 msgid "Portugese" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:712 msgid "Russian" msgstr "" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:713 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:714 msgid "Thai" msgstr "" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:715 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:716 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:717 msgid "Chinese" msgstr "" @@ -341,7 +341,7 @@ msgid "InvenTree system health checks failed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 msgid "Pending" msgstr "" @@ -349,14 +349,14 @@ msgstr "" msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:319 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:313 +#: InvenTree/status_codes.py:318 msgid "Cancelled" msgstr "" @@ -370,7 +370,7 @@ msgstr "" msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:143 order/models.py:939 +#: InvenTree/status_codes.py:143 order/models.py:941 #: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255 msgid "Shipped" msgstr "" @@ -395,83 +395,87 @@ msgstr "" msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:269 +#: InvenTree/status_codes.py:272 msgid "Legacy stock tracking entry" msgstr "" -#: InvenTree/status_codes.py:271 +#: InvenTree/status_codes.py:274 msgid "Stock item created" msgstr "" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Edited stock item" msgstr "" -#: InvenTree/status_codes.py:274 +#: InvenTree/status_codes.py:277 msgid "Assigned serial number" msgstr "" -#: InvenTree/status_codes.py:276 +#: InvenTree/status_codes.py:279 msgid "Stock counted" msgstr "" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Stock manually added" msgstr "" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Stock manually removed" msgstr "" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Location changed" msgstr "" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Installed into assembly" msgstr "" -#: InvenTree/status_codes.py:283 +#: InvenTree/status_codes.py:286 msgid "Removed from assembly" msgstr "" -#: InvenTree/status_codes.py:285 +#: InvenTree/status_codes.py:288 msgid "Installed component item" msgstr "" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Removed component item" msgstr "" -#: InvenTree/status_codes.py:288 +#: InvenTree/status_codes.py:291 msgid "Split from parent item" msgstr "" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064 +msgid "Merged stock items" +msgstr "" + +#: InvenTree/status_codes.py:296 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:297 msgid "Returned from customer" msgstr "" -#: InvenTree/status_codes.py:294 +#: InvenTree/status_codes.py:299 msgid "Build order output created" msgstr "" -#: InvenTree/status_codes.py:295 +#: InvenTree/status_codes.py:300 msgid "Build order output completed" msgstr "" -#: InvenTree/status_codes.py:297 +#: InvenTree/status_codes.py:302 msgid "Received against purchase order" msgstr "" -#: InvenTree/status_codes.py:312 +#: InvenTree/status_codes.py:317 msgid "Production" msgstr "" @@ -575,16 +579,16 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1283 -#: build/templates/build/build_base.html:132 -#: build/templates/build/detail.html:35 common/models.py:1253 +#: build/forms.py:36 build/models.py:1286 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1259 #: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:794 order/models.py:1205 order/serializers.py:810 +#: order/models.py:796 order/models.py:1207 order/serializers.py:810 #: order/templates/order/order_wizard/match_parts.html:30 -#: 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 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:193 +#: part/forms.py:209 part/forms.py:225 part/models.py:2576 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:967 part/templates/part/detail.html:1053 +#: part/templates/part/detail.html:961 part/templates/part/detail.html:1047 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -592,10 +596,10 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:174 -#: stock/templates/stock/item_base.html:255 -#: stock/templates/stock/item_base.html:263 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443 +#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:261 +#: stock/templates/stock/item_base.html:269 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555 #: templates/js/translated/build.js:240 templates/js/translated/build.js:440 #: templates/js/translated/build.js:634 templates/js/translated/build.js:644 #: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367 @@ -604,10 +608,10 @@ msgstr "" #: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 #: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 #: templates/js/translated/order.js:2150 templates/js/translated/part.js:843 -#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919 -#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382 -#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326 -#: templates/js/translated/stock.js:2428 +#: templates/js/translated/part.js:1798 templates/js/translated/part.js:1921 +#: templates/js/translated/part.js:1999 templates/js/translated/stock.js:383 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750 +#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621 msgid "Quantity" msgstr "" @@ -616,8 +620,8 @@ msgid "Enter quantity for build output" msgstr "" #: build/forms.py:41 order/serializers.py:814 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:229 -#: templates/js/translated/stock.js:383 +#: stock/serializers.py:314 templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:384 msgid "Serial Numbers" msgstr "" @@ -661,7 +665,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:145 +#: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" msgstr "" @@ -671,11 +675,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:199 order/models.py:210 order/models.py:536 -#: order/models.py:801 part/models.py:2585 +#: order/models.py:803 part/models.py:2585 #: part/templates/part/bom_upload/match_parts.html:30 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124 +#: templates/js/translated/bom.js:547 templates/js/translated/build.js:1124 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "" @@ -695,7 +699,7 @@ msgstr "" #: build/models.py:225 build/templates/build/build_base.html:77 #: build/templates/build/detail.html:30 company/models.py:705 -#: order/models.py:854 order/models.py:928 +#: order/models.py:856 order/models.py:930 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357 #: part/models.py:2151 part/models.py:2167 part/models.py:2186 #: part/models.py:2203 part/models.py:2305 part/models.py:2427 @@ -706,20 +710,21 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 -#: templates/InvenTree/search.html:86 +#: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214 -#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326 +#: templates/js/translated/bom.js:505 templates/js/translated/build.js:625 #: templates/js/translated/build.js:993 templates/js/translated/build.js:1364 #: templates/js/translated/build.js:1632 templates/js/translated/company.js:489 #: templates/js/translated/company.js:746 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 -#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918 -#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166 -#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747 -#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416 +#: templates/js/translated/order.js:2128 templates/js/translated/part.js:920 +#: templates/js/translated/part.js:1001 templates/js/translated/part.js:1168 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719 +#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:2609 msgid "Part" msgstr "" @@ -776,7 +781,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:285 stock/models.py:528 +#: build/models.py:285 stock/models.py:531 msgid "Batch Code" msgstr "" @@ -830,27 +835,27 @@ msgstr "" #: build/models.py:329 build/templates/build/detail.html:102 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:354 stock/models.py:522 -#: stock/templates/stock/item_base.html:374 +#: part/templates/part/part_base.html:354 stock/models.py:525 +#: stock/templates/stock/item_base.html:372 msgid "External Link" 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:144 order/models.py:803 order/models.py:1049 +#: order/models.py:144 order/models.py:805 order/models.py:1051 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:925 -#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50 +#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594 -#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332 -#: stock/serializers.py:624 stock/serializers.py:711 +#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597 +#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332 +#: stock/serializers.py:638 stock/serializers.py:736 stock/serializers.py:868 #: stock/templates/stock/stock_sidebar.html:21 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711 #: templates/js/translated/company.js:842 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795 msgid "Notes" msgstr "" @@ -883,7 +888,7 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1133 order/models.py:1165 +#: build/models.py:1133 order/models.py:1167 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -891,51 +896,52 @@ msgstr "" msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1193 +#: build/models.py:1196 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1253 stock/templates/stock/item_base.html:346 -#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605 +#: build/models.py:1256 stock/templates/stock/item_base.html:344 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1605 #: templates/navbar.html:35 msgid "Build" msgstr "" -#: build/models.py:1254 +#: build/models.py:1257 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690 -#: order/serializers.py:708 stock/serializers.py:562 +#: build/models.py:1273 build/serializers.py:334 order/serializers.py:690 +#: order/serializers.py:708 stock/serializers.py:576 stock/serializers.py:694 #: stock/templates/stock/item_base.html:8 -#: stock/templates/stock/item_base.html:16 -#: stock/templates/stock/item_base.html:368 +#: stock/templates/stock/item_base.html:22 +#: stock/templates/stock/item_base.html:366 #: templates/js/translated/build.js:413 templates/js/translated/build.js:418 #: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277 +#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:2470 msgid "Stock Item" msgstr "" -#: build/models.py:1271 +#: build/models.py:1274 msgid "Source stock item" msgstr "" -#: build/models.py:1284 +#: build/models.py:1287 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1292 +#: build/models.py:1295 msgid "Install into" msgstr "" -#: build/models.py:1293 +#: build/models.py:1296 msgid "Destination stock item" msgstr "" -#: build/serializers.py:137 build/serializers.py:357 +#: build/serializers.py:137 build/serializers.py:363 msgid "Build Output" msgstr "" @@ -956,16 +962,16 @@ msgid "This build output is not fully allocated" msgstr "" #: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813 -#: stock/templates/stock/item_base.html:314 +#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:729 +#: stock/serializers.py:970 stock/templates/stock/item_base.html:312 #: templates/js/translated/barcode.js:384 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425 #: templates/js/translated/build.js:1032 templates/js/translated/order.js:508 #: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 #: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497 -#: templates/js/translated/stock.js:2218 +#: templates/js/translated/part.js:177 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411 msgid "Location" msgstr "" @@ -975,11 +981,11 @@ msgstr "" #: build/serializers.py:197 build/templates/build/build_base.html:137 #: build/templates/build/detail.html:63 order/models.py:552 -#: order/serializers.py:247 stock/templates/stock/item_base.html:180 +#: order/serializers.py:247 stock/templates/stock/item_base.html:186 #: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661 #: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472 -#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651 +#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637 msgid "Status" msgstr "" @@ -1000,33 +1006,33 @@ msgstr "" msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:319 +#: build/serializers.py:325 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:334 stock/serializers.py:569 +#: build/serializers.py:340 stock/serializers.py:583 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:348 order/models.py:277 order/serializers.py:240 -#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305 +#: build/serializers.py:354 order/models.py:277 order/serializers.py:240 +#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:390 order/serializers.py:741 +#: build/serializers.py:396 order/serializers.py:741 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:396 +#: build/serializers.py:402 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:403 +#: build/serializers.py:409 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:431 order/serializers.py:984 +#: build/serializers.py:437 order/serializers.py:984 msgid "Allocation items must be provided" msgstr "" @@ -1067,33 +1073,33 @@ msgstr "" msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:87 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:96 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:98 +#: build/templates/build/build_base.html:103 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:105 +#: build/templates/build/build_base.html:110 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Stock has not been fully allocated to this Build Order" msgstr "" @@ -1131,12 +1137,12 @@ msgid "Completed" msgstr "" #: build/templates/build/build_base.html:171 -#: build/templates/build/detail.html:95 order/models.py:925 -#: order/models.py:1021 order/templates/order/sales_order_base.html:9 +#: build/templates/build/detail.html:95 order/models.py:927 +#: order/models.py:1023 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:308 +#: stock/templates/stock/item_base.html:306 #: templates/js/translated/order.js:1218 msgid "Sales Order" msgstr "" @@ -1211,7 +1217,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "" @@ -1225,8 +1231,8 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:332 -#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451 +#: stock/templates/stock/item_base.html:330 +#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1278,7 +1284,7 @@ msgstr "" #: build/templates/build/detail.html:185 #: company/templates/company/detail.html:38 #: company/templates/company/detail.html:85 order/views.py:463 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order Parts" msgstr "" @@ -1347,7 +1353,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115 +#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115 #: stock/templates/stock/item.html:205 msgid "Edit Notes" msgstr "" @@ -1489,7 +1495,7 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:340 common/models.py:998 common/models.py:1206 +#: common/models.py:340 common/models.py:1004 common/models.py:1212 msgid "Settings key (must be unique - case insensitive" msgstr "" @@ -1651,7 +1657,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956 +#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:1068 #: templates/js/translated/table_filters.js:168 #: templates/js/translated/table_filters.js:416 msgid "Assembly" @@ -1953,256 +1959,264 @@ msgid "Group to which new users are assigned on registration" msgstr "" #: common/models.py:961 -msgid "Enable URL integration" +msgid "Enforce MFA" msgstr "" #: common/models.py:962 -msgid "Enable plugins to add URL routes" +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:967 +msgid "Enable URL integration" msgstr "" #: common/models.py:968 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:974 msgid "Enable navigation integration" msgstr "" -#: common/models.py:969 +#: common/models.py:975 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:975 +#: common/models.py:981 msgid "Enable global setting integration" msgstr "" -#: common/models.py:976 +#: common/models.py:982 msgid "Enable plugins to integrate into inventree global settings" msgstr "" -#: common/models.py:982 +#: common/models.py:988 msgid "Enable app integration" msgstr "" -#: common/models.py:983 +#: common/models.py:989 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1029 +#: common/models.py:1035 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1030 +#: common/models.py:1036 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1035 +#: common/models.py:1041 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1036 +#: common/models.py:1042 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1041 +#: common/models.py:1047 msgid "Show latest parts" msgstr "" -#: common/models.py:1042 +#: common/models.py:1048 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1047 +#: common/models.py:1053 msgid "Recent Part Count" msgstr "" -#: common/models.py:1048 +#: common/models.py:1054 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1054 +#: common/models.py:1060 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1055 +#: common/models.py:1061 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1060 +#: common/models.py:1066 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1061 +#: common/models.py:1067 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1066 +#: common/models.py:1072 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1067 +#: common/models.py:1073 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1072 +#: common/models.py:1078 msgid "Show low stock" msgstr "" -#: common/models.py:1073 +#: common/models.py:1079 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1078 +#: common/models.py:1084 msgid "Show depleted stock" msgstr "" -#: common/models.py:1079 +#: common/models.py:1085 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1084 +#: common/models.py:1090 msgid "Show needed stock" msgstr "" -#: common/models.py:1085 +#: common/models.py:1091 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1090 +#: common/models.py:1096 msgid "Show expired stock" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1096 +#: common/models.py:1102 msgid "Show stale stock" msgstr "" -#: common/models.py:1097 +#: common/models.py:1103 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1102 +#: common/models.py:1108 msgid "Show pending builds" msgstr "" -#: common/models.py:1103 +#: common/models.py:1109 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1108 +#: common/models.py:1114 msgid "Show overdue builds" msgstr "" -#: common/models.py:1109 +#: common/models.py:1115 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1114 +#: common/models.py:1120 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1115 +#: common/models.py:1121 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1120 +#: common/models.py:1126 msgid "Show overdue POs" msgstr "" -#: common/models.py:1121 +#: common/models.py:1127 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1126 +#: common/models.py:1132 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1127 +#: common/models.py:1133 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1132 +#: common/models.py:1138 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1133 +#: common/models.py:1139 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1139 +#: common/models.py:1145 msgid "Inline label display" msgstr "" -#: common/models.py:1140 +#: common/models.py:1146 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1146 +#: common/models.py:1152 msgid "Inline report display" msgstr "" -#: common/models.py:1147 +#: common/models.py:1153 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "Search Preview Results" msgstr "" -#: common/models.py:1154 +#: common/models.py:1160 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1160 +#: common/models.py:1166 msgid "Search Show Stock" msgstr "" -#: common/models.py:1161 +#: common/models.py:1167 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1167 +#: common/models.py:1173 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1168 +#: common/models.py:1174 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1174 +#: common/models.py:1180 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1175 +#: common/models.py:1181 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1181 +#: common/models.py:1187 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1182 +#: common/models.py:1188 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1188 +#: common/models.py:1194 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1189 +#: common/models.py:1195 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1254 company/forms.py:43 +#: common/models.py:1260 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1261 company/serializers.py:264 +#: common/models.py:1267 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801 +#: templates/js/translated/part.js:852 templates/js/translated/part.js:1803 msgid "Price" msgstr "" -#: common/models.py:1262 +#: common/models.py:1268 msgid "Unit price at specified quantity" msgstr "" @@ -2290,7 +2304,7 @@ msgid "Contact phone number" msgstr "" #: company/models.py:125 company/templates/company/company_base.html:129 -#: templates/InvenTree/settings/user.html:47 +#: templates/InvenTree/settings/user.html:48 msgid "Email" msgstr "" @@ -2347,8 +2361,8 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:320 company/models.py:535 stock/models.py:468 -#: stock/templates/stock/item_base.html:135 +#: company/models.py:320 company/models.py:535 stock/models.py:469 +#: stock/templates/stock/item_base.html:141 msgid "Base Part" msgstr "" @@ -2359,7 +2373,7 @@ msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:381 +#: stock/templates/stock/item_base.html:379 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:514 #: templates/js/translated/company.js:797 templates/js/translated/part.js:232 @@ -2393,7 +2407,7 @@ msgstr "" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:391 +#: stock/templates/stock/item_base.html:389 msgid "Manufacturer Part" msgstr "" @@ -2403,8 +2417,8 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:1845 templates/js/translated/company.js:644 -#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117 +#: stock/models.py:1960 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1296 msgid "Value" msgstr "" @@ -2431,7 +2445,7 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:224 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219 -#: part/bom.py:247 stock/templates/stock/item_base.html:398 +#: part/bom.py:247 stock/templates/stock/item_base.html:396 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:771 templates/js/translated/order.js:823 #: templates/js/translated/part.js:213 templates/js/translated/part.js:800 @@ -2479,8 +2493,8 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:491 stock/templates/stock/item_base.html:339 -#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612 +#: stock/models.py:493 stock/templates/stock/item_base.html:337 +#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1791 msgid "Packaging" msgstr "" @@ -2506,7 +2520,7 @@ msgstr "" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322 +#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322 msgid "Company" msgstr "" @@ -2548,11 +2562,11 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:83 order/models.py:547 -#: order/templates/order/sales_order_base.html:115 stock/models.py:509 -#: stock/models.py:510 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:291 +#: order/templates/order/sales_order_base.html:115 stock/models.py:512 +#: stock/models.py:513 stock/serializers.py:624 +#: stock/templates/stock/item_base.html:289 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2259 +#: templates/js/translated/stock.js:2452 msgid "Customer" msgstr "" @@ -2571,7 +2585,7 @@ msgstr "" #: company/templates/company/detail.html:15 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:124 +#: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" @@ -2590,14 +2604,14 @@ msgstr "" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:167 part/templates/part/detail.html:342 +#: part/templates/part/category.html:171 part/templates/part/detail.html:342 #: part/templates/part/detail.html:370 msgid "Options" msgstr "" #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order parts" msgstr "" @@ -2611,7 +2625,7 @@ msgstr "" msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109 +#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" @@ -2633,8 +2647,8 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203 +#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" @@ -2655,8 +2669,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223 +#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" @@ -2698,7 +2712,7 @@ msgid "Supplier List" msgstr "" #: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184 +#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 #: templates/navbar.html:46 msgid "Manufacturers" msgstr "" @@ -2706,7 +2720,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:67 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76 msgid "Order part" msgstr "" @@ -2728,7 +2742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 #: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:194 templates/navbar.html:45 +#: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "" @@ -2742,7 +2756,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:254 #: part/templates/part/detail.html:344 part/templates/part/detail.html:372 #: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31 -#: users/models.py:206 +#: users/models.py:209 msgid "Delete" msgstr "" @@ -2765,7 +2779,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:867 +#: part/templates/part/detail.html:861 msgid "Add Parameter" msgstr "" @@ -2794,9 +2808,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:476 -#: stock/templates/stock/item_base.html:403 -#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569 +#: company/templates/company/supplier_part.html:24 stock/models.py:477 +#: stock/templates/stock/item_base.html:401 +#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1748 msgid "Supplier Part" msgstr "" @@ -2816,13 +2830,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:20 stock/templates/stock/location.html:162 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:166 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163 -#: templates/js/translated/stock.js:359 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 +#: templates/js/translated/stock.js:360 msgid "New Stock Item" msgstr "" @@ -2832,7 +2846,7 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:68 +#: part/templates/part/detail.html:72 msgid "Order Part" msgstr "" @@ -2843,7 +2857,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:1717 +#: part/templates/part/prices.html:271 part/views.py:1713 msgid "Add Price Break" msgstr "" @@ -2851,11 +2865,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1779 +#: company/templates/company/supplier_part.html:224 part/views.py:1775 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1765 +#: company/templates/company/supplier_part.html:238 part/views.py:1761 msgid "Edit Price Break" msgstr "" @@ -2869,14 +2883,14 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:156 +#: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434 -#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059 -#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:1401 templates/navbar.html:28 +#: templates/js/translated/bom.js:328 templates/js/translated/part.js:434 +#: templates/js/translated/part.js:569 templates/js/translated/part.js:1061 +#: templates/js/translated/part.js:1222 templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:1580 templates/navbar.html:28 msgid "Stock" msgstr "" @@ -2895,11 +2909,11 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:133 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:159 +#: stock/templates/stock/location.html:137 +#: stock/templates/stock/location.html:151 +#: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "" @@ -2912,7 +2926,7 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:61 templates/InvenTree/search.html:214 +#: company/views.py:61 templates/InvenTree/search.html:208 #: templates/navbar.html:57 msgid "Customers" msgstr "" @@ -3121,7 +3135,7 @@ msgstr "" msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:562 order/models.py:1026 +#: order/models.py:562 order/models.py:1028 #: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429 msgid "Shipment Date" msgstr "" @@ -3130,7 +3144,7 @@ msgstr "" msgid "shipped by" msgstr "" -#: order/models.py:634 +#: order/models.py:635 msgid "Order cannot be completed as no parts have been assigned" msgstr "" @@ -3138,172 +3152,172 @@ msgstr "" msgid "Only a pending order can be marked as complete" msgstr "" -#: order/models.py:643 +#: order/models.py:642 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:647 +#: order/models.py:645 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:795 +#: order/models.py:797 msgid "Item quantity" msgstr "" -#: order/models.py:801 +#: order/models.py:803 msgid "Line item reference" msgstr "" -#: order/models.py:803 +#: order/models.py:805 msgid "Line item notes" msgstr "" -#: order/models.py:833 order/models.py:924 order/models.py:1020 +#: order/models.py:835 order/models.py:926 order/models.py:1022 #: templates/js/translated/order.js:1820 msgid "Order" msgstr "" -#: order/models.py:834 order/templates/order/order_base.html:9 +#: order/models.py:836 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:353 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/order.js:801 templates/js/translated/part.js:775 -#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240 +#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433 msgid "Purchase Order" msgstr "" -#: order/models.py:855 +#: order/models.py:857 msgid "Supplier part" msgstr "" -#: order/models.py:862 order/templates/order/order_base.html:163 +#: order/models.py:864 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:847 templates/js/translated/part.js:873 #: templates/js/translated/table_filters.js:317 msgid "Received" msgstr "" -#: order/models.py:863 +#: order/models.py:865 msgid "Number of items received" msgstr "" -#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:360 -#: templates/js/translated/stock.js:1600 +#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:358 +#: templates/js/translated/stock.js:1779 msgid "Purchase Price" msgstr "" -#: order/models.py:871 +#: order/models.py:873 msgid "Unit purchase price" msgstr "" -#: order/models.py:879 +#: order/models.py:881 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:934 part/templates/part/part_pricing.html:112 +#: order/models.py:936 part/templates/part/part_pricing.html:112 #: part/templates/part/prices.html:116 part/templates/part/prices.html:284 msgid "Sale Price" msgstr "" -#: order/models.py:935 +#: order/models.py:937 msgid "Unit sale price" msgstr "" -#: order/models.py:940 +#: order/models.py:942 msgid "Shipped quantity" msgstr "" -#: order/models.py:1027 +#: order/models.py:1029 msgid "Date of shipment" msgstr "" -#: order/models.py:1034 +#: order/models.py:1036 msgid "Checked By" msgstr "" -#: order/models.py:1035 +#: order/models.py:1037 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1043 +#: order/models.py:1045 msgid "Shipment number" msgstr "" -#: order/models.py:1050 +#: order/models.py:1052 msgid "Shipment notes" msgstr "" -#: order/models.py:1057 +#: order/models.py:1059 msgid "Tracking Number" msgstr "" -#: order/models.py:1058 +#: order/models.py:1060 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1068 +#: order/models.py:1070 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1071 +#: order/models.py:1073 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1147 order/models.py:1149 +#: order/models.py:1149 order/models.py:1151 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1153 +#: order/models.py:1155 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1155 +#: order/models.py:1157 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1158 +#: order/models.py:1160 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1162 +#: order/models.py:1164 msgid "StockItem is over-allocated" msgstr "" -#: order/models.py:1168 order/serializers.py:734 +#: order/models.py:1170 order/serializers.py:734 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1171 +#: order/models.py:1173 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1172 +#: order/models.py:1174 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1180 +#: order/models.py:1182 msgid "Line" msgstr "" -#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953 +#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953 #: templates/js/translated/model_renderers.js:251 msgid "Shipment" msgstr "" -#: order/models.py:1189 +#: order/models.py:1191 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1201 +#: order/models.py:1203 msgid "Item" msgstr "" -#: order/models.py:1202 +#: order/models.py:1204 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1205 +#: order/models.py:1207 msgid "Enter stock allocation quantity" msgstr "" @@ -3530,7 +3544,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/build.js:245 templates/js/translated/build.js:1256 #: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:592 +#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761 msgid "Remove row" msgstr "" @@ -3722,7 +3736,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188 +#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1188 msgid "Actions" msgstr "" @@ -3797,24 +3811,24 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:760 +#: part/api.py:777 msgid "Must be greater than zero" msgstr "" -#: part/api.py:764 +#: part/api.py:781 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:779 +#: part/api.py:796 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833 +#: part/api.py:827 part/api.py:831 part/api.py:846 part/api.py:850 msgid "This field is required" msgstr "" #: part/bom.py:125 part/models.py:81 part/models.py:816 -#: part/templates/part/category.html:104 part/templates/part/part_base.html:338 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "" @@ -3822,99 +3836,43 @@ msgstr "" msgid "Available Stock" msgstr "" -#: part/forms.py:63 -msgid "File Format" -msgstr "" - -#: part/forms.py:63 -msgid "Select output file format" -msgstr "" - -#: part/forms.py:65 -msgid "Cascading" -msgstr "" - -#: part/forms.py:65 -msgid "Download cascading / multi-level BOM" -msgstr "" - -#: part/forms.py:67 -msgid "Levels" -msgstr "" - -#: part/forms.py:67 -msgid "Select maximum number of BOM levels to export (0 = all levels)" -msgstr "" - -#: part/forms.py:69 -msgid "Include Parameter Data" -msgstr "" - -#: part/forms.py:69 -msgid "Include part parameters data in exported BOM" -msgstr "" - -#: part/forms.py:71 -msgid "Include Stock Data" -msgstr "" - -#: part/forms.py:71 -msgid "Include part stock data in exported BOM" -msgstr "" - -#: part/forms.py:73 -msgid "Include Manufacturer Data" -msgstr "" - -#: part/forms.py:73 -msgid "Include part manufacturer data in exported BOM" -msgstr "" - -#: part/forms.py:75 -msgid "Include Supplier Data" -msgstr "" - -#: part/forms.py:75 -msgid "Include part supplier data in exported BOM" -msgstr "" - -#: part/forms.py:96 part/models.py:2427 +#: part/forms.py:66 part/models.py:2427 msgid "Parent Part" msgstr "" -#: part/forms.py:97 part/templates/part/bom_duplicate.html:7 +#: part/forms.py:67 part/templates/part/bom_duplicate.html:7 msgid "Select parent part to copy BOM from" msgstr "" -#: part/forms.py:103 +#: part/forms.py:73 msgid "Clear existing BOM items" msgstr "" -#: part/forms.py:109 +#: part/forms.py:79 msgid "Confirm BOM duplication" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "validate" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "Confirm that the BOM is correct" msgstr "" -#: part/forms.py:163 +#: part/forms.py:133 msgid "Select part category" msgstr "" -#: part/forms.py:200 +#: part/forms.py:170 msgid "Add parameter template to same level categories" msgstr "" -#: part/forms.py:204 +#: part/forms.py:174 msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:224 +#: part/forms.py:194 msgid "Input quantity for price calculation" msgstr "" @@ -3930,24 +3888,24 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11 +#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:96 part/templates/part/category.html:124 -#: templates/InvenTree/search.html:101 templates/stats.html:84 +#: part/models.py:96 part/templates/part/category.html:128 +#: templates/InvenTree/search.html:95 templates/stats.html:84 #: users/models.py:40 msgid "Part Categories" msgstr "" #: part/models.py:358 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:13 part/templates/part/category.html:129 -#: part/templates/part/category.html:149 +#: part/templates/part/category.html:17 part/templates/part/category.html:133 +#: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1597 templates/navbar.html:21 +#: templates/js/translated/part.js:1599 templates/navbar.html:21 #: templates/stats.html:80 templates/stats.html:89 users/models.py:41 msgid "Parts" msgstr "" @@ -4001,7 +3959,7 @@ msgstr "" msgid "Part description" msgstr "" -#: part/models.py:770 part/templates/part/category.html:82 +#: part/models.py:770 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "" @@ -4014,7 +3972,7 @@ msgstr "" #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 #: templates/InvenTree/settings/settings.html:172 -#: templates/js/translated/part.js:1202 +#: templates/js/translated/part.js:1204 msgid "Category" msgstr "" @@ -4023,8 +3981,8 @@ msgid "Part category" msgstr "" #: part/models.py:784 part/templates/part/part_base.html:274 -#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155 -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/part.js:557 templates/js/translated/part.js:1157 +#: templates/js/translated/stock.js:1552 msgid "IPN" msgstr "" @@ -4145,8 +4103,8 @@ msgstr "" msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2310 templates/js/translated/part.js:1648 -#: templates/js/translated/stock.js:1097 +#: part/models.py:2310 templates/js/translated/part.js:1650 +#: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "" @@ -4162,7 +4120,7 @@ msgstr "" msgid "Enter description for this test" msgstr "" -#: part/models.py:2322 templates/js/translated/part.js:1657 +#: part/models.py:2322 templates/js/translated/part.js:1659 #: templates/js/translated/table_filters.js:281 msgid "Required" msgstr "" @@ -4171,7 +4129,7 @@ msgstr "" msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2328 templates/js/translated/part.js:1665 +#: part/models.py:2328 templates/js/translated/part.js:1667 msgid "Requires Value" msgstr "" @@ -4179,7 +4137,7 @@ msgstr "" msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2334 templates/js/translated/part.js:1672 +#: part/models.py:2334 templates/js/translated/part.js:1674 msgid "Requires Attachment" msgstr "" @@ -4241,8 +4199,8 @@ msgstr "" msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2578 templates/js/translated/bom.js:454 -#: templates/js/translated/bom.js:528 +#: part/models.py:2578 templates/js/translated/bom.js:566 +#: templates/js/translated/bom.js:640 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" @@ -4275,8 +4233,8 @@ msgstr "" msgid "BOM line checksum" msgstr "" -#: part/models.py:2594 templates/js/translated/bom.js:545 -#: templates/js/translated/bom.js:552 +#: part/models.py:2594 templates/js/translated/bom.js:657 +#: templates/js/translated/bom.js:664 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" @@ -4286,7 +4244,7 @@ msgstr "" msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2600 templates/js/translated/bom.js:537 +#: part/models.py:2600 templates/js/translated/bom.js:649 msgid "Allow Variants" msgstr "" @@ -4406,100 +4364,100 @@ msgstr "" msgid "This will validate each line in the BOM." msgstr "" -#: part/templates/part/category.html:24 part/templates/part/category.html:28 +#: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:32 +#: part/templates/part/category.html:36 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:38 +#: part/templates/part/category.html:42 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:43 +#: part/templates/part/category.html:47 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:44 +#: part/templates/part/category.html:48 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:52 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:53 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:57 +#: part/templates/part/category.html:61 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:58 +#: part/templates/part/category.html:62 msgid "New Category" msgstr "" -#: part/templates/part/category.html:76 part/templates/part/category.html:89 +#: part/templates/part/category.html:80 part/templates/part/category.html:93 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:90 +#: part/templates/part/category.html:94 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:110 part/templates/part/category.html:201 +#: part/templates/part/category.html:114 part/templates/part/category.html:205 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:115 +#: part/templates/part/category.html:119 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:152 +#: part/templates/part/category.html:156 msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:153 part/templates/part/category.html:177 +#: part/templates/part/category.html:157 part/templates/part/category.html:181 msgid "Export" msgstr "" -#: part/templates/part/category.html:156 +#: part/templates/part/category.html:160 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:157 templates/js/translated/bom.js:40 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 msgid "New Part" msgstr "" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set category" msgstr "" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:175 +#: part/templates/part/category.html:179 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:177 +#: part/templates/part/category.html:181 msgid "Export Data" msgstr "" -#: part/templates/part/category.html:191 +#: part/templates/part/category.html:195 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:268 +#: part/templates/part/category.html:288 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:295 +#: part/templates/part/category.html:315 msgid "Create Part" msgstr "" @@ -4566,24 +4524,24 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:17 +#: part/templates/part/detail.html:21 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:29 +#: part/templates/part/detail.html:33 #, python-format msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:39 +#: part/templates/part/detail.html:43 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:44 +#: part/templates/part/detail.html:48 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:101 +#: part/templates/part/detail.html:105 msgid "Sales Order Allocations" msgstr "" @@ -4619,7 +4577,7 @@ msgstr "" msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:242 +#: part/templates/part/detail.html:242 templates/js/translated/bom.js:70 msgid "Export BOM" msgstr "" @@ -4683,38 +4641,38 @@ msgstr "" msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:651 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:659 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:760 +#: part/templates/part/detail.html:754 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:817 +#: part/templates/part/detail.html:811 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:930 +#: part/templates/part/detail.html:924 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:942 +#: part/templates/part/detail.html:936 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:954 +#: part/templates/part/detail.html:948 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1043 +#: part/templates/part/detail.html:1037 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4745,20 +4703,20 @@ msgid "Subscribe to notifications for this part" msgstr "" #: part/templates/part/part_base.html:43 -#: stock/templates/stock/item_base.html:28 -#: stock/templates/stock/location.html:29 +#: stock/templates/stock/item_base.html:34 +#: stock/templates/stock/location.html:33 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:45 -#: stock/templates/stock/item_base.html:32 -#: stock/templates/stock/location.html:31 templates/qr_button.html:1 +#: stock/templates/stock/item_base.html:38 +#: stock/templates/stock/location.html:35 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:48 -#: stock/templates/stock/location.html:32 +#: stock/templates/stock/item_base.html:54 +#: stock/templates/stock/location.html:36 msgid "Print Label" msgstr "" @@ -4767,8 +4725,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:103 -#: stock/templates/stock/location.html:40 +#: stock/templates/stock/item_base.html:109 +#: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "" @@ -4848,7 +4806,7 @@ msgstr "" msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1235 +#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1237 msgid "On Order" msgstr "" @@ -4864,12 +4822,12 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:566 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1066 -#: templates/js/translated/part.js:1239 +#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1068 +#: templates/js/translated/part.js:1241 msgid "Building" msgstr "" @@ -4882,7 +4840,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:159 +#: stock/templates/stock/item_base.html:165 msgid "Search for serial number" msgstr "" @@ -4921,7 +4879,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:520 +#: templates/js/translated/bom.js:632 msgid "No supplier pricing available" msgstr "" @@ -5036,7 +4994,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626 msgid "Supplier Cost" msgstr "" @@ -5058,7 +5016,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1788 +#: part/templates/part/prices.html:215 part/views.py:1784 msgid "Add Internal Price Break" msgstr "" @@ -5078,9 +5036,9 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476 -#: templates/js/translated/part.js:436 templates/js/translated/part.js:1056 -#: templates/js/translated/part.js:1243 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588 +#: templates/js/translated/part.js:436 templates/js/translated/part.js:1058 +#: templates/js/translated/part.js:1245 msgid "No Stock" msgstr "" @@ -5154,67 +5112,67 @@ msgstr "" msgid "Match Parts" msgstr "" -#: part/views.py:1196 +#: part/views.py:1195 msgid "Export Bill of Materials" msgstr "" -#: part/views.py:1248 +#: part/views.py:1244 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1255 +#: part/views.py:1251 msgid "Part was deleted" msgstr "" -#: part/views.py:1264 +#: part/views.py:1260 msgid "Part Pricing" msgstr "" -#: part/views.py:1413 +#: part/views.py:1409 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1423 +#: part/views.py:1419 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1430 +#: part/views.py:1426 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1489 templates/js/translated/part.js:313 +#: part/views.py:1485 templates/js/translated/part.js:313 msgid "Edit Part Category" msgstr "" -#: part/views.py:1527 +#: part/views.py:1523 msgid "Delete Part Category" msgstr "" -#: part/views.py:1533 +#: part/views.py:1529 msgid "Part category was deleted" msgstr "" -#: part/views.py:1542 +#: part/views.py:1538 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1643 +#: part/views.py:1639 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1699 +#: part/views.py:1695 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1721 +#: part/views.py:1717 msgid "Added new price break" msgstr "" -#: part/views.py:1797 +#: part/views.py:1793 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1805 +#: part/views.py:1801 msgid "Delete Internal Price Break" msgstr "" @@ -5388,12 +5346,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:514 stock/templates/stock/item_base.html:149 +#: stock/models.py:517 stock/templates/stock/item_base.html:155 #: templates/js/translated/build.js:238 templates/js/translated/build.js:642 #: templates/js/translated/build.js:1018 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415 msgid "Serial Number" msgstr "" @@ -5402,19 +5360,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:1833 +#: stock/models.py:1948 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:1839 +#: stock/models.py:1954 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:49 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367 msgid "Date" msgstr "" @@ -5432,17 +5390,18 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434 +#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748 +#: templates/js/translated/stock.js:2627 msgid "Serial" msgstr "" -#: stock/api.py:446 +#: stock/api.py:478 msgid "Quantity is required" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571 -#: stock/templates/stock/item_base.html:186 -#: templates/js/translated/stock.js:1522 +#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574 +#: stock/templates/stock/item_base.html:192 +#: templates/js/translated/stock.js:1701 msgid "Expiry Date" msgstr "" @@ -5490,12 +5449,12 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:60 stock/models.py:608 -#: stock/templates/stock/item_base.html:417 +#: stock/models.py:60 stock/models.py:611 +#: stock/templates/stock/item_base.html:415 msgid "Owner" msgstr "" -#: stock/models.py:61 stock/models.py:609 +#: stock/models.py:61 stock/models.py:612 msgid "Select Owner" msgstr "" @@ -5528,150 +5487,190 @@ msgstr "" msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:460 +#: stock/models.py:461 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:470 msgid "Base part" msgstr "" -#: stock/models.py:477 +#: stock/models.py:478 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:482 stock/templates/stock/location.html:12 +#: stock/models.py:484 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:485 +#: stock/models.py:487 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:492 +#: stock/models.py:494 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:497 stock/templates/stock/item_base.html:299 +#: stock/models.py:500 stock/templates/stock/item_base.html:297 msgid "Installed In" msgstr "" -#: stock/models.py:500 +#: stock/models.py:503 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:516 +#: stock/models.py:519 msgid "Serial number for this item" msgstr "" -#: stock/models.py:530 +#: stock/models.py:533 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:534 +#: stock/models.py:537 msgid "Stock Quantity" msgstr "" -#: stock/models.py:543 +#: stock/models.py:546 msgid "Source Build" msgstr "" -#: stock/models.py:545 +#: stock/models.py:548 msgid "Build for this stock item" msgstr "" -#: stock/models.py:556 +#: stock/models.py:559 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:559 +#: stock/models.py:562 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:565 +#: stock/models.py:568 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:572 +#: stock/models.py:575 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete on deplete" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:595 stock/templates/stock/item.html:111 +#: stock/models.py:598 stock/templates/stock/item.html:111 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:604 +#: stock/models.py:607 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1072 +#: stock/models.py:1068 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1078 +#: stock/models.py:1074 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1084 +#: stock/models.py:1080 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1087 +#: stock/models.py:1083 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1090 +#: stock/models.py:1086 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1097 +#: stock/models.py:1093 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1255 +#: stock/models.py:1164 +msgid "Stock item has been assigned to a sales order" +msgstr "" + +#: stock/models.py:1167 +msgid "Stock item is installed in another item" +msgstr "" + +#: stock/models.py:1170 +msgid "Stock item contains other items" +msgstr "" + +#: stock/models.py:1173 +msgid "Stock item has been assigned to a customer" +msgstr "" + +#: stock/models.py:1176 +msgid "Stock item is currently in production" +msgstr "" + +#: stock/models.py:1179 +msgid "Serialized stock cannot be merged" +msgstr "" + +#: stock/models.py:1186 stock/serializers.py:773 +msgid "Duplicate stock items" +msgstr "" + +#: stock/models.py:1190 +msgid "Stock items must refer to the same part" +msgstr "" + +#: stock/models.py:1194 +msgid "Stock items must refer to the same supplier part" +msgstr "" + +#: stock/models.py:1198 +msgid "Stock status codes must match" +msgstr "" + +#: stock/models.py:1369 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1753 +#: stock/models.py:1868 msgid "Entry notes" msgstr "" -#: stock/models.py:1810 +#: stock/models.py:1925 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1931 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1834 +#: stock/models.py:1949 msgid "Test name" msgstr "" -#: stock/models.py:1840 templates/js/translated/table_filters.js:271 +#: stock/models.py:1955 templates/js/translated/table_filters.js:271 msgid "Test result" msgstr "" -#: stock/models.py:1846 +#: stock/models.py:1961 msgid "Test output value" msgstr "" -#: stock/models.py:1853 +#: stock/models.py:1968 msgid "Test result attachment" msgstr "" -#: stock/models.py:1859 +#: stock/models.py:1974 msgid "Test notes" msgstr "" @@ -5696,7 +5695,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:814 +#: stock/serializers.py:326 stock/serializers.py:730 stock/serializers.py:971 msgid "Destination stock location" msgstr "" @@ -5708,39 +5707,63 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:573 +#: stock/serializers.py:587 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:577 +#: stock/serializers.py:591 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:581 +#: stock/serializers.py:595 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:611 +#: stock/serializers.py:625 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:617 +#: stock/serializers.py:631 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:639 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:635 stock/serializers.py:722 +#: stock/serializers.py:649 stock/serializers.py:879 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:684 +#: stock/serializers.py:737 +msgid "Stock merging notes" +msgstr "" + +#: stock/serializers.py:742 +msgid "Allow mismatched suppliers" +msgstr "" + +#: stock/serializers.py:743 +msgid "Allow stock items with different supplier parts to be merged" +msgstr "" + +#: stock/serializers.py:748 +msgid "Allow mismatched status" +msgstr "" + +#: stock/serializers.py:749 +msgid "Allow stock items with different status codes to be merged" +msgstr "" + +#: stock/serializers.py:759 +msgid "At least two stock items must be provided" +msgstr "" + +#: stock/serializers.py:841 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:712 +#: stock/serializers.py:869 msgid "Stock transaction notes" msgstr "" @@ -5765,7 +5788,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50 +#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:56 msgid "Test Report" msgstr "" @@ -5797,197 +5820,189 @@ msgstr "" msgid "Delete Test Result" msgstr "" -#: stock/templates/stock/item_base.html:35 +#: stock/templates/stock/item_base.html:41 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:37 +#: stock/templates/stock/item_base.html:43 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24 +#: stock/templates/stock/item_base.html:45 templates/stock_table.html:24 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:46 +#: stock/templates/stock/item_base.html:52 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:71 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:47 templates/stock_table.html:50 +#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/location.html:51 templates/stock_table.html:50 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:78 templates/stock_table.html:48 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49 +#: stock/templates/stock/item_base.html:81 templates/stock_table.html:49 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:84 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:53 +#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/location.html:57 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53 +#: stock/templates/stock/item_base.html:91 templates/stock_table.html:54 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:94 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:108 +#: stock/templates/stock/item_base.html:114 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/item_base.html:117 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:119 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:116 +#: stock/templates/stock/item_base.html:122 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/stock.js:1535 +#: stock/templates/stock/item_base.html:205 +#: templates/js/translated/stock.js:1714 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:208 +#: stock/templates/stock/item_base.html:214 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:226 +#: stock/templates/stock/item_base.html:232 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:239 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:234 +#: stock/templates/stock/item_base.html:240 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:247 +#: stock/templates/stock/item_base.html:253 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:261 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:263 +#: stock/templates/stock/item_base.html:269 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:269 +#: stock/templates/stock/item_base.html:275 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:273 -msgid "This stock item cannot be deleted as it has child items" -msgstr "" - -#: stock/templates/stock/item_base.html:277 -msgid "This stock item will be automatically deleted when all stock is depleted." -msgstr "" - -#: stock/templates/stock/item_base.html:318 +#: stock/templates/stock/item_base.html:316 #: templates/js/translated/build.js:1040 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:325 +#: stock/templates/stock/item_base.html:323 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:367 +#: stock/templates/stock/item_base.html:365 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:385 +#: stock/templates/stock/item_base.html:383 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:410 +#: stock/templates/stock/item_base.html:408 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:500 +#: stock/templates/stock/item_base.html:498 msgid "Edit Stock Status" msgstr "" @@ -6041,59 +6056,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:37 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:65 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:67 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:65 +#: stock/templates/stock/location.html:69 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:79 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:76 +#: stock/templates/stock/location.html:80 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:95 -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:99 +#: stock/templates/stock/location.html:105 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:102 +#: stock/templates/stock/location.html:106 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:119 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:175 +#: stock/templates/stock/location.html:132 +#: stock/templates/stock/location.html:179 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:142 templates/InvenTree/search.html:170 +#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "" -#: stock/templates/stock/location.html:182 templates/stock_table.html:30 +#: stock/templates/stock/location.html:186 templates/stock_table.html:30 msgid "Printing Actions" msgstr "" -#: stock/templates/stock/location.html:186 templates/stock_table.html:34 +#: stock/templates/stock/location.html:190 templates/stock_table.html:34 msgid "Print labels" msgstr "" @@ -6178,7 +6193,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:887 +#: stock/views.py:727 templates/js/translated/stock.js:1066 msgid "Confirm stock adjustment" msgstr "" @@ -6186,7 +6201,7 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:323 +#: stock/views.py:760 templates/js/translated/stock.js:324 msgid "Edit Stock Item" msgstr "" @@ -6198,7 +6213,7 @@ msgstr "" msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:303 +#: stock/views.py:1153 templates/js/translated/stock.js:304 msgid "Duplicate Stock Item" msgstr "" @@ -6314,10 +6329,6 @@ msgstr "" msgid "Search Results" msgstr "" -#: templates/InvenTree/search.html:22 -msgid "Enter a search query" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6363,7 +6374,7 @@ msgstr "" msgid "Login Settings" msgstr "" -#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5 +#: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5 msgid "Signup" msgstr "" @@ -6648,7 +6659,7 @@ msgstr "" msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:55 +#: templates/InvenTree/settings/user.html:54 msgid "The following email addresses are associated with your account:" msgstr "" @@ -6673,145 +6684,193 @@ msgid "Re-send Verification" msgstr "" #: templates/InvenTree/settings/user.html:87 -#: templates/InvenTree/settings/user.html:154 +#: templates/InvenTree/settings/user.html:149 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:94 +#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:201 msgid "Warning:" msgstr "" -#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:96 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:102 +#: templates/InvenTree/settings/user.html:104 msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:112 -msgid "Enter e-mail address" -msgstr "" - -#: templates/InvenTree/settings/user.html:114 +#: templates/InvenTree/settings/user.html:109 msgid "Add Email" msgstr "" -#: templates/InvenTree/settings/user.html:124 +#: templates/InvenTree/settings/user.html:117 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:129 +#: templates/InvenTree/settings/user.html:122 msgid "You can sign in to your account using any of the following third party accounts:" msgstr "" -#: templates/InvenTree/settings/user.html:163 -msgid "There are no social network accounts connected to your InvenTree account" +#: templates/InvenTree/settings/user.html:157 +msgid "You currently have no social network accounts connected to this account." msgstr "" -#: templates/InvenTree/settings/user.html:168 +#: templates/InvenTree/settings/user.html:162 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:179 -msgid "Active Sessions" +#: templates/InvenTree/settings/user.html:172 +msgid "Multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:185 -msgid "Log out active sessions (except this one)" +#: templates/InvenTree/settings/user.html:177 +msgid "You have these factors available:" msgstr "" -#: templates/InvenTree/settings/user.html:186 -msgid "Log Out Active Sessions" +#: templates/InvenTree/settings/user.html:187 +msgid "TOTP" 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" +#: templates/InvenTree/settings/user.html:193 +msgid "Static" msgstr "" #: templates/InvenTree/settings/user.html:202 -msgid "Last Activity" +msgid "You currently do not have any factors set up." msgstr "" -#: templates/InvenTree/settings/user.html:211 -#, python-format -msgid "%(time)s ago (this session)" +#: templates/InvenTree/settings/user.html:209 +msgid "Change factors" msgstr "" -#: templates/InvenTree/settings/user.html:213 -#, python-format -msgid "%(time)s ago" +#: templates/InvenTree/settings/user.html:210 +msgid "Setup multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:224 -msgid "Do you really want to remove the selected email address?" +#: templates/InvenTree/settings/user.html:212 +msgid "Remove multifactor" msgstr "" +#: templates/InvenTree/settings/user.html:219 #: templates/InvenTree/settings/user_display.html:25 msgid "Theme Settings" msgstr "" +#: templates/InvenTree/settings/user.html:227 #: templates/InvenTree/settings/user_display.html:35 msgid "Select theme" msgstr "" +#: templates/InvenTree/settings/user.html:237 #: templates/InvenTree/settings/user_display.html:46 msgid "Set Theme" msgstr "" +#: templates/InvenTree/settings/user.html:246 #: templates/InvenTree/settings/user_display.html:54 msgid "Language Settings" msgstr "" +#: templates/InvenTree/settings/user.html:254 #: templates/InvenTree/settings/user_display.html:63 msgid "Select language" msgstr "" +#: templates/InvenTree/settings/user.html:270 #: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" +#: templates/InvenTree/settings/user.html:272 #: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" +#: templates/InvenTree/settings/user.html:279 #: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" +#: templates/InvenTree/settings/user.html:281 #: templates/InvenTree/settings/user_display.html:91 msgid "Some languages are not complete" msgstr "" +#: templates/InvenTree/settings/user.html:283 #: 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.html:285 #: templates/InvenTree/settings/user_display.html:95 msgid "Show them too" msgstr "" +#: templates/InvenTree/settings/user.html:292 #: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" +#: templates/InvenTree/settings/user.html:293 +#, python-format +msgid "Native language translation of the\n" +" InvenTree web application is community contributed via crowdin. Contributions are\n" +" welcomed and encouraged." +msgstr "" + +#: templates/InvenTree/settings/user.html:302 +msgid "Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:308 +msgid "Log out active sessions (except this one)" +msgstr "" + +#: templates/InvenTree/settings/user.html:309 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:318 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:319 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:323 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:324 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:325 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:334 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:336 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:348 +msgid "Do you really want to remove the selected email address?" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +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." @@ -6830,7 +6889,7 @@ msgid "InvenTree Version Information" msgstr "" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53 +#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53 #: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662 #: templates/js/translated/modals.js:965 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 @@ -7006,6 +7065,71 @@ msgstr "" msgid "View in administration panel" msgstr "" +#: templates/allauth_2fa/authenticate.html:5 +msgid "Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:12 +msgid "Authenticate" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:6 +msgid "Two-Factor Authentication Backup Tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:17 +msgid "Backup tokens have been generated, but are not revealed here for security reasons. Press the button below to generate new ones." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:20 +msgid "No tokens. Press the button below to generate some." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:27 +msgid "Generate backup tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:31 +#: templates/allauth_2fa/setup.html:40 +msgid "back to settings" +msgstr "" + +#: templates/allauth_2fa/remove.html:6 +msgid "Disable Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/remove.html:9 +msgid "Are you sure?" +msgstr "" + +#: templates/allauth_2fa/remove.html:14 +msgid "Disable Two-Factor" +msgstr "" + +#: templates/allauth_2fa/setup.html:6 +msgid "Setup Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/setup.html:10 +msgid "Step 1" +msgstr "" + +#: templates/allauth_2fa/setup.html:14 +msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." +msgstr "" + +#: templates/allauth_2fa/setup.html:23 +msgid "Step 2" +msgstr "" + +#: templates/allauth_2fa/setup.html:27 +msgid "Input a token generated by the app:" +msgstr "" + +#: templates/allauth_2fa/setup.html:35 +msgid "Verify" +msgstr "" + #: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 msgid "Add Link" msgstr "" @@ -7044,13 +7168,13 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:1103 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134 +#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1134 #: templates/js/translated/build.js:1755 #: templates/js/translated/table_filters.js:178 msgid "Available" @@ -7239,7 +7363,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018 msgid "Remove stock item" msgstr "" @@ -7281,91 +7405,153 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:184 +#: templates/js/translated/bom.js:36 +msgid "Download BOM Template" +msgstr "" + +#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510 +msgid "Format" +msgstr "" + +#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511 +msgid "Select file format" +msgstr "" + +#: templates/js/translated/bom.js:81 +msgid "Cascading" +msgstr "" + +#: templates/js/translated/bom.js:82 +msgid "Download cascading / multi-level BOM" +msgstr "" + +#: templates/js/translated/bom.js:87 +msgid "Levels" +msgstr "" + +#: templates/js/translated/bom.js:88 +msgid "Select maximum number of BOM levels to export (0 = all levels)" +msgstr "" + +#: templates/js/translated/bom.js:94 +msgid "Include Parameter Data" +msgstr "" + +#: templates/js/translated/bom.js:95 +msgid "Include part parameter data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:100 +msgid "Include Stock Data" +msgstr "" + +#: templates/js/translated/bom.js:101 +msgid "Include part stock data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:106 +msgid "Include Manufacturer Data" +msgstr "" + +#: templates/js/translated/bom.js:107 +msgid "Include part manufacturer data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:112 +msgid "Include Supplier Data" +msgstr "" + +#: templates/js/translated/bom.js:113 +msgid "Include part supplier data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:296 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:228 +#: templates/js/translated/bom.js:340 msgid "Select and add a new variant item using the input below" msgstr "" -#: templates/js/translated/bom.js:239 +#: templates/js/translated/bom.js:351 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:245 +#: templates/js/translated/bom.js:357 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:284 +#: templates/js/translated/bom.js:396 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:285 +#: templates/js/translated/bom.js:397 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:404 +#: templates/js/translated/bom.js:516 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116 +#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1116 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:413 +#: templates/js/translated/bom.js:525 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:485 +#: templates/js/translated/bom.js:597 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:500 +#: templates/js/translated/bom.js:612 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:507 +#: templates/js/translated/bom.js:619 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645 +#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:616 +#: templates/js/translated/bom.js:728 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:618 +#: templates/js/translated/bom.js:730 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:620 +#: templates/js/translated/bom.js:732 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796 +#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779 +#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860 +#: templates/js/translated/bom.js:830 templates/js/translated/build.js:860 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:774 +#: templates/js/translated/bom.js:886 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100 +#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1100 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:996 +#: templates/js/translated/bom.js:1108 msgid "Inherited from parent BOM" msgstr "" @@ -7464,7 +7650,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1199 templates/stock_table.html:52 +#: templates/js/translated/build.js:1199 templates/stock_table.html:53 msgid "Order stock" msgstr "" @@ -7509,9 +7695,9 @@ msgstr "" msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147 -#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333 -#: templates/js/translated/stock.js:2128 +#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1149 +#: templates/js/translated/part.js:1560 templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:2321 msgid "Select" msgstr "" @@ -7519,7 +7705,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347 +#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2540 msgid "No user information" msgstr "" @@ -7682,20 +7868,20 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1078 templates/modals.html:19 +#: templates/js/translated/forms.js:1080 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1469 +#: templates/js/translated/forms.js:1471 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1673 +#: templates/js/translated/forms.js:1675 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1893 +#: templates/js/translated/forms.js:1895 msgid "Clear input" msgstr "" @@ -7708,7 +7894,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:863 +#: templates/js/translated/stock.js:1042 msgid "Select Stock Items" msgstr "" @@ -7888,14 +8074,6 @@ msgstr "" msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509 -msgid "Format" -msgstr "" - -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510 -msgid "Select file format" -msgstr "" - #: templates/js/translated/order.js:460 msgid "Select Line Items" msgstr "" @@ -7908,7 +8086,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123 msgid "Stock Status" msgstr "" @@ -7957,7 +8135,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163 -#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986 +#: templates/js/translated/part.js:1777 templates/js/translated/part.js:1988 msgid "Unit Price" msgstr "" @@ -8042,7 +8220,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1249 +#: templates/js/translated/stock.js:1428 msgid "Shipped to customer" msgstr "" @@ -8206,92 +8384,92 @@ msgstr "" msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:946 +#: templates/js/translated/part.js:948 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:970 +#: templates/js/translated/part.js:972 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1037 templates/js/translated/part.js:1297 +#: templates/js/translated/part.js:1039 templates/js/translated/part.js:1299 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1207 +#: templates/js/translated/part.js:1209 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1230 +#: templates/js/translated/part.js:1232 #: templates/js/translated/table_filters.js:412 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493 -#: templates/js/translated/stock.js:2089 +#: templates/js/translated/part.js:1323 templates/js/translated/part.js:1495 +#: templates/js/translated/stock.js:2282 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1337 +#: templates/js/translated/part.js:1339 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108 +#: templates/js/translated/part.js:1514 templates/js/translated/stock.js:2301 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1576 +#: templates/js/translated/part.js:1578 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152 +#: templates/js/translated/part.js:1592 templates/js/translated/stock.js:2345 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1634 +#: templates/js/translated/part.js:1636 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055 +#: templates/js/translated/part.js:1687 templates/js/translated/stock.js:1234 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056 +#: templates/js/translated/part.js:1688 templates/js/translated/stock.js:1235 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1692 +#: templates/js/translated/part.js:1694 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1714 +#: templates/js/translated/part.js:1716 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1728 +#: templates/js/translated/part.js:1730 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1753 +#: templates/js/translated/part.js:1755 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1808 +#: templates/js/translated/part.js:1810 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1809 +#: templates/js/translated/part.js:1811 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1910 +#: templates/js/translated/part.js:1912 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1929 +#: templates/js/translated/part.js:1931 msgid "Single Price Difference" msgstr "" @@ -8365,316 +8543,340 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:72 +#: templates/js/translated/stock.js:73 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173 msgid "Next available serial number" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174 +#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175 msgid "Latest serial number" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:101 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:109 +#: templates/js/translated/stock.js:110 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:145 +#: templates/js/translated/stock.js:146 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:185 +#: templates/js/translated/stock.js:186 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:224 +#: templates/js/translated/stock.js:225 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:231 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:373 +#: templates/js/translated/stock.js:374 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:386 +#: templates/js/translated/stock.js:387 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:411 +#: templates/js/translated/stock.js:412 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416 +#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:432 +#: templates/js/translated/stock.js:433 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:452 +#: templates/js/translated/stock.js:453 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:506 +#: templates/js/translated/stock.js:507 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:517 +#: templates/js/translated/stock.js:518 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:518 +#: templates/js/translated/stock.js:519 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:627 +#: templates/js/translated/stock.js:628 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:628 +#: templates/js/translated/stock.js:629 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:713 +#: templates/js/translated/stock.js:706 +msgid "Warning: Merge operation cannot be reversed" +msgstr "" + +#: templates/js/translated/stock.js:707 +msgid "Some information will be lost when merging stock items" +msgstr "" + +#: templates/js/translated/stock.js:709 +msgid "Stock transaction history will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:710 +msgid "Supplier part information will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:796 +msgid "Confirm stock item merge" +msgstr "" + +#: templates/js/translated/stock.js:797 +msgid "Merge Stock Items" +msgstr "" + +#: templates/js/translated/stock.js:892 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:893 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:899 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:721 +#: templates/js/translated/stock.js:900 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:725 +#: templates/js/translated/stock.js:904 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:726 +#: templates/js/translated/stock.js:905 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:730 +#: templates/js/translated/stock.js:909 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:731 users/models.py:202 +#: templates/js/translated/stock.js:910 users/models.py:205 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:735 templates/stock_table.html:57 +#: templates/js/translated/stock.js:914 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:864 +#: templates/js/translated/stock.js:1043 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1022 +#: templates/js/translated/stock.js:1201 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1024 +#: templates/js/translated/stock.js:1203 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1029 +#: templates/js/translated/stock.js:1208 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1230 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1077 +#: templates/js/translated/stock.js:1256 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1134 +#: templates/js/translated/stock.js:1313 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1420 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1245 +#: templates/js/translated/stock.js:1424 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1432 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1259 +#: templates/js/translated/stock.js:1438 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1417 +#: templates/js/translated/stock.js:1596 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1422 +#: templates/js/translated/stock.js:1601 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1425 +#: templates/js/translated/stock.js:1604 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1429 +#: templates/js/translated/stock.js:1608 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1431 +#: templates/js/translated/stock.js:1610 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1437 +#: templates/js/translated/stock.js:1616 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1618 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1441 +#: templates/js/translated/stock.js:1620 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1625 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1453 +#: templates/js/translated/stock.js:1632 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1455 +#: templates/js/translated/stock.js:1634 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1457 +#: templates/js/translated/stock.js:1636 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1461 +#: templates/js/translated/stock.js:1640 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1511 +#: templates/js/translated/stock.js:1690 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1584 +#: templates/js/translated/stock.js:1763 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1622 +#: templates/js/translated/stock.js:1801 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691 +#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1731 +#: templates/js/translated/stock.js:1910 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1758 +#: templates/js/translated/stock.js:1937 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1760 +#: templates/js/translated/stock.js:1939 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2138 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1959 +#: templates/js/translated/stock.js:2152 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1960 +#: templates/js/translated/stock.js:2153 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2377 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2206 +#: templates/js/translated/stock.js:2399 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2231 +#: templates/js/translated/stock.js:2424 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2250 +#: templates/js/translated/stock.js:2443 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2269 +#: templates/js/translated/stock.js:2462 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2480 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2310 +#: templates/js/translated/stock.js:2503 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2318 +#: templates/js/translated/stock.js:2511 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2552 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2360 +#: templates/js/translated/stock.js:2553 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2411 +#: templates/js/translated/stock.js:2604 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2462 +#: templates/js/translated/stock.js:2655 msgid "Uninstall Stock Item" msgstr "" @@ -9059,18 +9261,26 @@ msgid "Move stock" msgstr "" #: templates/stock_table.html:52 +msgid "Merge selected stock items" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Merge stock" +msgstr "" + +#: templates/stock_table.html:53 msgid "Order selected items" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change status" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change stock status" msgstr "" -#: templates/stock_table.html:57 +#: templates/stock_table.html:58 msgid "Delete selected items" msgstr "" @@ -9106,35 +9316,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:189 +#: users/models.py:192 msgid "Permission set" msgstr "" -#: users/models.py:197 +#: users/models.py:200 msgid "Group" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "View" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "Permission to view items" msgstr "" -#: users/models.py:202 +#: users/models.py:205 msgid "Permission to add items" msgstr "" -#: users/models.py:204 +#: users/models.py:207 msgid "Change" msgstr "" -#: users/models.py:204 +#: users/models.py:207 msgid "Permissions to edit items" msgstr "" -#: users/models.py:206 +#: users/models.py:209 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po index 4f7aa77d3e..879766a7a9 100644 --- a/InvenTree/locale/es/LC_MESSAGES/django.po +++ b/InvenTree/locale/es/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-12-08 23:43+0000\n" -"PO-Revision-Date: 2021-12-08 23:47\n" +"POT-Creation-Date: 2021-12-21 02:57+0000\n" +"PO-Revision-Date: 2021-12-21 03:01\n" "Last-Translator: \n" "Language-Team: Spanish, Mexico\n" "Language: es_MX\n" @@ -34,50 +34,50 @@ msgstr "No se encontró ninguna acción coincidente" msgid "Enter date" msgstr "Ingrese fecha" -#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93 +#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 build/forms.py:93 #: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: part/forms.py:108 templates/account/email_confirm.html:20 +#: part/forms.py:78 templates/account/email_confirm.html:20 #: templates/js/translated/forms.js:595 msgid "Confirm" msgstr "Confirmar" -#: InvenTree/forms.py:136 +#: InvenTree/forms.py:142 msgid "Confirm delete" msgstr "Confirmar eliminación" -#: InvenTree/forms.py:137 +#: InvenTree/forms.py:143 msgid "Confirm item deletion" msgstr "Confirmar borrado de artículo" -#: InvenTree/forms.py:168 +#: InvenTree/forms.py:174 msgid "Enter password" msgstr "Ingrese contraseña" -#: InvenTree/forms.py:169 +#: InvenTree/forms.py:175 msgid "Enter new password" msgstr "Ingrese nueva contraseña" -#: InvenTree/forms.py:176 +#: InvenTree/forms.py:182 msgid "Confirm password" msgstr "Confirmar contraseña" -#: InvenTree/forms.py:177 +#: InvenTree/forms.py:183 msgid "Confirm new password" msgstr "Confirmar nueva contraseña" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:215 msgid "Select Category" msgstr "Seleccionar Categoría" -#: InvenTree/forms.py:230 +#: InvenTree/forms.py:236 msgid "Email (again)" msgstr "Email (de nuevo)" -#: InvenTree/forms.py:234 +#: InvenTree/forms.py:240 msgid "Email address confirmation" msgstr "Confirmación de email" -#: InvenTree/forms.py:254 +#: InvenTree/forms.py:260 msgid "You must type the same email each time." msgstr "Debe escribir el mismo correo electrónico cada vez." @@ -123,7 +123,7 @@ msgstr "Falta archivo" msgid "Missing external link" msgstr "Falta enlace externo" -#: InvenTree/models.py:132 stock/models.py:1852 +#: InvenTree/models.py:132 stock/models.py:1967 #: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "Adjunto" @@ -136,12 +136,12 @@ msgstr "Seleccionar archivo a adjuntar" #: company/models.py:564 order/models.py:124 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:1258 +#: templates/js/translated/company.js:826 templates/js/translated/part.js:1260 msgid "Link" msgstr "Enlace" #: InvenTree/models.py:140 build/models.py:330 part/models.py:798 -#: stock/models.py:524 +#: stock/models.py:527 msgid "Link to external URL" msgstr "Enlace a URL externa" @@ -153,10 +153,10 @@ msgstr "Comentario" msgid "File comment" msgstr "Comentario de archivo" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213 -#: common/models.py:1214 part/models.py:2205 part/models.py:2225 +#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1219 +#: common/models.py:1220 part/models.py:2205 part/models.py:2225 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2341 +#: templates/js/translated/stock.js:2534 msgid "User" msgstr "Usuario" @@ -202,8 +202,8 @@ msgstr "Elección no válida" #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:268 #: templates/js/translated/company.js:638 templates/js/translated/part.js:506 -#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565 -#: templates/js/translated/stock.js:2134 +#: templates/js/translated/part.js:643 templates/js/translated/part.js:1567 +#: templates/js/translated/stock.js:2327 msgid "Name" msgstr "Nombre" @@ -212,23 +212,23 @@ msgstr "Nombre" #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70 +#: order/models.py:122 part/models.py:764 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:89 +#: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428 +#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540 #: templates/js/translated/build.js:1627 templates/js/translated/company.js:345 #: templates/js/translated/company.js:548 #: templates/js/translated/company.js:837 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 -#: templates/js/translated/part.js:565 templates/js/translated/part.js:933 -#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188 -#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653 -#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146 -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/part.js:565 templates/js/translated/part.js:935 +#: templates/js/translated/part.js:1020 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1586 templates/js/translated/part.js:1655 +#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339 +#: templates/js/translated/stock.js:2384 msgid "Description" msgstr "Descripción" @@ -248,83 +248,83 @@ msgstr "Debe ser un número válido" msgid "Filename" msgstr "Nombre de archivo" -#: InvenTree/settings.py:689 +#: InvenTree/settings.py:698 msgid "German" msgstr "Alemán" -#: InvenTree/settings.py:690 +#: InvenTree/settings.py:699 msgid "Greek" msgstr "Griego" -#: InvenTree/settings.py:691 +#: InvenTree/settings.py:700 msgid "English" msgstr "Inglés" -#: InvenTree/settings.py:692 +#: InvenTree/settings.py:701 msgid "Spanish" msgstr "Español" -#: InvenTree/settings.py:693 +#: InvenTree/settings.py:702 msgid "Spanish (Mexican)" msgstr "Español (México)" -#: InvenTree/settings.py:694 +#: InvenTree/settings.py:703 msgid "French" msgstr "" -#: InvenTree/settings.py:695 +#: InvenTree/settings.py:704 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:696 +#: InvenTree/settings.py:705 msgid "Italian" msgstr "" -#: InvenTree/settings.py:697 +#: InvenTree/settings.py:706 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:698 +#: InvenTree/settings.py:707 msgid "Korean" msgstr "" -#: InvenTree/settings.py:699 +#: InvenTree/settings.py:708 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:700 +#: InvenTree/settings.py:709 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:701 +#: InvenTree/settings.py:710 msgid "Polish" msgstr "" -#: InvenTree/settings.py:702 +#: InvenTree/settings.py:711 msgid "Portugese" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:712 msgid "Russian" msgstr "" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:713 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:714 msgid "Thai" msgstr "" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:715 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:716 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:717 msgid "Chinese" msgstr "" @@ -341,7 +341,7 @@ msgid "InvenTree system health checks failed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 msgid "Pending" msgstr "" @@ -349,14 +349,14 @@ msgstr "" msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:319 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:313 +#: InvenTree/status_codes.py:318 msgid "Cancelled" msgstr "" @@ -370,7 +370,7 @@ msgstr "" msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:143 order/models.py:939 +#: InvenTree/status_codes.py:143 order/models.py:941 #: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255 msgid "Shipped" msgstr "" @@ -395,83 +395,87 @@ msgstr "" msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:269 +#: InvenTree/status_codes.py:272 msgid "Legacy stock tracking entry" msgstr "" -#: InvenTree/status_codes.py:271 +#: InvenTree/status_codes.py:274 msgid "Stock item created" msgstr "" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Edited stock item" msgstr "" -#: InvenTree/status_codes.py:274 +#: InvenTree/status_codes.py:277 msgid "Assigned serial number" msgstr "" -#: InvenTree/status_codes.py:276 +#: InvenTree/status_codes.py:279 msgid "Stock counted" msgstr "" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Stock manually added" msgstr "" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Stock manually removed" msgstr "" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Location changed" msgstr "" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Installed into assembly" msgstr "" -#: InvenTree/status_codes.py:283 +#: InvenTree/status_codes.py:286 msgid "Removed from assembly" msgstr "" -#: InvenTree/status_codes.py:285 +#: InvenTree/status_codes.py:288 msgid "Installed component item" msgstr "" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Removed component item" msgstr "" -#: InvenTree/status_codes.py:288 +#: InvenTree/status_codes.py:291 msgid "Split from parent item" msgstr "Separar del artículo principal" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064 +msgid "Merged stock items" +msgstr "" + +#: InvenTree/status_codes.py:296 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:297 msgid "Returned from customer" msgstr "" -#: InvenTree/status_codes.py:294 +#: InvenTree/status_codes.py:299 msgid "Build order output created" msgstr "" -#: InvenTree/status_codes.py:295 +#: InvenTree/status_codes.py:300 msgid "Build order output completed" msgstr "" -#: InvenTree/status_codes.py:297 +#: InvenTree/status_codes.py:302 msgid "Received against purchase order" msgstr "" -#: InvenTree/status_codes.py:312 +#: InvenTree/status_codes.py:317 msgid "Production" msgstr "" @@ -575,16 +579,16 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1283 -#: build/templates/build/build_base.html:132 -#: build/templates/build/detail.html:35 common/models.py:1253 +#: build/forms.py:36 build/models.py:1286 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1259 #: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:794 order/models.py:1205 order/serializers.py:810 +#: order/models.py:796 order/models.py:1207 order/serializers.py:810 #: order/templates/order/order_wizard/match_parts.html:30 -#: 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 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:193 +#: part/forms.py:209 part/forms.py:225 part/models.py:2576 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:967 part/templates/part/detail.html:1053 +#: part/templates/part/detail.html:961 part/templates/part/detail.html:1047 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -592,10 +596,10 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:174 -#: stock/templates/stock/item_base.html:255 -#: stock/templates/stock/item_base.html:263 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443 +#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:261 +#: stock/templates/stock/item_base.html:269 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555 #: templates/js/translated/build.js:240 templates/js/translated/build.js:440 #: templates/js/translated/build.js:634 templates/js/translated/build.js:644 #: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367 @@ -604,10 +608,10 @@ msgstr "" #: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 #: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 #: templates/js/translated/order.js:2150 templates/js/translated/part.js:843 -#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919 -#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382 -#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326 -#: templates/js/translated/stock.js:2428 +#: templates/js/translated/part.js:1798 templates/js/translated/part.js:1921 +#: templates/js/translated/part.js:1999 templates/js/translated/stock.js:383 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750 +#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621 msgid "Quantity" msgstr "" @@ -616,8 +620,8 @@ msgid "Enter quantity for build output" msgstr "" #: build/forms.py:41 order/serializers.py:814 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:229 -#: templates/js/translated/stock.js:383 +#: stock/serializers.py:314 templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:384 msgid "Serial Numbers" msgstr "" @@ -661,7 +665,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:145 +#: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" msgstr "" @@ -671,11 +675,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:199 order/models.py:210 order/models.py:536 -#: order/models.py:801 part/models.py:2585 +#: order/models.py:803 part/models.py:2585 #: part/templates/part/bom_upload/match_parts.html:30 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124 +#: templates/js/translated/bom.js:547 templates/js/translated/build.js:1124 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "" @@ -695,7 +699,7 @@ msgstr "" #: build/models.py:225 build/templates/build/build_base.html:77 #: build/templates/build/detail.html:30 company/models.py:705 -#: order/models.py:854 order/models.py:928 +#: order/models.py:856 order/models.py:930 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357 #: part/models.py:2151 part/models.py:2167 part/models.py:2186 #: part/models.py:2203 part/models.py:2305 part/models.py:2427 @@ -706,20 +710,21 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 -#: templates/InvenTree/search.html:86 +#: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214 -#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326 +#: templates/js/translated/bom.js:505 templates/js/translated/build.js:625 #: templates/js/translated/build.js:993 templates/js/translated/build.js:1364 #: templates/js/translated/build.js:1632 templates/js/translated/company.js:489 #: templates/js/translated/company.js:746 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 -#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918 -#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166 -#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747 -#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416 +#: templates/js/translated/order.js:2128 templates/js/translated/part.js:920 +#: templates/js/translated/part.js:1001 templates/js/translated/part.js:1168 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719 +#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:2609 msgid "Part" msgstr "" @@ -776,7 +781,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:285 stock/models.py:528 +#: build/models.py:285 stock/models.py:531 msgid "Batch Code" msgstr "" @@ -830,27 +835,27 @@ msgstr "" #: build/models.py:329 build/templates/build/detail.html:102 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:354 stock/models.py:522 -#: stock/templates/stock/item_base.html:374 +#: part/templates/part/part_base.html:354 stock/models.py:525 +#: stock/templates/stock/item_base.html:372 msgid "External Link" 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:144 order/models.py:803 order/models.py:1049 +#: order/models.py:144 order/models.py:805 order/models.py:1051 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:925 -#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50 +#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594 -#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332 -#: stock/serializers.py:624 stock/serializers.py:711 +#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597 +#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332 +#: stock/serializers.py:638 stock/serializers.py:736 stock/serializers.py:868 #: stock/templates/stock/stock_sidebar.html:21 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711 #: templates/js/translated/company.js:842 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795 msgid "Notes" msgstr "" @@ -883,7 +888,7 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1133 order/models.py:1165 +#: build/models.py:1133 order/models.py:1167 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -891,51 +896,52 @@ msgstr "" msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1193 +#: build/models.py:1196 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1253 stock/templates/stock/item_base.html:346 -#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605 +#: build/models.py:1256 stock/templates/stock/item_base.html:344 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1605 #: templates/navbar.html:35 msgid "Build" msgstr "" -#: build/models.py:1254 +#: build/models.py:1257 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690 -#: order/serializers.py:708 stock/serializers.py:562 +#: build/models.py:1273 build/serializers.py:334 order/serializers.py:690 +#: order/serializers.py:708 stock/serializers.py:576 stock/serializers.py:694 #: stock/templates/stock/item_base.html:8 -#: stock/templates/stock/item_base.html:16 -#: stock/templates/stock/item_base.html:368 +#: stock/templates/stock/item_base.html:22 +#: stock/templates/stock/item_base.html:366 #: templates/js/translated/build.js:413 templates/js/translated/build.js:418 #: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277 +#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:2470 msgid "Stock Item" msgstr "" -#: build/models.py:1271 +#: build/models.py:1274 msgid "Source stock item" msgstr "" -#: build/models.py:1284 +#: build/models.py:1287 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1292 +#: build/models.py:1295 msgid "Install into" msgstr "" -#: build/models.py:1293 +#: build/models.py:1296 msgid "Destination stock item" msgstr "" -#: build/serializers.py:137 build/serializers.py:357 +#: build/serializers.py:137 build/serializers.py:363 msgid "Build Output" msgstr "" @@ -956,16 +962,16 @@ msgid "This build output is not fully allocated" msgstr "" #: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813 -#: stock/templates/stock/item_base.html:314 +#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:729 +#: stock/serializers.py:970 stock/templates/stock/item_base.html:312 #: templates/js/translated/barcode.js:384 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425 #: templates/js/translated/build.js:1032 templates/js/translated/order.js:508 #: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 #: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497 -#: templates/js/translated/stock.js:2218 +#: templates/js/translated/part.js:177 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411 msgid "Location" msgstr "" @@ -975,11 +981,11 @@ msgstr "" #: build/serializers.py:197 build/templates/build/build_base.html:137 #: build/templates/build/detail.html:63 order/models.py:552 -#: order/serializers.py:247 stock/templates/stock/item_base.html:180 +#: order/serializers.py:247 stock/templates/stock/item_base.html:186 #: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661 #: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472 -#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651 +#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637 msgid "Status" msgstr "" @@ -1000,33 +1006,33 @@ msgstr "" msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:319 +#: build/serializers.py:325 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:334 stock/serializers.py:569 +#: build/serializers.py:340 stock/serializers.py:583 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:348 order/models.py:277 order/serializers.py:240 -#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305 +#: build/serializers.py:354 order/models.py:277 order/serializers.py:240 +#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:390 order/serializers.py:741 +#: build/serializers.py:396 order/serializers.py:741 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:396 +#: build/serializers.py:402 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:403 +#: build/serializers.py:409 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:431 order/serializers.py:984 +#: build/serializers.py:437 order/serializers.py:984 msgid "Allocation items must be provided" msgstr "Debe proporcionar adjudicación de artículos" @@ -1067,33 +1073,33 @@ msgstr "" msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:87 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:96 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:98 +#: build/templates/build/build_base.html:103 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:105 +#: build/templates/build/build_base.html:110 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Stock has not been fully allocated to this Build Order" msgstr "" @@ -1131,12 +1137,12 @@ msgid "Completed" msgstr "" #: build/templates/build/build_base.html:171 -#: build/templates/build/detail.html:95 order/models.py:925 -#: order/models.py:1021 order/templates/order/sales_order_base.html:9 +#: build/templates/build/detail.html:95 order/models.py:927 +#: order/models.py:1023 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:308 +#: stock/templates/stock/item_base.html:306 #: templates/js/translated/order.js:1218 msgid "Sales Order" msgstr "" @@ -1211,7 +1217,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "" @@ -1225,8 +1231,8 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:332 -#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451 +#: stock/templates/stock/item_base.html:330 +#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1278,7 +1284,7 @@ msgstr "" #: build/templates/build/detail.html:185 #: company/templates/company/detail.html:38 #: company/templates/company/detail.html:85 order/views.py:463 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order Parts" msgstr "" @@ -1347,7 +1353,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115 +#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115 #: stock/templates/stock/item.html:205 msgid "Edit Notes" msgstr "" @@ -1489,7 +1495,7 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:340 common/models.py:998 common/models.py:1206 +#: common/models.py:340 common/models.py:1004 common/models.py:1212 msgid "Settings key (must be unique - case insensitive" msgstr "" @@ -1651,7 +1657,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956 +#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:1068 #: templates/js/translated/table_filters.js:168 #: templates/js/translated/table_filters.js:416 msgid "Assembly" @@ -1953,256 +1959,264 @@ msgid "Group to which new users are assigned on registration" msgstr "" #: common/models.py:961 -msgid "Enable URL integration" +msgid "Enforce MFA" msgstr "" #: common/models.py:962 -msgid "Enable plugins to add URL routes" +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:967 +msgid "Enable URL integration" msgstr "" #: common/models.py:968 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:974 msgid "Enable navigation integration" msgstr "" -#: common/models.py:969 +#: common/models.py:975 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:975 +#: common/models.py:981 msgid "Enable global setting integration" msgstr "" -#: common/models.py:976 +#: common/models.py:982 msgid "Enable plugins to integrate into inventree global settings" msgstr "" -#: common/models.py:982 +#: common/models.py:988 msgid "Enable app integration" msgstr "" -#: common/models.py:983 +#: common/models.py:989 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1029 +#: common/models.py:1035 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1030 +#: common/models.py:1036 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1035 +#: common/models.py:1041 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1036 +#: common/models.py:1042 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1041 +#: common/models.py:1047 msgid "Show latest parts" msgstr "" -#: common/models.py:1042 +#: common/models.py:1048 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1047 +#: common/models.py:1053 msgid "Recent Part Count" msgstr "" -#: common/models.py:1048 +#: common/models.py:1054 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1054 +#: common/models.py:1060 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1055 +#: common/models.py:1061 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1060 +#: common/models.py:1066 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1061 +#: common/models.py:1067 msgid "Show recently changed stock items on the homepage" msgstr "Mostrar artículos de stock recientemente modificados en la página de inicio" -#: common/models.py:1066 +#: common/models.py:1072 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1067 +#: common/models.py:1073 msgid "Number of recent stock items to display on index page" msgstr "Número de elementos de stock recientes a mostrar en la página de índice" -#: common/models.py:1072 +#: common/models.py:1078 msgid "Show low stock" msgstr "" -#: common/models.py:1073 +#: common/models.py:1079 msgid "Show low stock items on the homepage" msgstr "Mostrar artículos de stock bajo en la página de inicio" -#: common/models.py:1078 +#: common/models.py:1084 msgid "Show depleted stock" msgstr "" -#: common/models.py:1079 +#: common/models.py:1085 msgid "Show depleted stock items on the homepage" msgstr "Mostrar artículos agotados en la página de inicio" -#: common/models.py:1084 +#: common/models.py:1090 msgid "Show needed stock" msgstr "" -#: common/models.py:1085 +#: common/models.py:1091 msgid "Show stock items needed for builds on the homepage" msgstr "Mostrar elementos de stock necesarios para construir en la página de inicio" -#: common/models.py:1090 +#: common/models.py:1096 msgid "Show expired stock" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Show expired stock items on the homepage" msgstr "Mostrar artículos de stock caducados en la página de inicio" -#: common/models.py:1096 +#: common/models.py:1102 msgid "Show stale stock" msgstr "" -#: common/models.py:1097 +#: common/models.py:1103 msgid "Show stale stock items on the homepage" msgstr "Mostrar elementos de stock obsoletos en la página de inicio" -#: common/models.py:1102 +#: common/models.py:1108 msgid "Show pending builds" msgstr "" -#: common/models.py:1103 +#: common/models.py:1109 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1108 +#: common/models.py:1114 msgid "Show overdue builds" msgstr "" -#: common/models.py:1109 +#: common/models.py:1115 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1114 +#: common/models.py:1120 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1115 +#: common/models.py:1121 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1120 +#: common/models.py:1126 msgid "Show overdue POs" msgstr "" -#: common/models.py:1121 +#: common/models.py:1127 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1126 +#: common/models.py:1132 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1127 +#: common/models.py:1133 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1132 +#: common/models.py:1138 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1133 +#: common/models.py:1139 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1139 +#: common/models.py:1145 msgid "Inline label display" msgstr "" -#: common/models.py:1140 +#: common/models.py:1146 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1146 +#: common/models.py:1152 msgid "Inline report display" msgstr "" -#: common/models.py:1147 +#: common/models.py:1153 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "Search Preview Results" msgstr "" -#: common/models.py:1154 +#: common/models.py:1160 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1160 +#: common/models.py:1166 msgid "Search Show Stock" msgstr "" -#: common/models.py:1161 +#: common/models.py:1167 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1167 +#: common/models.py:1173 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1168 +#: common/models.py:1174 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1174 +#: common/models.py:1180 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1175 +#: common/models.py:1181 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1181 +#: common/models.py:1187 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1182 +#: common/models.py:1188 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1188 +#: common/models.py:1194 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1189 +#: common/models.py:1195 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1254 company/forms.py:43 +#: common/models.py:1260 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1261 company/serializers.py:264 +#: common/models.py:1267 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801 +#: templates/js/translated/part.js:852 templates/js/translated/part.js:1803 msgid "Price" msgstr "" -#: common/models.py:1262 +#: common/models.py:1268 msgid "Unit price at specified quantity" msgstr "" @@ -2290,7 +2304,7 @@ msgid "Contact phone number" msgstr "" #: company/models.py:125 company/templates/company/company_base.html:129 -#: templates/InvenTree/settings/user.html:47 +#: templates/InvenTree/settings/user.html:48 msgid "Email" msgstr "" @@ -2347,8 +2361,8 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:320 company/models.py:535 stock/models.py:468 -#: stock/templates/stock/item_base.html:135 +#: company/models.py:320 company/models.py:535 stock/models.py:469 +#: stock/templates/stock/item_base.html:141 msgid "Base Part" msgstr "" @@ -2359,7 +2373,7 @@ msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:381 +#: stock/templates/stock/item_base.html:379 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:514 #: templates/js/translated/company.js:797 templates/js/translated/part.js:232 @@ -2393,7 +2407,7 @@ msgstr "" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:391 +#: stock/templates/stock/item_base.html:389 msgid "Manufacturer Part" msgstr "" @@ -2403,8 +2417,8 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:1845 templates/js/translated/company.js:644 -#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117 +#: stock/models.py:1960 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1296 msgid "Value" msgstr "" @@ -2431,7 +2445,7 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:224 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219 -#: part/bom.py:247 stock/templates/stock/item_base.html:398 +#: part/bom.py:247 stock/templates/stock/item_base.html:396 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:771 templates/js/translated/order.js:823 #: templates/js/translated/part.js:213 templates/js/translated/part.js:800 @@ -2479,8 +2493,8 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:491 stock/templates/stock/item_base.html:339 -#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612 +#: stock/models.py:493 stock/templates/stock/item_base.html:337 +#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1791 msgid "Packaging" msgstr "" @@ -2506,7 +2520,7 @@ msgstr "" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322 +#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322 msgid "Company" msgstr "" @@ -2548,11 +2562,11 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:83 order/models.py:547 -#: order/templates/order/sales_order_base.html:115 stock/models.py:509 -#: stock/models.py:510 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:291 +#: order/templates/order/sales_order_base.html:115 stock/models.py:512 +#: stock/models.py:513 stock/serializers.py:624 +#: stock/templates/stock/item_base.html:289 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2259 +#: templates/js/translated/stock.js:2452 msgid "Customer" msgstr "" @@ -2571,7 +2585,7 @@ msgstr "" #: company/templates/company/detail.html:15 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:124 +#: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" @@ -2590,14 +2604,14 @@ msgstr "" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:167 part/templates/part/detail.html:342 +#: part/templates/part/category.html:171 part/templates/part/detail.html:342 #: part/templates/part/detail.html:370 msgid "Options" msgstr "" #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order parts" msgstr "" @@ -2611,7 +2625,7 @@ msgstr "" msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109 +#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" @@ -2633,8 +2647,8 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203 +#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" @@ -2655,8 +2669,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223 +#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" @@ -2698,7 +2712,7 @@ msgid "Supplier List" msgstr "" #: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184 +#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 #: templates/navbar.html:46 msgid "Manufacturers" msgstr "" @@ -2706,7 +2720,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:67 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76 msgid "Order part" msgstr "" @@ -2728,7 +2742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 #: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:194 templates/navbar.html:45 +#: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "" @@ -2742,7 +2756,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:254 #: part/templates/part/detail.html:344 part/templates/part/detail.html:372 #: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31 -#: users/models.py:206 +#: users/models.py:209 msgid "Delete" msgstr "" @@ -2765,7 +2779,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:867 +#: part/templates/part/detail.html:861 msgid "Add Parameter" msgstr "" @@ -2794,9 +2808,9 @@ msgid "Assigned Stock Items" msgstr "Artículos de Stock Asignados" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:476 -#: stock/templates/stock/item_base.html:403 -#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569 +#: company/templates/company/supplier_part.html:24 stock/models.py:477 +#: stock/templates/stock/item_base.html:401 +#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1748 msgid "Supplier Part" msgstr "" @@ -2816,13 +2830,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:20 stock/templates/stock/location.html:162 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:166 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163 -#: templates/js/translated/stock.js:359 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 +#: templates/js/translated/stock.js:360 msgid "New Stock Item" msgstr "" @@ -2832,7 +2846,7 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:68 +#: part/templates/part/detail.html:72 msgid "Order Part" msgstr "" @@ -2843,7 +2857,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:1717 +#: part/templates/part/prices.html:271 part/views.py:1713 msgid "Add Price Break" msgstr "" @@ -2851,11 +2865,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1779 +#: company/templates/company/supplier_part.html:224 part/views.py:1775 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1765 +#: company/templates/company/supplier_part.html:238 part/views.py:1761 msgid "Edit Price Break" msgstr "" @@ -2869,14 +2883,14 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:156 +#: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434 -#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059 -#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:1401 templates/navbar.html:28 +#: templates/js/translated/bom.js:328 templates/js/translated/part.js:434 +#: templates/js/translated/part.js:569 templates/js/translated/part.js:1061 +#: templates/js/translated/part.js:1222 templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:1580 templates/navbar.html:28 msgid "Stock" msgstr "" @@ -2895,11 +2909,11 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:133 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:159 +#: stock/templates/stock/location.html:137 +#: stock/templates/stock/location.html:151 +#: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "Artículos de Stock" @@ -2912,7 +2926,7 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:61 templates/InvenTree/search.html:214 +#: company/views.py:61 templates/InvenTree/search.html:208 #: templates/navbar.html:57 msgid "Customers" msgstr "" @@ -3121,7 +3135,7 @@ msgstr "" msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:562 order/models.py:1026 +#: order/models.py:562 order/models.py:1028 #: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429 msgid "Shipment Date" msgstr "" @@ -3130,7 +3144,7 @@ msgstr "" msgid "shipped by" msgstr "" -#: order/models.py:634 +#: order/models.py:635 msgid "Order cannot be completed as no parts have been assigned" msgstr "" @@ -3138,172 +3152,172 @@ msgstr "" msgid "Only a pending order can be marked as complete" msgstr "" -#: order/models.py:643 +#: order/models.py:642 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:647 +#: order/models.py:645 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:795 +#: order/models.py:797 msgid "Item quantity" msgstr "" -#: order/models.py:801 +#: order/models.py:803 msgid "Line item reference" msgstr "" -#: order/models.py:803 +#: order/models.py:805 msgid "Line item notes" msgstr "" -#: order/models.py:833 order/models.py:924 order/models.py:1020 +#: order/models.py:835 order/models.py:926 order/models.py:1022 #: templates/js/translated/order.js:1820 msgid "Order" msgstr "" -#: order/models.py:834 order/templates/order/order_base.html:9 +#: order/models.py:836 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:353 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/order.js:801 templates/js/translated/part.js:775 -#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240 +#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433 msgid "Purchase Order" msgstr "" -#: order/models.py:855 +#: order/models.py:857 msgid "Supplier part" msgstr "" -#: order/models.py:862 order/templates/order/order_base.html:163 +#: order/models.py:864 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:847 templates/js/translated/part.js:873 #: templates/js/translated/table_filters.js:317 msgid "Received" msgstr "" -#: order/models.py:863 +#: order/models.py:865 msgid "Number of items received" msgstr "Número de artículos recibidos" -#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:360 -#: templates/js/translated/stock.js:1600 +#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:358 +#: templates/js/translated/stock.js:1779 msgid "Purchase Price" msgstr "" -#: order/models.py:871 +#: order/models.py:873 msgid "Unit purchase price" msgstr "" -#: order/models.py:879 +#: order/models.py:881 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:934 part/templates/part/part_pricing.html:112 +#: order/models.py:936 part/templates/part/part_pricing.html:112 #: part/templates/part/prices.html:116 part/templates/part/prices.html:284 msgid "Sale Price" msgstr "" -#: order/models.py:935 +#: order/models.py:937 msgid "Unit sale price" msgstr "" -#: order/models.py:940 +#: order/models.py:942 msgid "Shipped quantity" msgstr "" -#: order/models.py:1027 +#: order/models.py:1029 msgid "Date of shipment" msgstr "" -#: order/models.py:1034 +#: order/models.py:1036 msgid "Checked By" msgstr "" -#: order/models.py:1035 +#: order/models.py:1037 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1043 +#: order/models.py:1045 msgid "Shipment number" msgstr "" -#: order/models.py:1050 +#: order/models.py:1052 msgid "Shipment notes" msgstr "" -#: order/models.py:1057 +#: order/models.py:1059 msgid "Tracking Number" msgstr "" -#: order/models.py:1058 +#: order/models.py:1060 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1068 +#: order/models.py:1070 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1071 +#: order/models.py:1073 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1147 order/models.py:1149 +#: order/models.py:1149 order/models.py:1151 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1153 +#: order/models.py:1155 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1155 +#: order/models.py:1157 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1158 +#: order/models.py:1160 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1162 +#: order/models.py:1164 msgid "StockItem is over-allocated" msgstr "" -#: order/models.py:1168 order/serializers.py:734 +#: order/models.py:1170 order/serializers.py:734 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1171 +#: order/models.py:1173 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1172 +#: order/models.py:1174 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1180 +#: order/models.py:1182 msgid "Line" msgstr "" -#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953 +#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953 #: templates/js/translated/model_renderers.js:251 msgid "Shipment" msgstr "" -#: order/models.py:1189 +#: order/models.py:1191 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1201 +#: order/models.py:1203 msgid "Item" msgstr "" -#: order/models.py:1202 +#: order/models.py:1204 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1205 +#: order/models.py:1207 msgid "Enter stock allocation quantity" msgstr "" @@ -3530,7 +3544,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/build.js:245 templates/js/translated/build.js:1256 #: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:592 +#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761 msgid "Remove row" msgstr "" @@ -3722,7 +3736,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188 +#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1188 msgid "Actions" msgstr "" @@ -3797,24 +3811,24 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:760 +#: part/api.py:777 msgid "Must be greater than zero" msgstr "" -#: part/api.py:764 +#: part/api.py:781 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:779 +#: part/api.py:796 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833 +#: part/api.py:827 part/api.py:831 part/api.py:846 part/api.py:850 msgid "This field is required" msgstr "" #: part/bom.py:125 part/models.py:81 part/models.py:816 -#: part/templates/part/category.html:104 part/templates/part/part_base.html:338 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "" @@ -3822,99 +3836,43 @@ msgstr "" msgid "Available Stock" msgstr "" -#: part/forms.py:63 -msgid "File Format" -msgstr "" - -#: part/forms.py:63 -msgid "Select output file format" -msgstr "" - -#: part/forms.py:65 -msgid "Cascading" -msgstr "" - -#: part/forms.py:65 -msgid "Download cascading / multi-level BOM" -msgstr "" - -#: part/forms.py:67 -msgid "Levels" -msgstr "" - -#: part/forms.py:67 -msgid "Select maximum number of BOM levels to export (0 = all levels)" -msgstr "" - -#: part/forms.py:69 -msgid "Include Parameter Data" -msgstr "" - -#: part/forms.py:69 -msgid "Include part parameters data in exported BOM" -msgstr "" - -#: part/forms.py:71 -msgid "Include Stock Data" -msgstr "" - -#: part/forms.py:71 -msgid "Include part stock data in exported BOM" -msgstr "" - -#: part/forms.py:73 -msgid "Include Manufacturer Data" -msgstr "" - -#: part/forms.py:73 -msgid "Include part manufacturer data in exported BOM" -msgstr "" - -#: part/forms.py:75 -msgid "Include Supplier Data" -msgstr "" - -#: part/forms.py:75 -msgid "Include part supplier data in exported BOM" -msgstr "" - -#: part/forms.py:96 part/models.py:2427 +#: part/forms.py:66 part/models.py:2427 msgid "Parent Part" msgstr "Parte principal" -#: part/forms.py:97 part/templates/part/bom_duplicate.html:7 +#: part/forms.py:67 part/templates/part/bom_duplicate.html:7 msgid "Select parent part to copy BOM from" msgstr "Seleccionar parte principal de la que copiar BOM" -#: part/forms.py:103 +#: part/forms.py:73 msgid "Clear existing BOM items" msgstr "Borrar elementos BOM existentes" -#: part/forms.py:109 +#: part/forms.py:79 msgid "Confirm BOM duplication" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "validate" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "Confirm that the BOM is correct" msgstr "" -#: part/forms.py:163 +#: part/forms.py:133 msgid "Select part category" msgstr "" -#: part/forms.py:200 +#: part/forms.py:170 msgid "Add parameter template to same level categories" msgstr "" -#: part/forms.py:204 +#: part/forms.py:174 msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:224 +#: part/forms.py:194 msgid "Input quantity for price calculation" msgstr "" @@ -3930,24 +3888,24 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11 +#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:96 part/templates/part/category.html:124 -#: templates/InvenTree/search.html:101 templates/stats.html:84 +#: part/models.py:96 part/templates/part/category.html:128 +#: templates/InvenTree/search.html:95 templates/stats.html:84 #: users/models.py:40 msgid "Part Categories" msgstr "" #: part/models.py:358 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:13 part/templates/part/category.html:129 -#: part/templates/part/category.html:149 +#: part/templates/part/category.html:17 part/templates/part/category.html:133 +#: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1597 templates/navbar.html:21 +#: templates/js/translated/part.js:1599 templates/navbar.html:21 #: templates/stats.html:80 templates/stats.html:89 users/models.py:41 msgid "Parts" msgstr "" @@ -4001,7 +3959,7 @@ msgstr "" msgid "Part description" msgstr "" -#: part/models.py:770 part/templates/part/category.html:82 +#: part/models.py:770 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "" @@ -4014,7 +3972,7 @@ msgstr "" #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 #: templates/InvenTree/settings/settings.html:172 -#: templates/js/translated/part.js:1202 +#: templates/js/translated/part.js:1204 msgid "Category" msgstr "" @@ -4023,8 +3981,8 @@ msgid "Part category" msgstr "" #: part/models.py:784 part/templates/part/part_base.html:274 -#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155 -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/part.js:557 templates/js/translated/part.js:1157 +#: templates/js/translated/stock.js:1552 msgid "IPN" msgstr "" @@ -4145,8 +4103,8 @@ msgstr "" msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2310 templates/js/translated/part.js:1648 -#: templates/js/translated/stock.js:1097 +#: part/models.py:2310 templates/js/translated/part.js:1650 +#: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "" @@ -4162,7 +4120,7 @@ msgstr "" msgid "Enter description for this test" msgstr "" -#: part/models.py:2322 templates/js/translated/part.js:1657 +#: part/models.py:2322 templates/js/translated/part.js:1659 #: templates/js/translated/table_filters.js:281 msgid "Required" msgstr "" @@ -4171,7 +4129,7 @@ msgstr "" msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2328 templates/js/translated/part.js:1665 +#: part/models.py:2328 templates/js/translated/part.js:1667 msgid "Requires Value" msgstr "" @@ -4179,7 +4137,7 @@ msgstr "" msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2334 templates/js/translated/part.js:1672 +#: part/models.py:2334 templates/js/translated/part.js:1674 msgid "Requires Attachment" msgstr "" @@ -4241,8 +4199,8 @@ msgstr "" msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2578 templates/js/translated/bom.js:454 -#: templates/js/translated/bom.js:528 +#: part/models.py:2578 templates/js/translated/bom.js:566 +#: templates/js/translated/bom.js:640 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" @@ -4275,8 +4233,8 @@ msgstr "" msgid "BOM line checksum" msgstr "" -#: part/models.py:2594 templates/js/translated/bom.js:545 -#: templates/js/translated/bom.js:552 +#: part/models.py:2594 templates/js/translated/bom.js:657 +#: templates/js/translated/bom.js:664 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" @@ -4286,7 +4244,7 @@ msgstr "" msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2600 templates/js/translated/bom.js:537 +#: part/models.py:2600 templates/js/translated/bom.js:649 msgid "Allow Variants" msgstr "" @@ -4406,100 +4364,100 @@ msgstr "" msgid "This will validate each line in the BOM." msgstr "" -#: part/templates/part/category.html:24 part/templates/part/category.html:28 +#: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:32 +#: part/templates/part/category.html:36 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:38 +#: part/templates/part/category.html:42 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:43 +#: part/templates/part/category.html:47 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:44 +#: part/templates/part/category.html:48 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:52 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:53 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:57 +#: part/templates/part/category.html:61 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:58 +#: part/templates/part/category.html:62 msgid "New Category" msgstr "" -#: part/templates/part/category.html:76 part/templates/part/category.html:89 +#: part/templates/part/category.html:80 part/templates/part/category.html:93 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:90 +#: part/templates/part/category.html:94 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:110 part/templates/part/category.html:201 +#: part/templates/part/category.html:114 part/templates/part/category.html:205 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:115 +#: part/templates/part/category.html:119 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:152 +#: part/templates/part/category.html:156 msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:153 part/templates/part/category.html:177 +#: part/templates/part/category.html:157 part/templates/part/category.html:181 msgid "Export" msgstr "" -#: part/templates/part/category.html:156 +#: part/templates/part/category.html:160 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:157 templates/js/translated/bom.js:40 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 msgid "New Part" msgstr "" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set category" msgstr "" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:175 +#: part/templates/part/category.html:179 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:177 +#: part/templates/part/category.html:181 msgid "Export Data" msgstr "" -#: part/templates/part/category.html:191 +#: part/templates/part/category.html:195 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:268 +#: part/templates/part/category.html:288 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:295 +#: part/templates/part/category.html:315 msgid "Create Part" msgstr "" @@ -4566,24 +4524,24 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:17 +#: part/templates/part/detail.html:21 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:29 +#: part/templates/part/detail.html:33 #, python-format msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:39 +#: part/templates/part/detail.html:43 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:44 +#: part/templates/part/detail.html:48 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:101 +#: part/templates/part/detail.html:105 msgid "Sales Order Allocations" msgstr "" @@ -4619,7 +4577,7 @@ msgstr "" msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:242 +#: part/templates/part/detail.html:242 templates/js/translated/bom.js:70 msgid "Export BOM" msgstr "" @@ -4683,38 +4641,38 @@ msgstr "" msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:651 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:659 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:760 +#: part/templates/part/detail.html:754 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:817 +#: part/templates/part/detail.html:811 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:930 +#: part/templates/part/detail.html:924 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:942 +#: part/templates/part/detail.html:936 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:954 +#: part/templates/part/detail.html:948 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1043 +#: part/templates/part/detail.html:1037 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4745,20 +4703,20 @@ msgid "Subscribe to notifications for this part" msgstr "" #: part/templates/part/part_base.html:43 -#: stock/templates/stock/item_base.html:28 -#: stock/templates/stock/location.html:29 +#: stock/templates/stock/item_base.html:34 +#: stock/templates/stock/location.html:33 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:45 -#: stock/templates/stock/item_base.html:32 -#: stock/templates/stock/location.html:31 templates/qr_button.html:1 +#: stock/templates/stock/item_base.html:38 +#: stock/templates/stock/location.html:35 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:48 -#: stock/templates/stock/location.html:32 +#: stock/templates/stock/item_base.html:54 +#: stock/templates/stock/location.html:36 msgid "Print Label" msgstr "" @@ -4767,8 +4725,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:103 -#: stock/templates/stock/location.html:40 +#: stock/templates/stock/item_base.html:109 +#: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "" @@ -4848,7 +4806,7 @@ msgstr "" msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1235 +#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1237 msgid "On Order" msgstr "" @@ -4864,12 +4822,12 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:566 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1066 -#: templates/js/translated/part.js:1239 +#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1068 +#: templates/js/translated/part.js:1241 msgid "Building" msgstr "" @@ -4882,7 +4840,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:159 +#: stock/templates/stock/item_base.html:165 msgid "Search for serial number" msgstr "" @@ -4921,7 +4879,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:520 +#: templates/js/translated/bom.js:632 msgid "No supplier pricing available" msgstr "" @@ -5036,7 +4994,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626 msgid "Supplier Cost" msgstr "" @@ -5058,7 +5016,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1788 +#: part/templates/part/prices.html:215 part/views.py:1784 msgid "Add Internal Price Break" msgstr "" @@ -5078,9 +5036,9 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476 -#: templates/js/translated/part.js:436 templates/js/translated/part.js:1056 -#: templates/js/translated/part.js:1243 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588 +#: templates/js/translated/part.js:436 templates/js/translated/part.js:1058 +#: templates/js/translated/part.js:1245 msgid "No Stock" msgstr "" @@ -5154,67 +5112,67 @@ msgstr "" msgid "Match Parts" msgstr "" -#: part/views.py:1196 +#: part/views.py:1195 msgid "Export Bill of Materials" msgstr "" -#: part/views.py:1248 +#: part/views.py:1244 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1255 +#: part/views.py:1251 msgid "Part was deleted" msgstr "" -#: part/views.py:1264 +#: part/views.py:1260 msgid "Part Pricing" msgstr "" -#: part/views.py:1413 +#: part/views.py:1409 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1423 +#: part/views.py:1419 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1430 +#: part/views.py:1426 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1489 templates/js/translated/part.js:313 +#: part/views.py:1485 templates/js/translated/part.js:313 msgid "Edit Part Category" msgstr "" -#: part/views.py:1527 +#: part/views.py:1523 msgid "Delete Part Category" msgstr "" -#: part/views.py:1533 +#: part/views.py:1529 msgid "Part category was deleted" msgstr "" -#: part/views.py:1542 +#: part/views.py:1538 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1643 +#: part/views.py:1639 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1699 +#: part/views.py:1695 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1721 +#: part/views.py:1717 msgid "Added new price break" msgstr "" -#: part/views.py:1797 +#: part/views.py:1793 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1805 +#: part/views.py:1801 msgid "Delete Internal Price Break" msgstr "" @@ -5388,12 +5346,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:514 stock/templates/stock/item_base.html:149 +#: stock/models.py:517 stock/templates/stock/item_base.html:155 #: templates/js/translated/build.js:238 templates/js/translated/build.js:642 #: templates/js/translated/build.js:1018 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415 msgid "Serial Number" msgstr "" @@ -5402,19 +5360,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:1833 +#: stock/models.py:1948 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:1839 +#: stock/models.py:1954 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:49 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367 msgid "Date" msgstr "" @@ -5432,17 +5390,18 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434 +#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748 +#: templates/js/translated/stock.js:2627 msgid "Serial" msgstr "" -#: stock/api.py:446 +#: stock/api.py:478 msgid "Quantity is required" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571 -#: stock/templates/stock/item_base.html:186 -#: templates/js/translated/stock.js:1522 +#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574 +#: stock/templates/stock/item_base.html:192 +#: templates/js/translated/stock.js:1701 msgid "Expiry Date" msgstr "" @@ -5490,12 +5449,12 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:60 stock/models.py:608 -#: stock/templates/stock/item_base.html:417 +#: stock/models.py:60 stock/models.py:611 +#: stock/templates/stock/item_base.html:415 msgid "Owner" msgstr "" -#: stock/models.py:61 stock/models.py:609 +#: stock/models.py:61 stock/models.py:612 msgid "Select Owner" msgstr "" @@ -5528,150 +5487,190 @@ msgstr "" msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:460 +#: stock/models.py:461 msgid "Parent Stock Item" msgstr "Artículo de stock principal" -#: stock/models.py:469 +#: stock/models.py:470 msgid "Base part" msgstr "" -#: stock/models.py:477 +#: stock/models.py:478 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:482 stock/templates/stock/location.html:12 +#: stock/models.py:484 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:485 +#: stock/models.py:487 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:492 +#: stock/models.py:494 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:497 stock/templates/stock/item_base.html:299 +#: stock/models.py:500 stock/templates/stock/item_base.html:297 msgid "Installed In" msgstr "" -#: stock/models.py:500 +#: stock/models.py:503 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:516 +#: stock/models.py:519 msgid "Serial number for this item" msgstr "" -#: stock/models.py:530 +#: stock/models.py:533 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:534 +#: stock/models.py:537 msgid "Stock Quantity" msgstr "" -#: stock/models.py:543 +#: stock/models.py:546 msgid "Source Build" msgstr "" -#: stock/models.py:545 +#: stock/models.py:548 msgid "Build for this stock item" msgstr "" -#: stock/models.py:556 +#: stock/models.py:559 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:559 +#: stock/models.py:562 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:565 +#: stock/models.py:568 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:572 +#: stock/models.py:575 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete on deplete" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:595 stock/templates/stock/item.html:111 +#: stock/models.py:598 stock/templates/stock/item.html:111 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:604 +#: stock/models.py:607 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1072 +#: stock/models.py:1068 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1078 +#: stock/models.py:1074 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1084 +#: stock/models.py:1080 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1087 +#: stock/models.py:1083 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1090 +#: stock/models.py:1086 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1097 +#: stock/models.py:1093 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1255 +#: stock/models.py:1164 +msgid "Stock item has been assigned to a sales order" +msgstr "" + +#: stock/models.py:1167 +msgid "Stock item is installed in another item" +msgstr "" + +#: stock/models.py:1170 +msgid "Stock item contains other items" +msgstr "" + +#: stock/models.py:1173 +msgid "Stock item has been assigned to a customer" +msgstr "" + +#: stock/models.py:1176 +msgid "Stock item is currently in production" +msgstr "" + +#: stock/models.py:1179 +msgid "Serialized stock cannot be merged" +msgstr "" + +#: stock/models.py:1186 stock/serializers.py:773 +msgid "Duplicate stock items" +msgstr "" + +#: stock/models.py:1190 +msgid "Stock items must refer to the same part" +msgstr "" + +#: stock/models.py:1194 +msgid "Stock items must refer to the same supplier part" +msgstr "" + +#: stock/models.py:1198 +msgid "Stock status codes must match" +msgstr "" + +#: stock/models.py:1369 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1753 +#: stock/models.py:1868 msgid "Entry notes" msgstr "" -#: stock/models.py:1810 +#: stock/models.py:1925 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1931 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1834 +#: stock/models.py:1949 msgid "Test name" msgstr "" -#: stock/models.py:1840 templates/js/translated/table_filters.js:271 +#: stock/models.py:1955 templates/js/translated/table_filters.js:271 msgid "Test result" msgstr "" -#: stock/models.py:1846 +#: stock/models.py:1961 msgid "Test output value" msgstr "" -#: stock/models.py:1853 +#: stock/models.py:1968 msgid "Test result attachment" msgstr "" -#: stock/models.py:1859 +#: stock/models.py:1974 msgid "Test notes" msgstr "" @@ -5696,7 +5695,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:814 +#: stock/serializers.py:326 stock/serializers.py:730 stock/serializers.py:971 msgid "Destination stock location" msgstr "" @@ -5708,39 +5707,63 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:573 +#: stock/serializers.py:587 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:577 +#: stock/serializers.py:591 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:581 +#: stock/serializers.py:595 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:611 +#: stock/serializers.py:625 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:617 +#: stock/serializers.py:631 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:639 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:635 stock/serializers.py:722 +#: stock/serializers.py:649 stock/serializers.py:879 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:684 +#: stock/serializers.py:737 +msgid "Stock merging notes" +msgstr "" + +#: stock/serializers.py:742 +msgid "Allow mismatched suppliers" +msgstr "" + +#: stock/serializers.py:743 +msgid "Allow stock items with different supplier parts to be merged" +msgstr "" + +#: stock/serializers.py:748 +msgid "Allow mismatched status" +msgstr "" + +#: stock/serializers.py:749 +msgid "Allow stock items with different status codes to be merged" +msgstr "" + +#: stock/serializers.py:759 +msgid "At least two stock items must be provided" +msgstr "" + +#: stock/serializers.py:841 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:712 +#: stock/serializers.py:869 msgid "Stock transaction notes" msgstr "" @@ -5765,7 +5788,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50 +#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:56 msgid "Test Report" msgstr "" @@ -5797,197 +5820,189 @@ msgstr "" msgid "Delete Test Result" msgstr "" -#: stock/templates/stock/item_base.html:35 +#: stock/templates/stock/item_base.html:41 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:37 +#: stock/templates/stock/item_base.html:43 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24 +#: stock/templates/stock/item_base.html:45 templates/stock_table.html:24 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:46 +#: stock/templates/stock/item_base.html:52 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:71 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:47 templates/stock_table.html:50 +#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/location.html:51 templates/stock_table.html:50 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:78 templates/stock_table.html:48 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49 +#: stock/templates/stock/item_base.html:81 templates/stock_table.html:49 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:84 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:53 +#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/location.html:57 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53 +#: stock/templates/stock/item_base.html:91 templates/stock_table.html:54 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:94 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:108 +#: stock/templates/stock/item_base.html:114 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/item_base.html:117 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:119 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:116 +#: stock/templates/stock/item_base.html:122 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/stock.js:1535 +#: stock/templates/stock/item_base.html:205 +#: templates/js/translated/stock.js:1714 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Last Stocktake" msgstr "Último Inventario" -#: stock/templates/stock/item_base.html:208 +#: stock/templates/stock/item_base.html:214 msgid "No stocktake performed" msgstr "Ningún inventario realizado" -#: stock/templates/stock/item_base.html:226 +#: stock/templates/stock/item_base.html:232 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:239 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:234 +#: stock/templates/stock/item_base.html:240 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:247 +#: stock/templates/stock/item_base.html:253 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:261 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:263 +#: stock/templates/stock/item_base.html:269 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:269 +#: stock/templates/stock/item_base.html:275 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:273 -msgid "This stock item cannot be deleted as it has child items" -msgstr "" - -#: stock/templates/stock/item_base.html:277 -msgid "This stock item will be automatically deleted when all stock is depleted." -msgstr "" - -#: stock/templates/stock/item_base.html:318 +#: stock/templates/stock/item_base.html:316 #: templates/js/translated/build.js:1040 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:325 +#: stock/templates/stock/item_base.html:323 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:367 +#: stock/templates/stock/item_base.html:365 msgid "Parent Item" msgstr "Artículo principal" -#: stock/templates/stock/item_base.html:385 +#: stock/templates/stock/item_base.html:383 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:410 +#: stock/templates/stock/item_base.html:408 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:500 +#: stock/templates/stock/item_base.html:498 msgid "Edit Stock Status" msgstr "" @@ -6041,59 +6056,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:37 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:65 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:67 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:65 +#: stock/templates/stock/location.html:69 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:79 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:76 +#: stock/templates/stock/location.html:80 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:95 -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:99 +#: stock/templates/stock/location.html:105 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:102 +#: stock/templates/stock/location.html:106 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:119 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:175 +#: stock/templates/stock/location.html:132 +#: stock/templates/stock/location.html:179 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:142 templates/InvenTree/search.html:170 +#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "" -#: stock/templates/stock/location.html:182 templates/stock_table.html:30 +#: stock/templates/stock/location.html:186 templates/stock_table.html:30 msgid "Printing Actions" msgstr "" -#: stock/templates/stock/location.html:186 templates/stock_table.html:34 +#: stock/templates/stock/location.html:190 templates/stock_table.html:34 msgid "Print labels" msgstr "" @@ -6178,7 +6193,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:887 +#: stock/views.py:727 templates/js/translated/stock.js:1066 msgid "Confirm stock adjustment" msgstr "" @@ -6186,7 +6201,7 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:323 +#: stock/views.py:760 templates/js/translated/stock.js:324 msgid "Edit Stock Item" msgstr "" @@ -6198,7 +6213,7 @@ msgstr "" msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:303 +#: stock/views.py:1153 templates/js/translated/stock.js:304 msgid "Duplicate Stock Item" msgstr "" @@ -6314,10 +6329,6 @@ msgstr "" msgid "Search Results" msgstr "" -#: templates/InvenTree/search.html:22 -msgid "Enter a search query" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6363,7 +6374,7 @@ msgstr "" msgid "Login Settings" msgstr "" -#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5 +#: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5 msgid "Signup" msgstr "" @@ -6648,7 +6659,7 @@ msgstr "" msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:55 +#: templates/InvenTree/settings/user.html:54 msgid "The following email addresses are associated with your account:" msgstr "" @@ -6673,145 +6684,193 @@ msgid "Re-send Verification" msgstr "" #: templates/InvenTree/settings/user.html:87 -#: templates/InvenTree/settings/user.html:154 +#: templates/InvenTree/settings/user.html:149 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:94 +#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:201 msgid "Warning:" msgstr "" -#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:96 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:102 +#: templates/InvenTree/settings/user.html:104 msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:112 -msgid "Enter e-mail address" -msgstr "" - -#: templates/InvenTree/settings/user.html:114 +#: templates/InvenTree/settings/user.html:109 msgid "Add Email" msgstr "" -#: templates/InvenTree/settings/user.html:124 +#: templates/InvenTree/settings/user.html:117 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:129 +#: templates/InvenTree/settings/user.html:122 msgid "You can sign in to your account using any of the following third party accounts:" msgstr "" -#: templates/InvenTree/settings/user.html:163 -msgid "There are no social network accounts connected to your InvenTree account" +#: templates/InvenTree/settings/user.html:157 +msgid "You currently have no social network accounts connected to this account." msgstr "" -#: templates/InvenTree/settings/user.html:168 +#: templates/InvenTree/settings/user.html:162 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:179 -msgid "Active Sessions" +#: templates/InvenTree/settings/user.html:172 +msgid "Multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:185 -msgid "Log out active sessions (except this one)" +#: templates/InvenTree/settings/user.html:177 +msgid "You have these factors available:" msgstr "" -#: templates/InvenTree/settings/user.html:186 -msgid "Log Out Active Sessions" +#: templates/InvenTree/settings/user.html:187 +msgid "TOTP" 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" +#: templates/InvenTree/settings/user.html:193 +msgid "Static" msgstr "" #: templates/InvenTree/settings/user.html:202 -msgid "Last Activity" +msgid "You currently do not have any factors set up." msgstr "" -#: templates/InvenTree/settings/user.html:211 -#, python-format -msgid "%(time)s ago (this session)" +#: templates/InvenTree/settings/user.html:209 +msgid "Change factors" msgstr "" -#: templates/InvenTree/settings/user.html:213 -#, python-format -msgid "%(time)s ago" +#: templates/InvenTree/settings/user.html:210 +msgid "Setup multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:224 -msgid "Do you really want to remove the selected email address?" +#: templates/InvenTree/settings/user.html:212 +msgid "Remove multifactor" msgstr "" +#: templates/InvenTree/settings/user.html:219 #: templates/InvenTree/settings/user_display.html:25 msgid "Theme Settings" msgstr "" +#: templates/InvenTree/settings/user.html:227 #: templates/InvenTree/settings/user_display.html:35 msgid "Select theme" msgstr "" +#: templates/InvenTree/settings/user.html:237 #: templates/InvenTree/settings/user_display.html:46 msgid "Set Theme" msgstr "" +#: templates/InvenTree/settings/user.html:246 #: templates/InvenTree/settings/user_display.html:54 msgid "Language Settings" msgstr "" +#: templates/InvenTree/settings/user.html:254 #: templates/InvenTree/settings/user_display.html:63 msgid "Select language" msgstr "" +#: templates/InvenTree/settings/user.html:270 #: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" +#: templates/InvenTree/settings/user.html:272 #: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" +#: templates/InvenTree/settings/user.html:279 #: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" +#: templates/InvenTree/settings/user.html:281 #: templates/InvenTree/settings/user_display.html:91 msgid "Some languages are not complete" msgstr "" +#: templates/InvenTree/settings/user.html:283 #: 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.html:285 #: templates/InvenTree/settings/user_display.html:95 msgid "Show them too" msgstr "" +#: templates/InvenTree/settings/user.html:292 #: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" +#: templates/InvenTree/settings/user.html:293 +#, python-format +msgid "Native language translation of the\n" +" InvenTree web application is community contributed via crowdin. Contributions are\n" +" welcomed and encouraged." +msgstr "" + +#: templates/InvenTree/settings/user.html:302 +msgid "Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:308 +msgid "Log out active sessions (except this one)" +msgstr "" + +#: templates/InvenTree/settings/user.html:309 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:318 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:319 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:323 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:324 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:325 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:334 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:336 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:348 +msgid "Do you really want to remove the selected email address?" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +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." @@ -6830,7 +6889,7 @@ msgid "InvenTree Version Information" msgstr "" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53 +#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53 #: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662 #: templates/js/translated/modals.js:965 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 @@ -7006,6 +7065,71 @@ msgstr "" msgid "View in administration panel" msgstr "" +#: templates/allauth_2fa/authenticate.html:5 +msgid "Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:12 +msgid "Authenticate" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:6 +msgid "Two-Factor Authentication Backup Tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:17 +msgid "Backup tokens have been generated, but are not revealed here for security reasons. Press the button below to generate new ones." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:20 +msgid "No tokens. Press the button below to generate some." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:27 +msgid "Generate backup tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:31 +#: templates/allauth_2fa/setup.html:40 +msgid "back to settings" +msgstr "" + +#: templates/allauth_2fa/remove.html:6 +msgid "Disable Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/remove.html:9 +msgid "Are you sure?" +msgstr "" + +#: templates/allauth_2fa/remove.html:14 +msgid "Disable Two-Factor" +msgstr "" + +#: templates/allauth_2fa/setup.html:6 +msgid "Setup Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/setup.html:10 +msgid "Step 1" +msgstr "" + +#: templates/allauth_2fa/setup.html:14 +msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." +msgstr "" + +#: templates/allauth_2fa/setup.html:23 +msgid "Step 2" +msgstr "" + +#: templates/allauth_2fa/setup.html:27 +msgid "Input a token generated by the app:" +msgstr "" + +#: templates/allauth_2fa/setup.html:35 +msgid "Verify" +msgstr "" + #: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 msgid "Add Link" msgstr "" @@ -7044,13 +7168,13 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:1103 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134 +#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1134 #: templates/js/translated/build.js:1755 #: templates/js/translated/table_filters.js:178 msgid "Available" @@ -7239,7 +7363,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018 msgid "Remove stock item" msgstr "" @@ -7281,91 +7405,153 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:184 +#: templates/js/translated/bom.js:36 +msgid "Download BOM Template" +msgstr "" + +#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510 +msgid "Format" +msgstr "" + +#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511 +msgid "Select file format" +msgstr "" + +#: templates/js/translated/bom.js:81 +msgid "Cascading" +msgstr "" + +#: templates/js/translated/bom.js:82 +msgid "Download cascading / multi-level BOM" +msgstr "" + +#: templates/js/translated/bom.js:87 +msgid "Levels" +msgstr "" + +#: templates/js/translated/bom.js:88 +msgid "Select maximum number of BOM levels to export (0 = all levels)" +msgstr "" + +#: templates/js/translated/bom.js:94 +msgid "Include Parameter Data" +msgstr "" + +#: templates/js/translated/bom.js:95 +msgid "Include part parameter data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:100 +msgid "Include Stock Data" +msgstr "" + +#: templates/js/translated/bom.js:101 +msgid "Include part stock data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:106 +msgid "Include Manufacturer Data" +msgstr "" + +#: templates/js/translated/bom.js:107 +msgid "Include part manufacturer data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:112 +msgid "Include Supplier Data" +msgstr "" + +#: templates/js/translated/bom.js:113 +msgid "Include part supplier data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:296 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:228 +#: templates/js/translated/bom.js:340 msgid "Select and add a new variant item using the input below" msgstr "" -#: templates/js/translated/bom.js:239 +#: templates/js/translated/bom.js:351 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:245 +#: templates/js/translated/bom.js:357 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:284 +#: templates/js/translated/bom.js:396 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:285 +#: templates/js/translated/bom.js:397 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:404 +#: templates/js/translated/bom.js:516 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116 +#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1116 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:413 +#: templates/js/translated/bom.js:525 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:485 +#: templates/js/translated/bom.js:597 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:500 +#: templates/js/translated/bom.js:612 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:507 +#: templates/js/translated/bom.js:619 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645 +#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:616 +#: templates/js/translated/bom.js:728 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:618 +#: templates/js/translated/bom.js:730 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:620 +#: templates/js/translated/bom.js:732 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796 +#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779 +#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860 +#: templates/js/translated/bom.js:830 templates/js/translated/build.js:860 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:774 +#: templates/js/translated/bom.js:886 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100 +#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1100 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:996 +#: templates/js/translated/bom.js:1108 msgid "Inherited from parent BOM" msgstr "Heredado de BOM principal" @@ -7464,7 +7650,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1199 templates/stock_table.html:52 +#: templates/js/translated/build.js:1199 templates/stock_table.html:53 msgid "Order stock" msgstr "" @@ -7509,9 +7695,9 @@ msgstr "" msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147 -#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333 -#: templates/js/translated/stock.js:2128 +#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1149 +#: templates/js/translated/part.js:1560 templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:2321 msgid "Select" msgstr "" @@ -7519,7 +7705,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347 +#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2540 msgid "No user information" msgstr "" @@ -7682,20 +7868,20 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1078 templates/modals.html:19 +#: templates/js/translated/forms.js:1080 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1469 +#: templates/js/translated/forms.js:1471 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1673 +#: templates/js/translated/forms.js:1675 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1893 +#: templates/js/translated/forms.js:1895 msgid "Clear input" msgstr "" @@ -7708,7 +7894,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:863 +#: templates/js/translated/stock.js:1042 msgid "Select Stock Items" msgstr "" @@ -7888,14 +8074,6 @@ msgstr "" msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509 -msgid "Format" -msgstr "" - -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510 -msgid "Select file format" -msgstr "" - #: templates/js/translated/order.js:460 msgid "Select Line Items" msgstr "" @@ -7908,7 +8086,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123 msgid "Stock Status" msgstr "" @@ -7957,7 +8135,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163 -#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986 +#: templates/js/translated/part.js:1777 templates/js/translated/part.js:1988 msgid "Unit Price" msgstr "" @@ -8042,7 +8220,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1249 +#: templates/js/translated/stock.js:1428 msgid "Shipped to customer" msgstr "" @@ -8206,92 +8384,92 @@ msgstr "" msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:946 +#: templates/js/translated/part.js:948 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:970 +#: templates/js/translated/part.js:972 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1037 templates/js/translated/part.js:1297 +#: templates/js/translated/part.js:1039 templates/js/translated/part.js:1299 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1207 +#: templates/js/translated/part.js:1209 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1230 +#: templates/js/translated/part.js:1232 #: templates/js/translated/table_filters.js:412 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493 -#: templates/js/translated/stock.js:2089 +#: templates/js/translated/part.js:1323 templates/js/translated/part.js:1495 +#: templates/js/translated/stock.js:2282 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1337 +#: templates/js/translated/part.js:1339 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108 +#: templates/js/translated/part.js:1514 templates/js/translated/stock.js:2301 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1576 +#: templates/js/translated/part.js:1578 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152 +#: templates/js/translated/part.js:1592 templates/js/translated/stock.js:2345 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1634 +#: templates/js/translated/part.js:1636 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055 +#: templates/js/translated/part.js:1687 templates/js/translated/stock.js:1234 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056 +#: templates/js/translated/part.js:1688 templates/js/translated/stock.js:1235 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1692 +#: templates/js/translated/part.js:1694 msgid "This test is defined for a parent part" msgstr "Esta prueba está definida para una parte principal" -#: templates/js/translated/part.js:1714 +#: templates/js/translated/part.js:1716 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1728 +#: templates/js/translated/part.js:1730 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1753 +#: templates/js/translated/part.js:1755 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1808 +#: templates/js/translated/part.js:1810 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1809 +#: templates/js/translated/part.js:1811 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1910 +#: templates/js/translated/part.js:1912 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1929 +#: templates/js/translated/part.js:1931 msgid "Single Price Difference" msgstr "" @@ -8365,316 +8543,340 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:72 +#: templates/js/translated/stock.js:73 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173 msgid "Next available serial number" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174 +#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175 msgid "Latest serial number" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:101 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:109 +#: templates/js/translated/stock.js:110 msgid "Parent stock location" msgstr "Ubicación del stock principal" -#: templates/js/translated/stock.js:145 +#: templates/js/translated/stock.js:146 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:185 +#: templates/js/translated/stock.js:186 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:224 +#: templates/js/translated/stock.js:225 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:231 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:373 +#: templates/js/translated/stock.js:374 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:386 +#: templates/js/translated/stock.js:387 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:411 +#: templates/js/translated/stock.js:412 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416 +#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:432 +#: templates/js/translated/stock.js:433 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:452 +#: templates/js/translated/stock.js:453 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:506 +#: templates/js/translated/stock.js:507 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:517 +#: templates/js/translated/stock.js:518 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:518 +#: templates/js/translated/stock.js:519 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:627 +#: templates/js/translated/stock.js:628 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:628 +#: templates/js/translated/stock.js:629 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:713 +#: templates/js/translated/stock.js:706 +msgid "Warning: Merge operation cannot be reversed" +msgstr "" + +#: templates/js/translated/stock.js:707 +msgid "Some information will be lost when merging stock items" +msgstr "" + +#: templates/js/translated/stock.js:709 +msgid "Stock transaction history will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:710 +msgid "Supplier part information will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:796 +msgid "Confirm stock item merge" +msgstr "" + +#: templates/js/translated/stock.js:797 +msgid "Merge Stock Items" +msgstr "" + +#: templates/js/translated/stock.js:892 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:893 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:899 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:721 +#: templates/js/translated/stock.js:900 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:725 +#: templates/js/translated/stock.js:904 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:726 +#: templates/js/translated/stock.js:905 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:730 +#: templates/js/translated/stock.js:909 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:731 users/models.py:202 +#: templates/js/translated/stock.js:910 users/models.py:205 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:735 templates/stock_table.html:57 +#: templates/js/translated/stock.js:914 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:864 +#: templates/js/translated/stock.js:1043 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1022 +#: templates/js/translated/stock.js:1201 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1024 +#: templates/js/translated/stock.js:1203 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1029 +#: templates/js/translated/stock.js:1208 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1230 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1077 +#: templates/js/translated/stock.js:1256 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1134 +#: templates/js/translated/stock.js:1313 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1420 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1245 +#: templates/js/translated/stock.js:1424 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1432 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1259 +#: templates/js/translated/stock.js:1438 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1417 +#: templates/js/translated/stock.js:1596 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1422 +#: templates/js/translated/stock.js:1601 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1425 +#: templates/js/translated/stock.js:1604 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1429 +#: templates/js/translated/stock.js:1608 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1431 +#: templates/js/translated/stock.js:1610 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1437 +#: templates/js/translated/stock.js:1616 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1618 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1441 +#: templates/js/translated/stock.js:1620 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1625 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1453 +#: templates/js/translated/stock.js:1632 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1455 +#: templates/js/translated/stock.js:1634 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1457 +#: templates/js/translated/stock.js:1636 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1461 +#: templates/js/translated/stock.js:1640 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1511 +#: templates/js/translated/stock.js:1690 msgid "Stocktake" msgstr "Inventario" -#: templates/js/translated/stock.js:1584 +#: templates/js/translated/stock.js:1763 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1622 +#: templates/js/translated/stock.js:1801 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691 +#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1731 +#: templates/js/translated/stock.js:1910 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1758 +#: templates/js/translated/stock.js:1937 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1760 +#: templates/js/translated/stock.js:1939 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2138 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1959 +#: templates/js/translated/stock.js:2152 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1960 +#: templates/js/translated/stock.js:2153 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2377 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2206 +#: templates/js/translated/stock.js:2399 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2231 +#: templates/js/translated/stock.js:2424 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2250 +#: templates/js/translated/stock.js:2443 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2269 +#: templates/js/translated/stock.js:2462 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2480 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2310 +#: templates/js/translated/stock.js:2503 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2318 +#: templates/js/translated/stock.js:2511 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2552 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2360 +#: templates/js/translated/stock.js:2553 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2411 +#: templates/js/translated/stock.js:2604 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2462 +#: templates/js/translated/stock.js:2655 msgid "Uninstall Stock Item" msgstr "" @@ -9059,18 +9261,26 @@ msgid "Move stock" msgstr "" #: templates/stock_table.html:52 +msgid "Merge selected stock items" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Merge stock" +msgstr "" + +#: templates/stock_table.html:53 msgid "Order selected items" msgstr "Pedir artículos seleccionados" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change status" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change stock status" msgstr "" -#: templates/stock_table.html:57 +#: templates/stock_table.html:58 msgid "Delete selected items" msgstr "Eliminar artículos seleccionados" @@ -9106,35 +9316,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:189 +#: users/models.py:192 msgid "Permission set" msgstr "" -#: users/models.py:197 +#: users/models.py:200 msgid "Group" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "View" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "Permission to view items" msgstr "Permiso para ver artículos" -#: users/models.py:202 +#: users/models.py:205 msgid "Permission to add items" msgstr "Permiso para añadir artículos" -#: users/models.py:204 +#: users/models.py:207 msgid "Change" msgstr "" -#: users/models.py:204 +#: users/models.py:207 msgid "Permissions to edit items" msgstr "Permisos para editar artículos" -#: users/models.py:206 +#: users/models.py:209 msgid "Permission to delete items" msgstr "Permiso para eliminar artículos" diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po index 17c4d272c4..a11f3877e0 100644 --- a/InvenTree/locale/fr/LC_MESSAGES/django.po +++ b/InvenTree/locale/fr/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-12-08 23:43+0000\n" -"PO-Revision-Date: 2021-12-08 23:46\n" +"POT-Creation-Date: 2021-12-21 02:57+0000\n" +"PO-Revision-Date: 2021-12-21 03:01\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -34,50 +34,50 @@ msgstr "Aucune action correspondante trouvée" msgid "Enter date" msgstr "Entrer la date" -#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93 +#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 build/forms.py:93 #: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: part/forms.py:108 templates/account/email_confirm.html:20 +#: part/forms.py:78 templates/account/email_confirm.html:20 #: templates/js/translated/forms.js:595 msgid "Confirm" msgstr "Confirmer" -#: InvenTree/forms.py:136 +#: InvenTree/forms.py:142 msgid "Confirm delete" msgstr "Confirmer la suppression" -#: InvenTree/forms.py:137 +#: InvenTree/forms.py:143 msgid "Confirm item deletion" msgstr "Confirmer la suppression de cet élément" -#: InvenTree/forms.py:168 +#: InvenTree/forms.py:174 msgid "Enter password" msgstr "Entrer le mot de passe" -#: InvenTree/forms.py:169 +#: InvenTree/forms.py:175 msgid "Enter new password" msgstr "Entrer le nouveau mot de passe" -#: InvenTree/forms.py:176 +#: InvenTree/forms.py:182 msgid "Confirm password" msgstr "Confirmez le mot de passe" -#: InvenTree/forms.py:177 +#: InvenTree/forms.py:183 msgid "Confirm new password" msgstr "Confirmer le nouveau mot de passe" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:215 msgid "Select Category" msgstr "Sélectionnez une catégorie" -#: InvenTree/forms.py:230 +#: InvenTree/forms.py:236 msgid "Email (again)" msgstr "Email (encore)" -#: InvenTree/forms.py:234 +#: InvenTree/forms.py:240 msgid "Email address confirmation" msgstr "Confirmation de l'adresse email" -#: InvenTree/forms.py:254 +#: InvenTree/forms.py:260 msgid "You must type the same email each time." msgstr "Vous devez taper le même e-mail à chaque fois." @@ -123,7 +123,7 @@ msgstr "Fichier manquant" msgid "Missing external link" msgstr "Lien externe manquant" -#: InvenTree/models.py:132 stock/models.py:1852 +#: InvenTree/models.py:132 stock/models.py:1967 #: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "Pièce jointe" @@ -136,12 +136,12 @@ msgstr "Sélectionnez un fichier à joindre" #: company/models.py:564 order/models.py:124 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:1258 +#: templates/js/translated/company.js:826 templates/js/translated/part.js:1260 msgid "Link" msgstr "Lien" #: InvenTree/models.py:140 build/models.py:330 part/models.py:798 -#: stock/models.py:524 +#: stock/models.py:527 msgid "Link to external URL" msgstr "Lien vers une url externe" @@ -153,10 +153,10 @@ msgstr "Commentaire" msgid "File comment" msgstr "Commentaire du fichier" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213 -#: common/models.py:1214 part/models.py:2205 part/models.py:2225 +#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1219 +#: common/models.py:1220 part/models.py:2205 part/models.py:2225 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2341 +#: templates/js/translated/stock.js:2534 msgid "User" msgstr "Utilisateur" @@ -202,8 +202,8 @@ msgstr "Choix invalide" #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:268 #: templates/js/translated/company.js:638 templates/js/translated/part.js:506 -#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565 -#: templates/js/translated/stock.js:2134 +#: templates/js/translated/part.js:643 templates/js/translated/part.js:1567 +#: templates/js/translated/stock.js:2327 msgid "Name" msgstr "Nom" @@ -212,23 +212,23 @@ msgstr "Nom" #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70 +#: order/models.py:122 part/models.py:764 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:89 +#: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428 +#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540 #: templates/js/translated/build.js:1627 templates/js/translated/company.js:345 #: templates/js/translated/company.js:548 #: templates/js/translated/company.js:837 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 -#: templates/js/translated/part.js:565 templates/js/translated/part.js:933 -#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188 -#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653 -#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146 -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/part.js:565 templates/js/translated/part.js:935 +#: templates/js/translated/part.js:1020 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1586 templates/js/translated/part.js:1655 +#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339 +#: templates/js/translated/stock.js:2384 msgid "Description" msgstr "Description" @@ -248,83 +248,83 @@ msgstr "Doit être un nombre valide" msgid "Filename" msgstr "Nom du fichier" -#: InvenTree/settings.py:689 +#: InvenTree/settings.py:698 msgid "German" msgstr "Allemand" -#: InvenTree/settings.py:690 +#: InvenTree/settings.py:699 msgid "Greek" msgstr "Greek" -#: InvenTree/settings.py:691 +#: InvenTree/settings.py:700 msgid "English" msgstr "Anglais" -#: InvenTree/settings.py:692 +#: InvenTree/settings.py:701 msgid "Spanish" msgstr "Spanish" -#: InvenTree/settings.py:693 +#: InvenTree/settings.py:702 msgid "Spanish (Mexican)" msgstr "Espagnol (Mexique)" -#: InvenTree/settings.py:694 +#: InvenTree/settings.py:703 msgid "French" msgstr "Français" -#: InvenTree/settings.py:695 +#: InvenTree/settings.py:704 msgid "Hebrew" msgstr "Hebrew" -#: InvenTree/settings.py:696 +#: InvenTree/settings.py:705 msgid "Italian" msgstr "Italian" -#: InvenTree/settings.py:697 +#: InvenTree/settings.py:706 msgid "Japanese" msgstr "Japanese" -#: InvenTree/settings.py:698 +#: InvenTree/settings.py:707 msgid "Korean" msgstr "Korean" -#: InvenTree/settings.py:699 +#: InvenTree/settings.py:708 msgid "Dutch" msgstr "Dutch" -#: InvenTree/settings.py:700 +#: InvenTree/settings.py:709 msgid "Norwegian" msgstr "Norwegian" -#: InvenTree/settings.py:701 +#: InvenTree/settings.py:710 msgid "Polish" msgstr "Polonais" -#: InvenTree/settings.py:702 +#: InvenTree/settings.py:711 msgid "Portugese" msgstr "Portugais" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:712 msgid "Russian" msgstr "Russian" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:713 msgid "Swedish" msgstr "Swedish" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:714 msgid "Thai" msgstr "Thai" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:715 msgid "Turkish" msgstr "Turc" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:716 msgid "Vietnamese" msgstr "Vietnamese" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:717 msgid "Chinese" msgstr "Chinese" @@ -341,7 +341,7 @@ msgid "InvenTree system health checks failed" msgstr "Échec des contrôles de santé du système" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 msgid "Pending" msgstr "En attente" @@ -349,14 +349,14 @@ msgstr "En attente" msgid "Placed" msgstr "Placé" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:319 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "Terminé" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:313 +#: InvenTree/status_codes.py:318 msgid "Cancelled" msgstr "Annulé" @@ -370,7 +370,7 @@ msgstr "Perdu" msgid "Returned" msgstr "Retourné" -#: InvenTree/status_codes.py:143 order/models.py:939 +#: InvenTree/status_codes.py:143 order/models.py:941 #: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255 msgid "Shipped" msgstr "Expédié" @@ -395,83 +395,87 @@ msgstr "Détruit" msgid "Rejected" msgstr "Rejeté" -#: InvenTree/status_codes.py:269 +#: InvenTree/status_codes.py:272 msgid "Legacy stock tracking entry" msgstr "Ancienne entrée de suivi de stock" -#: InvenTree/status_codes.py:271 +#: InvenTree/status_codes.py:274 msgid "Stock item created" msgstr "Article en stock créé" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Edited stock item" msgstr "Article de stock modifié" -#: InvenTree/status_codes.py:274 +#: InvenTree/status_codes.py:277 msgid "Assigned serial number" msgstr "Numéro de série attribué" -#: InvenTree/status_codes.py:276 +#: InvenTree/status_codes.py:279 msgid "Stock counted" msgstr "Stock comptabilisé" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Stock manually added" msgstr "Stock ajouté manuellement" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Stock manually removed" msgstr "Stock supprimé manuellement" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Location changed" msgstr "Emplacement modifié" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Installed into assembly" msgstr "Installé dans l'assemblage" -#: InvenTree/status_codes.py:283 +#: InvenTree/status_codes.py:286 msgid "Removed from assembly" msgstr "Retiré de l'assemblage" -#: InvenTree/status_codes.py:285 +#: InvenTree/status_codes.py:288 msgid "Installed component item" msgstr "Composant installé" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Removed component item" msgstr "Composant retiré" -#: InvenTree/status_codes.py:288 +#: InvenTree/status_codes.py:291 msgid "Split from parent item" msgstr "Séparer de l'élément parent" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Split child item" msgstr "Fractionner l'élément enfant" -#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064 +msgid "Merged stock items" +msgstr "" + +#: InvenTree/status_codes.py:296 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "Envoyé au client" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:297 msgid "Returned from customer" msgstr "Retourné par le client" -#: InvenTree/status_codes.py:294 +#: InvenTree/status_codes.py:299 msgid "Build order output created" msgstr "La sortie de l'ordre de construction a été créée" -#: InvenTree/status_codes.py:295 +#: InvenTree/status_codes.py:300 msgid "Build order output completed" msgstr "Sortie de l'ordre de construction terminée" -#: InvenTree/status_codes.py:297 +#: InvenTree/status_codes.py:302 msgid "Received against purchase order" msgstr "Reçu contre bon de commande" -#: InvenTree/status_codes.py:312 +#: InvenTree/status_codes.py:317 msgid "Production" msgstr "Fabrication" @@ -575,16 +579,16 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1283 -#: build/templates/build/build_base.html:132 -#: build/templates/build/detail.html:35 common/models.py:1253 +#: build/forms.py:36 build/models.py:1286 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1259 #: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:794 order/models.py:1205 order/serializers.py:810 +#: order/models.py:796 order/models.py:1207 order/serializers.py:810 #: order/templates/order/order_wizard/match_parts.html:30 -#: 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 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:193 +#: part/forms.py:209 part/forms.py:225 part/models.py:2576 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:967 part/templates/part/detail.html:1053 +#: part/templates/part/detail.html:961 part/templates/part/detail.html:1047 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -592,10 +596,10 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:174 -#: stock/templates/stock/item_base.html:255 -#: stock/templates/stock/item_base.html:263 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443 +#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:261 +#: stock/templates/stock/item_base.html:269 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555 #: templates/js/translated/build.js:240 templates/js/translated/build.js:440 #: templates/js/translated/build.js:634 templates/js/translated/build.js:644 #: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367 @@ -604,10 +608,10 @@ msgstr "" #: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 #: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 #: templates/js/translated/order.js:2150 templates/js/translated/part.js:843 -#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919 -#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382 -#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326 -#: templates/js/translated/stock.js:2428 +#: templates/js/translated/part.js:1798 templates/js/translated/part.js:1921 +#: templates/js/translated/part.js:1999 templates/js/translated/stock.js:383 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750 +#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621 msgid "Quantity" msgstr "Quantité" @@ -616,8 +620,8 @@ msgid "Enter quantity for build output" msgstr "Entrer la quantité désiré pour la fabrication" #: build/forms.py:41 order/serializers.py:814 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:229 -#: templates/js/translated/stock.js:383 +#: stock/serializers.py:314 templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:384 msgid "Serial Numbers" msgstr "Numéros de série" @@ -661,7 +665,7 @@ msgstr "Ordre de Fabrication" #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:145 +#: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" msgstr "Ordres de Fabrication" @@ -671,11 +675,11 @@ msgid "Build Order Reference" msgstr "Référence de l' Ordre de Fabrication" #: build/models.py:199 order/models.py:210 order/models.py:536 -#: order/models.py:801 part/models.py:2585 +#: order/models.py:803 part/models.py:2585 #: part/templates/part/bom_upload/match_parts.html:30 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124 +#: templates/js/translated/bom.js:547 templates/js/translated/build.js:1124 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "Référence" @@ -695,7 +699,7 @@ msgstr "BuildOrder associé a cette fabrication" #: build/models.py:225 build/templates/build/build_base.html:77 #: build/templates/build/detail.html:30 company/models.py:705 -#: order/models.py:854 order/models.py:928 +#: order/models.py:856 order/models.py:930 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357 #: part/models.py:2151 part/models.py:2167 part/models.py:2186 #: part/models.py:2203 part/models.py:2305 part/models.py:2427 @@ -706,20 +710,21 @@ msgstr "BuildOrder associé a cette fabrication" #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 -#: templates/InvenTree/search.html:86 +#: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214 -#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326 +#: templates/js/translated/bom.js:505 templates/js/translated/build.js:625 #: templates/js/translated/build.js:993 templates/js/translated/build.js:1364 #: templates/js/translated/build.js:1632 templates/js/translated/company.js:489 #: templates/js/translated/company.js:746 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 -#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918 -#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166 -#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747 -#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416 +#: templates/js/translated/order.js:2128 templates/js/translated/part.js:920 +#: templates/js/translated/part.js:1001 templates/js/translated/part.js:1168 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719 +#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:2609 msgid "Part" msgstr "Pièce" @@ -776,7 +781,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:285 stock/models.py:528 +#: build/models.py:285 stock/models.py:531 msgid "Batch Code" msgstr "" @@ -830,27 +835,27 @@ msgstr "" #: build/models.py:329 build/templates/build/detail.html:102 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:354 stock/models.py:522 -#: stock/templates/stock/item_base.html:374 +#: part/templates/part/part_base.html:354 stock/models.py:525 +#: stock/templates/stock/item_base.html:372 msgid "External Link" msgstr "Lien 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:144 order/models.py:803 order/models.py:1049 +#: order/models.py:144 order/models.py:805 order/models.py:1051 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:925 -#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50 +#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594 -#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332 -#: stock/serializers.py:624 stock/serializers.py:711 +#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597 +#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332 +#: stock/serializers.py:638 stock/serializers.py:736 stock/serializers.py:868 #: stock/templates/stock/stock_sidebar.html:21 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711 #: templates/js/translated/company.js:842 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795 msgid "Notes" msgstr "Notes" @@ -883,7 +888,7 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1133 order/models.py:1165 +#: build/models.py:1133 order/models.py:1167 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -891,51 +896,52 @@ msgstr "" msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1193 +#: build/models.py:1196 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1253 stock/templates/stock/item_base.html:346 -#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605 +#: build/models.py:1256 stock/templates/stock/item_base.html:344 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1605 #: templates/navbar.html:35 msgid "Build" msgstr "Assemblage" -#: build/models.py:1254 +#: build/models.py:1257 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690 -#: order/serializers.py:708 stock/serializers.py:562 +#: build/models.py:1273 build/serializers.py:334 order/serializers.py:690 +#: order/serializers.py:708 stock/serializers.py:576 stock/serializers.py:694 #: stock/templates/stock/item_base.html:8 -#: stock/templates/stock/item_base.html:16 -#: stock/templates/stock/item_base.html:368 +#: stock/templates/stock/item_base.html:22 +#: stock/templates/stock/item_base.html:366 #: templates/js/translated/build.js:413 templates/js/translated/build.js:418 #: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277 +#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:2470 msgid "Stock Item" msgstr "Article en stock" -#: build/models.py:1271 +#: build/models.py:1274 msgid "Source stock item" msgstr "" -#: build/models.py:1284 +#: build/models.py:1287 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1292 +#: build/models.py:1295 msgid "Install into" msgstr "Installer dans" -#: build/models.py:1293 +#: build/models.py:1296 msgid "Destination stock item" msgstr "" -#: build/serializers.py:137 build/serializers.py:357 +#: build/serializers.py:137 build/serializers.py:363 msgid "Build Output" msgstr "Sortie d'assemblage" @@ -956,16 +962,16 @@ msgid "This build output is not fully allocated" msgstr "" #: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813 -#: stock/templates/stock/item_base.html:314 +#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:729 +#: stock/serializers.py:970 stock/templates/stock/item_base.html:312 #: templates/js/translated/barcode.js:384 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425 #: templates/js/translated/build.js:1032 templates/js/translated/order.js:508 #: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 #: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497 -#: templates/js/translated/stock.js:2218 +#: templates/js/translated/part.js:177 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411 msgid "Location" msgstr "Emplacement" @@ -975,11 +981,11 @@ msgstr "" #: build/serializers.py:197 build/templates/build/build_base.html:137 #: build/templates/build/detail.html:63 order/models.py:552 -#: order/serializers.py:247 stock/templates/stock/item_base.html:180 +#: order/serializers.py:247 stock/templates/stock/item_base.html:186 #: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661 #: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472 -#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651 +#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637 msgid "Status" msgstr "État" @@ -1000,33 +1006,33 @@ msgstr "" msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:319 +#: build/serializers.py:325 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:334 stock/serializers.py:569 +#: build/serializers.py:340 stock/serializers.py:583 msgid "Item must be in stock" msgstr "L'article doit être en stock" -#: build/serializers.py:348 order/models.py:277 order/serializers.py:240 -#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305 +#: build/serializers.py:354 order/models.py:277 order/serializers.py:240 +#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "La quantité doit être supérieure à zéro" -#: build/serializers.py:390 order/serializers.py:741 +#: build/serializers.py:396 order/serializers.py:741 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Quantité disponible ({q}) dépassée" -#: build/serializers.py:396 +#: build/serializers.py:402 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:403 +#: build/serializers.py:409 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:431 order/serializers.py:984 +#: build/serializers.py:437 order/serializers.py:984 msgid "Allocation items must be provided" msgstr "" @@ -1067,33 +1073,33 @@ msgstr "Supprimer l'assemblage" msgid "Complete Build" msgstr "Compléter l'assemblage" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:87 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:96 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:98 +#: build/templates/build/build_base.html:103 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:105 +#: build/templates/build/build_base.html:110 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Stock has not been fully allocated to this Build Order" msgstr "" @@ -1131,12 +1137,12 @@ msgid "Completed" msgstr "Terminé" #: build/templates/build/build_base.html:171 -#: build/templates/build/detail.html:95 order/models.py:925 -#: order/models.py:1021 order/templates/order/sales_order_base.html:9 +#: build/templates/build/detail.html:95 order/models.py:927 +#: order/models.py:1023 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:308 +#: stock/templates/stock/item_base.html:306 #: templates/js/translated/order.js:1218 msgid "Sales Order" msgstr "Commandes" @@ -1211,7 +1217,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "Destination" @@ -1225,8 +1231,8 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:332 -#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451 +#: stock/templates/stock/item_base.html:330 +#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1278,7 +1284,7 @@ msgstr "Commander les pièces requises" #: build/templates/build/detail.html:185 #: company/templates/company/detail.html:38 #: company/templates/company/detail.html:85 order/views.py:463 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order Parts" msgstr "Commander des pièces" @@ -1347,7 +1353,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115 +#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115 #: stock/templates/stock/item.html:205 msgid "Edit Notes" msgstr "Modifier les notes" @@ -1489,7 +1495,7 @@ msgstr "{name.title()} Fichier" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:340 common/models.py:998 common/models.py:1206 +#: common/models.py:340 common/models.py:1004 common/models.py:1212 msgid "Settings key (must be unique - case insensitive" msgstr "" @@ -1651,7 +1657,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956 +#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:1068 #: templates/js/translated/table_filters.js:168 #: templates/js/translated/table_filters.js:416 msgid "Assembly" @@ -1953,256 +1959,264 @@ msgid "Group to which new users are assigned on registration" msgstr "" #: common/models.py:961 -msgid "Enable URL integration" +msgid "Enforce MFA" msgstr "" #: common/models.py:962 -msgid "Enable plugins to add URL routes" +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:967 +msgid "Enable URL integration" msgstr "" #: common/models.py:968 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:974 msgid "Enable navigation integration" msgstr "" -#: common/models.py:969 +#: common/models.py:975 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:975 +#: common/models.py:981 msgid "Enable global setting integration" msgstr "" -#: common/models.py:976 +#: common/models.py:982 msgid "Enable plugins to integrate into inventree global settings" msgstr "" -#: common/models.py:982 +#: common/models.py:988 msgid "Enable app integration" msgstr "" -#: common/models.py:983 +#: common/models.py:989 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1029 +#: common/models.py:1035 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1030 +#: common/models.py:1036 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1035 +#: common/models.py:1041 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1036 +#: common/models.py:1042 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1041 +#: common/models.py:1047 msgid "Show latest parts" msgstr "Afficher les dernières pièces" -#: common/models.py:1042 +#: common/models.py:1048 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1047 +#: common/models.py:1053 msgid "Recent Part Count" msgstr "" -#: common/models.py:1048 +#: common/models.py:1054 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1054 +#: common/models.py:1060 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1055 +#: common/models.py:1061 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1060 +#: common/models.py:1066 msgid "Show recent stock changes" msgstr "Afficher les dernières modifications du stock" -#: common/models.py:1061 +#: common/models.py:1067 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1066 +#: common/models.py:1072 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1067 +#: common/models.py:1073 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1072 +#: common/models.py:1078 msgid "Show low stock" msgstr "" -#: common/models.py:1073 +#: common/models.py:1079 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1078 +#: common/models.py:1084 msgid "Show depleted stock" msgstr "" -#: common/models.py:1079 +#: common/models.py:1085 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1084 +#: common/models.py:1090 msgid "Show needed stock" msgstr "" -#: common/models.py:1085 +#: common/models.py:1091 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1090 +#: common/models.py:1096 msgid "Show expired stock" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1096 +#: common/models.py:1102 msgid "Show stale stock" msgstr "" -#: common/models.py:1097 +#: common/models.py:1103 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1102 +#: common/models.py:1108 msgid "Show pending builds" msgstr "" -#: common/models.py:1103 +#: common/models.py:1109 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1108 +#: common/models.py:1114 msgid "Show overdue builds" msgstr "" -#: common/models.py:1109 +#: common/models.py:1115 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1114 +#: common/models.py:1120 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1115 +#: common/models.py:1121 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1120 +#: common/models.py:1126 msgid "Show overdue POs" msgstr "" -#: common/models.py:1121 +#: common/models.py:1127 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1126 +#: common/models.py:1132 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1127 +#: common/models.py:1133 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1132 +#: common/models.py:1138 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1133 +#: common/models.py:1139 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1139 +#: common/models.py:1145 msgid "Inline label display" msgstr "" -#: common/models.py:1140 +#: common/models.py:1146 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1146 +#: common/models.py:1152 msgid "Inline report display" msgstr "" -#: common/models.py:1147 +#: common/models.py:1153 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "Search Preview Results" msgstr "" -#: common/models.py:1154 +#: common/models.py:1160 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1160 +#: common/models.py:1166 msgid "Search Show Stock" msgstr "" -#: common/models.py:1161 +#: common/models.py:1167 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1167 +#: common/models.py:1173 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1168 +#: common/models.py:1174 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1174 +#: common/models.py:1180 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1175 +#: common/models.py:1181 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1181 +#: common/models.py:1187 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1182 +#: common/models.py:1188 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1188 +#: common/models.py:1194 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1189 +#: common/models.py:1195 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1254 company/forms.py:43 +#: common/models.py:1260 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1261 company/serializers.py:264 +#: common/models.py:1267 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801 +#: templates/js/translated/part.js:852 templates/js/translated/part.js:1803 msgid "Price" msgstr "" -#: common/models.py:1262 +#: common/models.py:1268 msgid "Unit price at specified quantity" msgstr "" @@ -2290,7 +2304,7 @@ msgid "Contact phone number" msgstr "" #: company/models.py:125 company/templates/company/company_base.html:129 -#: templates/InvenTree/settings/user.html:47 +#: templates/InvenTree/settings/user.html:48 msgid "Email" msgstr "E-mail" @@ -2347,8 +2361,8 @@ msgstr "Devise" msgid "Default currency used for this company" msgstr "" -#: company/models.py:320 company/models.py:535 stock/models.py:468 -#: stock/templates/stock/item_base.html:135 +#: company/models.py:320 company/models.py:535 stock/models.py:469 +#: stock/templates/stock/item_base.html:141 msgid "Base Part" msgstr "" @@ -2359,7 +2373,7 @@ msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:381 +#: stock/templates/stock/item_base.html:379 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:514 #: templates/js/translated/company.js:797 templates/js/translated/part.js:232 @@ -2393,7 +2407,7 @@ msgstr "" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:391 +#: stock/templates/stock/item_base.html:389 msgid "Manufacturer Part" msgstr "" @@ -2403,8 +2417,8 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:1845 templates/js/translated/company.js:644 -#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117 +#: stock/models.py:1960 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1296 msgid "Value" msgstr "Valeur" @@ -2431,7 +2445,7 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:224 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219 -#: part/bom.py:247 stock/templates/stock/item_base.html:398 +#: part/bom.py:247 stock/templates/stock/item_base.html:396 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:771 templates/js/translated/order.js:823 #: templates/js/translated/part.js:213 templates/js/translated/part.js:800 @@ -2479,8 +2493,8 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:491 stock/templates/stock/item_base.html:339 -#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612 +#: stock/models.py:493 stock/templates/stock/item_base.html:337 +#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1791 msgid "Packaging" msgstr "" @@ -2506,7 +2520,7 @@ msgstr "" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322 +#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322 msgid "Company" msgstr "" @@ -2548,11 +2562,11 @@ msgid "Download image from URL" msgstr "Télécharger l'image depuis l'URL" #: company/templates/company/company_base.html:83 order/models.py:547 -#: order/templates/order/sales_order_base.html:115 stock/models.py:509 -#: stock/models.py:510 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:291 +#: order/templates/order/sales_order_base.html:115 stock/models.py:512 +#: stock/models.py:513 stock/serializers.py:624 +#: stock/templates/stock/item_base.html:289 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2259 +#: templates/js/translated/stock.js:2452 msgid "Customer" msgstr "" @@ -2571,7 +2585,7 @@ msgstr "" #: company/templates/company/detail.html:15 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:124 +#: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" @@ -2590,14 +2604,14 @@ msgstr "" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:167 part/templates/part/detail.html:342 +#: part/templates/part/category.html:171 part/templates/part/detail.html:342 #: part/templates/part/detail.html:370 msgid "Options" msgstr "" #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order parts" msgstr "" @@ -2611,7 +2625,7 @@ msgstr "" msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109 +#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" @@ -2633,8 +2647,8 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203 +#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" @@ -2655,8 +2669,8 @@ msgstr "Nouvelle commande achat" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223 +#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" @@ -2698,7 +2712,7 @@ msgid "Supplier List" msgstr "Liste des Fournisseurs" #: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184 +#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 #: templates/navbar.html:46 msgid "Manufacturers" msgstr "Fabricants" @@ -2706,7 +2720,7 @@ msgstr "Fabricants" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:67 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76 msgid "Order part" msgstr "" @@ -2728,7 +2742,7 @@ msgstr "Pièces Internes" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 #: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:194 templates/navbar.html:45 +#: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "Fournisseurs" @@ -2742,7 +2756,7 @@ msgstr "Supprimer les pièces du fournisseur" #: company/templates/company/manufacturer_part.html:254 #: part/templates/part/detail.html:344 part/templates/part/detail.html:372 #: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31 -#: users/models.py:206 +#: users/models.py:209 msgid "Delete" msgstr "Supprimer" @@ -2765,7 +2779,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:867 +#: part/templates/part/detail.html:861 msgid "Add Parameter" msgstr "" @@ -2794,9 +2808,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:476 -#: stock/templates/stock/item_base.html:403 -#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569 +#: company/templates/company/supplier_part.html:24 stock/models.py:477 +#: stock/templates/stock/item_base.html:401 +#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1748 msgid "Supplier Part" msgstr "" @@ -2816,13 +2830,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:20 stock/templates/stock/location.html:162 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:166 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163 -#: templates/js/translated/stock.js:359 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 +#: templates/js/translated/stock.js:360 msgid "New Stock Item" msgstr "" @@ -2832,7 +2846,7 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:68 +#: part/templates/part/detail.html:72 msgid "Order Part" msgstr "" @@ -2843,7 +2857,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:1717 +#: part/templates/part/prices.html:271 part/views.py:1713 msgid "Add Price Break" msgstr "" @@ -2851,11 +2865,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1779 +#: company/templates/company/supplier_part.html:224 part/views.py:1775 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1765 +#: company/templates/company/supplier_part.html:238 part/views.py:1761 msgid "Edit Price Break" msgstr "" @@ -2869,14 +2883,14 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:156 +#: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434 -#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059 -#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:1401 templates/navbar.html:28 +#: templates/js/translated/bom.js:328 templates/js/translated/part.js:434 +#: templates/js/translated/part.js:569 templates/js/translated/part.js:1061 +#: templates/js/translated/part.js:1222 templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:1580 templates/navbar.html:28 msgid "Stock" msgstr "Stock" @@ -2895,11 +2909,11 @@ msgid "Pricing" msgstr "Tarif" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:133 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:159 +#: stock/templates/stock/location.html:137 +#: stock/templates/stock/location.html:151 +#: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "Éléments en stock" @@ -2912,7 +2926,7 @@ msgstr "Nouveau Fournisseur" msgid "New Manufacturer" msgstr "Nouveau Fabricant" -#: company/views.py:61 templates/InvenTree/search.html:214 +#: company/views.py:61 templates/InvenTree/search.html:208 #: templates/navbar.html:57 msgid "Customers" msgstr "Clients" @@ -3121,7 +3135,7 @@ msgstr "" msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:562 order/models.py:1026 +#: order/models.py:562 order/models.py:1028 #: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429 msgid "Shipment Date" msgstr "" @@ -3130,7 +3144,7 @@ msgstr "" msgid "shipped by" msgstr "expédié par" -#: order/models.py:634 +#: order/models.py:635 msgid "Order cannot be completed as no parts have been assigned" msgstr "" @@ -3138,172 +3152,172 @@ msgstr "" msgid "Only a pending order can be marked as complete" msgstr "" -#: order/models.py:643 +#: order/models.py:642 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:647 +#: order/models.py:645 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:795 +#: order/models.py:797 msgid "Item quantity" msgstr "Nombre d'élement" -#: order/models.py:801 +#: order/models.py:803 msgid "Line item reference" msgstr "" -#: order/models.py:803 +#: order/models.py:805 msgid "Line item notes" msgstr "" -#: order/models.py:833 order/models.py:924 order/models.py:1020 +#: order/models.py:835 order/models.py:926 order/models.py:1022 #: templates/js/translated/order.js:1820 msgid "Order" msgstr "Commande" -#: order/models.py:834 order/templates/order/order_base.html:9 +#: order/models.py:836 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:353 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/order.js:801 templates/js/translated/part.js:775 -#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240 +#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433 msgid "Purchase Order" msgstr "Commande d’achat" -#: order/models.py:855 +#: order/models.py:857 msgid "Supplier part" msgstr "Pièce fournisseur" -#: order/models.py:862 order/templates/order/order_base.html:163 +#: order/models.py:864 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:847 templates/js/translated/part.js:873 #: templates/js/translated/table_filters.js:317 msgid "Received" msgstr "Reçu" -#: order/models.py:863 +#: order/models.py:865 msgid "Number of items received" msgstr "Nombre d'éléments reçus" -#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:360 -#: templates/js/translated/stock.js:1600 +#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:358 +#: templates/js/translated/stock.js:1779 msgid "Purchase Price" msgstr "Prix d'achat" -#: order/models.py:871 +#: order/models.py:873 msgid "Unit purchase price" msgstr "" -#: order/models.py:879 +#: order/models.py:881 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:934 part/templates/part/part_pricing.html:112 +#: order/models.py:936 part/templates/part/part_pricing.html:112 #: part/templates/part/prices.html:116 part/templates/part/prices.html:284 msgid "Sale Price" msgstr "Prix de vente" -#: order/models.py:935 +#: order/models.py:937 msgid "Unit sale price" msgstr "" -#: order/models.py:940 +#: order/models.py:942 msgid "Shipped quantity" msgstr "" -#: order/models.py:1027 +#: order/models.py:1029 msgid "Date of shipment" msgstr "" -#: order/models.py:1034 +#: order/models.py:1036 msgid "Checked By" msgstr "" -#: order/models.py:1035 +#: order/models.py:1037 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1043 +#: order/models.py:1045 msgid "Shipment number" msgstr "" -#: order/models.py:1050 +#: order/models.py:1052 msgid "Shipment notes" msgstr "" -#: order/models.py:1057 +#: order/models.py:1059 msgid "Tracking Number" msgstr "" -#: order/models.py:1058 +#: order/models.py:1060 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1068 +#: order/models.py:1070 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1071 +#: order/models.py:1073 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1147 order/models.py:1149 +#: order/models.py:1149 order/models.py:1151 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1153 +#: order/models.py:1155 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1155 +#: order/models.py:1157 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1158 +#: order/models.py:1160 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1162 +#: order/models.py:1164 msgid "StockItem is over-allocated" msgstr "" -#: order/models.py:1168 order/serializers.py:734 +#: order/models.py:1170 order/serializers.py:734 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1171 +#: order/models.py:1173 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1172 +#: order/models.py:1174 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1180 +#: order/models.py:1182 msgid "Line" msgstr "Ligne" -#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953 +#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953 #: templates/js/translated/model_renderers.js:251 msgid "Shipment" msgstr "" -#: order/models.py:1189 +#: order/models.py:1191 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1201 +#: order/models.py:1203 msgid "Item" msgstr "Article" -#: order/models.py:1202 +#: order/models.py:1204 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1205 +#: order/models.py:1207 msgid "Enter stock allocation quantity" msgstr "" @@ -3530,7 +3544,7 @@ msgstr "Dupliquer la sélection" #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/build.js:245 templates/js/translated/build.js:1256 #: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:592 +#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761 msgid "Remove row" msgstr "Supprimer la ligne" @@ -3722,7 +3736,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188 +#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1188 msgid "Actions" msgstr "" @@ -3797,24 +3811,24 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:760 +#: part/api.py:777 msgid "Must be greater than zero" msgstr "" -#: part/api.py:764 +#: part/api.py:781 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:779 +#: part/api.py:796 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833 +#: part/api.py:827 part/api.py:831 part/api.py:846 part/api.py:850 msgid "This field is required" msgstr "" #: part/bom.py:125 part/models.py:81 part/models.py:816 -#: part/templates/part/category.html:104 part/templates/part/part_base.html:338 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "" @@ -3822,99 +3836,43 @@ msgstr "" msgid "Available Stock" msgstr "" -#: part/forms.py:63 -msgid "File Format" -msgstr "" - -#: part/forms.py:63 -msgid "Select output file format" -msgstr "" - -#: part/forms.py:65 -msgid "Cascading" -msgstr "" - -#: part/forms.py:65 -msgid "Download cascading / multi-level BOM" -msgstr "" - -#: part/forms.py:67 -msgid "Levels" -msgstr "Niveaux" - -#: part/forms.py:67 -msgid "Select maximum number of BOM levels to export (0 = all levels)" -msgstr "" - -#: part/forms.py:69 -msgid "Include Parameter Data" -msgstr "" - -#: part/forms.py:69 -msgid "Include part parameters data in exported BOM" -msgstr "" - -#: part/forms.py:71 -msgid "Include Stock Data" -msgstr "" - -#: part/forms.py:71 -msgid "Include part stock data in exported BOM" -msgstr "" - -#: part/forms.py:73 -msgid "Include Manufacturer Data" -msgstr "" - -#: part/forms.py:73 -msgid "Include part manufacturer data in exported BOM" -msgstr "" - -#: part/forms.py:75 -msgid "Include Supplier Data" -msgstr "" - -#: part/forms.py:75 -msgid "Include part supplier data in exported BOM" -msgstr "" - -#: part/forms.py:96 part/models.py:2427 +#: part/forms.py:66 part/models.py:2427 msgid "Parent Part" msgstr "" -#: part/forms.py:97 part/templates/part/bom_duplicate.html:7 +#: part/forms.py:67 part/templates/part/bom_duplicate.html:7 msgid "Select parent part to copy BOM from" msgstr "" -#: part/forms.py:103 +#: part/forms.py:73 msgid "Clear existing BOM items" msgstr "" -#: part/forms.py:109 +#: part/forms.py:79 msgid "Confirm BOM duplication" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "validate" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "Confirm that the BOM is correct" msgstr "" -#: part/forms.py:163 +#: part/forms.py:133 msgid "Select part category" msgstr "" -#: part/forms.py:200 +#: part/forms.py:170 msgid "Add parameter template to same level categories" msgstr "" -#: part/forms.py:204 +#: part/forms.py:174 msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:224 +#: part/forms.py:194 msgid "Input quantity for price calculation" msgstr "" @@ -3930,24 +3888,24 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11 +#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:96 part/templates/part/category.html:124 -#: templates/InvenTree/search.html:101 templates/stats.html:84 +#: part/models.py:96 part/templates/part/category.html:128 +#: templates/InvenTree/search.html:95 templates/stats.html:84 #: users/models.py:40 msgid "Part Categories" msgstr "" #: part/models.py:358 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:13 part/templates/part/category.html:129 -#: part/templates/part/category.html:149 +#: part/templates/part/category.html:17 part/templates/part/category.html:133 +#: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1597 templates/navbar.html:21 +#: templates/js/translated/part.js:1599 templates/navbar.html:21 #: templates/stats.html:80 templates/stats.html:89 users/models.py:41 msgid "Parts" msgstr "" @@ -4001,7 +3959,7 @@ msgstr "" msgid "Part description" msgstr "" -#: part/models.py:770 part/templates/part/category.html:82 +#: part/models.py:770 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "" @@ -4014,7 +3972,7 @@ msgstr "" #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 #: templates/InvenTree/settings/settings.html:172 -#: templates/js/translated/part.js:1202 +#: templates/js/translated/part.js:1204 msgid "Category" msgstr "Catégorie" @@ -4023,8 +3981,8 @@ msgid "Part category" msgstr "Catégorie de la pièce" #: part/models.py:784 part/templates/part/part_base.html:274 -#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155 -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/part.js:557 templates/js/translated/part.js:1157 +#: templates/js/translated/stock.js:1552 msgid "IPN" msgstr "IPN" @@ -4145,8 +4103,8 @@ msgstr "" msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2310 templates/js/translated/part.js:1648 -#: templates/js/translated/stock.js:1097 +#: part/models.py:2310 templates/js/translated/part.js:1650 +#: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "Nom de test" @@ -4162,7 +4120,7 @@ msgstr "" msgid "Enter description for this test" msgstr "" -#: part/models.py:2322 templates/js/translated/part.js:1657 +#: part/models.py:2322 templates/js/translated/part.js:1659 #: templates/js/translated/table_filters.js:281 msgid "Required" msgstr "Requis" @@ -4171,7 +4129,7 @@ msgstr "Requis" msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2328 templates/js/translated/part.js:1665 +#: part/models.py:2328 templates/js/translated/part.js:1667 msgid "Requires Value" msgstr "" @@ -4179,7 +4137,7 @@ msgstr "" msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2334 templates/js/translated/part.js:1672 +#: part/models.py:2334 templates/js/translated/part.js:1674 msgid "Requires Attachment" msgstr "" @@ -4241,8 +4199,8 @@ msgstr "" msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2578 templates/js/translated/bom.js:454 -#: templates/js/translated/bom.js:528 +#: part/models.py:2578 templates/js/translated/bom.js:566 +#: templates/js/translated/bom.js:640 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" @@ -4275,8 +4233,8 @@ msgstr "" msgid "BOM line checksum" msgstr "" -#: part/models.py:2594 templates/js/translated/bom.js:545 -#: templates/js/translated/bom.js:552 +#: part/models.py:2594 templates/js/translated/bom.js:657 +#: templates/js/translated/bom.js:664 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" @@ -4286,7 +4244,7 @@ msgstr "" msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2600 templates/js/translated/bom.js:537 +#: part/models.py:2600 templates/js/translated/bom.js:649 msgid "Allow Variants" msgstr "" @@ -4406,100 +4364,100 @@ msgstr "" msgid "This will validate each line in the BOM." msgstr "" -#: part/templates/part/category.html:24 part/templates/part/category.html:28 +#: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:32 +#: part/templates/part/category.html:36 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:38 +#: part/templates/part/category.html:42 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:43 +#: part/templates/part/category.html:47 msgid "Edit category" msgstr "Modifier la catégorie" -#: part/templates/part/category.html:44 +#: part/templates/part/category.html:48 msgid "Edit Category" msgstr "Modifier la catégorie" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:52 msgid "Delete category" msgstr "Supprimer la catégorie" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:53 msgid "Delete Category" msgstr "Supprimer la catégorie" -#: part/templates/part/category.html:57 +#: part/templates/part/category.html:61 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:58 +#: part/templates/part/category.html:62 msgid "New Category" msgstr "Nouvelle catégorie" -#: part/templates/part/category.html:76 part/templates/part/category.html:89 +#: part/templates/part/category.html:80 part/templates/part/category.html:93 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:90 +#: part/templates/part/category.html:94 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:110 part/templates/part/category.html:201 +#: part/templates/part/category.html:114 part/templates/part/category.html:205 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:115 +#: part/templates/part/category.html:119 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:152 +#: part/templates/part/category.html:156 msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:153 part/templates/part/category.html:177 +#: part/templates/part/category.html:157 part/templates/part/category.html:181 msgid "Export" msgstr "Exporter" -#: part/templates/part/category.html:156 +#: part/templates/part/category.html:160 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:157 templates/js/translated/bom.js:40 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 msgid "New Part" msgstr "" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set category" msgstr "" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:175 +#: part/templates/part/category.html:179 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:177 +#: part/templates/part/category.html:181 msgid "Export Data" msgstr "" -#: part/templates/part/category.html:191 +#: part/templates/part/category.html:195 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:268 +#: part/templates/part/category.html:288 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:295 +#: part/templates/part/category.html:315 msgid "Create Part" msgstr "" @@ -4566,24 +4524,24 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:17 +#: part/templates/part/detail.html:21 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:29 +#: part/templates/part/detail.html:33 #, python-format msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:39 +#: part/templates/part/detail.html:43 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:44 +#: part/templates/part/detail.html:48 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:101 +#: part/templates/part/detail.html:105 msgid "Sales Order Allocations" msgstr "" @@ -4619,7 +4577,7 @@ msgstr "" msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:242 +#: part/templates/part/detail.html:242 templates/js/translated/bom.js:70 msgid "Export BOM" msgstr "" @@ -4683,38 +4641,38 @@ msgstr "" msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:651 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:659 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:760 +#: part/templates/part/detail.html:754 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:817 +#: part/templates/part/detail.html:811 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:930 +#: part/templates/part/detail.html:924 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:942 +#: part/templates/part/detail.html:936 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:954 +#: part/templates/part/detail.html:948 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1043 +#: part/templates/part/detail.html:1037 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4745,20 +4703,20 @@ msgid "Subscribe to notifications for this part" msgstr "" #: part/templates/part/part_base.html:43 -#: stock/templates/stock/item_base.html:28 -#: stock/templates/stock/location.html:29 +#: stock/templates/stock/item_base.html:34 +#: stock/templates/stock/location.html:33 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:45 -#: stock/templates/stock/item_base.html:32 -#: stock/templates/stock/location.html:31 templates/qr_button.html:1 +#: stock/templates/stock/item_base.html:38 +#: stock/templates/stock/location.html:35 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:48 -#: stock/templates/stock/location.html:32 +#: stock/templates/stock/item_base.html:54 +#: stock/templates/stock/location.html:36 msgid "Print Label" msgstr "" @@ -4767,8 +4725,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:103 -#: stock/templates/stock/location.html:40 +#: stock/templates/stock/item_base.html:109 +#: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "" @@ -4848,7 +4806,7 @@ msgstr "" msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1235 +#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1237 msgid "On Order" msgstr "" @@ -4864,12 +4822,12 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:566 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1066 -#: templates/js/translated/part.js:1239 +#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1068 +#: templates/js/translated/part.js:1241 msgid "Building" msgstr "" @@ -4882,7 +4840,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:159 +#: stock/templates/stock/item_base.html:165 msgid "Search for serial number" msgstr "" @@ -4921,7 +4879,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:520 +#: templates/js/translated/bom.js:632 msgid "No supplier pricing available" msgstr "" @@ -5036,7 +4994,7 @@ msgstr "Afficher le prix de vente" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626 msgid "Supplier Cost" msgstr "" @@ -5058,7 +5016,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1788 +#: part/templates/part/prices.html:215 part/views.py:1784 msgid "Add Internal Price Break" msgstr "" @@ -5078,9 +5036,9 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476 -#: templates/js/translated/part.js:436 templates/js/translated/part.js:1056 -#: templates/js/translated/part.js:1243 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588 +#: templates/js/translated/part.js:436 templates/js/translated/part.js:1058 +#: templates/js/translated/part.js:1245 msgid "No Stock" msgstr "" @@ -5154,67 +5112,67 @@ msgstr "" msgid "Match Parts" msgstr "" -#: part/views.py:1196 +#: part/views.py:1195 msgid "Export Bill of Materials" msgstr "" -#: part/views.py:1248 +#: part/views.py:1244 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1255 +#: part/views.py:1251 msgid "Part was deleted" msgstr "" -#: part/views.py:1264 +#: part/views.py:1260 msgid "Part Pricing" msgstr "" -#: part/views.py:1413 +#: part/views.py:1409 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1423 +#: part/views.py:1419 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1430 +#: part/views.py:1426 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1489 templates/js/translated/part.js:313 +#: part/views.py:1485 templates/js/translated/part.js:313 msgid "Edit Part Category" msgstr "" -#: part/views.py:1527 +#: part/views.py:1523 msgid "Delete Part Category" msgstr "" -#: part/views.py:1533 +#: part/views.py:1529 msgid "Part category was deleted" msgstr "" -#: part/views.py:1542 +#: part/views.py:1538 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1643 +#: part/views.py:1639 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1699 +#: part/views.py:1695 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1721 +#: part/views.py:1717 msgid "Added new price break" msgstr "" -#: part/views.py:1797 +#: part/views.py:1793 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1805 +#: part/views.py:1801 msgid "Delete Internal Price Break" msgstr "" @@ -5388,12 +5346,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:514 stock/templates/stock/item_base.html:149 +#: stock/models.py:517 stock/templates/stock/item_base.html:155 #: templates/js/translated/build.js:238 templates/js/translated/build.js:642 #: templates/js/translated/build.js:1018 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415 msgid "Serial Number" msgstr "" @@ -5402,19 +5360,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:1833 +#: stock/models.py:1948 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:1839 +#: stock/models.py:1954 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:49 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367 msgid "Date" msgstr "" @@ -5432,17 +5390,18 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434 +#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748 +#: templates/js/translated/stock.js:2627 msgid "Serial" msgstr "" -#: stock/api.py:446 +#: stock/api.py:478 msgid "Quantity is required" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571 -#: stock/templates/stock/item_base.html:186 -#: templates/js/translated/stock.js:1522 +#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574 +#: stock/templates/stock/item_base.html:192 +#: templates/js/translated/stock.js:1701 msgid "Expiry Date" msgstr "" @@ -5490,12 +5449,12 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:60 stock/models.py:608 -#: stock/templates/stock/item_base.html:417 +#: stock/models.py:60 stock/models.py:611 +#: stock/templates/stock/item_base.html:415 msgid "Owner" msgstr "Propriétaire" -#: stock/models.py:61 stock/models.py:609 +#: stock/models.py:61 stock/models.py:612 msgid "Select Owner" msgstr "Sélectionner un propriétaire" @@ -5528,150 +5487,190 @@ msgstr "" msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:460 +#: stock/models.py:461 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:470 msgid "Base part" msgstr "" -#: stock/models.py:477 +#: stock/models.py:478 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:482 stock/templates/stock/location.html:12 +#: stock/models.py:484 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:485 +#: stock/models.py:487 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:492 +#: stock/models.py:494 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:497 stock/templates/stock/item_base.html:299 +#: stock/models.py:500 stock/templates/stock/item_base.html:297 msgid "Installed In" msgstr "" -#: stock/models.py:500 +#: stock/models.py:503 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:516 +#: stock/models.py:519 msgid "Serial number for this item" msgstr "" -#: stock/models.py:530 +#: stock/models.py:533 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:534 +#: stock/models.py:537 msgid "Stock Quantity" msgstr "" -#: stock/models.py:543 +#: stock/models.py:546 msgid "Source Build" msgstr "" -#: stock/models.py:545 +#: stock/models.py:548 msgid "Build for this stock item" msgstr "" -#: stock/models.py:556 +#: stock/models.py:559 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:559 +#: stock/models.py:562 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:565 +#: stock/models.py:568 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:572 +#: stock/models.py:575 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete on deplete" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:595 stock/templates/stock/item.html:111 +#: stock/models.py:598 stock/templates/stock/item.html:111 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:604 +#: stock/models.py:607 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1072 +#: stock/models.py:1068 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1078 +#: stock/models.py:1074 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1084 +#: stock/models.py:1080 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1087 +#: stock/models.py:1083 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1090 +#: stock/models.py:1086 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1097 +#: stock/models.py:1093 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1255 +#: stock/models.py:1164 +msgid "Stock item has been assigned to a sales order" +msgstr "" + +#: stock/models.py:1167 +msgid "Stock item is installed in another item" +msgstr "" + +#: stock/models.py:1170 +msgid "Stock item contains other items" +msgstr "" + +#: stock/models.py:1173 +msgid "Stock item has been assigned to a customer" +msgstr "" + +#: stock/models.py:1176 +msgid "Stock item is currently in production" +msgstr "" + +#: stock/models.py:1179 +msgid "Serialized stock cannot be merged" +msgstr "" + +#: stock/models.py:1186 stock/serializers.py:773 +msgid "Duplicate stock items" +msgstr "" + +#: stock/models.py:1190 +msgid "Stock items must refer to the same part" +msgstr "" + +#: stock/models.py:1194 +msgid "Stock items must refer to the same supplier part" +msgstr "" + +#: stock/models.py:1198 +msgid "Stock status codes must match" +msgstr "" + +#: stock/models.py:1369 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1753 +#: stock/models.py:1868 msgid "Entry notes" msgstr "" -#: stock/models.py:1810 +#: stock/models.py:1925 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1931 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1834 +#: stock/models.py:1949 msgid "Test name" msgstr "" -#: stock/models.py:1840 templates/js/translated/table_filters.js:271 +#: stock/models.py:1955 templates/js/translated/table_filters.js:271 msgid "Test result" msgstr "" -#: stock/models.py:1846 +#: stock/models.py:1961 msgid "Test output value" msgstr "" -#: stock/models.py:1853 +#: stock/models.py:1968 msgid "Test result attachment" msgstr "" -#: stock/models.py:1859 +#: stock/models.py:1974 msgid "Test notes" msgstr "" @@ -5696,7 +5695,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:814 +#: stock/serializers.py:326 stock/serializers.py:730 stock/serializers.py:971 msgid "Destination stock location" msgstr "" @@ -5708,39 +5707,63 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:573 +#: stock/serializers.py:587 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:577 +#: stock/serializers.py:591 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:581 +#: stock/serializers.py:595 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:611 +#: stock/serializers.py:625 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:617 +#: stock/serializers.py:631 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:639 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:635 stock/serializers.py:722 +#: stock/serializers.py:649 stock/serializers.py:879 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:684 +#: stock/serializers.py:737 +msgid "Stock merging notes" +msgstr "" + +#: stock/serializers.py:742 +msgid "Allow mismatched suppliers" +msgstr "" + +#: stock/serializers.py:743 +msgid "Allow stock items with different supplier parts to be merged" +msgstr "" + +#: stock/serializers.py:748 +msgid "Allow mismatched status" +msgstr "" + +#: stock/serializers.py:749 +msgid "Allow stock items with different status codes to be merged" +msgstr "" + +#: stock/serializers.py:759 +msgid "At least two stock items must be provided" +msgstr "" + +#: stock/serializers.py:841 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:712 +#: stock/serializers.py:869 msgid "Stock transaction notes" msgstr "" @@ -5765,7 +5788,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50 +#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:56 msgid "Test Report" msgstr "" @@ -5797,197 +5820,189 @@ msgstr "" msgid "Delete Test Result" msgstr "" -#: stock/templates/stock/item_base.html:35 +#: stock/templates/stock/item_base.html:41 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:37 +#: stock/templates/stock/item_base.html:43 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24 +#: stock/templates/stock/item_base.html:45 templates/stock_table.html:24 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:46 +#: stock/templates/stock/item_base.html:52 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:71 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:47 templates/stock_table.html:50 +#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/location.html:51 templates/stock_table.html:50 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:78 templates/stock_table.html:48 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49 +#: stock/templates/stock/item_base.html:81 templates/stock_table.html:49 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:84 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:53 +#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/location.html:57 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53 +#: stock/templates/stock/item_base.html:91 templates/stock_table.html:54 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:94 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:108 +#: stock/templates/stock/item_base.html:114 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/item_base.html:117 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:119 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:116 +#: stock/templates/stock/item_base.html:122 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/stock.js:1535 +#: stock/templates/stock/item_base.html:205 +#: templates/js/translated/stock.js:1714 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:208 +#: stock/templates/stock/item_base.html:214 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:226 +#: stock/templates/stock/item_base.html:232 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:239 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:234 +#: stock/templates/stock/item_base.html:240 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:247 +#: stock/templates/stock/item_base.html:253 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:261 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:263 +#: stock/templates/stock/item_base.html:269 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:269 +#: stock/templates/stock/item_base.html:275 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:273 -msgid "This stock item cannot be deleted as it has child items" -msgstr "" - -#: stock/templates/stock/item_base.html:277 -msgid "This stock item will be automatically deleted when all stock is depleted." -msgstr "" - -#: stock/templates/stock/item_base.html:318 +#: stock/templates/stock/item_base.html:316 #: templates/js/translated/build.js:1040 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:325 +#: stock/templates/stock/item_base.html:323 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:367 +#: stock/templates/stock/item_base.html:365 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:385 +#: stock/templates/stock/item_base.html:383 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:410 +#: stock/templates/stock/item_base.html:408 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:500 +#: stock/templates/stock/item_base.html:498 msgid "Edit Stock Status" msgstr "" @@ -6041,59 +6056,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:37 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:65 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:67 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:65 +#: stock/templates/stock/location.html:69 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:79 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:76 +#: stock/templates/stock/location.html:80 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:95 -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:99 +#: stock/templates/stock/location.html:105 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:102 +#: stock/templates/stock/location.html:106 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:119 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:175 +#: stock/templates/stock/location.html:132 +#: stock/templates/stock/location.html:179 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:142 templates/InvenTree/search.html:170 +#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "" -#: stock/templates/stock/location.html:182 templates/stock_table.html:30 +#: stock/templates/stock/location.html:186 templates/stock_table.html:30 msgid "Printing Actions" msgstr "" -#: stock/templates/stock/location.html:186 templates/stock_table.html:34 +#: stock/templates/stock/location.html:190 templates/stock_table.html:34 msgid "Print labels" msgstr "" @@ -6178,7 +6193,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:887 +#: stock/views.py:727 templates/js/translated/stock.js:1066 msgid "Confirm stock adjustment" msgstr "" @@ -6186,7 +6201,7 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:323 +#: stock/views.py:760 templates/js/translated/stock.js:324 msgid "Edit Stock Item" msgstr "" @@ -6198,7 +6213,7 @@ msgstr "" msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:303 +#: stock/views.py:1153 templates/js/translated/stock.js:304 msgid "Duplicate Stock Item" msgstr "" @@ -6314,10 +6329,6 @@ msgstr "" msgid "Search Results" msgstr "" -#: templates/InvenTree/search.html:22 -msgid "Enter a search query" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6363,7 +6374,7 @@ msgstr "" msgid "Login Settings" msgstr "" -#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5 +#: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5 msgid "Signup" msgstr "" @@ -6648,7 +6659,7 @@ msgstr "" msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:55 +#: templates/InvenTree/settings/user.html:54 msgid "The following email addresses are associated with your account:" msgstr "" @@ -6673,145 +6684,193 @@ msgid "Re-send Verification" msgstr "" #: templates/InvenTree/settings/user.html:87 -#: templates/InvenTree/settings/user.html:154 +#: templates/InvenTree/settings/user.html:149 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:94 +#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:201 msgid "Warning:" msgstr "" -#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:96 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:102 +#: templates/InvenTree/settings/user.html:104 msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:112 -msgid "Enter e-mail address" -msgstr "" - -#: templates/InvenTree/settings/user.html:114 +#: templates/InvenTree/settings/user.html:109 msgid "Add Email" msgstr "" -#: templates/InvenTree/settings/user.html:124 +#: templates/InvenTree/settings/user.html:117 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:129 +#: templates/InvenTree/settings/user.html:122 msgid "You can sign in to your account using any of the following third party accounts:" msgstr "" -#: templates/InvenTree/settings/user.html:163 -msgid "There are no social network accounts connected to your InvenTree account" +#: templates/InvenTree/settings/user.html:157 +msgid "You currently have no social network accounts connected to this account." msgstr "" -#: templates/InvenTree/settings/user.html:168 +#: templates/InvenTree/settings/user.html:162 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:179 -msgid "Active Sessions" +#: templates/InvenTree/settings/user.html:172 +msgid "Multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:185 -msgid "Log out active sessions (except this one)" +#: templates/InvenTree/settings/user.html:177 +msgid "You have these factors available:" msgstr "" -#: templates/InvenTree/settings/user.html:186 -msgid "Log Out Active Sessions" +#: templates/InvenTree/settings/user.html:187 +msgid "TOTP" 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" +#: templates/InvenTree/settings/user.html:193 +msgid "Static" msgstr "" #: templates/InvenTree/settings/user.html:202 -msgid "Last Activity" +msgid "You currently do not have any factors set up." msgstr "" -#: templates/InvenTree/settings/user.html:211 -#, python-format -msgid "%(time)s ago (this session)" +#: templates/InvenTree/settings/user.html:209 +msgid "Change factors" msgstr "" -#: templates/InvenTree/settings/user.html:213 -#, python-format -msgid "%(time)s ago" +#: templates/InvenTree/settings/user.html:210 +msgid "Setup multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:224 -msgid "Do you really want to remove the selected email address?" +#: templates/InvenTree/settings/user.html:212 +msgid "Remove multifactor" msgstr "" +#: templates/InvenTree/settings/user.html:219 #: templates/InvenTree/settings/user_display.html:25 msgid "Theme Settings" msgstr "" +#: templates/InvenTree/settings/user.html:227 #: templates/InvenTree/settings/user_display.html:35 msgid "Select theme" msgstr "" +#: templates/InvenTree/settings/user.html:237 #: templates/InvenTree/settings/user_display.html:46 msgid "Set Theme" msgstr "" +#: templates/InvenTree/settings/user.html:246 #: templates/InvenTree/settings/user_display.html:54 msgid "Language Settings" msgstr "" +#: templates/InvenTree/settings/user.html:254 #: templates/InvenTree/settings/user_display.html:63 msgid "Select language" msgstr "" +#: templates/InvenTree/settings/user.html:270 #: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" +#: templates/InvenTree/settings/user.html:272 #: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" +#: templates/InvenTree/settings/user.html:279 #: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" +#: templates/InvenTree/settings/user.html:281 #: templates/InvenTree/settings/user_display.html:91 msgid "Some languages are not complete" msgstr "" +#: templates/InvenTree/settings/user.html:283 #: 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.html:285 #: templates/InvenTree/settings/user_display.html:95 msgid "Show them too" msgstr "" +#: templates/InvenTree/settings/user.html:292 #: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" +#: templates/InvenTree/settings/user.html:293 +#, python-format +msgid "Native language translation of the\n" +" InvenTree web application is community contributed via crowdin. Contributions are\n" +" welcomed and encouraged." +msgstr "" + +#: templates/InvenTree/settings/user.html:302 +msgid "Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:308 +msgid "Log out active sessions (except this one)" +msgstr "" + +#: templates/InvenTree/settings/user.html:309 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:318 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:319 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:323 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:324 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:325 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:334 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:336 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:348 +msgid "Do you really want to remove the selected email address?" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +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." @@ -6830,7 +6889,7 @@ msgid "InvenTree Version Information" msgstr "" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53 +#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53 #: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662 #: templates/js/translated/modals.js:965 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 @@ -7006,6 +7065,71 @@ msgstr "" msgid "View in administration panel" msgstr "" +#: templates/allauth_2fa/authenticate.html:5 +msgid "Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:12 +msgid "Authenticate" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:6 +msgid "Two-Factor Authentication Backup Tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:17 +msgid "Backup tokens have been generated, but are not revealed here for security reasons. Press the button below to generate new ones." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:20 +msgid "No tokens. Press the button below to generate some." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:27 +msgid "Generate backup tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:31 +#: templates/allauth_2fa/setup.html:40 +msgid "back to settings" +msgstr "" + +#: templates/allauth_2fa/remove.html:6 +msgid "Disable Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/remove.html:9 +msgid "Are you sure?" +msgstr "" + +#: templates/allauth_2fa/remove.html:14 +msgid "Disable Two-Factor" +msgstr "" + +#: templates/allauth_2fa/setup.html:6 +msgid "Setup Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/setup.html:10 +msgid "Step 1" +msgstr "" + +#: templates/allauth_2fa/setup.html:14 +msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." +msgstr "" + +#: templates/allauth_2fa/setup.html:23 +msgid "Step 2" +msgstr "" + +#: templates/allauth_2fa/setup.html:27 +msgid "Input a token generated by the app:" +msgstr "" + +#: templates/allauth_2fa/setup.html:35 +msgid "Verify" +msgstr "" + #: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 msgid "Add Link" msgstr "" @@ -7044,13 +7168,13 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:1103 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134 +#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1134 #: templates/js/translated/build.js:1755 #: templates/js/translated/table_filters.js:178 msgid "Available" @@ -7239,7 +7363,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018 msgid "Remove stock item" msgstr "" @@ -7281,91 +7405,153 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:184 +#: templates/js/translated/bom.js:36 +msgid "Download BOM Template" +msgstr "" + +#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510 +msgid "Format" +msgstr "" + +#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511 +msgid "Select file format" +msgstr "" + +#: templates/js/translated/bom.js:81 +msgid "Cascading" +msgstr "" + +#: templates/js/translated/bom.js:82 +msgid "Download cascading / multi-level BOM" +msgstr "" + +#: templates/js/translated/bom.js:87 +msgid "Levels" +msgstr "Niveaux" + +#: templates/js/translated/bom.js:88 +msgid "Select maximum number of BOM levels to export (0 = all levels)" +msgstr "" + +#: templates/js/translated/bom.js:94 +msgid "Include Parameter Data" +msgstr "" + +#: templates/js/translated/bom.js:95 +msgid "Include part parameter data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:100 +msgid "Include Stock Data" +msgstr "" + +#: templates/js/translated/bom.js:101 +msgid "Include part stock data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:106 +msgid "Include Manufacturer Data" +msgstr "" + +#: templates/js/translated/bom.js:107 +msgid "Include part manufacturer data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:112 +msgid "Include Supplier Data" +msgstr "" + +#: templates/js/translated/bom.js:113 +msgid "Include part supplier data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:296 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:228 +#: templates/js/translated/bom.js:340 msgid "Select and add a new variant item using the input below" msgstr "" -#: templates/js/translated/bom.js:239 +#: templates/js/translated/bom.js:351 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:245 +#: templates/js/translated/bom.js:357 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:284 +#: templates/js/translated/bom.js:396 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:285 +#: templates/js/translated/bom.js:397 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:404 +#: templates/js/translated/bom.js:516 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116 +#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1116 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:413 +#: templates/js/translated/bom.js:525 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:485 +#: templates/js/translated/bom.js:597 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:500 +#: templates/js/translated/bom.js:612 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:507 +#: templates/js/translated/bom.js:619 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645 +#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:616 +#: templates/js/translated/bom.js:728 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:618 +#: templates/js/translated/bom.js:730 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:620 +#: templates/js/translated/bom.js:732 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796 +#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779 +#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860 +#: templates/js/translated/bom.js:830 templates/js/translated/build.js:860 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:774 +#: templates/js/translated/bom.js:886 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100 +#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1100 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:996 +#: templates/js/translated/bom.js:1108 msgid "Inherited from parent BOM" msgstr "" @@ -7464,7 +7650,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1199 templates/stock_table.html:52 +#: templates/js/translated/build.js:1199 templates/stock_table.html:53 msgid "Order stock" msgstr "" @@ -7509,9 +7695,9 @@ msgstr "" msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147 -#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333 -#: templates/js/translated/stock.js:2128 +#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1149 +#: templates/js/translated/part.js:1560 templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:2321 msgid "Select" msgstr "" @@ -7519,7 +7705,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347 +#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2540 msgid "No user information" msgstr "" @@ -7682,20 +7868,20 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1078 templates/modals.html:19 +#: templates/js/translated/forms.js:1080 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1469 +#: templates/js/translated/forms.js:1471 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1673 +#: templates/js/translated/forms.js:1675 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1893 +#: templates/js/translated/forms.js:1895 msgid "Clear input" msgstr "" @@ -7708,7 +7894,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:863 +#: templates/js/translated/stock.js:1042 msgid "Select Stock Items" msgstr "" @@ -7888,14 +8074,6 @@ msgstr "" msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509 -msgid "Format" -msgstr "" - -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510 -msgid "Select file format" -msgstr "" - #: templates/js/translated/order.js:460 msgid "Select Line Items" msgstr "" @@ -7908,7 +8086,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123 msgid "Stock Status" msgstr "" @@ -7957,7 +8135,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163 -#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986 +#: templates/js/translated/part.js:1777 templates/js/translated/part.js:1988 msgid "Unit Price" msgstr "" @@ -8042,7 +8220,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1249 +#: templates/js/translated/stock.js:1428 msgid "Shipped to customer" msgstr "" @@ -8206,92 +8384,92 @@ msgstr "" msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:946 +#: templates/js/translated/part.js:948 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:970 +#: templates/js/translated/part.js:972 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1037 templates/js/translated/part.js:1297 +#: templates/js/translated/part.js:1039 templates/js/translated/part.js:1299 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1207 +#: templates/js/translated/part.js:1209 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1230 +#: templates/js/translated/part.js:1232 #: templates/js/translated/table_filters.js:412 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493 -#: templates/js/translated/stock.js:2089 +#: templates/js/translated/part.js:1323 templates/js/translated/part.js:1495 +#: templates/js/translated/stock.js:2282 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1337 +#: templates/js/translated/part.js:1339 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108 +#: templates/js/translated/part.js:1514 templates/js/translated/stock.js:2301 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1576 +#: templates/js/translated/part.js:1578 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152 +#: templates/js/translated/part.js:1592 templates/js/translated/stock.js:2345 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1634 +#: templates/js/translated/part.js:1636 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055 +#: templates/js/translated/part.js:1687 templates/js/translated/stock.js:1234 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056 +#: templates/js/translated/part.js:1688 templates/js/translated/stock.js:1235 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1692 +#: templates/js/translated/part.js:1694 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1714 +#: templates/js/translated/part.js:1716 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1728 +#: templates/js/translated/part.js:1730 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1753 +#: templates/js/translated/part.js:1755 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1808 +#: templates/js/translated/part.js:1810 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1809 +#: templates/js/translated/part.js:1811 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1910 +#: templates/js/translated/part.js:1912 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1929 +#: templates/js/translated/part.js:1931 msgid "Single Price Difference" msgstr "" @@ -8365,316 +8543,340 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:72 +#: templates/js/translated/stock.js:73 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173 msgid "Next available serial number" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174 +#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175 msgid "Latest serial number" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:101 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:109 +#: templates/js/translated/stock.js:110 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:145 +#: templates/js/translated/stock.js:146 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:185 +#: templates/js/translated/stock.js:186 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:224 +#: templates/js/translated/stock.js:225 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:231 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:373 +#: templates/js/translated/stock.js:374 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:386 +#: templates/js/translated/stock.js:387 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:411 +#: templates/js/translated/stock.js:412 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416 +#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:432 +#: templates/js/translated/stock.js:433 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:452 +#: templates/js/translated/stock.js:453 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:506 +#: templates/js/translated/stock.js:507 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:517 +#: templates/js/translated/stock.js:518 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:518 +#: templates/js/translated/stock.js:519 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:627 +#: templates/js/translated/stock.js:628 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:628 +#: templates/js/translated/stock.js:629 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:713 +#: templates/js/translated/stock.js:706 +msgid "Warning: Merge operation cannot be reversed" +msgstr "" + +#: templates/js/translated/stock.js:707 +msgid "Some information will be lost when merging stock items" +msgstr "" + +#: templates/js/translated/stock.js:709 +msgid "Stock transaction history will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:710 +msgid "Supplier part information will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:796 +msgid "Confirm stock item merge" +msgstr "" + +#: templates/js/translated/stock.js:797 +msgid "Merge Stock Items" +msgstr "" + +#: templates/js/translated/stock.js:892 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:893 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:899 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:721 +#: templates/js/translated/stock.js:900 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:725 +#: templates/js/translated/stock.js:904 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:726 +#: templates/js/translated/stock.js:905 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:730 +#: templates/js/translated/stock.js:909 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:731 users/models.py:202 +#: templates/js/translated/stock.js:910 users/models.py:205 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:735 templates/stock_table.html:57 +#: templates/js/translated/stock.js:914 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:864 +#: templates/js/translated/stock.js:1043 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1022 +#: templates/js/translated/stock.js:1201 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1024 +#: templates/js/translated/stock.js:1203 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1029 +#: templates/js/translated/stock.js:1208 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1230 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1077 +#: templates/js/translated/stock.js:1256 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1134 +#: templates/js/translated/stock.js:1313 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1420 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1245 +#: templates/js/translated/stock.js:1424 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1432 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1259 +#: templates/js/translated/stock.js:1438 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1417 +#: templates/js/translated/stock.js:1596 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1422 +#: templates/js/translated/stock.js:1601 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1425 +#: templates/js/translated/stock.js:1604 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1429 +#: templates/js/translated/stock.js:1608 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1431 +#: templates/js/translated/stock.js:1610 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1437 +#: templates/js/translated/stock.js:1616 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1618 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1441 +#: templates/js/translated/stock.js:1620 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1625 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1453 +#: templates/js/translated/stock.js:1632 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1455 +#: templates/js/translated/stock.js:1634 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1457 +#: templates/js/translated/stock.js:1636 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1461 +#: templates/js/translated/stock.js:1640 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1511 +#: templates/js/translated/stock.js:1690 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1584 +#: templates/js/translated/stock.js:1763 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1622 +#: templates/js/translated/stock.js:1801 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691 +#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1731 +#: templates/js/translated/stock.js:1910 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1758 +#: templates/js/translated/stock.js:1937 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1760 +#: templates/js/translated/stock.js:1939 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2138 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1959 +#: templates/js/translated/stock.js:2152 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1960 +#: templates/js/translated/stock.js:2153 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2377 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2206 +#: templates/js/translated/stock.js:2399 msgid "Details" msgstr "Détails" -#: templates/js/translated/stock.js:2231 +#: templates/js/translated/stock.js:2424 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2250 +#: templates/js/translated/stock.js:2443 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2269 +#: templates/js/translated/stock.js:2462 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2480 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2310 +#: templates/js/translated/stock.js:2503 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2318 +#: templates/js/translated/stock.js:2511 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2552 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2360 +#: templates/js/translated/stock.js:2553 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2411 +#: templates/js/translated/stock.js:2604 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2462 +#: templates/js/translated/stock.js:2655 msgid "Uninstall Stock Item" msgstr "" @@ -9059,18 +9261,26 @@ msgid "Move stock" msgstr "" #: templates/stock_table.html:52 +msgid "Merge selected stock items" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Merge stock" +msgstr "" + +#: templates/stock_table.html:53 msgid "Order selected items" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change status" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change stock status" msgstr "" -#: templates/stock_table.html:57 +#: templates/stock_table.html:58 msgid "Delete selected items" msgstr "" @@ -9106,35 +9316,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:189 +#: users/models.py:192 msgid "Permission set" msgstr "" -#: users/models.py:197 +#: users/models.py:200 msgid "Group" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "View" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "Permission to view items" msgstr "" -#: users/models.py:202 +#: users/models.py:205 msgid "Permission to add items" msgstr "" -#: users/models.py:204 +#: users/models.py:207 msgid "Change" msgstr "" -#: users/models.py:204 +#: users/models.py:207 msgid "Permissions to edit items" msgstr "" -#: users/models.py:206 +#: users/models.py:209 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po index 9938394fec..bdd7f77c53 100644 --- a/InvenTree/locale/he/LC_MESSAGES/django.po +++ b/InvenTree/locale/he/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-12-08 23:43+0000\n" -"PO-Revision-Date: 2021-12-08 23:47\n" +"POT-Creation-Date: 2021-12-21 02:57+0000\n" +"PO-Revision-Date: 2021-12-21 03:01\n" "Last-Translator: \n" "Language-Team: Hebrew\n" "Language: he_IL\n" @@ -34,50 +34,50 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93 +#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 build/forms.py:93 #: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: part/forms.py:108 templates/account/email_confirm.html:20 +#: part/forms.py:78 templates/account/email_confirm.html:20 #: templates/js/translated/forms.js:595 msgid "Confirm" msgstr "" -#: InvenTree/forms.py:136 +#: InvenTree/forms.py:142 msgid "Confirm delete" msgstr "" -#: InvenTree/forms.py:137 +#: InvenTree/forms.py:143 msgid "Confirm item deletion" msgstr "" -#: InvenTree/forms.py:168 +#: InvenTree/forms.py:174 msgid "Enter password" msgstr "" -#: InvenTree/forms.py:169 +#: InvenTree/forms.py:175 msgid "Enter new password" msgstr "" -#: InvenTree/forms.py:176 +#: InvenTree/forms.py:182 msgid "Confirm password" msgstr "" -#: InvenTree/forms.py:177 +#: InvenTree/forms.py:183 msgid "Confirm new password" msgstr "" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:215 msgid "Select Category" msgstr "" -#: InvenTree/forms.py:230 +#: InvenTree/forms.py:236 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:234 +#: InvenTree/forms.py:240 msgid "Email address confirmation" msgstr "" -#: InvenTree/forms.py:254 +#: InvenTree/forms.py:260 msgid "You must type the same email each time." msgstr "" @@ -123,7 +123,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:132 stock/models.py:1852 +#: InvenTree/models.py:132 stock/models.py:1967 #: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "" @@ -136,12 +136,12 @@ msgstr "" #: company/models.py:564 order/models.py:124 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:1258 +#: templates/js/translated/company.js:826 templates/js/translated/part.js:1260 msgid "Link" msgstr "" #: InvenTree/models.py:140 build/models.py:330 part/models.py:798 -#: stock/models.py:524 +#: stock/models.py:527 msgid "Link to external URL" msgstr "" @@ -153,10 +153,10 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213 -#: common/models.py:1214 part/models.py:2205 part/models.py:2225 +#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1219 +#: common/models.py:1220 part/models.py:2205 part/models.py:2225 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2341 +#: templates/js/translated/stock.js:2534 msgid "User" msgstr "" @@ -202,8 +202,8 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:268 #: templates/js/translated/company.js:638 templates/js/translated/part.js:506 -#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565 -#: templates/js/translated/stock.js:2134 +#: templates/js/translated/part.js:643 templates/js/translated/part.js:1567 +#: templates/js/translated/stock.js:2327 msgid "Name" msgstr "" @@ -212,23 +212,23 @@ msgstr "" #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70 +#: order/models.py:122 part/models.py:764 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:89 +#: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428 +#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540 #: templates/js/translated/build.js:1627 templates/js/translated/company.js:345 #: templates/js/translated/company.js:548 #: templates/js/translated/company.js:837 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 -#: templates/js/translated/part.js:565 templates/js/translated/part.js:933 -#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188 -#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653 -#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146 -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/part.js:565 templates/js/translated/part.js:935 +#: templates/js/translated/part.js:1020 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1586 templates/js/translated/part.js:1655 +#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339 +#: templates/js/translated/stock.js:2384 msgid "Description" msgstr "" @@ -248,83 +248,83 @@ msgstr "" msgid "Filename" msgstr "" -#: InvenTree/settings.py:689 +#: InvenTree/settings.py:698 msgid "German" msgstr "" -#: InvenTree/settings.py:690 +#: InvenTree/settings.py:699 msgid "Greek" msgstr "" -#: InvenTree/settings.py:691 +#: InvenTree/settings.py:700 msgid "English" msgstr "" -#: InvenTree/settings.py:692 +#: InvenTree/settings.py:701 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:693 +#: InvenTree/settings.py:702 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:694 +#: InvenTree/settings.py:703 msgid "French" msgstr "" -#: InvenTree/settings.py:695 +#: InvenTree/settings.py:704 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:696 +#: InvenTree/settings.py:705 msgid "Italian" msgstr "" -#: InvenTree/settings.py:697 +#: InvenTree/settings.py:706 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:698 +#: InvenTree/settings.py:707 msgid "Korean" msgstr "" -#: InvenTree/settings.py:699 +#: InvenTree/settings.py:708 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:700 +#: InvenTree/settings.py:709 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:701 +#: InvenTree/settings.py:710 msgid "Polish" msgstr "" -#: InvenTree/settings.py:702 +#: InvenTree/settings.py:711 msgid "Portugese" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:712 msgid "Russian" msgstr "" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:713 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:714 msgid "Thai" msgstr "" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:715 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:716 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:717 msgid "Chinese" msgstr "" @@ -341,7 +341,7 @@ msgid "InvenTree system health checks failed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 msgid "Pending" msgstr "" @@ -349,14 +349,14 @@ msgstr "" msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:319 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:313 +#: InvenTree/status_codes.py:318 msgid "Cancelled" msgstr "" @@ -370,7 +370,7 @@ msgstr "" msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:143 order/models.py:939 +#: InvenTree/status_codes.py:143 order/models.py:941 #: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255 msgid "Shipped" msgstr "" @@ -395,83 +395,87 @@ msgstr "" msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:269 +#: InvenTree/status_codes.py:272 msgid "Legacy stock tracking entry" msgstr "" -#: InvenTree/status_codes.py:271 +#: InvenTree/status_codes.py:274 msgid "Stock item created" msgstr "" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Edited stock item" msgstr "" -#: InvenTree/status_codes.py:274 +#: InvenTree/status_codes.py:277 msgid "Assigned serial number" msgstr "" -#: InvenTree/status_codes.py:276 +#: InvenTree/status_codes.py:279 msgid "Stock counted" msgstr "" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Stock manually added" msgstr "" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Stock manually removed" msgstr "" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Location changed" msgstr "" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Installed into assembly" msgstr "" -#: InvenTree/status_codes.py:283 +#: InvenTree/status_codes.py:286 msgid "Removed from assembly" msgstr "" -#: InvenTree/status_codes.py:285 +#: InvenTree/status_codes.py:288 msgid "Installed component item" msgstr "" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Removed component item" msgstr "" -#: InvenTree/status_codes.py:288 +#: InvenTree/status_codes.py:291 msgid "Split from parent item" msgstr "" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064 +msgid "Merged stock items" +msgstr "" + +#: InvenTree/status_codes.py:296 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:297 msgid "Returned from customer" msgstr "" -#: InvenTree/status_codes.py:294 +#: InvenTree/status_codes.py:299 msgid "Build order output created" msgstr "" -#: InvenTree/status_codes.py:295 +#: InvenTree/status_codes.py:300 msgid "Build order output completed" msgstr "" -#: InvenTree/status_codes.py:297 +#: InvenTree/status_codes.py:302 msgid "Received against purchase order" msgstr "" -#: InvenTree/status_codes.py:312 +#: InvenTree/status_codes.py:317 msgid "Production" msgstr "" @@ -575,16 +579,16 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1283 -#: build/templates/build/build_base.html:132 -#: build/templates/build/detail.html:35 common/models.py:1253 +#: build/forms.py:36 build/models.py:1286 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1259 #: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:794 order/models.py:1205 order/serializers.py:810 +#: order/models.py:796 order/models.py:1207 order/serializers.py:810 #: order/templates/order/order_wizard/match_parts.html:30 -#: 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 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:193 +#: part/forms.py:209 part/forms.py:225 part/models.py:2576 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:967 part/templates/part/detail.html:1053 +#: part/templates/part/detail.html:961 part/templates/part/detail.html:1047 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -592,10 +596,10 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:174 -#: stock/templates/stock/item_base.html:255 -#: stock/templates/stock/item_base.html:263 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443 +#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:261 +#: stock/templates/stock/item_base.html:269 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555 #: templates/js/translated/build.js:240 templates/js/translated/build.js:440 #: templates/js/translated/build.js:634 templates/js/translated/build.js:644 #: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367 @@ -604,10 +608,10 @@ msgstr "" #: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 #: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 #: templates/js/translated/order.js:2150 templates/js/translated/part.js:843 -#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919 -#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382 -#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326 -#: templates/js/translated/stock.js:2428 +#: templates/js/translated/part.js:1798 templates/js/translated/part.js:1921 +#: templates/js/translated/part.js:1999 templates/js/translated/stock.js:383 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750 +#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621 msgid "Quantity" msgstr "" @@ -616,8 +620,8 @@ msgid "Enter quantity for build output" msgstr "" #: build/forms.py:41 order/serializers.py:814 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:229 -#: templates/js/translated/stock.js:383 +#: stock/serializers.py:314 templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:384 msgid "Serial Numbers" msgstr "" @@ -661,7 +665,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:145 +#: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" msgstr "" @@ -671,11 +675,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:199 order/models.py:210 order/models.py:536 -#: order/models.py:801 part/models.py:2585 +#: order/models.py:803 part/models.py:2585 #: part/templates/part/bom_upload/match_parts.html:30 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124 +#: templates/js/translated/bom.js:547 templates/js/translated/build.js:1124 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "" @@ -695,7 +699,7 @@ msgstr "" #: build/models.py:225 build/templates/build/build_base.html:77 #: build/templates/build/detail.html:30 company/models.py:705 -#: order/models.py:854 order/models.py:928 +#: order/models.py:856 order/models.py:930 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357 #: part/models.py:2151 part/models.py:2167 part/models.py:2186 #: part/models.py:2203 part/models.py:2305 part/models.py:2427 @@ -706,20 +710,21 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 -#: templates/InvenTree/search.html:86 +#: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214 -#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326 +#: templates/js/translated/bom.js:505 templates/js/translated/build.js:625 #: templates/js/translated/build.js:993 templates/js/translated/build.js:1364 #: templates/js/translated/build.js:1632 templates/js/translated/company.js:489 #: templates/js/translated/company.js:746 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 -#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918 -#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166 -#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747 -#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416 +#: templates/js/translated/order.js:2128 templates/js/translated/part.js:920 +#: templates/js/translated/part.js:1001 templates/js/translated/part.js:1168 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719 +#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:2609 msgid "Part" msgstr "" @@ -776,7 +781,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:285 stock/models.py:528 +#: build/models.py:285 stock/models.py:531 msgid "Batch Code" msgstr "" @@ -830,27 +835,27 @@ msgstr "" #: build/models.py:329 build/templates/build/detail.html:102 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:354 stock/models.py:522 -#: stock/templates/stock/item_base.html:374 +#: part/templates/part/part_base.html:354 stock/models.py:525 +#: stock/templates/stock/item_base.html:372 msgid "External Link" 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:144 order/models.py:803 order/models.py:1049 +#: order/models.py:144 order/models.py:805 order/models.py:1051 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:925 -#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50 +#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594 -#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332 -#: stock/serializers.py:624 stock/serializers.py:711 +#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597 +#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332 +#: stock/serializers.py:638 stock/serializers.py:736 stock/serializers.py:868 #: stock/templates/stock/stock_sidebar.html:21 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711 #: templates/js/translated/company.js:842 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795 msgid "Notes" msgstr "" @@ -883,7 +888,7 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1133 order/models.py:1165 +#: build/models.py:1133 order/models.py:1167 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -891,51 +896,52 @@ msgstr "" msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1193 +#: build/models.py:1196 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1253 stock/templates/stock/item_base.html:346 -#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605 +#: build/models.py:1256 stock/templates/stock/item_base.html:344 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1605 #: templates/navbar.html:35 msgid "Build" msgstr "" -#: build/models.py:1254 +#: build/models.py:1257 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690 -#: order/serializers.py:708 stock/serializers.py:562 +#: build/models.py:1273 build/serializers.py:334 order/serializers.py:690 +#: order/serializers.py:708 stock/serializers.py:576 stock/serializers.py:694 #: stock/templates/stock/item_base.html:8 -#: stock/templates/stock/item_base.html:16 -#: stock/templates/stock/item_base.html:368 +#: stock/templates/stock/item_base.html:22 +#: stock/templates/stock/item_base.html:366 #: templates/js/translated/build.js:413 templates/js/translated/build.js:418 #: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277 +#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:2470 msgid "Stock Item" msgstr "" -#: build/models.py:1271 +#: build/models.py:1274 msgid "Source stock item" msgstr "" -#: build/models.py:1284 +#: build/models.py:1287 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1292 +#: build/models.py:1295 msgid "Install into" msgstr "" -#: build/models.py:1293 +#: build/models.py:1296 msgid "Destination stock item" msgstr "" -#: build/serializers.py:137 build/serializers.py:357 +#: build/serializers.py:137 build/serializers.py:363 msgid "Build Output" msgstr "" @@ -956,16 +962,16 @@ msgid "This build output is not fully allocated" msgstr "" #: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813 -#: stock/templates/stock/item_base.html:314 +#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:729 +#: stock/serializers.py:970 stock/templates/stock/item_base.html:312 #: templates/js/translated/barcode.js:384 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425 #: templates/js/translated/build.js:1032 templates/js/translated/order.js:508 #: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 #: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497 -#: templates/js/translated/stock.js:2218 +#: templates/js/translated/part.js:177 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411 msgid "Location" msgstr "" @@ -975,11 +981,11 @@ msgstr "" #: build/serializers.py:197 build/templates/build/build_base.html:137 #: build/templates/build/detail.html:63 order/models.py:552 -#: order/serializers.py:247 stock/templates/stock/item_base.html:180 +#: order/serializers.py:247 stock/templates/stock/item_base.html:186 #: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661 #: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472 -#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651 +#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637 msgid "Status" msgstr "" @@ -1000,33 +1006,33 @@ msgstr "" msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:319 +#: build/serializers.py:325 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:334 stock/serializers.py:569 +#: build/serializers.py:340 stock/serializers.py:583 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:348 order/models.py:277 order/serializers.py:240 -#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305 +#: build/serializers.py:354 order/models.py:277 order/serializers.py:240 +#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:390 order/serializers.py:741 +#: build/serializers.py:396 order/serializers.py:741 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:396 +#: build/serializers.py:402 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:403 +#: build/serializers.py:409 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:431 order/serializers.py:984 +#: build/serializers.py:437 order/serializers.py:984 msgid "Allocation items must be provided" msgstr "" @@ -1067,33 +1073,33 @@ msgstr "" msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:87 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:96 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:98 +#: build/templates/build/build_base.html:103 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:105 +#: build/templates/build/build_base.html:110 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Stock has not been fully allocated to this Build Order" msgstr "" @@ -1131,12 +1137,12 @@ msgid "Completed" msgstr "" #: build/templates/build/build_base.html:171 -#: build/templates/build/detail.html:95 order/models.py:925 -#: order/models.py:1021 order/templates/order/sales_order_base.html:9 +#: build/templates/build/detail.html:95 order/models.py:927 +#: order/models.py:1023 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:308 +#: stock/templates/stock/item_base.html:306 #: templates/js/translated/order.js:1218 msgid "Sales Order" msgstr "" @@ -1211,7 +1217,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "" @@ -1225,8 +1231,8 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:332 -#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451 +#: stock/templates/stock/item_base.html:330 +#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1278,7 +1284,7 @@ msgstr "" #: build/templates/build/detail.html:185 #: company/templates/company/detail.html:38 #: company/templates/company/detail.html:85 order/views.py:463 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order Parts" msgstr "" @@ -1347,7 +1353,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115 +#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115 #: stock/templates/stock/item.html:205 msgid "Edit Notes" msgstr "" @@ -1489,7 +1495,7 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:340 common/models.py:998 common/models.py:1206 +#: common/models.py:340 common/models.py:1004 common/models.py:1212 msgid "Settings key (must be unique - case insensitive" msgstr "" @@ -1651,7 +1657,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956 +#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:1068 #: templates/js/translated/table_filters.js:168 #: templates/js/translated/table_filters.js:416 msgid "Assembly" @@ -1953,256 +1959,264 @@ msgid "Group to which new users are assigned on registration" msgstr "" #: common/models.py:961 -msgid "Enable URL integration" +msgid "Enforce MFA" msgstr "" #: common/models.py:962 -msgid "Enable plugins to add URL routes" +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:967 +msgid "Enable URL integration" msgstr "" #: common/models.py:968 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:974 msgid "Enable navigation integration" msgstr "" -#: common/models.py:969 +#: common/models.py:975 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:975 +#: common/models.py:981 msgid "Enable global setting integration" msgstr "" -#: common/models.py:976 +#: common/models.py:982 msgid "Enable plugins to integrate into inventree global settings" msgstr "" -#: common/models.py:982 +#: common/models.py:988 msgid "Enable app integration" msgstr "" -#: common/models.py:983 +#: common/models.py:989 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1029 +#: common/models.py:1035 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1030 +#: common/models.py:1036 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1035 +#: common/models.py:1041 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1036 +#: common/models.py:1042 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1041 +#: common/models.py:1047 msgid "Show latest parts" msgstr "" -#: common/models.py:1042 +#: common/models.py:1048 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1047 +#: common/models.py:1053 msgid "Recent Part Count" msgstr "" -#: common/models.py:1048 +#: common/models.py:1054 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1054 +#: common/models.py:1060 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1055 +#: common/models.py:1061 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1060 +#: common/models.py:1066 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1061 +#: common/models.py:1067 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1066 +#: common/models.py:1072 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1067 +#: common/models.py:1073 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1072 +#: common/models.py:1078 msgid "Show low stock" msgstr "" -#: common/models.py:1073 +#: common/models.py:1079 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1078 +#: common/models.py:1084 msgid "Show depleted stock" msgstr "" -#: common/models.py:1079 +#: common/models.py:1085 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1084 +#: common/models.py:1090 msgid "Show needed stock" msgstr "" -#: common/models.py:1085 +#: common/models.py:1091 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1090 +#: common/models.py:1096 msgid "Show expired stock" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1096 +#: common/models.py:1102 msgid "Show stale stock" msgstr "" -#: common/models.py:1097 +#: common/models.py:1103 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1102 +#: common/models.py:1108 msgid "Show pending builds" msgstr "" -#: common/models.py:1103 +#: common/models.py:1109 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1108 +#: common/models.py:1114 msgid "Show overdue builds" msgstr "" -#: common/models.py:1109 +#: common/models.py:1115 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1114 +#: common/models.py:1120 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1115 +#: common/models.py:1121 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1120 +#: common/models.py:1126 msgid "Show overdue POs" msgstr "" -#: common/models.py:1121 +#: common/models.py:1127 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1126 +#: common/models.py:1132 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1127 +#: common/models.py:1133 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1132 +#: common/models.py:1138 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1133 +#: common/models.py:1139 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1139 +#: common/models.py:1145 msgid "Inline label display" msgstr "" -#: common/models.py:1140 +#: common/models.py:1146 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1146 +#: common/models.py:1152 msgid "Inline report display" msgstr "" -#: common/models.py:1147 +#: common/models.py:1153 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "Search Preview Results" msgstr "" -#: common/models.py:1154 +#: common/models.py:1160 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1160 +#: common/models.py:1166 msgid "Search Show Stock" msgstr "" -#: common/models.py:1161 +#: common/models.py:1167 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1167 +#: common/models.py:1173 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1168 +#: common/models.py:1174 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1174 +#: common/models.py:1180 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1175 +#: common/models.py:1181 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1181 +#: common/models.py:1187 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1182 +#: common/models.py:1188 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1188 +#: common/models.py:1194 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1189 +#: common/models.py:1195 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1254 company/forms.py:43 +#: common/models.py:1260 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1261 company/serializers.py:264 +#: common/models.py:1267 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801 +#: templates/js/translated/part.js:852 templates/js/translated/part.js:1803 msgid "Price" msgstr "" -#: common/models.py:1262 +#: common/models.py:1268 msgid "Unit price at specified quantity" msgstr "" @@ -2290,7 +2304,7 @@ msgid "Contact phone number" msgstr "" #: company/models.py:125 company/templates/company/company_base.html:129 -#: templates/InvenTree/settings/user.html:47 +#: templates/InvenTree/settings/user.html:48 msgid "Email" msgstr "" @@ -2347,8 +2361,8 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:320 company/models.py:535 stock/models.py:468 -#: stock/templates/stock/item_base.html:135 +#: company/models.py:320 company/models.py:535 stock/models.py:469 +#: stock/templates/stock/item_base.html:141 msgid "Base Part" msgstr "" @@ -2359,7 +2373,7 @@ msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:381 +#: stock/templates/stock/item_base.html:379 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:514 #: templates/js/translated/company.js:797 templates/js/translated/part.js:232 @@ -2393,7 +2407,7 @@ msgstr "" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:391 +#: stock/templates/stock/item_base.html:389 msgid "Manufacturer Part" msgstr "" @@ -2403,8 +2417,8 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:1845 templates/js/translated/company.js:644 -#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117 +#: stock/models.py:1960 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1296 msgid "Value" msgstr "" @@ -2431,7 +2445,7 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:224 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219 -#: part/bom.py:247 stock/templates/stock/item_base.html:398 +#: part/bom.py:247 stock/templates/stock/item_base.html:396 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:771 templates/js/translated/order.js:823 #: templates/js/translated/part.js:213 templates/js/translated/part.js:800 @@ -2479,8 +2493,8 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:491 stock/templates/stock/item_base.html:339 -#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612 +#: stock/models.py:493 stock/templates/stock/item_base.html:337 +#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1791 msgid "Packaging" msgstr "" @@ -2506,7 +2520,7 @@ msgstr "" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322 +#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322 msgid "Company" msgstr "" @@ -2548,11 +2562,11 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:83 order/models.py:547 -#: order/templates/order/sales_order_base.html:115 stock/models.py:509 -#: stock/models.py:510 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:291 +#: order/templates/order/sales_order_base.html:115 stock/models.py:512 +#: stock/models.py:513 stock/serializers.py:624 +#: stock/templates/stock/item_base.html:289 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2259 +#: templates/js/translated/stock.js:2452 msgid "Customer" msgstr "" @@ -2571,7 +2585,7 @@ msgstr "" #: company/templates/company/detail.html:15 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:124 +#: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" @@ -2590,14 +2604,14 @@ msgstr "" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:167 part/templates/part/detail.html:342 +#: part/templates/part/category.html:171 part/templates/part/detail.html:342 #: part/templates/part/detail.html:370 msgid "Options" msgstr "" #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order parts" msgstr "" @@ -2611,7 +2625,7 @@ msgstr "" msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109 +#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" @@ -2633,8 +2647,8 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203 +#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" @@ -2655,8 +2669,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223 +#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" @@ -2698,7 +2712,7 @@ msgid "Supplier List" msgstr "" #: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184 +#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 #: templates/navbar.html:46 msgid "Manufacturers" msgstr "" @@ -2706,7 +2720,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:67 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76 msgid "Order part" msgstr "" @@ -2728,7 +2742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 #: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:194 templates/navbar.html:45 +#: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "" @@ -2742,7 +2756,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:254 #: part/templates/part/detail.html:344 part/templates/part/detail.html:372 #: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31 -#: users/models.py:206 +#: users/models.py:209 msgid "Delete" msgstr "" @@ -2765,7 +2779,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:867 +#: part/templates/part/detail.html:861 msgid "Add Parameter" msgstr "" @@ -2794,9 +2808,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:476 -#: stock/templates/stock/item_base.html:403 -#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569 +#: company/templates/company/supplier_part.html:24 stock/models.py:477 +#: stock/templates/stock/item_base.html:401 +#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1748 msgid "Supplier Part" msgstr "" @@ -2816,13 +2830,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:20 stock/templates/stock/location.html:162 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:166 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163 -#: templates/js/translated/stock.js:359 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 +#: templates/js/translated/stock.js:360 msgid "New Stock Item" msgstr "" @@ -2832,7 +2846,7 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:68 +#: part/templates/part/detail.html:72 msgid "Order Part" msgstr "" @@ -2843,7 +2857,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:1717 +#: part/templates/part/prices.html:271 part/views.py:1713 msgid "Add Price Break" msgstr "" @@ -2851,11 +2865,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1779 +#: company/templates/company/supplier_part.html:224 part/views.py:1775 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1765 +#: company/templates/company/supplier_part.html:238 part/views.py:1761 msgid "Edit Price Break" msgstr "" @@ -2869,14 +2883,14 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:156 +#: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434 -#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059 -#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:1401 templates/navbar.html:28 +#: templates/js/translated/bom.js:328 templates/js/translated/part.js:434 +#: templates/js/translated/part.js:569 templates/js/translated/part.js:1061 +#: templates/js/translated/part.js:1222 templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:1580 templates/navbar.html:28 msgid "Stock" msgstr "" @@ -2895,11 +2909,11 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:133 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:159 +#: stock/templates/stock/location.html:137 +#: stock/templates/stock/location.html:151 +#: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "" @@ -2912,7 +2926,7 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:61 templates/InvenTree/search.html:214 +#: company/views.py:61 templates/InvenTree/search.html:208 #: templates/navbar.html:57 msgid "Customers" msgstr "" @@ -3121,7 +3135,7 @@ msgstr "" msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:562 order/models.py:1026 +#: order/models.py:562 order/models.py:1028 #: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429 msgid "Shipment Date" msgstr "" @@ -3130,7 +3144,7 @@ msgstr "" msgid "shipped by" msgstr "" -#: order/models.py:634 +#: order/models.py:635 msgid "Order cannot be completed as no parts have been assigned" msgstr "" @@ -3138,172 +3152,172 @@ msgstr "" msgid "Only a pending order can be marked as complete" msgstr "" -#: order/models.py:643 +#: order/models.py:642 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:647 +#: order/models.py:645 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:795 +#: order/models.py:797 msgid "Item quantity" msgstr "" -#: order/models.py:801 +#: order/models.py:803 msgid "Line item reference" msgstr "" -#: order/models.py:803 +#: order/models.py:805 msgid "Line item notes" msgstr "" -#: order/models.py:833 order/models.py:924 order/models.py:1020 +#: order/models.py:835 order/models.py:926 order/models.py:1022 #: templates/js/translated/order.js:1820 msgid "Order" msgstr "" -#: order/models.py:834 order/templates/order/order_base.html:9 +#: order/models.py:836 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:353 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/order.js:801 templates/js/translated/part.js:775 -#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240 +#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433 msgid "Purchase Order" msgstr "" -#: order/models.py:855 +#: order/models.py:857 msgid "Supplier part" msgstr "" -#: order/models.py:862 order/templates/order/order_base.html:163 +#: order/models.py:864 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:847 templates/js/translated/part.js:873 #: templates/js/translated/table_filters.js:317 msgid "Received" msgstr "" -#: order/models.py:863 +#: order/models.py:865 msgid "Number of items received" msgstr "" -#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:360 -#: templates/js/translated/stock.js:1600 +#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:358 +#: templates/js/translated/stock.js:1779 msgid "Purchase Price" msgstr "" -#: order/models.py:871 +#: order/models.py:873 msgid "Unit purchase price" msgstr "" -#: order/models.py:879 +#: order/models.py:881 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:934 part/templates/part/part_pricing.html:112 +#: order/models.py:936 part/templates/part/part_pricing.html:112 #: part/templates/part/prices.html:116 part/templates/part/prices.html:284 msgid "Sale Price" msgstr "" -#: order/models.py:935 +#: order/models.py:937 msgid "Unit sale price" msgstr "" -#: order/models.py:940 +#: order/models.py:942 msgid "Shipped quantity" msgstr "" -#: order/models.py:1027 +#: order/models.py:1029 msgid "Date of shipment" msgstr "" -#: order/models.py:1034 +#: order/models.py:1036 msgid "Checked By" msgstr "" -#: order/models.py:1035 +#: order/models.py:1037 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1043 +#: order/models.py:1045 msgid "Shipment number" msgstr "" -#: order/models.py:1050 +#: order/models.py:1052 msgid "Shipment notes" msgstr "" -#: order/models.py:1057 +#: order/models.py:1059 msgid "Tracking Number" msgstr "" -#: order/models.py:1058 +#: order/models.py:1060 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1068 +#: order/models.py:1070 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1071 +#: order/models.py:1073 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1147 order/models.py:1149 +#: order/models.py:1149 order/models.py:1151 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1153 +#: order/models.py:1155 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1155 +#: order/models.py:1157 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1158 +#: order/models.py:1160 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1162 +#: order/models.py:1164 msgid "StockItem is over-allocated" msgstr "" -#: order/models.py:1168 order/serializers.py:734 +#: order/models.py:1170 order/serializers.py:734 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1171 +#: order/models.py:1173 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1172 +#: order/models.py:1174 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1180 +#: order/models.py:1182 msgid "Line" msgstr "" -#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953 +#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953 #: templates/js/translated/model_renderers.js:251 msgid "Shipment" msgstr "" -#: order/models.py:1189 +#: order/models.py:1191 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1201 +#: order/models.py:1203 msgid "Item" msgstr "" -#: order/models.py:1202 +#: order/models.py:1204 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1205 +#: order/models.py:1207 msgid "Enter stock allocation quantity" msgstr "" @@ -3530,7 +3544,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/build.js:245 templates/js/translated/build.js:1256 #: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:592 +#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761 msgid "Remove row" msgstr "" @@ -3722,7 +3736,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188 +#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1188 msgid "Actions" msgstr "" @@ -3797,24 +3811,24 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:760 +#: part/api.py:777 msgid "Must be greater than zero" msgstr "" -#: part/api.py:764 +#: part/api.py:781 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:779 +#: part/api.py:796 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833 +#: part/api.py:827 part/api.py:831 part/api.py:846 part/api.py:850 msgid "This field is required" msgstr "" #: part/bom.py:125 part/models.py:81 part/models.py:816 -#: part/templates/part/category.html:104 part/templates/part/part_base.html:338 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "" @@ -3822,99 +3836,43 @@ msgstr "" msgid "Available Stock" msgstr "" -#: part/forms.py:63 -msgid "File Format" -msgstr "" - -#: part/forms.py:63 -msgid "Select output file format" -msgstr "" - -#: part/forms.py:65 -msgid "Cascading" -msgstr "" - -#: part/forms.py:65 -msgid "Download cascading / multi-level BOM" -msgstr "" - -#: part/forms.py:67 -msgid "Levels" -msgstr "" - -#: part/forms.py:67 -msgid "Select maximum number of BOM levels to export (0 = all levels)" -msgstr "" - -#: part/forms.py:69 -msgid "Include Parameter Data" -msgstr "" - -#: part/forms.py:69 -msgid "Include part parameters data in exported BOM" -msgstr "" - -#: part/forms.py:71 -msgid "Include Stock Data" -msgstr "" - -#: part/forms.py:71 -msgid "Include part stock data in exported BOM" -msgstr "" - -#: part/forms.py:73 -msgid "Include Manufacturer Data" -msgstr "" - -#: part/forms.py:73 -msgid "Include part manufacturer data in exported BOM" -msgstr "" - -#: part/forms.py:75 -msgid "Include Supplier Data" -msgstr "" - -#: part/forms.py:75 -msgid "Include part supplier data in exported BOM" -msgstr "" - -#: part/forms.py:96 part/models.py:2427 +#: part/forms.py:66 part/models.py:2427 msgid "Parent Part" msgstr "" -#: part/forms.py:97 part/templates/part/bom_duplicate.html:7 +#: part/forms.py:67 part/templates/part/bom_duplicate.html:7 msgid "Select parent part to copy BOM from" msgstr "" -#: part/forms.py:103 +#: part/forms.py:73 msgid "Clear existing BOM items" msgstr "" -#: part/forms.py:109 +#: part/forms.py:79 msgid "Confirm BOM duplication" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "validate" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "Confirm that the BOM is correct" msgstr "" -#: part/forms.py:163 +#: part/forms.py:133 msgid "Select part category" msgstr "" -#: part/forms.py:200 +#: part/forms.py:170 msgid "Add parameter template to same level categories" msgstr "" -#: part/forms.py:204 +#: part/forms.py:174 msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:224 +#: part/forms.py:194 msgid "Input quantity for price calculation" msgstr "" @@ -3930,24 +3888,24 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11 +#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:96 part/templates/part/category.html:124 -#: templates/InvenTree/search.html:101 templates/stats.html:84 +#: part/models.py:96 part/templates/part/category.html:128 +#: templates/InvenTree/search.html:95 templates/stats.html:84 #: users/models.py:40 msgid "Part Categories" msgstr "" #: part/models.py:358 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:13 part/templates/part/category.html:129 -#: part/templates/part/category.html:149 +#: part/templates/part/category.html:17 part/templates/part/category.html:133 +#: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1597 templates/navbar.html:21 +#: templates/js/translated/part.js:1599 templates/navbar.html:21 #: templates/stats.html:80 templates/stats.html:89 users/models.py:41 msgid "Parts" msgstr "" @@ -4001,7 +3959,7 @@ msgstr "" msgid "Part description" msgstr "" -#: part/models.py:770 part/templates/part/category.html:82 +#: part/models.py:770 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "" @@ -4014,7 +3972,7 @@ msgstr "" #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 #: templates/InvenTree/settings/settings.html:172 -#: templates/js/translated/part.js:1202 +#: templates/js/translated/part.js:1204 msgid "Category" msgstr "" @@ -4023,8 +3981,8 @@ msgid "Part category" msgstr "" #: part/models.py:784 part/templates/part/part_base.html:274 -#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155 -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/part.js:557 templates/js/translated/part.js:1157 +#: templates/js/translated/stock.js:1552 msgid "IPN" msgstr "" @@ -4145,8 +4103,8 @@ msgstr "" msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2310 templates/js/translated/part.js:1648 -#: templates/js/translated/stock.js:1097 +#: part/models.py:2310 templates/js/translated/part.js:1650 +#: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "" @@ -4162,7 +4120,7 @@ msgstr "" msgid "Enter description for this test" msgstr "" -#: part/models.py:2322 templates/js/translated/part.js:1657 +#: part/models.py:2322 templates/js/translated/part.js:1659 #: templates/js/translated/table_filters.js:281 msgid "Required" msgstr "" @@ -4171,7 +4129,7 @@ msgstr "" msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2328 templates/js/translated/part.js:1665 +#: part/models.py:2328 templates/js/translated/part.js:1667 msgid "Requires Value" msgstr "" @@ -4179,7 +4137,7 @@ msgstr "" msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2334 templates/js/translated/part.js:1672 +#: part/models.py:2334 templates/js/translated/part.js:1674 msgid "Requires Attachment" msgstr "" @@ -4241,8 +4199,8 @@ msgstr "" msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2578 templates/js/translated/bom.js:454 -#: templates/js/translated/bom.js:528 +#: part/models.py:2578 templates/js/translated/bom.js:566 +#: templates/js/translated/bom.js:640 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" @@ -4275,8 +4233,8 @@ msgstr "" msgid "BOM line checksum" msgstr "" -#: part/models.py:2594 templates/js/translated/bom.js:545 -#: templates/js/translated/bom.js:552 +#: part/models.py:2594 templates/js/translated/bom.js:657 +#: templates/js/translated/bom.js:664 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" @@ -4286,7 +4244,7 @@ msgstr "" msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2600 templates/js/translated/bom.js:537 +#: part/models.py:2600 templates/js/translated/bom.js:649 msgid "Allow Variants" msgstr "" @@ -4406,100 +4364,100 @@ msgstr "" msgid "This will validate each line in the BOM." msgstr "" -#: part/templates/part/category.html:24 part/templates/part/category.html:28 +#: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:32 +#: part/templates/part/category.html:36 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:38 +#: part/templates/part/category.html:42 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:43 +#: part/templates/part/category.html:47 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:44 +#: part/templates/part/category.html:48 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:52 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:53 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:57 +#: part/templates/part/category.html:61 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:58 +#: part/templates/part/category.html:62 msgid "New Category" msgstr "" -#: part/templates/part/category.html:76 part/templates/part/category.html:89 +#: part/templates/part/category.html:80 part/templates/part/category.html:93 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:90 +#: part/templates/part/category.html:94 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:110 part/templates/part/category.html:201 +#: part/templates/part/category.html:114 part/templates/part/category.html:205 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:115 +#: part/templates/part/category.html:119 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:152 +#: part/templates/part/category.html:156 msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:153 part/templates/part/category.html:177 +#: part/templates/part/category.html:157 part/templates/part/category.html:181 msgid "Export" msgstr "" -#: part/templates/part/category.html:156 +#: part/templates/part/category.html:160 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:157 templates/js/translated/bom.js:40 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 msgid "New Part" msgstr "" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set category" msgstr "" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:175 +#: part/templates/part/category.html:179 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:177 +#: part/templates/part/category.html:181 msgid "Export Data" msgstr "" -#: part/templates/part/category.html:191 +#: part/templates/part/category.html:195 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:268 +#: part/templates/part/category.html:288 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:295 +#: part/templates/part/category.html:315 msgid "Create Part" msgstr "" @@ -4566,24 +4524,24 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:17 +#: part/templates/part/detail.html:21 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:29 +#: part/templates/part/detail.html:33 #, python-format msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:39 +#: part/templates/part/detail.html:43 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:44 +#: part/templates/part/detail.html:48 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:101 +#: part/templates/part/detail.html:105 msgid "Sales Order Allocations" msgstr "" @@ -4619,7 +4577,7 @@ msgstr "" msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:242 +#: part/templates/part/detail.html:242 templates/js/translated/bom.js:70 msgid "Export BOM" msgstr "" @@ -4683,38 +4641,38 @@ msgstr "" msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:651 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:659 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:760 +#: part/templates/part/detail.html:754 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:817 +#: part/templates/part/detail.html:811 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:930 +#: part/templates/part/detail.html:924 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:942 +#: part/templates/part/detail.html:936 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:954 +#: part/templates/part/detail.html:948 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1043 +#: part/templates/part/detail.html:1037 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4745,20 +4703,20 @@ msgid "Subscribe to notifications for this part" msgstr "" #: part/templates/part/part_base.html:43 -#: stock/templates/stock/item_base.html:28 -#: stock/templates/stock/location.html:29 +#: stock/templates/stock/item_base.html:34 +#: stock/templates/stock/location.html:33 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:45 -#: stock/templates/stock/item_base.html:32 -#: stock/templates/stock/location.html:31 templates/qr_button.html:1 +#: stock/templates/stock/item_base.html:38 +#: stock/templates/stock/location.html:35 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:48 -#: stock/templates/stock/location.html:32 +#: stock/templates/stock/item_base.html:54 +#: stock/templates/stock/location.html:36 msgid "Print Label" msgstr "" @@ -4767,8 +4725,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:103 -#: stock/templates/stock/location.html:40 +#: stock/templates/stock/item_base.html:109 +#: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "" @@ -4848,7 +4806,7 @@ msgstr "" msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1235 +#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1237 msgid "On Order" msgstr "" @@ -4864,12 +4822,12 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:566 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1066 -#: templates/js/translated/part.js:1239 +#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1068 +#: templates/js/translated/part.js:1241 msgid "Building" msgstr "" @@ -4882,7 +4840,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:159 +#: stock/templates/stock/item_base.html:165 msgid "Search for serial number" msgstr "" @@ -4921,7 +4879,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:520 +#: templates/js/translated/bom.js:632 msgid "No supplier pricing available" msgstr "" @@ -5036,7 +4994,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626 msgid "Supplier Cost" msgstr "" @@ -5058,7 +5016,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1788 +#: part/templates/part/prices.html:215 part/views.py:1784 msgid "Add Internal Price Break" msgstr "" @@ -5078,9 +5036,9 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476 -#: templates/js/translated/part.js:436 templates/js/translated/part.js:1056 -#: templates/js/translated/part.js:1243 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588 +#: templates/js/translated/part.js:436 templates/js/translated/part.js:1058 +#: templates/js/translated/part.js:1245 msgid "No Stock" msgstr "" @@ -5154,67 +5112,67 @@ msgstr "" msgid "Match Parts" msgstr "" -#: part/views.py:1196 +#: part/views.py:1195 msgid "Export Bill of Materials" msgstr "" -#: part/views.py:1248 +#: part/views.py:1244 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1255 +#: part/views.py:1251 msgid "Part was deleted" msgstr "" -#: part/views.py:1264 +#: part/views.py:1260 msgid "Part Pricing" msgstr "" -#: part/views.py:1413 +#: part/views.py:1409 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1423 +#: part/views.py:1419 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1430 +#: part/views.py:1426 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1489 templates/js/translated/part.js:313 +#: part/views.py:1485 templates/js/translated/part.js:313 msgid "Edit Part Category" msgstr "" -#: part/views.py:1527 +#: part/views.py:1523 msgid "Delete Part Category" msgstr "" -#: part/views.py:1533 +#: part/views.py:1529 msgid "Part category was deleted" msgstr "" -#: part/views.py:1542 +#: part/views.py:1538 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1643 +#: part/views.py:1639 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1699 +#: part/views.py:1695 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1721 +#: part/views.py:1717 msgid "Added new price break" msgstr "" -#: part/views.py:1797 +#: part/views.py:1793 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1805 +#: part/views.py:1801 msgid "Delete Internal Price Break" msgstr "" @@ -5388,12 +5346,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:514 stock/templates/stock/item_base.html:149 +#: stock/models.py:517 stock/templates/stock/item_base.html:155 #: templates/js/translated/build.js:238 templates/js/translated/build.js:642 #: templates/js/translated/build.js:1018 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415 msgid "Serial Number" msgstr "" @@ -5402,19 +5360,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:1833 +#: stock/models.py:1948 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:1839 +#: stock/models.py:1954 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:49 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367 msgid "Date" msgstr "" @@ -5432,17 +5390,18 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434 +#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748 +#: templates/js/translated/stock.js:2627 msgid "Serial" msgstr "" -#: stock/api.py:446 +#: stock/api.py:478 msgid "Quantity is required" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571 -#: stock/templates/stock/item_base.html:186 -#: templates/js/translated/stock.js:1522 +#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574 +#: stock/templates/stock/item_base.html:192 +#: templates/js/translated/stock.js:1701 msgid "Expiry Date" msgstr "" @@ -5490,12 +5449,12 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:60 stock/models.py:608 -#: stock/templates/stock/item_base.html:417 +#: stock/models.py:60 stock/models.py:611 +#: stock/templates/stock/item_base.html:415 msgid "Owner" msgstr "" -#: stock/models.py:61 stock/models.py:609 +#: stock/models.py:61 stock/models.py:612 msgid "Select Owner" msgstr "" @@ -5528,150 +5487,190 @@ msgstr "" msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:460 +#: stock/models.py:461 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:470 msgid "Base part" msgstr "" -#: stock/models.py:477 +#: stock/models.py:478 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:482 stock/templates/stock/location.html:12 +#: stock/models.py:484 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:485 +#: stock/models.py:487 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:492 +#: stock/models.py:494 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:497 stock/templates/stock/item_base.html:299 +#: stock/models.py:500 stock/templates/stock/item_base.html:297 msgid "Installed In" msgstr "" -#: stock/models.py:500 +#: stock/models.py:503 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:516 +#: stock/models.py:519 msgid "Serial number for this item" msgstr "" -#: stock/models.py:530 +#: stock/models.py:533 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:534 +#: stock/models.py:537 msgid "Stock Quantity" msgstr "" -#: stock/models.py:543 +#: stock/models.py:546 msgid "Source Build" msgstr "" -#: stock/models.py:545 +#: stock/models.py:548 msgid "Build for this stock item" msgstr "" -#: stock/models.py:556 +#: stock/models.py:559 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:559 +#: stock/models.py:562 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:565 +#: stock/models.py:568 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:572 +#: stock/models.py:575 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete on deplete" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:595 stock/templates/stock/item.html:111 +#: stock/models.py:598 stock/templates/stock/item.html:111 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:604 +#: stock/models.py:607 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1072 +#: stock/models.py:1068 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1078 +#: stock/models.py:1074 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1084 +#: stock/models.py:1080 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1087 +#: stock/models.py:1083 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1090 +#: stock/models.py:1086 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1097 +#: stock/models.py:1093 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1255 +#: stock/models.py:1164 +msgid "Stock item has been assigned to a sales order" +msgstr "" + +#: stock/models.py:1167 +msgid "Stock item is installed in another item" +msgstr "" + +#: stock/models.py:1170 +msgid "Stock item contains other items" +msgstr "" + +#: stock/models.py:1173 +msgid "Stock item has been assigned to a customer" +msgstr "" + +#: stock/models.py:1176 +msgid "Stock item is currently in production" +msgstr "" + +#: stock/models.py:1179 +msgid "Serialized stock cannot be merged" +msgstr "" + +#: stock/models.py:1186 stock/serializers.py:773 +msgid "Duplicate stock items" +msgstr "" + +#: stock/models.py:1190 +msgid "Stock items must refer to the same part" +msgstr "" + +#: stock/models.py:1194 +msgid "Stock items must refer to the same supplier part" +msgstr "" + +#: stock/models.py:1198 +msgid "Stock status codes must match" +msgstr "" + +#: stock/models.py:1369 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1753 +#: stock/models.py:1868 msgid "Entry notes" msgstr "" -#: stock/models.py:1810 +#: stock/models.py:1925 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1931 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1834 +#: stock/models.py:1949 msgid "Test name" msgstr "" -#: stock/models.py:1840 templates/js/translated/table_filters.js:271 +#: stock/models.py:1955 templates/js/translated/table_filters.js:271 msgid "Test result" msgstr "" -#: stock/models.py:1846 +#: stock/models.py:1961 msgid "Test output value" msgstr "" -#: stock/models.py:1853 +#: stock/models.py:1968 msgid "Test result attachment" msgstr "" -#: stock/models.py:1859 +#: stock/models.py:1974 msgid "Test notes" msgstr "" @@ -5696,7 +5695,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:814 +#: stock/serializers.py:326 stock/serializers.py:730 stock/serializers.py:971 msgid "Destination stock location" msgstr "" @@ -5708,39 +5707,63 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:573 +#: stock/serializers.py:587 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:577 +#: stock/serializers.py:591 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:581 +#: stock/serializers.py:595 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:611 +#: stock/serializers.py:625 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:617 +#: stock/serializers.py:631 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:639 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:635 stock/serializers.py:722 +#: stock/serializers.py:649 stock/serializers.py:879 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:684 +#: stock/serializers.py:737 +msgid "Stock merging notes" +msgstr "" + +#: stock/serializers.py:742 +msgid "Allow mismatched suppliers" +msgstr "" + +#: stock/serializers.py:743 +msgid "Allow stock items with different supplier parts to be merged" +msgstr "" + +#: stock/serializers.py:748 +msgid "Allow mismatched status" +msgstr "" + +#: stock/serializers.py:749 +msgid "Allow stock items with different status codes to be merged" +msgstr "" + +#: stock/serializers.py:759 +msgid "At least two stock items must be provided" +msgstr "" + +#: stock/serializers.py:841 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:712 +#: stock/serializers.py:869 msgid "Stock transaction notes" msgstr "" @@ -5765,7 +5788,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50 +#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:56 msgid "Test Report" msgstr "" @@ -5797,197 +5820,189 @@ msgstr "" msgid "Delete Test Result" msgstr "" -#: stock/templates/stock/item_base.html:35 +#: stock/templates/stock/item_base.html:41 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:37 +#: stock/templates/stock/item_base.html:43 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24 +#: stock/templates/stock/item_base.html:45 templates/stock_table.html:24 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:46 +#: stock/templates/stock/item_base.html:52 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:71 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:47 templates/stock_table.html:50 +#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/location.html:51 templates/stock_table.html:50 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:78 templates/stock_table.html:48 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49 +#: stock/templates/stock/item_base.html:81 templates/stock_table.html:49 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:84 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:53 +#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/location.html:57 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53 +#: stock/templates/stock/item_base.html:91 templates/stock_table.html:54 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:94 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:108 +#: stock/templates/stock/item_base.html:114 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/item_base.html:117 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:119 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:116 +#: stock/templates/stock/item_base.html:122 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/stock.js:1535 +#: stock/templates/stock/item_base.html:205 +#: templates/js/translated/stock.js:1714 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:208 +#: stock/templates/stock/item_base.html:214 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:226 +#: stock/templates/stock/item_base.html:232 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:239 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:234 +#: stock/templates/stock/item_base.html:240 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:247 +#: stock/templates/stock/item_base.html:253 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:261 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:263 +#: stock/templates/stock/item_base.html:269 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:269 +#: stock/templates/stock/item_base.html:275 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:273 -msgid "This stock item cannot be deleted as it has child items" -msgstr "" - -#: stock/templates/stock/item_base.html:277 -msgid "This stock item will be automatically deleted when all stock is depleted." -msgstr "" - -#: stock/templates/stock/item_base.html:318 +#: stock/templates/stock/item_base.html:316 #: templates/js/translated/build.js:1040 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:325 +#: stock/templates/stock/item_base.html:323 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:367 +#: stock/templates/stock/item_base.html:365 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:385 +#: stock/templates/stock/item_base.html:383 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:410 +#: stock/templates/stock/item_base.html:408 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:500 +#: stock/templates/stock/item_base.html:498 msgid "Edit Stock Status" msgstr "" @@ -6041,59 +6056,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:37 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:65 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:67 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:65 +#: stock/templates/stock/location.html:69 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:79 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:76 +#: stock/templates/stock/location.html:80 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:95 -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:99 +#: stock/templates/stock/location.html:105 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:102 +#: stock/templates/stock/location.html:106 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:119 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:175 +#: stock/templates/stock/location.html:132 +#: stock/templates/stock/location.html:179 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:142 templates/InvenTree/search.html:170 +#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "" -#: stock/templates/stock/location.html:182 templates/stock_table.html:30 +#: stock/templates/stock/location.html:186 templates/stock_table.html:30 msgid "Printing Actions" msgstr "" -#: stock/templates/stock/location.html:186 templates/stock_table.html:34 +#: stock/templates/stock/location.html:190 templates/stock_table.html:34 msgid "Print labels" msgstr "" @@ -6178,7 +6193,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:887 +#: stock/views.py:727 templates/js/translated/stock.js:1066 msgid "Confirm stock adjustment" msgstr "" @@ -6186,7 +6201,7 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:323 +#: stock/views.py:760 templates/js/translated/stock.js:324 msgid "Edit Stock Item" msgstr "" @@ -6198,7 +6213,7 @@ msgstr "" msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:303 +#: stock/views.py:1153 templates/js/translated/stock.js:304 msgid "Duplicate Stock Item" msgstr "" @@ -6314,10 +6329,6 @@ msgstr "" msgid "Search Results" msgstr "" -#: templates/InvenTree/search.html:22 -msgid "Enter a search query" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6363,7 +6374,7 @@ msgstr "" msgid "Login Settings" msgstr "" -#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5 +#: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5 msgid "Signup" msgstr "" @@ -6648,7 +6659,7 @@ msgstr "" msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:55 +#: templates/InvenTree/settings/user.html:54 msgid "The following email addresses are associated with your account:" msgstr "" @@ -6673,145 +6684,193 @@ msgid "Re-send Verification" msgstr "" #: templates/InvenTree/settings/user.html:87 -#: templates/InvenTree/settings/user.html:154 +#: templates/InvenTree/settings/user.html:149 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:94 +#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:201 msgid "Warning:" msgstr "" -#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:96 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:102 +#: templates/InvenTree/settings/user.html:104 msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:112 -msgid "Enter e-mail address" -msgstr "" - -#: templates/InvenTree/settings/user.html:114 +#: templates/InvenTree/settings/user.html:109 msgid "Add Email" msgstr "" -#: templates/InvenTree/settings/user.html:124 +#: templates/InvenTree/settings/user.html:117 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:129 +#: templates/InvenTree/settings/user.html:122 msgid "You can sign in to your account using any of the following third party accounts:" msgstr "" -#: templates/InvenTree/settings/user.html:163 -msgid "There are no social network accounts connected to your InvenTree account" +#: templates/InvenTree/settings/user.html:157 +msgid "You currently have no social network accounts connected to this account." msgstr "" -#: templates/InvenTree/settings/user.html:168 +#: templates/InvenTree/settings/user.html:162 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:179 -msgid "Active Sessions" +#: templates/InvenTree/settings/user.html:172 +msgid "Multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:185 -msgid "Log out active sessions (except this one)" +#: templates/InvenTree/settings/user.html:177 +msgid "You have these factors available:" msgstr "" -#: templates/InvenTree/settings/user.html:186 -msgid "Log Out Active Sessions" +#: templates/InvenTree/settings/user.html:187 +msgid "TOTP" 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" +#: templates/InvenTree/settings/user.html:193 +msgid "Static" msgstr "" #: templates/InvenTree/settings/user.html:202 -msgid "Last Activity" +msgid "You currently do not have any factors set up." msgstr "" -#: templates/InvenTree/settings/user.html:211 -#, python-format -msgid "%(time)s ago (this session)" +#: templates/InvenTree/settings/user.html:209 +msgid "Change factors" msgstr "" -#: templates/InvenTree/settings/user.html:213 -#, python-format -msgid "%(time)s ago" +#: templates/InvenTree/settings/user.html:210 +msgid "Setup multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:224 -msgid "Do you really want to remove the selected email address?" +#: templates/InvenTree/settings/user.html:212 +msgid "Remove multifactor" msgstr "" +#: templates/InvenTree/settings/user.html:219 #: templates/InvenTree/settings/user_display.html:25 msgid "Theme Settings" msgstr "" +#: templates/InvenTree/settings/user.html:227 #: templates/InvenTree/settings/user_display.html:35 msgid "Select theme" msgstr "" +#: templates/InvenTree/settings/user.html:237 #: templates/InvenTree/settings/user_display.html:46 msgid "Set Theme" msgstr "" +#: templates/InvenTree/settings/user.html:246 #: templates/InvenTree/settings/user_display.html:54 msgid "Language Settings" msgstr "" +#: templates/InvenTree/settings/user.html:254 #: templates/InvenTree/settings/user_display.html:63 msgid "Select language" msgstr "" +#: templates/InvenTree/settings/user.html:270 #: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" +#: templates/InvenTree/settings/user.html:272 #: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" +#: templates/InvenTree/settings/user.html:279 #: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" +#: templates/InvenTree/settings/user.html:281 #: templates/InvenTree/settings/user_display.html:91 msgid "Some languages are not complete" msgstr "" +#: templates/InvenTree/settings/user.html:283 #: 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.html:285 #: templates/InvenTree/settings/user_display.html:95 msgid "Show them too" msgstr "" +#: templates/InvenTree/settings/user.html:292 #: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" +#: templates/InvenTree/settings/user.html:293 +#, python-format +msgid "Native language translation of the\n" +" InvenTree web application is community contributed via crowdin. Contributions are\n" +" welcomed and encouraged." +msgstr "" + +#: templates/InvenTree/settings/user.html:302 +msgid "Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:308 +msgid "Log out active sessions (except this one)" +msgstr "" + +#: templates/InvenTree/settings/user.html:309 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:318 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:319 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:323 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:324 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:325 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:334 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:336 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:348 +msgid "Do you really want to remove the selected email address?" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +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." @@ -6830,7 +6889,7 @@ msgid "InvenTree Version Information" msgstr "" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53 +#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53 #: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662 #: templates/js/translated/modals.js:965 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 @@ -7006,6 +7065,71 @@ msgstr "" msgid "View in administration panel" msgstr "" +#: templates/allauth_2fa/authenticate.html:5 +msgid "Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:12 +msgid "Authenticate" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:6 +msgid "Two-Factor Authentication Backup Tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:17 +msgid "Backup tokens have been generated, but are not revealed here for security reasons. Press the button below to generate new ones." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:20 +msgid "No tokens. Press the button below to generate some." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:27 +msgid "Generate backup tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:31 +#: templates/allauth_2fa/setup.html:40 +msgid "back to settings" +msgstr "" + +#: templates/allauth_2fa/remove.html:6 +msgid "Disable Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/remove.html:9 +msgid "Are you sure?" +msgstr "" + +#: templates/allauth_2fa/remove.html:14 +msgid "Disable Two-Factor" +msgstr "" + +#: templates/allauth_2fa/setup.html:6 +msgid "Setup Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/setup.html:10 +msgid "Step 1" +msgstr "" + +#: templates/allauth_2fa/setup.html:14 +msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." +msgstr "" + +#: templates/allauth_2fa/setup.html:23 +msgid "Step 2" +msgstr "" + +#: templates/allauth_2fa/setup.html:27 +msgid "Input a token generated by the app:" +msgstr "" + +#: templates/allauth_2fa/setup.html:35 +msgid "Verify" +msgstr "" + #: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 msgid "Add Link" msgstr "" @@ -7044,13 +7168,13 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:1103 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134 +#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1134 #: templates/js/translated/build.js:1755 #: templates/js/translated/table_filters.js:178 msgid "Available" @@ -7239,7 +7363,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018 msgid "Remove stock item" msgstr "" @@ -7281,91 +7405,153 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:184 +#: templates/js/translated/bom.js:36 +msgid "Download BOM Template" +msgstr "" + +#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510 +msgid "Format" +msgstr "" + +#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511 +msgid "Select file format" +msgstr "" + +#: templates/js/translated/bom.js:81 +msgid "Cascading" +msgstr "" + +#: templates/js/translated/bom.js:82 +msgid "Download cascading / multi-level BOM" +msgstr "" + +#: templates/js/translated/bom.js:87 +msgid "Levels" +msgstr "" + +#: templates/js/translated/bom.js:88 +msgid "Select maximum number of BOM levels to export (0 = all levels)" +msgstr "" + +#: templates/js/translated/bom.js:94 +msgid "Include Parameter Data" +msgstr "" + +#: templates/js/translated/bom.js:95 +msgid "Include part parameter data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:100 +msgid "Include Stock Data" +msgstr "" + +#: templates/js/translated/bom.js:101 +msgid "Include part stock data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:106 +msgid "Include Manufacturer Data" +msgstr "" + +#: templates/js/translated/bom.js:107 +msgid "Include part manufacturer data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:112 +msgid "Include Supplier Data" +msgstr "" + +#: templates/js/translated/bom.js:113 +msgid "Include part supplier data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:296 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:228 +#: templates/js/translated/bom.js:340 msgid "Select and add a new variant item using the input below" msgstr "" -#: templates/js/translated/bom.js:239 +#: templates/js/translated/bom.js:351 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:245 +#: templates/js/translated/bom.js:357 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:284 +#: templates/js/translated/bom.js:396 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:285 +#: templates/js/translated/bom.js:397 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:404 +#: templates/js/translated/bom.js:516 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116 +#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1116 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:413 +#: templates/js/translated/bom.js:525 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:485 +#: templates/js/translated/bom.js:597 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:500 +#: templates/js/translated/bom.js:612 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:507 +#: templates/js/translated/bom.js:619 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645 +#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:616 +#: templates/js/translated/bom.js:728 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:618 +#: templates/js/translated/bom.js:730 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:620 +#: templates/js/translated/bom.js:732 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796 +#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779 +#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860 +#: templates/js/translated/bom.js:830 templates/js/translated/build.js:860 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:774 +#: templates/js/translated/bom.js:886 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100 +#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1100 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:996 +#: templates/js/translated/bom.js:1108 msgid "Inherited from parent BOM" msgstr "" @@ -7464,7 +7650,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1199 templates/stock_table.html:52 +#: templates/js/translated/build.js:1199 templates/stock_table.html:53 msgid "Order stock" msgstr "" @@ -7509,9 +7695,9 @@ msgstr "" msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147 -#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333 -#: templates/js/translated/stock.js:2128 +#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1149 +#: templates/js/translated/part.js:1560 templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:2321 msgid "Select" msgstr "" @@ -7519,7 +7705,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347 +#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2540 msgid "No user information" msgstr "" @@ -7682,20 +7868,20 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1078 templates/modals.html:19 +#: templates/js/translated/forms.js:1080 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1469 +#: templates/js/translated/forms.js:1471 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1673 +#: templates/js/translated/forms.js:1675 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1893 +#: templates/js/translated/forms.js:1895 msgid "Clear input" msgstr "" @@ -7708,7 +7894,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:863 +#: templates/js/translated/stock.js:1042 msgid "Select Stock Items" msgstr "" @@ -7888,14 +8074,6 @@ msgstr "" msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509 -msgid "Format" -msgstr "" - -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510 -msgid "Select file format" -msgstr "" - #: templates/js/translated/order.js:460 msgid "Select Line Items" msgstr "" @@ -7908,7 +8086,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123 msgid "Stock Status" msgstr "" @@ -7957,7 +8135,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163 -#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986 +#: templates/js/translated/part.js:1777 templates/js/translated/part.js:1988 msgid "Unit Price" msgstr "" @@ -8042,7 +8220,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1249 +#: templates/js/translated/stock.js:1428 msgid "Shipped to customer" msgstr "" @@ -8206,92 +8384,92 @@ msgstr "" msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:946 +#: templates/js/translated/part.js:948 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:970 +#: templates/js/translated/part.js:972 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1037 templates/js/translated/part.js:1297 +#: templates/js/translated/part.js:1039 templates/js/translated/part.js:1299 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1207 +#: templates/js/translated/part.js:1209 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1230 +#: templates/js/translated/part.js:1232 #: templates/js/translated/table_filters.js:412 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493 -#: templates/js/translated/stock.js:2089 +#: templates/js/translated/part.js:1323 templates/js/translated/part.js:1495 +#: templates/js/translated/stock.js:2282 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1337 +#: templates/js/translated/part.js:1339 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108 +#: templates/js/translated/part.js:1514 templates/js/translated/stock.js:2301 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1576 +#: templates/js/translated/part.js:1578 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152 +#: templates/js/translated/part.js:1592 templates/js/translated/stock.js:2345 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1634 +#: templates/js/translated/part.js:1636 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055 +#: templates/js/translated/part.js:1687 templates/js/translated/stock.js:1234 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056 +#: templates/js/translated/part.js:1688 templates/js/translated/stock.js:1235 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1692 +#: templates/js/translated/part.js:1694 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1714 +#: templates/js/translated/part.js:1716 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1728 +#: templates/js/translated/part.js:1730 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1753 +#: templates/js/translated/part.js:1755 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1808 +#: templates/js/translated/part.js:1810 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1809 +#: templates/js/translated/part.js:1811 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1910 +#: templates/js/translated/part.js:1912 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1929 +#: templates/js/translated/part.js:1931 msgid "Single Price Difference" msgstr "" @@ -8365,316 +8543,340 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:72 +#: templates/js/translated/stock.js:73 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173 msgid "Next available serial number" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174 +#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175 msgid "Latest serial number" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:101 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:109 +#: templates/js/translated/stock.js:110 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:145 +#: templates/js/translated/stock.js:146 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:185 +#: templates/js/translated/stock.js:186 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:224 +#: templates/js/translated/stock.js:225 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:231 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:373 +#: templates/js/translated/stock.js:374 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:386 +#: templates/js/translated/stock.js:387 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:411 +#: templates/js/translated/stock.js:412 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416 +#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:432 +#: templates/js/translated/stock.js:433 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:452 +#: templates/js/translated/stock.js:453 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:506 +#: templates/js/translated/stock.js:507 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:517 +#: templates/js/translated/stock.js:518 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:518 +#: templates/js/translated/stock.js:519 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:627 +#: templates/js/translated/stock.js:628 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:628 +#: templates/js/translated/stock.js:629 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:713 +#: templates/js/translated/stock.js:706 +msgid "Warning: Merge operation cannot be reversed" +msgstr "" + +#: templates/js/translated/stock.js:707 +msgid "Some information will be lost when merging stock items" +msgstr "" + +#: templates/js/translated/stock.js:709 +msgid "Stock transaction history will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:710 +msgid "Supplier part information will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:796 +msgid "Confirm stock item merge" +msgstr "" + +#: templates/js/translated/stock.js:797 +msgid "Merge Stock Items" +msgstr "" + +#: templates/js/translated/stock.js:892 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:893 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:899 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:721 +#: templates/js/translated/stock.js:900 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:725 +#: templates/js/translated/stock.js:904 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:726 +#: templates/js/translated/stock.js:905 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:730 +#: templates/js/translated/stock.js:909 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:731 users/models.py:202 +#: templates/js/translated/stock.js:910 users/models.py:205 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:735 templates/stock_table.html:57 +#: templates/js/translated/stock.js:914 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:864 +#: templates/js/translated/stock.js:1043 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1022 +#: templates/js/translated/stock.js:1201 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1024 +#: templates/js/translated/stock.js:1203 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1029 +#: templates/js/translated/stock.js:1208 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1230 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1077 +#: templates/js/translated/stock.js:1256 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1134 +#: templates/js/translated/stock.js:1313 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1420 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1245 +#: templates/js/translated/stock.js:1424 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1432 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1259 +#: templates/js/translated/stock.js:1438 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1417 +#: templates/js/translated/stock.js:1596 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1422 +#: templates/js/translated/stock.js:1601 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1425 +#: templates/js/translated/stock.js:1604 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1429 +#: templates/js/translated/stock.js:1608 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1431 +#: templates/js/translated/stock.js:1610 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1437 +#: templates/js/translated/stock.js:1616 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1618 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1441 +#: templates/js/translated/stock.js:1620 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1625 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1453 +#: templates/js/translated/stock.js:1632 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1455 +#: templates/js/translated/stock.js:1634 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1457 +#: templates/js/translated/stock.js:1636 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1461 +#: templates/js/translated/stock.js:1640 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1511 +#: templates/js/translated/stock.js:1690 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1584 +#: templates/js/translated/stock.js:1763 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1622 +#: templates/js/translated/stock.js:1801 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691 +#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1731 +#: templates/js/translated/stock.js:1910 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1758 +#: templates/js/translated/stock.js:1937 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1760 +#: templates/js/translated/stock.js:1939 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2138 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1959 +#: templates/js/translated/stock.js:2152 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1960 +#: templates/js/translated/stock.js:2153 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2377 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2206 +#: templates/js/translated/stock.js:2399 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2231 +#: templates/js/translated/stock.js:2424 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2250 +#: templates/js/translated/stock.js:2443 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2269 +#: templates/js/translated/stock.js:2462 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2480 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2310 +#: templates/js/translated/stock.js:2503 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2318 +#: templates/js/translated/stock.js:2511 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2552 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2360 +#: templates/js/translated/stock.js:2553 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2411 +#: templates/js/translated/stock.js:2604 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2462 +#: templates/js/translated/stock.js:2655 msgid "Uninstall Stock Item" msgstr "" @@ -9059,18 +9261,26 @@ msgid "Move stock" msgstr "" #: templates/stock_table.html:52 +msgid "Merge selected stock items" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Merge stock" +msgstr "" + +#: templates/stock_table.html:53 msgid "Order selected items" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change status" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change stock status" msgstr "" -#: templates/stock_table.html:57 +#: templates/stock_table.html:58 msgid "Delete selected items" msgstr "" @@ -9106,35 +9316,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:189 +#: users/models.py:192 msgid "Permission set" msgstr "" -#: users/models.py:197 +#: users/models.py:200 msgid "Group" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "View" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "Permission to view items" msgstr "" -#: users/models.py:202 +#: users/models.py:205 msgid "Permission to add items" msgstr "" -#: users/models.py:204 +#: users/models.py:207 msgid "Change" msgstr "" -#: users/models.py:204 +#: users/models.py:207 msgid "Permissions to edit items" msgstr "" -#: users/models.py:206 +#: users/models.py:209 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po index 6ee9158635..db65ee73cc 100644 --- a/InvenTree/locale/id/LC_MESSAGES/django.po +++ b/InvenTree/locale/id/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-12-08 23:43+0000\n" -"PO-Revision-Date: 2021-12-08 23:47\n" +"POT-Creation-Date: 2021-12-21 02:57+0000\n" +"PO-Revision-Date: 2021-12-21 03:01\n" "Last-Translator: \n" "Language-Team: Indonesian\n" "Language: id_ID\n" @@ -34,50 +34,50 @@ msgstr "Aksi tidak ditemukan" msgid "Enter date" msgstr "Masukkan tanggal" -#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93 +#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 build/forms.py:93 #: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: part/forms.py:108 templates/account/email_confirm.html:20 +#: part/forms.py:78 templates/account/email_confirm.html:20 #: templates/js/translated/forms.js:595 msgid "Confirm" msgstr "Konfirmasi" -#: InvenTree/forms.py:136 +#: InvenTree/forms.py:142 msgid "Confirm delete" msgstr "Konfirmasi penghapusan" -#: InvenTree/forms.py:137 +#: InvenTree/forms.py:143 msgid "Confirm item deletion" msgstr "Konfirmasi penghapusan item" -#: InvenTree/forms.py:168 +#: InvenTree/forms.py:174 msgid "Enter password" msgstr "Masukkan sandi" -#: InvenTree/forms.py:169 +#: InvenTree/forms.py:175 msgid "Enter new password" msgstr "Masukkan kata sandi baru" -#: InvenTree/forms.py:176 +#: InvenTree/forms.py:182 msgid "Confirm password" msgstr "Konfirmasikan kata sandi" -#: InvenTree/forms.py:177 +#: InvenTree/forms.py:183 msgid "Confirm new password" msgstr "Konfirmasi sandi baru" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:215 msgid "Select Category" msgstr "Pilih Kategori" -#: InvenTree/forms.py:230 +#: InvenTree/forms.py:236 msgid "Email (again)" msgstr "Email (ulang)" -#: InvenTree/forms.py:234 +#: InvenTree/forms.py:240 msgid "Email address confirmation" msgstr "Konfirmasi alamat email" -#: InvenTree/forms.py:254 +#: InvenTree/forms.py:260 msgid "You must type the same email each time." msgstr "" @@ -123,7 +123,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:132 stock/models.py:1852 +#: InvenTree/models.py:132 stock/models.py:1967 #: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "" @@ -136,12 +136,12 @@ msgstr "" #: company/models.py:564 order/models.py:124 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:1258 +#: templates/js/translated/company.js:826 templates/js/translated/part.js:1260 msgid "Link" msgstr "" #: InvenTree/models.py:140 build/models.py:330 part/models.py:798 -#: stock/models.py:524 +#: stock/models.py:527 msgid "Link to external URL" msgstr "" @@ -153,10 +153,10 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213 -#: common/models.py:1214 part/models.py:2205 part/models.py:2225 +#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1219 +#: common/models.py:1220 part/models.py:2205 part/models.py:2225 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2341 +#: templates/js/translated/stock.js:2534 msgid "User" msgstr "" @@ -202,8 +202,8 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:268 #: templates/js/translated/company.js:638 templates/js/translated/part.js:506 -#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565 -#: templates/js/translated/stock.js:2134 +#: templates/js/translated/part.js:643 templates/js/translated/part.js:1567 +#: templates/js/translated/stock.js:2327 msgid "Name" msgstr "" @@ -212,23 +212,23 @@ msgstr "" #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70 +#: order/models.py:122 part/models.py:764 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:89 +#: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428 +#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540 #: templates/js/translated/build.js:1627 templates/js/translated/company.js:345 #: templates/js/translated/company.js:548 #: templates/js/translated/company.js:837 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 -#: templates/js/translated/part.js:565 templates/js/translated/part.js:933 -#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188 -#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653 -#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146 -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/part.js:565 templates/js/translated/part.js:935 +#: templates/js/translated/part.js:1020 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1586 templates/js/translated/part.js:1655 +#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339 +#: templates/js/translated/stock.js:2384 msgid "Description" msgstr "" @@ -248,83 +248,83 @@ msgstr "" msgid "Filename" msgstr "" -#: InvenTree/settings.py:689 +#: InvenTree/settings.py:698 msgid "German" msgstr "" -#: InvenTree/settings.py:690 +#: InvenTree/settings.py:699 msgid "Greek" msgstr "" -#: InvenTree/settings.py:691 +#: InvenTree/settings.py:700 msgid "English" msgstr "" -#: InvenTree/settings.py:692 +#: InvenTree/settings.py:701 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:693 +#: InvenTree/settings.py:702 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:694 +#: InvenTree/settings.py:703 msgid "French" msgstr "" -#: InvenTree/settings.py:695 +#: InvenTree/settings.py:704 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:696 +#: InvenTree/settings.py:705 msgid "Italian" msgstr "" -#: InvenTree/settings.py:697 +#: InvenTree/settings.py:706 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:698 +#: InvenTree/settings.py:707 msgid "Korean" msgstr "" -#: InvenTree/settings.py:699 +#: InvenTree/settings.py:708 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:700 +#: InvenTree/settings.py:709 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:701 +#: InvenTree/settings.py:710 msgid "Polish" msgstr "" -#: InvenTree/settings.py:702 +#: InvenTree/settings.py:711 msgid "Portugese" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:712 msgid "Russian" msgstr "" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:713 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:714 msgid "Thai" msgstr "" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:715 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:716 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:717 msgid "Chinese" msgstr "" @@ -341,7 +341,7 @@ msgid "InvenTree system health checks failed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 msgid "Pending" msgstr "" @@ -349,14 +349,14 @@ msgstr "" msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:319 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:313 +#: InvenTree/status_codes.py:318 msgid "Cancelled" msgstr "" @@ -370,7 +370,7 @@ msgstr "" msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:143 order/models.py:939 +#: InvenTree/status_codes.py:143 order/models.py:941 #: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255 msgid "Shipped" msgstr "" @@ -395,83 +395,87 @@ msgstr "" msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:269 +#: InvenTree/status_codes.py:272 msgid "Legacy stock tracking entry" msgstr "" -#: InvenTree/status_codes.py:271 +#: InvenTree/status_codes.py:274 msgid "Stock item created" msgstr "" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Edited stock item" msgstr "" -#: InvenTree/status_codes.py:274 +#: InvenTree/status_codes.py:277 msgid "Assigned serial number" msgstr "" -#: InvenTree/status_codes.py:276 +#: InvenTree/status_codes.py:279 msgid "Stock counted" msgstr "" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Stock manually added" msgstr "" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Stock manually removed" msgstr "" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Location changed" msgstr "" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Installed into assembly" msgstr "" -#: InvenTree/status_codes.py:283 +#: InvenTree/status_codes.py:286 msgid "Removed from assembly" msgstr "" -#: InvenTree/status_codes.py:285 +#: InvenTree/status_codes.py:288 msgid "Installed component item" msgstr "" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Removed component item" msgstr "" -#: InvenTree/status_codes.py:288 +#: InvenTree/status_codes.py:291 msgid "Split from parent item" msgstr "" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064 +msgid "Merged stock items" +msgstr "" + +#: InvenTree/status_codes.py:296 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:297 msgid "Returned from customer" msgstr "" -#: InvenTree/status_codes.py:294 +#: InvenTree/status_codes.py:299 msgid "Build order output created" msgstr "" -#: InvenTree/status_codes.py:295 +#: InvenTree/status_codes.py:300 msgid "Build order output completed" msgstr "" -#: InvenTree/status_codes.py:297 +#: InvenTree/status_codes.py:302 msgid "Received against purchase order" msgstr "" -#: InvenTree/status_codes.py:312 +#: InvenTree/status_codes.py:317 msgid "Production" msgstr "" @@ -575,16 +579,16 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1283 -#: build/templates/build/build_base.html:132 -#: build/templates/build/detail.html:35 common/models.py:1253 +#: build/forms.py:36 build/models.py:1286 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1259 #: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:794 order/models.py:1205 order/serializers.py:810 +#: order/models.py:796 order/models.py:1207 order/serializers.py:810 #: order/templates/order/order_wizard/match_parts.html:30 -#: 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 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:193 +#: part/forms.py:209 part/forms.py:225 part/models.py:2576 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:967 part/templates/part/detail.html:1053 +#: part/templates/part/detail.html:961 part/templates/part/detail.html:1047 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -592,10 +596,10 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:174 -#: stock/templates/stock/item_base.html:255 -#: stock/templates/stock/item_base.html:263 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443 +#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:261 +#: stock/templates/stock/item_base.html:269 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555 #: templates/js/translated/build.js:240 templates/js/translated/build.js:440 #: templates/js/translated/build.js:634 templates/js/translated/build.js:644 #: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367 @@ -604,10 +608,10 @@ msgstr "" #: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 #: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 #: templates/js/translated/order.js:2150 templates/js/translated/part.js:843 -#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919 -#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382 -#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326 -#: templates/js/translated/stock.js:2428 +#: templates/js/translated/part.js:1798 templates/js/translated/part.js:1921 +#: templates/js/translated/part.js:1999 templates/js/translated/stock.js:383 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750 +#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621 msgid "Quantity" msgstr "" @@ -616,8 +620,8 @@ msgid "Enter quantity for build output" msgstr "" #: build/forms.py:41 order/serializers.py:814 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:229 -#: templates/js/translated/stock.js:383 +#: stock/serializers.py:314 templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:384 msgid "Serial Numbers" msgstr "" @@ -661,7 +665,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:145 +#: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" msgstr "" @@ -671,11 +675,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:199 order/models.py:210 order/models.py:536 -#: order/models.py:801 part/models.py:2585 +#: order/models.py:803 part/models.py:2585 #: part/templates/part/bom_upload/match_parts.html:30 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124 +#: templates/js/translated/bom.js:547 templates/js/translated/build.js:1124 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "" @@ -695,7 +699,7 @@ msgstr "" #: build/models.py:225 build/templates/build/build_base.html:77 #: build/templates/build/detail.html:30 company/models.py:705 -#: order/models.py:854 order/models.py:928 +#: order/models.py:856 order/models.py:930 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357 #: part/models.py:2151 part/models.py:2167 part/models.py:2186 #: part/models.py:2203 part/models.py:2305 part/models.py:2427 @@ -706,20 +710,21 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 -#: templates/InvenTree/search.html:86 +#: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214 -#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326 +#: templates/js/translated/bom.js:505 templates/js/translated/build.js:625 #: templates/js/translated/build.js:993 templates/js/translated/build.js:1364 #: templates/js/translated/build.js:1632 templates/js/translated/company.js:489 #: templates/js/translated/company.js:746 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 -#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918 -#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166 -#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747 -#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416 +#: templates/js/translated/order.js:2128 templates/js/translated/part.js:920 +#: templates/js/translated/part.js:1001 templates/js/translated/part.js:1168 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719 +#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:2609 msgid "Part" msgstr "" @@ -776,7 +781,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:285 stock/models.py:528 +#: build/models.py:285 stock/models.py:531 msgid "Batch Code" msgstr "" @@ -830,27 +835,27 @@ msgstr "" #: build/models.py:329 build/templates/build/detail.html:102 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:354 stock/models.py:522 -#: stock/templates/stock/item_base.html:374 +#: part/templates/part/part_base.html:354 stock/models.py:525 +#: stock/templates/stock/item_base.html:372 msgid "External Link" 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:144 order/models.py:803 order/models.py:1049 +#: order/models.py:144 order/models.py:805 order/models.py:1051 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:925 -#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50 +#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594 -#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332 -#: stock/serializers.py:624 stock/serializers.py:711 +#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597 +#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332 +#: stock/serializers.py:638 stock/serializers.py:736 stock/serializers.py:868 #: stock/templates/stock/stock_sidebar.html:21 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711 #: templates/js/translated/company.js:842 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795 msgid "Notes" msgstr "" @@ -883,7 +888,7 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1133 order/models.py:1165 +#: build/models.py:1133 order/models.py:1167 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -891,51 +896,52 @@ msgstr "" msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1193 +#: build/models.py:1196 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1253 stock/templates/stock/item_base.html:346 -#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605 +#: build/models.py:1256 stock/templates/stock/item_base.html:344 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1605 #: templates/navbar.html:35 msgid "Build" msgstr "" -#: build/models.py:1254 +#: build/models.py:1257 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690 -#: order/serializers.py:708 stock/serializers.py:562 +#: build/models.py:1273 build/serializers.py:334 order/serializers.py:690 +#: order/serializers.py:708 stock/serializers.py:576 stock/serializers.py:694 #: stock/templates/stock/item_base.html:8 -#: stock/templates/stock/item_base.html:16 -#: stock/templates/stock/item_base.html:368 +#: stock/templates/stock/item_base.html:22 +#: stock/templates/stock/item_base.html:366 #: templates/js/translated/build.js:413 templates/js/translated/build.js:418 #: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277 +#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:2470 msgid "Stock Item" msgstr "" -#: build/models.py:1271 +#: build/models.py:1274 msgid "Source stock item" msgstr "" -#: build/models.py:1284 +#: build/models.py:1287 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1292 +#: build/models.py:1295 msgid "Install into" msgstr "" -#: build/models.py:1293 +#: build/models.py:1296 msgid "Destination stock item" msgstr "" -#: build/serializers.py:137 build/serializers.py:357 +#: build/serializers.py:137 build/serializers.py:363 msgid "Build Output" msgstr "" @@ -956,16 +962,16 @@ msgid "This build output is not fully allocated" msgstr "" #: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813 -#: stock/templates/stock/item_base.html:314 +#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:729 +#: stock/serializers.py:970 stock/templates/stock/item_base.html:312 #: templates/js/translated/barcode.js:384 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425 #: templates/js/translated/build.js:1032 templates/js/translated/order.js:508 #: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 #: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497 -#: templates/js/translated/stock.js:2218 +#: templates/js/translated/part.js:177 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411 msgid "Location" msgstr "" @@ -975,11 +981,11 @@ msgstr "" #: build/serializers.py:197 build/templates/build/build_base.html:137 #: build/templates/build/detail.html:63 order/models.py:552 -#: order/serializers.py:247 stock/templates/stock/item_base.html:180 +#: order/serializers.py:247 stock/templates/stock/item_base.html:186 #: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661 #: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472 -#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651 +#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637 msgid "Status" msgstr "" @@ -1000,33 +1006,33 @@ msgstr "" msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:319 +#: build/serializers.py:325 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:334 stock/serializers.py:569 +#: build/serializers.py:340 stock/serializers.py:583 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:348 order/models.py:277 order/serializers.py:240 -#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305 +#: build/serializers.py:354 order/models.py:277 order/serializers.py:240 +#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:390 order/serializers.py:741 +#: build/serializers.py:396 order/serializers.py:741 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:396 +#: build/serializers.py:402 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:403 +#: build/serializers.py:409 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:431 order/serializers.py:984 +#: build/serializers.py:437 order/serializers.py:984 msgid "Allocation items must be provided" msgstr "" @@ -1067,33 +1073,33 @@ msgstr "" msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:87 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:96 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:98 +#: build/templates/build/build_base.html:103 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:105 +#: build/templates/build/build_base.html:110 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Stock has not been fully allocated to this Build Order" msgstr "" @@ -1131,12 +1137,12 @@ msgid "Completed" msgstr "" #: build/templates/build/build_base.html:171 -#: build/templates/build/detail.html:95 order/models.py:925 -#: order/models.py:1021 order/templates/order/sales_order_base.html:9 +#: build/templates/build/detail.html:95 order/models.py:927 +#: order/models.py:1023 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:308 +#: stock/templates/stock/item_base.html:306 #: templates/js/translated/order.js:1218 msgid "Sales Order" msgstr "" @@ -1211,7 +1217,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "" @@ -1225,8 +1231,8 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:332 -#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451 +#: stock/templates/stock/item_base.html:330 +#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1278,7 +1284,7 @@ msgstr "" #: build/templates/build/detail.html:185 #: company/templates/company/detail.html:38 #: company/templates/company/detail.html:85 order/views.py:463 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order Parts" msgstr "" @@ -1347,7 +1353,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115 +#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115 #: stock/templates/stock/item.html:205 msgid "Edit Notes" msgstr "" @@ -1489,7 +1495,7 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:340 common/models.py:998 common/models.py:1206 +#: common/models.py:340 common/models.py:1004 common/models.py:1212 msgid "Settings key (must be unique - case insensitive" msgstr "" @@ -1651,7 +1657,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956 +#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:1068 #: templates/js/translated/table_filters.js:168 #: templates/js/translated/table_filters.js:416 msgid "Assembly" @@ -1953,256 +1959,264 @@ msgid "Group to which new users are assigned on registration" msgstr "" #: common/models.py:961 -msgid "Enable URL integration" +msgid "Enforce MFA" msgstr "" #: common/models.py:962 -msgid "Enable plugins to add URL routes" +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:967 +msgid "Enable URL integration" msgstr "" #: common/models.py:968 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:974 msgid "Enable navigation integration" msgstr "" -#: common/models.py:969 +#: common/models.py:975 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:975 +#: common/models.py:981 msgid "Enable global setting integration" msgstr "" -#: common/models.py:976 +#: common/models.py:982 msgid "Enable plugins to integrate into inventree global settings" msgstr "" -#: common/models.py:982 +#: common/models.py:988 msgid "Enable app integration" msgstr "" -#: common/models.py:983 +#: common/models.py:989 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1029 +#: common/models.py:1035 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1030 +#: common/models.py:1036 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1035 +#: common/models.py:1041 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1036 +#: common/models.py:1042 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1041 +#: common/models.py:1047 msgid "Show latest parts" msgstr "" -#: common/models.py:1042 +#: common/models.py:1048 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1047 +#: common/models.py:1053 msgid "Recent Part Count" msgstr "" -#: common/models.py:1048 +#: common/models.py:1054 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1054 +#: common/models.py:1060 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1055 +#: common/models.py:1061 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1060 +#: common/models.py:1066 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1061 +#: common/models.py:1067 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1066 +#: common/models.py:1072 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1067 +#: common/models.py:1073 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1072 +#: common/models.py:1078 msgid "Show low stock" msgstr "" -#: common/models.py:1073 +#: common/models.py:1079 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1078 +#: common/models.py:1084 msgid "Show depleted stock" msgstr "" -#: common/models.py:1079 +#: common/models.py:1085 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1084 +#: common/models.py:1090 msgid "Show needed stock" msgstr "" -#: common/models.py:1085 +#: common/models.py:1091 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1090 +#: common/models.py:1096 msgid "Show expired stock" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1096 +#: common/models.py:1102 msgid "Show stale stock" msgstr "" -#: common/models.py:1097 +#: common/models.py:1103 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1102 +#: common/models.py:1108 msgid "Show pending builds" msgstr "" -#: common/models.py:1103 +#: common/models.py:1109 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1108 +#: common/models.py:1114 msgid "Show overdue builds" msgstr "" -#: common/models.py:1109 +#: common/models.py:1115 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1114 +#: common/models.py:1120 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1115 +#: common/models.py:1121 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1120 +#: common/models.py:1126 msgid "Show overdue POs" msgstr "" -#: common/models.py:1121 +#: common/models.py:1127 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1126 +#: common/models.py:1132 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1127 +#: common/models.py:1133 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1132 +#: common/models.py:1138 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1133 +#: common/models.py:1139 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1139 +#: common/models.py:1145 msgid "Inline label display" msgstr "" -#: common/models.py:1140 +#: common/models.py:1146 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1146 +#: common/models.py:1152 msgid "Inline report display" msgstr "" -#: common/models.py:1147 +#: common/models.py:1153 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "Search Preview Results" msgstr "" -#: common/models.py:1154 +#: common/models.py:1160 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1160 +#: common/models.py:1166 msgid "Search Show Stock" msgstr "" -#: common/models.py:1161 +#: common/models.py:1167 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1167 +#: common/models.py:1173 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1168 +#: common/models.py:1174 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1174 +#: common/models.py:1180 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1175 +#: common/models.py:1181 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1181 +#: common/models.py:1187 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1182 +#: common/models.py:1188 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1188 +#: common/models.py:1194 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1189 +#: common/models.py:1195 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1254 company/forms.py:43 +#: common/models.py:1260 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1261 company/serializers.py:264 +#: common/models.py:1267 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801 +#: templates/js/translated/part.js:852 templates/js/translated/part.js:1803 msgid "Price" msgstr "" -#: common/models.py:1262 +#: common/models.py:1268 msgid "Unit price at specified quantity" msgstr "" @@ -2290,7 +2304,7 @@ msgid "Contact phone number" msgstr "" #: company/models.py:125 company/templates/company/company_base.html:129 -#: templates/InvenTree/settings/user.html:47 +#: templates/InvenTree/settings/user.html:48 msgid "Email" msgstr "" @@ -2347,8 +2361,8 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:320 company/models.py:535 stock/models.py:468 -#: stock/templates/stock/item_base.html:135 +#: company/models.py:320 company/models.py:535 stock/models.py:469 +#: stock/templates/stock/item_base.html:141 msgid "Base Part" msgstr "" @@ -2359,7 +2373,7 @@ msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:381 +#: stock/templates/stock/item_base.html:379 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:514 #: templates/js/translated/company.js:797 templates/js/translated/part.js:232 @@ -2393,7 +2407,7 @@ msgstr "" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:391 +#: stock/templates/stock/item_base.html:389 msgid "Manufacturer Part" msgstr "" @@ -2403,8 +2417,8 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:1845 templates/js/translated/company.js:644 -#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117 +#: stock/models.py:1960 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1296 msgid "Value" msgstr "" @@ -2431,7 +2445,7 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:224 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219 -#: part/bom.py:247 stock/templates/stock/item_base.html:398 +#: part/bom.py:247 stock/templates/stock/item_base.html:396 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:771 templates/js/translated/order.js:823 #: templates/js/translated/part.js:213 templates/js/translated/part.js:800 @@ -2479,8 +2493,8 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:491 stock/templates/stock/item_base.html:339 -#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612 +#: stock/models.py:493 stock/templates/stock/item_base.html:337 +#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1791 msgid "Packaging" msgstr "" @@ -2506,7 +2520,7 @@ msgstr "" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322 +#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322 msgid "Company" msgstr "" @@ -2548,11 +2562,11 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:83 order/models.py:547 -#: order/templates/order/sales_order_base.html:115 stock/models.py:509 -#: stock/models.py:510 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:291 +#: order/templates/order/sales_order_base.html:115 stock/models.py:512 +#: stock/models.py:513 stock/serializers.py:624 +#: stock/templates/stock/item_base.html:289 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2259 +#: templates/js/translated/stock.js:2452 msgid "Customer" msgstr "" @@ -2571,7 +2585,7 @@ msgstr "" #: company/templates/company/detail.html:15 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:124 +#: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" @@ -2590,14 +2604,14 @@ msgstr "" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:167 part/templates/part/detail.html:342 +#: part/templates/part/category.html:171 part/templates/part/detail.html:342 #: part/templates/part/detail.html:370 msgid "Options" msgstr "" #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order parts" msgstr "" @@ -2611,7 +2625,7 @@ msgstr "" msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109 +#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" @@ -2633,8 +2647,8 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203 +#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" @@ -2655,8 +2669,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223 +#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" @@ -2698,7 +2712,7 @@ msgid "Supplier List" msgstr "" #: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184 +#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 #: templates/navbar.html:46 msgid "Manufacturers" msgstr "" @@ -2706,7 +2720,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:67 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76 msgid "Order part" msgstr "" @@ -2728,7 +2742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 #: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:194 templates/navbar.html:45 +#: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "" @@ -2742,7 +2756,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:254 #: part/templates/part/detail.html:344 part/templates/part/detail.html:372 #: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31 -#: users/models.py:206 +#: users/models.py:209 msgid "Delete" msgstr "" @@ -2765,7 +2779,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:867 +#: part/templates/part/detail.html:861 msgid "Add Parameter" msgstr "" @@ -2794,9 +2808,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:476 -#: stock/templates/stock/item_base.html:403 -#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569 +#: company/templates/company/supplier_part.html:24 stock/models.py:477 +#: stock/templates/stock/item_base.html:401 +#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1748 msgid "Supplier Part" msgstr "" @@ -2816,13 +2830,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:20 stock/templates/stock/location.html:162 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:166 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163 -#: templates/js/translated/stock.js:359 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 +#: templates/js/translated/stock.js:360 msgid "New Stock Item" msgstr "" @@ -2832,7 +2846,7 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:68 +#: part/templates/part/detail.html:72 msgid "Order Part" msgstr "" @@ -2843,7 +2857,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:1717 +#: part/templates/part/prices.html:271 part/views.py:1713 msgid "Add Price Break" msgstr "" @@ -2851,11 +2865,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1779 +#: company/templates/company/supplier_part.html:224 part/views.py:1775 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1765 +#: company/templates/company/supplier_part.html:238 part/views.py:1761 msgid "Edit Price Break" msgstr "" @@ -2869,14 +2883,14 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:156 +#: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434 -#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059 -#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:1401 templates/navbar.html:28 +#: templates/js/translated/bom.js:328 templates/js/translated/part.js:434 +#: templates/js/translated/part.js:569 templates/js/translated/part.js:1061 +#: templates/js/translated/part.js:1222 templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:1580 templates/navbar.html:28 msgid "Stock" msgstr "" @@ -2895,11 +2909,11 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:133 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:159 +#: stock/templates/stock/location.html:137 +#: stock/templates/stock/location.html:151 +#: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "" @@ -2912,7 +2926,7 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:61 templates/InvenTree/search.html:214 +#: company/views.py:61 templates/InvenTree/search.html:208 #: templates/navbar.html:57 msgid "Customers" msgstr "" @@ -3121,7 +3135,7 @@ msgstr "" msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:562 order/models.py:1026 +#: order/models.py:562 order/models.py:1028 #: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429 msgid "Shipment Date" msgstr "" @@ -3130,7 +3144,7 @@ msgstr "" msgid "shipped by" msgstr "" -#: order/models.py:634 +#: order/models.py:635 msgid "Order cannot be completed as no parts have been assigned" msgstr "" @@ -3138,172 +3152,172 @@ msgstr "" msgid "Only a pending order can be marked as complete" msgstr "" -#: order/models.py:643 +#: order/models.py:642 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:647 +#: order/models.py:645 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:795 +#: order/models.py:797 msgid "Item quantity" msgstr "" -#: order/models.py:801 +#: order/models.py:803 msgid "Line item reference" msgstr "" -#: order/models.py:803 +#: order/models.py:805 msgid "Line item notes" msgstr "" -#: order/models.py:833 order/models.py:924 order/models.py:1020 +#: order/models.py:835 order/models.py:926 order/models.py:1022 #: templates/js/translated/order.js:1820 msgid "Order" msgstr "" -#: order/models.py:834 order/templates/order/order_base.html:9 +#: order/models.py:836 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:353 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/order.js:801 templates/js/translated/part.js:775 -#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240 +#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433 msgid "Purchase Order" msgstr "" -#: order/models.py:855 +#: order/models.py:857 msgid "Supplier part" msgstr "" -#: order/models.py:862 order/templates/order/order_base.html:163 +#: order/models.py:864 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:847 templates/js/translated/part.js:873 #: templates/js/translated/table_filters.js:317 msgid "Received" msgstr "" -#: order/models.py:863 +#: order/models.py:865 msgid "Number of items received" msgstr "" -#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:360 -#: templates/js/translated/stock.js:1600 +#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:358 +#: templates/js/translated/stock.js:1779 msgid "Purchase Price" msgstr "" -#: order/models.py:871 +#: order/models.py:873 msgid "Unit purchase price" msgstr "" -#: order/models.py:879 +#: order/models.py:881 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:934 part/templates/part/part_pricing.html:112 +#: order/models.py:936 part/templates/part/part_pricing.html:112 #: part/templates/part/prices.html:116 part/templates/part/prices.html:284 msgid "Sale Price" msgstr "" -#: order/models.py:935 +#: order/models.py:937 msgid "Unit sale price" msgstr "" -#: order/models.py:940 +#: order/models.py:942 msgid "Shipped quantity" msgstr "" -#: order/models.py:1027 +#: order/models.py:1029 msgid "Date of shipment" msgstr "" -#: order/models.py:1034 +#: order/models.py:1036 msgid "Checked By" msgstr "" -#: order/models.py:1035 +#: order/models.py:1037 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1043 +#: order/models.py:1045 msgid "Shipment number" msgstr "" -#: order/models.py:1050 +#: order/models.py:1052 msgid "Shipment notes" msgstr "" -#: order/models.py:1057 +#: order/models.py:1059 msgid "Tracking Number" msgstr "" -#: order/models.py:1058 +#: order/models.py:1060 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1068 +#: order/models.py:1070 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1071 +#: order/models.py:1073 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1147 order/models.py:1149 +#: order/models.py:1149 order/models.py:1151 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1153 +#: order/models.py:1155 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1155 +#: order/models.py:1157 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1158 +#: order/models.py:1160 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1162 +#: order/models.py:1164 msgid "StockItem is over-allocated" msgstr "" -#: order/models.py:1168 order/serializers.py:734 +#: order/models.py:1170 order/serializers.py:734 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1171 +#: order/models.py:1173 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1172 +#: order/models.py:1174 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1180 +#: order/models.py:1182 msgid "Line" msgstr "" -#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953 +#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953 #: templates/js/translated/model_renderers.js:251 msgid "Shipment" msgstr "" -#: order/models.py:1189 +#: order/models.py:1191 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1201 +#: order/models.py:1203 msgid "Item" msgstr "" -#: order/models.py:1202 +#: order/models.py:1204 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1205 +#: order/models.py:1207 msgid "Enter stock allocation quantity" msgstr "" @@ -3530,7 +3544,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/build.js:245 templates/js/translated/build.js:1256 #: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:592 +#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761 msgid "Remove row" msgstr "" @@ -3722,7 +3736,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188 +#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1188 msgid "Actions" msgstr "" @@ -3797,24 +3811,24 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:760 +#: part/api.py:777 msgid "Must be greater than zero" msgstr "" -#: part/api.py:764 +#: part/api.py:781 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:779 +#: part/api.py:796 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833 +#: part/api.py:827 part/api.py:831 part/api.py:846 part/api.py:850 msgid "This field is required" msgstr "" #: part/bom.py:125 part/models.py:81 part/models.py:816 -#: part/templates/part/category.html:104 part/templates/part/part_base.html:338 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "" @@ -3822,99 +3836,43 @@ msgstr "" msgid "Available Stock" msgstr "" -#: part/forms.py:63 -msgid "File Format" -msgstr "" - -#: part/forms.py:63 -msgid "Select output file format" -msgstr "" - -#: part/forms.py:65 -msgid "Cascading" -msgstr "" - -#: part/forms.py:65 -msgid "Download cascading / multi-level BOM" -msgstr "" - -#: part/forms.py:67 -msgid "Levels" -msgstr "" - -#: part/forms.py:67 -msgid "Select maximum number of BOM levels to export (0 = all levels)" -msgstr "" - -#: part/forms.py:69 -msgid "Include Parameter Data" -msgstr "" - -#: part/forms.py:69 -msgid "Include part parameters data in exported BOM" -msgstr "" - -#: part/forms.py:71 -msgid "Include Stock Data" -msgstr "" - -#: part/forms.py:71 -msgid "Include part stock data in exported BOM" -msgstr "" - -#: part/forms.py:73 -msgid "Include Manufacturer Data" -msgstr "" - -#: part/forms.py:73 -msgid "Include part manufacturer data in exported BOM" -msgstr "" - -#: part/forms.py:75 -msgid "Include Supplier Data" -msgstr "" - -#: part/forms.py:75 -msgid "Include part supplier data in exported BOM" -msgstr "" - -#: part/forms.py:96 part/models.py:2427 +#: part/forms.py:66 part/models.py:2427 msgid "Parent Part" msgstr "" -#: part/forms.py:97 part/templates/part/bom_duplicate.html:7 +#: part/forms.py:67 part/templates/part/bom_duplicate.html:7 msgid "Select parent part to copy BOM from" msgstr "" -#: part/forms.py:103 +#: part/forms.py:73 msgid "Clear existing BOM items" msgstr "" -#: part/forms.py:109 +#: part/forms.py:79 msgid "Confirm BOM duplication" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "validate" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "Confirm that the BOM is correct" msgstr "" -#: part/forms.py:163 +#: part/forms.py:133 msgid "Select part category" msgstr "" -#: part/forms.py:200 +#: part/forms.py:170 msgid "Add parameter template to same level categories" msgstr "" -#: part/forms.py:204 +#: part/forms.py:174 msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:224 +#: part/forms.py:194 msgid "Input quantity for price calculation" msgstr "" @@ -3930,24 +3888,24 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11 +#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:96 part/templates/part/category.html:124 -#: templates/InvenTree/search.html:101 templates/stats.html:84 +#: part/models.py:96 part/templates/part/category.html:128 +#: templates/InvenTree/search.html:95 templates/stats.html:84 #: users/models.py:40 msgid "Part Categories" msgstr "" #: part/models.py:358 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:13 part/templates/part/category.html:129 -#: part/templates/part/category.html:149 +#: part/templates/part/category.html:17 part/templates/part/category.html:133 +#: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1597 templates/navbar.html:21 +#: templates/js/translated/part.js:1599 templates/navbar.html:21 #: templates/stats.html:80 templates/stats.html:89 users/models.py:41 msgid "Parts" msgstr "" @@ -4001,7 +3959,7 @@ msgstr "" msgid "Part description" msgstr "" -#: part/models.py:770 part/templates/part/category.html:82 +#: part/models.py:770 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "" @@ -4014,7 +3972,7 @@ msgstr "" #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 #: templates/InvenTree/settings/settings.html:172 -#: templates/js/translated/part.js:1202 +#: templates/js/translated/part.js:1204 msgid "Category" msgstr "" @@ -4023,8 +3981,8 @@ msgid "Part category" msgstr "" #: part/models.py:784 part/templates/part/part_base.html:274 -#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155 -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/part.js:557 templates/js/translated/part.js:1157 +#: templates/js/translated/stock.js:1552 msgid "IPN" msgstr "" @@ -4145,8 +4103,8 @@ msgstr "" msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2310 templates/js/translated/part.js:1648 -#: templates/js/translated/stock.js:1097 +#: part/models.py:2310 templates/js/translated/part.js:1650 +#: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "" @@ -4162,7 +4120,7 @@ msgstr "" msgid "Enter description for this test" msgstr "" -#: part/models.py:2322 templates/js/translated/part.js:1657 +#: part/models.py:2322 templates/js/translated/part.js:1659 #: templates/js/translated/table_filters.js:281 msgid "Required" msgstr "" @@ -4171,7 +4129,7 @@ msgstr "" msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2328 templates/js/translated/part.js:1665 +#: part/models.py:2328 templates/js/translated/part.js:1667 msgid "Requires Value" msgstr "" @@ -4179,7 +4137,7 @@ msgstr "" msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2334 templates/js/translated/part.js:1672 +#: part/models.py:2334 templates/js/translated/part.js:1674 msgid "Requires Attachment" msgstr "" @@ -4241,8 +4199,8 @@ msgstr "" msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2578 templates/js/translated/bom.js:454 -#: templates/js/translated/bom.js:528 +#: part/models.py:2578 templates/js/translated/bom.js:566 +#: templates/js/translated/bom.js:640 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" @@ -4275,8 +4233,8 @@ msgstr "" msgid "BOM line checksum" msgstr "" -#: part/models.py:2594 templates/js/translated/bom.js:545 -#: templates/js/translated/bom.js:552 +#: part/models.py:2594 templates/js/translated/bom.js:657 +#: templates/js/translated/bom.js:664 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" @@ -4286,7 +4244,7 @@ msgstr "" msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2600 templates/js/translated/bom.js:537 +#: part/models.py:2600 templates/js/translated/bom.js:649 msgid "Allow Variants" msgstr "" @@ -4406,100 +4364,100 @@ msgstr "" msgid "This will validate each line in the BOM." msgstr "" -#: part/templates/part/category.html:24 part/templates/part/category.html:28 +#: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:32 +#: part/templates/part/category.html:36 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:38 +#: part/templates/part/category.html:42 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:43 +#: part/templates/part/category.html:47 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:44 +#: part/templates/part/category.html:48 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:52 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:53 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:57 +#: part/templates/part/category.html:61 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:58 +#: part/templates/part/category.html:62 msgid "New Category" msgstr "" -#: part/templates/part/category.html:76 part/templates/part/category.html:89 +#: part/templates/part/category.html:80 part/templates/part/category.html:93 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:90 +#: part/templates/part/category.html:94 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:110 part/templates/part/category.html:201 +#: part/templates/part/category.html:114 part/templates/part/category.html:205 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:115 +#: part/templates/part/category.html:119 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:152 +#: part/templates/part/category.html:156 msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:153 part/templates/part/category.html:177 +#: part/templates/part/category.html:157 part/templates/part/category.html:181 msgid "Export" msgstr "" -#: part/templates/part/category.html:156 +#: part/templates/part/category.html:160 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:157 templates/js/translated/bom.js:40 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 msgid "New Part" msgstr "" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set category" msgstr "" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:175 +#: part/templates/part/category.html:179 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:177 +#: part/templates/part/category.html:181 msgid "Export Data" msgstr "" -#: part/templates/part/category.html:191 +#: part/templates/part/category.html:195 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:268 +#: part/templates/part/category.html:288 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:295 +#: part/templates/part/category.html:315 msgid "Create Part" msgstr "" @@ -4566,24 +4524,24 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:17 +#: part/templates/part/detail.html:21 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:29 +#: part/templates/part/detail.html:33 #, python-format msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:39 +#: part/templates/part/detail.html:43 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:44 +#: part/templates/part/detail.html:48 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:101 +#: part/templates/part/detail.html:105 msgid "Sales Order Allocations" msgstr "" @@ -4619,7 +4577,7 @@ msgstr "" msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:242 +#: part/templates/part/detail.html:242 templates/js/translated/bom.js:70 msgid "Export BOM" msgstr "" @@ -4683,38 +4641,38 @@ msgstr "" msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:651 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:659 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:760 +#: part/templates/part/detail.html:754 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:817 +#: part/templates/part/detail.html:811 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:930 +#: part/templates/part/detail.html:924 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:942 +#: part/templates/part/detail.html:936 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:954 +#: part/templates/part/detail.html:948 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1043 +#: part/templates/part/detail.html:1037 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4745,20 +4703,20 @@ msgid "Subscribe to notifications for this part" msgstr "" #: part/templates/part/part_base.html:43 -#: stock/templates/stock/item_base.html:28 -#: stock/templates/stock/location.html:29 +#: stock/templates/stock/item_base.html:34 +#: stock/templates/stock/location.html:33 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:45 -#: stock/templates/stock/item_base.html:32 -#: stock/templates/stock/location.html:31 templates/qr_button.html:1 +#: stock/templates/stock/item_base.html:38 +#: stock/templates/stock/location.html:35 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:48 -#: stock/templates/stock/location.html:32 +#: stock/templates/stock/item_base.html:54 +#: stock/templates/stock/location.html:36 msgid "Print Label" msgstr "" @@ -4767,8 +4725,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:103 -#: stock/templates/stock/location.html:40 +#: stock/templates/stock/item_base.html:109 +#: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "" @@ -4848,7 +4806,7 @@ msgstr "" msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1235 +#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1237 msgid "On Order" msgstr "" @@ -4864,12 +4822,12 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:566 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1066 -#: templates/js/translated/part.js:1239 +#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1068 +#: templates/js/translated/part.js:1241 msgid "Building" msgstr "" @@ -4882,7 +4840,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:159 +#: stock/templates/stock/item_base.html:165 msgid "Search for serial number" msgstr "" @@ -4921,7 +4879,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:520 +#: templates/js/translated/bom.js:632 msgid "No supplier pricing available" msgstr "" @@ -5036,7 +4994,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626 msgid "Supplier Cost" msgstr "" @@ -5058,7 +5016,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1788 +#: part/templates/part/prices.html:215 part/views.py:1784 msgid "Add Internal Price Break" msgstr "" @@ -5078,9 +5036,9 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476 -#: templates/js/translated/part.js:436 templates/js/translated/part.js:1056 -#: templates/js/translated/part.js:1243 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588 +#: templates/js/translated/part.js:436 templates/js/translated/part.js:1058 +#: templates/js/translated/part.js:1245 msgid "No Stock" msgstr "" @@ -5154,67 +5112,67 @@ msgstr "" msgid "Match Parts" msgstr "" -#: part/views.py:1196 +#: part/views.py:1195 msgid "Export Bill of Materials" msgstr "" -#: part/views.py:1248 +#: part/views.py:1244 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1255 +#: part/views.py:1251 msgid "Part was deleted" msgstr "" -#: part/views.py:1264 +#: part/views.py:1260 msgid "Part Pricing" msgstr "" -#: part/views.py:1413 +#: part/views.py:1409 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1423 +#: part/views.py:1419 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1430 +#: part/views.py:1426 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1489 templates/js/translated/part.js:313 +#: part/views.py:1485 templates/js/translated/part.js:313 msgid "Edit Part Category" msgstr "" -#: part/views.py:1527 +#: part/views.py:1523 msgid "Delete Part Category" msgstr "" -#: part/views.py:1533 +#: part/views.py:1529 msgid "Part category was deleted" msgstr "" -#: part/views.py:1542 +#: part/views.py:1538 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1643 +#: part/views.py:1639 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1699 +#: part/views.py:1695 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1721 +#: part/views.py:1717 msgid "Added new price break" msgstr "" -#: part/views.py:1797 +#: part/views.py:1793 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1805 +#: part/views.py:1801 msgid "Delete Internal Price Break" msgstr "" @@ -5388,12 +5346,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:514 stock/templates/stock/item_base.html:149 +#: stock/models.py:517 stock/templates/stock/item_base.html:155 #: templates/js/translated/build.js:238 templates/js/translated/build.js:642 #: templates/js/translated/build.js:1018 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415 msgid "Serial Number" msgstr "" @@ -5402,19 +5360,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:1833 +#: stock/models.py:1948 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:1839 +#: stock/models.py:1954 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:49 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367 msgid "Date" msgstr "" @@ -5432,17 +5390,18 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434 +#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748 +#: templates/js/translated/stock.js:2627 msgid "Serial" msgstr "" -#: stock/api.py:446 +#: stock/api.py:478 msgid "Quantity is required" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571 -#: stock/templates/stock/item_base.html:186 -#: templates/js/translated/stock.js:1522 +#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574 +#: stock/templates/stock/item_base.html:192 +#: templates/js/translated/stock.js:1701 msgid "Expiry Date" msgstr "" @@ -5490,12 +5449,12 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:60 stock/models.py:608 -#: stock/templates/stock/item_base.html:417 +#: stock/models.py:60 stock/models.py:611 +#: stock/templates/stock/item_base.html:415 msgid "Owner" msgstr "" -#: stock/models.py:61 stock/models.py:609 +#: stock/models.py:61 stock/models.py:612 msgid "Select Owner" msgstr "" @@ -5528,150 +5487,190 @@ msgstr "" msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:460 +#: stock/models.py:461 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:470 msgid "Base part" msgstr "" -#: stock/models.py:477 +#: stock/models.py:478 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:482 stock/templates/stock/location.html:12 +#: stock/models.py:484 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:485 +#: stock/models.py:487 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:492 +#: stock/models.py:494 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:497 stock/templates/stock/item_base.html:299 +#: stock/models.py:500 stock/templates/stock/item_base.html:297 msgid "Installed In" msgstr "" -#: stock/models.py:500 +#: stock/models.py:503 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:516 +#: stock/models.py:519 msgid "Serial number for this item" msgstr "" -#: stock/models.py:530 +#: stock/models.py:533 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:534 +#: stock/models.py:537 msgid "Stock Quantity" msgstr "" -#: stock/models.py:543 +#: stock/models.py:546 msgid "Source Build" msgstr "" -#: stock/models.py:545 +#: stock/models.py:548 msgid "Build for this stock item" msgstr "" -#: stock/models.py:556 +#: stock/models.py:559 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:559 +#: stock/models.py:562 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:565 +#: stock/models.py:568 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:572 +#: stock/models.py:575 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete on deplete" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:595 stock/templates/stock/item.html:111 +#: stock/models.py:598 stock/templates/stock/item.html:111 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:604 +#: stock/models.py:607 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1072 +#: stock/models.py:1068 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1078 +#: stock/models.py:1074 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1084 +#: stock/models.py:1080 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1087 +#: stock/models.py:1083 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1090 +#: stock/models.py:1086 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1097 +#: stock/models.py:1093 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1255 +#: stock/models.py:1164 +msgid "Stock item has been assigned to a sales order" +msgstr "" + +#: stock/models.py:1167 +msgid "Stock item is installed in another item" +msgstr "" + +#: stock/models.py:1170 +msgid "Stock item contains other items" +msgstr "" + +#: stock/models.py:1173 +msgid "Stock item has been assigned to a customer" +msgstr "" + +#: stock/models.py:1176 +msgid "Stock item is currently in production" +msgstr "" + +#: stock/models.py:1179 +msgid "Serialized stock cannot be merged" +msgstr "" + +#: stock/models.py:1186 stock/serializers.py:773 +msgid "Duplicate stock items" +msgstr "" + +#: stock/models.py:1190 +msgid "Stock items must refer to the same part" +msgstr "" + +#: stock/models.py:1194 +msgid "Stock items must refer to the same supplier part" +msgstr "" + +#: stock/models.py:1198 +msgid "Stock status codes must match" +msgstr "" + +#: stock/models.py:1369 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1753 +#: stock/models.py:1868 msgid "Entry notes" msgstr "" -#: stock/models.py:1810 +#: stock/models.py:1925 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1931 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1834 +#: stock/models.py:1949 msgid "Test name" msgstr "" -#: stock/models.py:1840 templates/js/translated/table_filters.js:271 +#: stock/models.py:1955 templates/js/translated/table_filters.js:271 msgid "Test result" msgstr "" -#: stock/models.py:1846 +#: stock/models.py:1961 msgid "Test output value" msgstr "" -#: stock/models.py:1853 +#: stock/models.py:1968 msgid "Test result attachment" msgstr "" -#: stock/models.py:1859 +#: stock/models.py:1974 msgid "Test notes" msgstr "" @@ -5696,7 +5695,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:814 +#: stock/serializers.py:326 stock/serializers.py:730 stock/serializers.py:971 msgid "Destination stock location" msgstr "" @@ -5708,39 +5707,63 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:573 +#: stock/serializers.py:587 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:577 +#: stock/serializers.py:591 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:581 +#: stock/serializers.py:595 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:611 +#: stock/serializers.py:625 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:617 +#: stock/serializers.py:631 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:639 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:635 stock/serializers.py:722 +#: stock/serializers.py:649 stock/serializers.py:879 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:684 +#: stock/serializers.py:737 +msgid "Stock merging notes" +msgstr "" + +#: stock/serializers.py:742 +msgid "Allow mismatched suppliers" +msgstr "" + +#: stock/serializers.py:743 +msgid "Allow stock items with different supplier parts to be merged" +msgstr "" + +#: stock/serializers.py:748 +msgid "Allow mismatched status" +msgstr "" + +#: stock/serializers.py:749 +msgid "Allow stock items with different status codes to be merged" +msgstr "" + +#: stock/serializers.py:759 +msgid "At least two stock items must be provided" +msgstr "" + +#: stock/serializers.py:841 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:712 +#: stock/serializers.py:869 msgid "Stock transaction notes" msgstr "" @@ -5765,7 +5788,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50 +#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:56 msgid "Test Report" msgstr "" @@ -5797,197 +5820,189 @@ msgstr "" msgid "Delete Test Result" msgstr "" -#: stock/templates/stock/item_base.html:35 +#: stock/templates/stock/item_base.html:41 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:37 +#: stock/templates/stock/item_base.html:43 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24 +#: stock/templates/stock/item_base.html:45 templates/stock_table.html:24 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:46 +#: stock/templates/stock/item_base.html:52 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:71 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:47 templates/stock_table.html:50 +#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/location.html:51 templates/stock_table.html:50 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:78 templates/stock_table.html:48 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49 +#: stock/templates/stock/item_base.html:81 templates/stock_table.html:49 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:84 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:53 +#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/location.html:57 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53 +#: stock/templates/stock/item_base.html:91 templates/stock_table.html:54 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:94 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:108 +#: stock/templates/stock/item_base.html:114 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/item_base.html:117 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:119 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:116 +#: stock/templates/stock/item_base.html:122 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/stock.js:1535 +#: stock/templates/stock/item_base.html:205 +#: templates/js/translated/stock.js:1714 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:208 +#: stock/templates/stock/item_base.html:214 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:226 +#: stock/templates/stock/item_base.html:232 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:239 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:234 +#: stock/templates/stock/item_base.html:240 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:247 +#: stock/templates/stock/item_base.html:253 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:261 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:263 +#: stock/templates/stock/item_base.html:269 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:269 +#: stock/templates/stock/item_base.html:275 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:273 -msgid "This stock item cannot be deleted as it has child items" -msgstr "" - -#: stock/templates/stock/item_base.html:277 -msgid "This stock item will be automatically deleted when all stock is depleted." -msgstr "" - -#: stock/templates/stock/item_base.html:318 +#: stock/templates/stock/item_base.html:316 #: templates/js/translated/build.js:1040 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:325 +#: stock/templates/stock/item_base.html:323 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:367 +#: stock/templates/stock/item_base.html:365 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:385 +#: stock/templates/stock/item_base.html:383 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:410 +#: stock/templates/stock/item_base.html:408 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:500 +#: stock/templates/stock/item_base.html:498 msgid "Edit Stock Status" msgstr "" @@ -6041,59 +6056,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:37 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:65 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:67 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:65 +#: stock/templates/stock/location.html:69 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:79 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:76 +#: stock/templates/stock/location.html:80 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:95 -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:99 +#: stock/templates/stock/location.html:105 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:102 +#: stock/templates/stock/location.html:106 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:119 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:175 +#: stock/templates/stock/location.html:132 +#: stock/templates/stock/location.html:179 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:142 templates/InvenTree/search.html:170 +#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "" -#: stock/templates/stock/location.html:182 templates/stock_table.html:30 +#: stock/templates/stock/location.html:186 templates/stock_table.html:30 msgid "Printing Actions" msgstr "" -#: stock/templates/stock/location.html:186 templates/stock_table.html:34 +#: stock/templates/stock/location.html:190 templates/stock_table.html:34 msgid "Print labels" msgstr "" @@ -6178,7 +6193,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:887 +#: stock/views.py:727 templates/js/translated/stock.js:1066 msgid "Confirm stock adjustment" msgstr "" @@ -6186,7 +6201,7 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:323 +#: stock/views.py:760 templates/js/translated/stock.js:324 msgid "Edit Stock Item" msgstr "" @@ -6198,7 +6213,7 @@ msgstr "" msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:303 +#: stock/views.py:1153 templates/js/translated/stock.js:304 msgid "Duplicate Stock Item" msgstr "" @@ -6314,10 +6329,6 @@ msgstr "" msgid "Search Results" msgstr "" -#: templates/InvenTree/search.html:22 -msgid "Enter a search query" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6363,7 +6374,7 @@ msgstr "" msgid "Login Settings" msgstr "" -#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5 +#: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5 msgid "Signup" msgstr "" @@ -6648,7 +6659,7 @@ msgstr "" msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:55 +#: templates/InvenTree/settings/user.html:54 msgid "The following email addresses are associated with your account:" msgstr "" @@ -6673,145 +6684,193 @@ msgid "Re-send Verification" msgstr "" #: templates/InvenTree/settings/user.html:87 -#: templates/InvenTree/settings/user.html:154 +#: templates/InvenTree/settings/user.html:149 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:94 +#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:201 msgid "Warning:" msgstr "" -#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:96 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:102 +#: templates/InvenTree/settings/user.html:104 msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:112 -msgid "Enter e-mail address" -msgstr "" - -#: templates/InvenTree/settings/user.html:114 +#: templates/InvenTree/settings/user.html:109 msgid "Add Email" msgstr "" -#: templates/InvenTree/settings/user.html:124 +#: templates/InvenTree/settings/user.html:117 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:129 +#: templates/InvenTree/settings/user.html:122 msgid "You can sign in to your account using any of the following third party accounts:" msgstr "" -#: templates/InvenTree/settings/user.html:163 -msgid "There are no social network accounts connected to your InvenTree account" +#: templates/InvenTree/settings/user.html:157 +msgid "You currently have no social network accounts connected to this account." msgstr "" -#: templates/InvenTree/settings/user.html:168 +#: templates/InvenTree/settings/user.html:162 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:179 -msgid "Active Sessions" +#: templates/InvenTree/settings/user.html:172 +msgid "Multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:185 -msgid "Log out active sessions (except this one)" +#: templates/InvenTree/settings/user.html:177 +msgid "You have these factors available:" msgstr "" -#: templates/InvenTree/settings/user.html:186 -msgid "Log Out Active Sessions" +#: templates/InvenTree/settings/user.html:187 +msgid "TOTP" 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" +#: templates/InvenTree/settings/user.html:193 +msgid "Static" msgstr "" #: templates/InvenTree/settings/user.html:202 -msgid "Last Activity" +msgid "You currently do not have any factors set up." msgstr "" -#: templates/InvenTree/settings/user.html:211 -#, python-format -msgid "%(time)s ago (this session)" +#: templates/InvenTree/settings/user.html:209 +msgid "Change factors" msgstr "" -#: templates/InvenTree/settings/user.html:213 -#, python-format -msgid "%(time)s ago" +#: templates/InvenTree/settings/user.html:210 +msgid "Setup multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:224 -msgid "Do you really want to remove the selected email address?" +#: templates/InvenTree/settings/user.html:212 +msgid "Remove multifactor" msgstr "" +#: templates/InvenTree/settings/user.html:219 #: templates/InvenTree/settings/user_display.html:25 msgid "Theme Settings" msgstr "" +#: templates/InvenTree/settings/user.html:227 #: templates/InvenTree/settings/user_display.html:35 msgid "Select theme" msgstr "" +#: templates/InvenTree/settings/user.html:237 #: templates/InvenTree/settings/user_display.html:46 msgid "Set Theme" msgstr "" +#: templates/InvenTree/settings/user.html:246 #: templates/InvenTree/settings/user_display.html:54 msgid "Language Settings" msgstr "" +#: templates/InvenTree/settings/user.html:254 #: templates/InvenTree/settings/user_display.html:63 msgid "Select language" msgstr "" +#: templates/InvenTree/settings/user.html:270 #: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" +#: templates/InvenTree/settings/user.html:272 #: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" +#: templates/InvenTree/settings/user.html:279 #: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" +#: templates/InvenTree/settings/user.html:281 #: templates/InvenTree/settings/user_display.html:91 msgid "Some languages are not complete" msgstr "" +#: templates/InvenTree/settings/user.html:283 #: 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.html:285 #: templates/InvenTree/settings/user_display.html:95 msgid "Show them too" msgstr "" +#: templates/InvenTree/settings/user.html:292 #: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" +#: templates/InvenTree/settings/user.html:293 +#, python-format +msgid "Native language translation of the\n" +" InvenTree web application is community contributed via crowdin. Contributions are\n" +" welcomed and encouraged." +msgstr "" + +#: templates/InvenTree/settings/user.html:302 +msgid "Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:308 +msgid "Log out active sessions (except this one)" +msgstr "" + +#: templates/InvenTree/settings/user.html:309 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:318 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:319 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:323 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:324 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:325 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:334 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:336 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:348 +msgid "Do you really want to remove the selected email address?" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +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." @@ -6830,7 +6889,7 @@ msgid "InvenTree Version Information" msgstr "" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53 +#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53 #: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662 #: templates/js/translated/modals.js:965 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 @@ -7006,6 +7065,71 @@ msgstr "" msgid "View in administration panel" msgstr "" +#: templates/allauth_2fa/authenticate.html:5 +msgid "Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:12 +msgid "Authenticate" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:6 +msgid "Two-Factor Authentication Backup Tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:17 +msgid "Backup tokens have been generated, but are not revealed here for security reasons. Press the button below to generate new ones." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:20 +msgid "No tokens. Press the button below to generate some." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:27 +msgid "Generate backup tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:31 +#: templates/allauth_2fa/setup.html:40 +msgid "back to settings" +msgstr "" + +#: templates/allauth_2fa/remove.html:6 +msgid "Disable Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/remove.html:9 +msgid "Are you sure?" +msgstr "" + +#: templates/allauth_2fa/remove.html:14 +msgid "Disable Two-Factor" +msgstr "" + +#: templates/allauth_2fa/setup.html:6 +msgid "Setup Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/setup.html:10 +msgid "Step 1" +msgstr "" + +#: templates/allauth_2fa/setup.html:14 +msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." +msgstr "" + +#: templates/allauth_2fa/setup.html:23 +msgid "Step 2" +msgstr "" + +#: templates/allauth_2fa/setup.html:27 +msgid "Input a token generated by the app:" +msgstr "" + +#: templates/allauth_2fa/setup.html:35 +msgid "Verify" +msgstr "" + #: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 msgid "Add Link" msgstr "" @@ -7044,13 +7168,13 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:1103 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134 +#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1134 #: templates/js/translated/build.js:1755 #: templates/js/translated/table_filters.js:178 msgid "Available" @@ -7239,7 +7363,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018 msgid "Remove stock item" msgstr "" @@ -7281,91 +7405,153 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:184 +#: templates/js/translated/bom.js:36 +msgid "Download BOM Template" +msgstr "" + +#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510 +msgid "Format" +msgstr "" + +#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511 +msgid "Select file format" +msgstr "" + +#: templates/js/translated/bom.js:81 +msgid "Cascading" +msgstr "" + +#: templates/js/translated/bom.js:82 +msgid "Download cascading / multi-level BOM" +msgstr "" + +#: templates/js/translated/bom.js:87 +msgid "Levels" +msgstr "" + +#: templates/js/translated/bom.js:88 +msgid "Select maximum number of BOM levels to export (0 = all levels)" +msgstr "" + +#: templates/js/translated/bom.js:94 +msgid "Include Parameter Data" +msgstr "" + +#: templates/js/translated/bom.js:95 +msgid "Include part parameter data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:100 +msgid "Include Stock Data" +msgstr "" + +#: templates/js/translated/bom.js:101 +msgid "Include part stock data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:106 +msgid "Include Manufacturer Data" +msgstr "" + +#: templates/js/translated/bom.js:107 +msgid "Include part manufacturer data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:112 +msgid "Include Supplier Data" +msgstr "" + +#: templates/js/translated/bom.js:113 +msgid "Include part supplier data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:296 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:228 +#: templates/js/translated/bom.js:340 msgid "Select and add a new variant item using the input below" msgstr "" -#: templates/js/translated/bom.js:239 +#: templates/js/translated/bom.js:351 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:245 +#: templates/js/translated/bom.js:357 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:284 +#: templates/js/translated/bom.js:396 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:285 +#: templates/js/translated/bom.js:397 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:404 +#: templates/js/translated/bom.js:516 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116 +#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1116 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:413 +#: templates/js/translated/bom.js:525 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:485 +#: templates/js/translated/bom.js:597 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:500 +#: templates/js/translated/bom.js:612 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:507 +#: templates/js/translated/bom.js:619 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645 +#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:616 +#: templates/js/translated/bom.js:728 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:618 +#: templates/js/translated/bom.js:730 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:620 +#: templates/js/translated/bom.js:732 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796 +#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779 +#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860 +#: templates/js/translated/bom.js:830 templates/js/translated/build.js:860 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:774 +#: templates/js/translated/bom.js:886 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100 +#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1100 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:996 +#: templates/js/translated/bom.js:1108 msgid "Inherited from parent BOM" msgstr "" @@ -7464,7 +7650,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1199 templates/stock_table.html:52 +#: templates/js/translated/build.js:1199 templates/stock_table.html:53 msgid "Order stock" msgstr "" @@ -7509,9 +7695,9 @@ msgstr "" msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147 -#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333 -#: templates/js/translated/stock.js:2128 +#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1149 +#: templates/js/translated/part.js:1560 templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:2321 msgid "Select" msgstr "" @@ -7519,7 +7705,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347 +#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2540 msgid "No user information" msgstr "" @@ -7682,20 +7868,20 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1078 templates/modals.html:19 +#: templates/js/translated/forms.js:1080 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1469 +#: templates/js/translated/forms.js:1471 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1673 +#: templates/js/translated/forms.js:1675 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1893 +#: templates/js/translated/forms.js:1895 msgid "Clear input" msgstr "" @@ -7708,7 +7894,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:863 +#: templates/js/translated/stock.js:1042 msgid "Select Stock Items" msgstr "" @@ -7888,14 +8074,6 @@ msgstr "" msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509 -msgid "Format" -msgstr "" - -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510 -msgid "Select file format" -msgstr "" - #: templates/js/translated/order.js:460 msgid "Select Line Items" msgstr "" @@ -7908,7 +8086,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123 msgid "Stock Status" msgstr "" @@ -7957,7 +8135,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163 -#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986 +#: templates/js/translated/part.js:1777 templates/js/translated/part.js:1988 msgid "Unit Price" msgstr "" @@ -8042,7 +8220,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1249 +#: templates/js/translated/stock.js:1428 msgid "Shipped to customer" msgstr "" @@ -8206,92 +8384,92 @@ msgstr "" msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:946 +#: templates/js/translated/part.js:948 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:970 +#: templates/js/translated/part.js:972 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1037 templates/js/translated/part.js:1297 +#: templates/js/translated/part.js:1039 templates/js/translated/part.js:1299 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1207 +#: templates/js/translated/part.js:1209 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1230 +#: templates/js/translated/part.js:1232 #: templates/js/translated/table_filters.js:412 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493 -#: templates/js/translated/stock.js:2089 +#: templates/js/translated/part.js:1323 templates/js/translated/part.js:1495 +#: templates/js/translated/stock.js:2282 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1337 +#: templates/js/translated/part.js:1339 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108 +#: templates/js/translated/part.js:1514 templates/js/translated/stock.js:2301 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1576 +#: templates/js/translated/part.js:1578 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152 +#: templates/js/translated/part.js:1592 templates/js/translated/stock.js:2345 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1634 +#: templates/js/translated/part.js:1636 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055 +#: templates/js/translated/part.js:1687 templates/js/translated/stock.js:1234 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056 +#: templates/js/translated/part.js:1688 templates/js/translated/stock.js:1235 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1692 +#: templates/js/translated/part.js:1694 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1714 +#: templates/js/translated/part.js:1716 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1728 +#: templates/js/translated/part.js:1730 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1753 +#: templates/js/translated/part.js:1755 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1808 +#: templates/js/translated/part.js:1810 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1809 +#: templates/js/translated/part.js:1811 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1910 +#: templates/js/translated/part.js:1912 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1929 +#: templates/js/translated/part.js:1931 msgid "Single Price Difference" msgstr "" @@ -8365,316 +8543,340 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:72 +#: templates/js/translated/stock.js:73 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173 msgid "Next available serial number" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174 +#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175 msgid "Latest serial number" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:101 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:109 +#: templates/js/translated/stock.js:110 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:145 +#: templates/js/translated/stock.js:146 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:185 +#: templates/js/translated/stock.js:186 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:224 +#: templates/js/translated/stock.js:225 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:231 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:373 +#: templates/js/translated/stock.js:374 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:386 +#: templates/js/translated/stock.js:387 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:411 +#: templates/js/translated/stock.js:412 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416 +#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:432 +#: templates/js/translated/stock.js:433 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:452 +#: templates/js/translated/stock.js:453 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:506 +#: templates/js/translated/stock.js:507 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:517 +#: templates/js/translated/stock.js:518 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:518 +#: templates/js/translated/stock.js:519 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:627 +#: templates/js/translated/stock.js:628 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:628 +#: templates/js/translated/stock.js:629 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:713 +#: templates/js/translated/stock.js:706 +msgid "Warning: Merge operation cannot be reversed" +msgstr "" + +#: templates/js/translated/stock.js:707 +msgid "Some information will be lost when merging stock items" +msgstr "" + +#: templates/js/translated/stock.js:709 +msgid "Stock transaction history will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:710 +msgid "Supplier part information will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:796 +msgid "Confirm stock item merge" +msgstr "" + +#: templates/js/translated/stock.js:797 +msgid "Merge Stock Items" +msgstr "" + +#: templates/js/translated/stock.js:892 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:893 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:899 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:721 +#: templates/js/translated/stock.js:900 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:725 +#: templates/js/translated/stock.js:904 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:726 +#: templates/js/translated/stock.js:905 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:730 +#: templates/js/translated/stock.js:909 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:731 users/models.py:202 +#: templates/js/translated/stock.js:910 users/models.py:205 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:735 templates/stock_table.html:57 +#: templates/js/translated/stock.js:914 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:864 +#: templates/js/translated/stock.js:1043 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1022 +#: templates/js/translated/stock.js:1201 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1024 +#: templates/js/translated/stock.js:1203 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1029 +#: templates/js/translated/stock.js:1208 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1230 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1077 +#: templates/js/translated/stock.js:1256 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1134 +#: templates/js/translated/stock.js:1313 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1420 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1245 +#: templates/js/translated/stock.js:1424 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1432 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1259 +#: templates/js/translated/stock.js:1438 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1417 +#: templates/js/translated/stock.js:1596 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1422 +#: templates/js/translated/stock.js:1601 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1425 +#: templates/js/translated/stock.js:1604 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1429 +#: templates/js/translated/stock.js:1608 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1431 +#: templates/js/translated/stock.js:1610 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1437 +#: templates/js/translated/stock.js:1616 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1618 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1441 +#: templates/js/translated/stock.js:1620 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1625 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1453 +#: templates/js/translated/stock.js:1632 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1455 +#: templates/js/translated/stock.js:1634 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1457 +#: templates/js/translated/stock.js:1636 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1461 +#: templates/js/translated/stock.js:1640 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1511 +#: templates/js/translated/stock.js:1690 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1584 +#: templates/js/translated/stock.js:1763 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1622 +#: templates/js/translated/stock.js:1801 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691 +#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1731 +#: templates/js/translated/stock.js:1910 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1758 +#: templates/js/translated/stock.js:1937 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1760 +#: templates/js/translated/stock.js:1939 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2138 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1959 +#: templates/js/translated/stock.js:2152 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1960 +#: templates/js/translated/stock.js:2153 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2377 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2206 +#: templates/js/translated/stock.js:2399 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2231 +#: templates/js/translated/stock.js:2424 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2250 +#: templates/js/translated/stock.js:2443 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2269 +#: templates/js/translated/stock.js:2462 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2480 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2310 +#: templates/js/translated/stock.js:2503 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2318 +#: templates/js/translated/stock.js:2511 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2552 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2360 +#: templates/js/translated/stock.js:2553 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2411 +#: templates/js/translated/stock.js:2604 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2462 +#: templates/js/translated/stock.js:2655 msgid "Uninstall Stock Item" msgstr "" @@ -9059,18 +9261,26 @@ msgid "Move stock" msgstr "" #: templates/stock_table.html:52 +msgid "Merge selected stock items" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Merge stock" +msgstr "" + +#: templates/stock_table.html:53 msgid "Order selected items" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change status" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change stock status" msgstr "" -#: templates/stock_table.html:57 +#: templates/stock_table.html:58 msgid "Delete selected items" msgstr "" @@ -9106,35 +9316,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:189 +#: users/models.py:192 msgid "Permission set" msgstr "" -#: users/models.py:197 +#: users/models.py:200 msgid "Group" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "View" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "Permission to view items" msgstr "" -#: users/models.py:202 +#: users/models.py:205 msgid "Permission to add items" msgstr "" -#: users/models.py:204 +#: users/models.py:207 msgid "Change" msgstr "" -#: users/models.py:204 +#: users/models.py:207 msgid "Permissions to edit items" msgstr "" -#: users/models.py:206 +#: users/models.py:209 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po index 685dd24ab4..4447f6daa7 100644 --- a/InvenTree/locale/it/LC_MESSAGES/django.po +++ b/InvenTree/locale/it/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-12-08 23:43+0000\n" -"PO-Revision-Date: 2021-12-08 23:47\n" +"POT-Creation-Date: 2021-12-21 02:57+0000\n" +"PO-Revision-Date: 2021-12-21 03:01\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -34,50 +34,50 @@ msgstr "Nessuna azione corrispondente trovata" msgid "Enter date" msgstr "Inserisci la data" -#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93 +#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 build/forms.py:93 #: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: part/forms.py:108 templates/account/email_confirm.html:20 +#: part/forms.py:78 templates/account/email_confirm.html:20 #: templates/js/translated/forms.js:595 msgid "Confirm" msgstr "Conferma" -#: InvenTree/forms.py:136 +#: InvenTree/forms.py:142 msgid "Confirm delete" msgstr "Conferma eliminazione" -#: InvenTree/forms.py:137 +#: InvenTree/forms.py:143 msgid "Confirm item deletion" msgstr "Conferma eliminazione elementi" -#: InvenTree/forms.py:168 +#: InvenTree/forms.py:174 msgid "Enter password" msgstr "Inserire la password" -#: InvenTree/forms.py:169 +#: InvenTree/forms.py:175 msgid "Enter new password" msgstr "Inserire una nuova password" -#: InvenTree/forms.py:176 +#: InvenTree/forms.py:182 msgid "Confirm password" msgstr "Conferma la password" -#: InvenTree/forms.py:177 +#: InvenTree/forms.py:183 msgid "Confirm new password" msgstr "Conferma la nuova password" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:215 msgid "Select Category" msgstr "Selezione una categoria" -#: InvenTree/forms.py:230 +#: InvenTree/forms.py:236 msgid "Email (again)" msgstr "Email (ancora)" -#: InvenTree/forms.py:234 +#: InvenTree/forms.py:240 msgid "Email address confirmation" msgstr "Conferma indirizzo email" -#: InvenTree/forms.py:254 +#: InvenTree/forms.py:260 msgid "You must type the same email each time." msgstr "È necessario digitare la stessa e-mail ogni volta." @@ -117,13 +117,13 @@ msgstr "Il numero dei numeri seriali univoci ({s}) deve essere uguale alla quant #: InvenTree/models.py:120 msgid "Missing file" -msgstr "" +msgstr "File mancante" #: InvenTree/models.py:121 msgid "Missing external link" -msgstr "" +msgstr "Link esterno mancante" -#: InvenTree/models.py:132 stock/models.py:1852 +#: InvenTree/models.py:132 stock/models.py:1967 #: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "Allegato" @@ -136,12 +136,12 @@ msgstr "Seleziona file da allegare" #: company/models.py:564 order/models.py:124 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:1258 +#: templates/js/translated/company.js:826 templates/js/translated/part.js:1260 msgid "Link" msgstr "Link" #: InvenTree/models.py:140 build/models.py:330 part/models.py:798 -#: stock/models.py:524 +#: stock/models.py:527 msgid "Link to external URL" msgstr "Link a URL esterno" @@ -153,10 +153,10 @@ msgstr "Commento" msgid "File comment" msgstr "Commento del file" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213 -#: common/models.py:1214 part/models.py:2205 part/models.py:2225 +#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1219 +#: common/models.py:1220 part/models.py:2205 part/models.py:2225 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2341 +#: templates/js/translated/stock.js:2534 msgid "User" msgstr "Utente" @@ -202,8 +202,8 @@ msgstr "Scelta non valida" #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:268 #: templates/js/translated/company.js:638 templates/js/translated/part.js:506 -#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565 -#: templates/js/translated/stock.js:2134 +#: templates/js/translated/part.js:643 templates/js/translated/part.js:1567 +#: templates/js/translated/stock.js:2327 msgid "Name" msgstr "Nome" @@ -212,23 +212,23 @@ msgstr "Nome" #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70 +#: order/models.py:122 part/models.py:764 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:89 +#: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428 +#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540 #: templates/js/translated/build.js:1627 templates/js/translated/company.js:345 #: templates/js/translated/company.js:548 #: templates/js/translated/company.js:837 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 -#: templates/js/translated/part.js:565 templates/js/translated/part.js:933 -#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188 -#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653 -#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146 -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/part.js:565 templates/js/translated/part.js:935 +#: templates/js/translated/part.js:1020 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1586 templates/js/translated/part.js:1655 +#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339 +#: templates/js/translated/stock.js:2384 msgid "Description" msgstr "Descrizione" @@ -248,83 +248,83 @@ msgstr "Deve essere un numero valido" msgid "Filename" msgstr "Nome del file" -#: InvenTree/settings.py:689 +#: InvenTree/settings.py:698 msgid "German" msgstr "Tedesco" -#: InvenTree/settings.py:690 +#: InvenTree/settings.py:699 msgid "Greek" msgstr "Greco" -#: InvenTree/settings.py:691 +#: InvenTree/settings.py:700 msgid "English" msgstr "Inglese" -#: InvenTree/settings.py:692 +#: InvenTree/settings.py:701 msgid "Spanish" msgstr "Spagnolo" -#: InvenTree/settings.py:693 +#: InvenTree/settings.py:702 msgid "Spanish (Mexican)" msgstr "Spagnolo (Messicano)" -#: InvenTree/settings.py:694 +#: InvenTree/settings.py:703 msgid "French" msgstr "Francese" -#: InvenTree/settings.py:695 +#: InvenTree/settings.py:704 msgid "Hebrew" msgstr "Ebraico" -#: InvenTree/settings.py:696 +#: InvenTree/settings.py:705 msgid "Italian" msgstr "Italiano" -#: InvenTree/settings.py:697 +#: InvenTree/settings.py:706 msgid "Japanese" msgstr "Giapponese" -#: InvenTree/settings.py:698 +#: InvenTree/settings.py:707 msgid "Korean" msgstr "Coreano" -#: InvenTree/settings.py:699 +#: InvenTree/settings.py:708 msgid "Dutch" msgstr "Olandese" -#: InvenTree/settings.py:700 +#: InvenTree/settings.py:709 msgid "Norwegian" msgstr "Norvegese" -#: InvenTree/settings.py:701 +#: InvenTree/settings.py:710 msgid "Polish" msgstr "Polacco" -#: InvenTree/settings.py:702 +#: InvenTree/settings.py:711 msgid "Portugese" msgstr "Portoghese" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:712 msgid "Russian" msgstr "Russo" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:713 msgid "Swedish" msgstr "Svedese" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:714 msgid "Thai" msgstr "Thailandese" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:715 msgid "Turkish" msgstr "Turco" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:716 msgid "Vietnamese" msgstr "Vietnamita" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:717 msgid "Chinese" msgstr "Cinese" @@ -341,7 +341,7 @@ msgid "InvenTree system health checks failed" msgstr "Controlli di sistema InvenTree falliti" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 msgid "Pending" msgstr "In attesa" @@ -349,14 +349,14 @@ msgstr "In attesa" msgid "Placed" msgstr "Inviato" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:319 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "Completo" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:313 +#: InvenTree/status_codes.py:318 msgid "Cancelled" msgstr "Annullato" @@ -370,7 +370,7 @@ msgstr "Perso" msgid "Returned" msgstr "Reso" -#: InvenTree/status_codes.py:143 order/models.py:939 +#: InvenTree/status_codes.py:143 order/models.py:941 #: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255 msgid "Shipped" msgstr "Spedito" @@ -395,83 +395,87 @@ msgstr "Distrutto" msgid "Rejected" msgstr "Respinto" -#: InvenTree/status_codes.py:269 +#: InvenTree/status_codes.py:272 msgid "Legacy stock tracking entry" msgstr "Voce di tracciamento stock preesistente" -#: InvenTree/status_codes.py:271 +#: InvenTree/status_codes.py:274 msgid "Stock item created" msgstr "Elemento stock creato" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Edited stock item" msgstr "Elemento stock modificato" -#: InvenTree/status_codes.py:274 +#: InvenTree/status_codes.py:277 msgid "Assigned serial number" msgstr "Numero di serie assegnato" -#: InvenTree/status_codes.py:276 +#: InvenTree/status_codes.py:279 msgid "Stock counted" msgstr "Stock contato" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Stock manually added" msgstr "Stock aggiunto manualmente" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Stock manually removed" msgstr "Stock rimosso manualmente" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Location changed" msgstr "Posizione cambiata" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Installed into assembly" msgstr "Installato nell'assemblaggio" -#: InvenTree/status_codes.py:283 +#: InvenTree/status_codes.py:286 msgid "Removed from assembly" msgstr "Rimosso dall'assemblaggio" -#: InvenTree/status_codes.py:285 +#: InvenTree/status_codes.py:288 msgid "Installed component item" msgstr "Componente installato" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Removed component item" msgstr "Elemento componente rimosso" -#: InvenTree/status_codes.py:288 +#: InvenTree/status_codes.py:291 msgid "Split from parent item" msgstr "Diviso dall'elemento genitore" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Split child item" msgstr "Dividi elemento figlio" -#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064 +msgid "Merged stock items" +msgstr "" + +#: InvenTree/status_codes.py:296 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "Inviato al cliente" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:297 msgid "Returned from customer" msgstr "Restituito dal cliente" -#: InvenTree/status_codes.py:294 +#: InvenTree/status_codes.py:299 msgid "Build order output created" msgstr "Genera l'output dell'ordine creato" -#: InvenTree/status_codes.py:295 +#: InvenTree/status_codes.py:300 msgid "Build order output completed" msgstr "Build order output completato" -#: InvenTree/status_codes.py:297 +#: InvenTree/status_codes.py:302 msgid "Received against purchase order" msgstr "Ricevuto contro l'ordine di acquisto" -#: InvenTree/status_codes.py:312 +#: InvenTree/status_codes.py:317 msgid "Production" msgstr "Produzione" @@ -575,16 +579,16 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1283 -#: build/templates/build/build_base.html:132 -#: build/templates/build/detail.html:35 common/models.py:1253 +#: build/forms.py:36 build/models.py:1286 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1259 #: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:794 order/models.py:1205 order/serializers.py:810 +#: order/models.py:796 order/models.py:1207 order/serializers.py:810 #: order/templates/order/order_wizard/match_parts.html:30 -#: 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 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:193 +#: part/forms.py:209 part/forms.py:225 part/models.py:2576 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:967 part/templates/part/detail.html:1053 +#: part/templates/part/detail.html:961 part/templates/part/detail.html:1047 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -592,10 +596,10 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:174 -#: stock/templates/stock/item_base.html:255 -#: stock/templates/stock/item_base.html:263 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443 +#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:261 +#: stock/templates/stock/item_base.html:269 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555 #: templates/js/translated/build.js:240 templates/js/translated/build.js:440 #: templates/js/translated/build.js:634 templates/js/translated/build.js:644 #: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367 @@ -604,10 +608,10 @@ msgstr "" #: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 #: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 #: templates/js/translated/order.js:2150 templates/js/translated/part.js:843 -#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919 -#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382 -#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326 -#: templates/js/translated/stock.js:2428 +#: templates/js/translated/part.js:1798 templates/js/translated/part.js:1921 +#: templates/js/translated/part.js:1999 templates/js/translated/stock.js:383 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750 +#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621 msgid "Quantity" msgstr "Quantità" @@ -616,8 +620,8 @@ msgid "Enter quantity for build output" msgstr "Inserisci la quantità per l'output di compilazione" #: build/forms.py:41 order/serializers.py:814 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:229 -#: templates/js/translated/stock.js:383 +#: stock/serializers.py:314 templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:384 msgid "Serial Numbers" msgstr "Codice Seriale" @@ -661,7 +665,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:145 +#: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" msgstr "" @@ -671,11 +675,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:199 order/models.py:210 order/models.py:536 -#: order/models.py:801 part/models.py:2585 +#: order/models.py:803 part/models.py:2585 #: part/templates/part/bom_upload/match_parts.html:30 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124 +#: templates/js/translated/bom.js:547 templates/js/translated/build.js:1124 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "Riferimento" @@ -695,7 +699,7 @@ msgstr "" #: build/models.py:225 build/templates/build/build_base.html:77 #: build/templates/build/detail.html:30 company/models.py:705 -#: order/models.py:854 order/models.py:928 +#: order/models.py:856 order/models.py:930 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357 #: part/models.py:2151 part/models.py:2167 part/models.py:2186 #: part/models.py:2203 part/models.py:2305 part/models.py:2427 @@ -706,20 +710,21 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 -#: templates/InvenTree/search.html:86 +#: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214 -#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326 +#: templates/js/translated/bom.js:505 templates/js/translated/build.js:625 #: templates/js/translated/build.js:993 templates/js/translated/build.js:1364 #: templates/js/translated/build.js:1632 templates/js/translated/company.js:489 #: templates/js/translated/company.js:746 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 -#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918 -#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166 -#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747 -#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416 +#: templates/js/translated/order.js:2128 templates/js/translated/part.js:920 +#: templates/js/translated/part.js:1001 templates/js/translated/part.js:1168 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719 +#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:2609 msgid "Part" msgstr "Articolo" @@ -776,7 +781,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:285 stock/models.py:528 +#: build/models.py:285 stock/models.py:531 msgid "Batch Code" msgstr "" @@ -830,27 +835,27 @@ msgstr "" #: build/models.py:329 build/templates/build/detail.html:102 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:354 stock/models.py:522 -#: stock/templates/stock/item_base.html:374 +#: part/templates/part/part_base.html:354 stock/models.py:525 +#: stock/templates/stock/item_base.html:372 msgid "External Link" msgstr "Collegamento 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:144 order/models.py:803 order/models.py:1049 +#: order/models.py:144 order/models.py:805 order/models.py:1051 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:925 -#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50 +#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594 -#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332 -#: stock/serializers.py:624 stock/serializers.py:711 +#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597 +#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332 +#: stock/serializers.py:638 stock/serializers.py:736 stock/serializers.py:868 #: stock/templates/stock/stock_sidebar.html:21 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711 #: templates/js/translated/company.js:842 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795 msgid "Notes" msgstr "Note" @@ -883,7 +888,7 @@ msgstr "La quantità assegnata ({q}) non deve essere maggiore della quantità di msgid "Stock item is over-allocated" msgstr "L'articolo in giacenza è sovrallocato" -#: build/models.py:1133 order/models.py:1165 +#: build/models.py:1133 order/models.py:1167 msgid "Allocation quantity must be greater than zero" msgstr "La quantità di assegnazione deve essere maggiore di zero" @@ -891,51 +896,52 @@ msgstr "La quantità di assegnazione deve essere maggiore di zero" msgid "Quantity must be 1 for serialized stock" msgstr "La quantità deve essere 1 per lo stock serializzato" -#: build/models.py:1193 +#: build/models.py:1196 msgid "Selected stock item not found in BOM" msgstr "Articolo in giacenza selezionato non trovato nel BOM" -#: build/models.py:1253 stock/templates/stock/item_base.html:346 -#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605 +#: build/models.py:1256 stock/templates/stock/item_base.html:344 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1605 #: templates/navbar.html:35 msgid "Build" msgstr "" -#: build/models.py:1254 +#: build/models.py:1257 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690 -#: order/serializers.py:708 stock/serializers.py:562 +#: build/models.py:1273 build/serializers.py:334 order/serializers.py:690 +#: order/serializers.py:708 stock/serializers.py:576 stock/serializers.py:694 #: stock/templates/stock/item_base.html:8 -#: stock/templates/stock/item_base.html:16 -#: stock/templates/stock/item_base.html:368 +#: stock/templates/stock/item_base.html:22 +#: stock/templates/stock/item_base.html:366 #: templates/js/translated/build.js:413 templates/js/translated/build.js:418 #: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277 +#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:2470 msgid "Stock Item" msgstr "Articoli in magazzino" -#: build/models.py:1271 +#: build/models.py:1274 msgid "Source stock item" msgstr "Origine giacenza articolo" -#: build/models.py:1284 +#: build/models.py:1287 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1292 +#: build/models.py:1295 msgid "Install into" msgstr "Installa in" -#: build/models.py:1293 +#: build/models.py:1296 msgid "Destination stock item" msgstr "Destinazione articolo in giacenza" -#: build/serializers.py:137 build/serializers.py:357 +#: build/serializers.py:137 build/serializers.py:363 msgid "Build Output" msgstr "" @@ -956,16 +962,16 @@ msgid "This build output is not fully allocated" msgstr "" #: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813 -#: stock/templates/stock/item_base.html:314 +#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:729 +#: stock/serializers.py:970 stock/templates/stock/item_base.html:312 #: templates/js/translated/barcode.js:384 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425 #: templates/js/translated/build.js:1032 templates/js/translated/order.js:508 #: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 #: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497 -#: templates/js/translated/stock.js:2218 +#: templates/js/translated/part.js:177 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411 msgid "Location" msgstr "Posizione" @@ -975,11 +981,11 @@ msgstr "Posizione per gli output di build completati" #: build/serializers.py:197 build/templates/build/build_base.html:137 #: build/templates/build/detail.html:63 order/models.py:552 -#: order/serializers.py:247 stock/templates/stock/item_base.html:180 +#: order/serializers.py:247 stock/templates/stock/item_base.html:186 #: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661 #: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472 -#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651 +#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637 msgid "Status" msgstr "Stato" @@ -1000,33 +1006,33 @@ msgstr "" msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:319 +#: build/serializers.py:325 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:334 stock/serializers.py:569 +#: build/serializers.py:340 stock/serializers.py:583 msgid "Item must be in stock" msgstr "L'articolo deve essere disponibile" -#: build/serializers.py:348 order/models.py:277 order/serializers.py:240 -#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305 +#: build/serializers.py:354 order/models.py:277 order/serializers.py:240 +#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "La quantità deve essere maggiore di zero" -#: build/serializers.py:390 order/serializers.py:741 +#: build/serializers.py:396 order/serializers.py:741 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Quantità disponibile ({q}) superata" -#: build/serializers.py:396 +#: build/serializers.py:402 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:403 +#: build/serializers.py:409 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:431 order/serializers.py:984 +#: build/serializers.py:437 order/serializers.py:984 msgid "Allocation items must be provided" msgstr "Deve essere indicata l'allocazione dell'articolo" @@ -1067,33 +1073,33 @@ msgstr "" msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:87 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:96 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:98 +#: build/templates/build/build_base.html:103 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:105 +#: build/templates/build/build_base.html:110 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Stock has not been fully allocated to this Build Order" msgstr "" @@ -1131,12 +1137,12 @@ msgid "Completed" msgstr "Completato" #: build/templates/build/build_base.html:171 -#: build/templates/build/detail.html:95 order/models.py:925 -#: order/models.py:1021 order/templates/order/sales_order_base.html:9 +#: build/templates/build/detail.html:95 order/models.py:927 +#: order/models.py:1023 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:308 +#: stock/templates/stock/item_base.html:306 #: templates/js/translated/order.js:1218 msgid "Sales Order" msgstr "Ordini di Vendita" @@ -1211,7 +1217,7 @@ msgstr "" 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:876 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "Destinazione" @@ -1225,8 +1231,8 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:332 -#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451 +#: stock/templates/stock/item_base.html:330 +#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1278,7 +1284,7 @@ msgstr "Ordina articoli richiesti" #: build/templates/build/detail.html:185 #: company/templates/company/detail.html:38 #: company/templates/company/detail.html:85 order/views.py:463 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order Parts" msgstr "Ordine Articoli" @@ -1347,7 +1353,7 @@ msgstr "Genera Note" #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115 +#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115 #: stock/templates/stock/item.html:205 msgid "Edit Notes" msgstr "Modifica Note" @@ -1489,7 +1495,7 @@ msgstr "{name.title()} File" msgid "Select {name} file to upload" msgstr "Seleziona il file {name} da caricare" -#: common/models.py:340 common/models.py:998 common/models.py:1206 +#: common/models.py:340 common/models.py:1004 common/models.py:1212 msgid "Settings key (must be unique - case insensitive" msgstr "Tasto impostazioni (deve essere univoco - maiuscole e minuscole" @@ -1651,7 +1657,7 @@ msgstr "Template" msgid "Parts are templates by default" msgstr "Gli articoli sono modelli per impostazione predefinita" -#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956 +#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:1068 #: templates/js/translated/table_filters.js:168 #: templates/js/translated/table_filters.js:416 msgid "Assembly" @@ -1953,256 +1959,264 @@ msgid "Group to which new users are assigned on registration" msgstr "" #: common/models.py:961 -msgid "Enable URL integration" +msgid "Enforce MFA" msgstr "" #: common/models.py:962 -msgid "Enable plugins to add URL routes" +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:967 +msgid "Enable URL integration" msgstr "" #: common/models.py:968 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:974 msgid "Enable navigation integration" msgstr "" -#: common/models.py:969 +#: common/models.py:975 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:975 +#: common/models.py:981 msgid "Enable global setting integration" msgstr "" -#: common/models.py:976 +#: common/models.py:982 msgid "Enable plugins to integrate into inventree global settings" msgstr "" -#: common/models.py:982 +#: common/models.py:988 msgid "Enable app integration" msgstr "" -#: common/models.py:983 +#: common/models.py:989 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1029 +#: common/models.py:1035 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1030 +#: common/models.py:1036 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1035 +#: common/models.py:1041 msgid "Show subscribed categories" msgstr "Mostra le categorie sottoscritte" -#: common/models.py:1036 +#: common/models.py:1042 msgid "Show subscribed part categories on the homepage" msgstr "Mostra le categorie dei componenti sottoscritti nella homepage" -#: common/models.py:1041 +#: common/models.py:1047 msgid "Show latest parts" msgstr "Mostra ultimi articoli" -#: common/models.py:1042 +#: common/models.py:1048 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1047 +#: common/models.py:1053 msgid "Recent Part Count" msgstr "" -#: common/models.py:1048 +#: common/models.py:1054 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1054 +#: common/models.py:1060 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1055 +#: common/models.py:1061 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1060 +#: common/models.py:1066 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1061 +#: common/models.py:1067 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1066 +#: common/models.py:1072 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1067 +#: common/models.py:1073 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1072 +#: common/models.py:1078 msgid "Show low stock" msgstr "" -#: common/models.py:1073 +#: common/models.py:1079 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1078 +#: common/models.py:1084 msgid "Show depleted stock" msgstr "" -#: common/models.py:1079 +#: common/models.py:1085 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1084 +#: common/models.py:1090 msgid "Show needed stock" msgstr "" -#: common/models.py:1085 +#: common/models.py:1091 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1090 +#: common/models.py:1096 msgid "Show expired stock" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1096 +#: common/models.py:1102 msgid "Show stale stock" msgstr "" -#: common/models.py:1097 +#: common/models.py:1103 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1102 +#: common/models.py:1108 msgid "Show pending builds" msgstr "" -#: common/models.py:1103 +#: common/models.py:1109 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1108 +#: common/models.py:1114 msgid "Show overdue builds" msgstr "" -#: common/models.py:1109 +#: common/models.py:1115 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1114 +#: common/models.py:1120 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1115 +#: common/models.py:1121 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1120 +#: common/models.py:1126 msgid "Show overdue POs" msgstr "" -#: common/models.py:1121 +#: common/models.py:1127 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1126 +#: common/models.py:1132 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1127 +#: common/models.py:1133 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1132 +#: common/models.py:1138 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1133 +#: common/models.py:1139 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1139 +#: common/models.py:1145 msgid "Inline label display" msgstr "Visualizzazione dell'etichetta in linea" -#: common/models.py:1140 +#: common/models.py:1146 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file" -#: common/models.py:1146 +#: common/models.py:1152 msgid "Inline report display" msgstr "Visualizzazione dell'etichetta in linea" -#: common/models.py:1147 +#: common/models.py:1153 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file" -#: common/models.py:1153 +#: common/models.py:1159 msgid "Search Preview Results" msgstr "Risultati Dell'Anteprima Di Ricerca" -#: common/models.py:1154 +#: common/models.py:1160 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1160 +#: common/models.py:1166 msgid "Search Show Stock" msgstr "" -#: common/models.py:1161 +#: common/models.py:1167 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1167 +#: common/models.py:1173 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1168 +#: common/models.py:1174 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1174 +#: common/models.py:1180 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1175 +#: common/models.py:1181 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1181 +#: common/models.py:1187 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1182 +#: common/models.py:1188 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1188 +#: common/models.py:1194 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1189 +#: common/models.py:1195 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1254 company/forms.py:43 +#: common/models.py:1260 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1261 company/serializers.py:264 +#: common/models.py:1267 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801 +#: templates/js/translated/part.js:852 templates/js/translated/part.js:1803 msgid "Price" msgstr "Prezzo" -#: common/models.py:1262 +#: common/models.py:1268 msgid "Unit price at specified quantity" msgstr "" @@ -2290,7 +2304,7 @@ msgid "Contact phone number" msgstr "Numero di telefono di contatto" #: company/models.py:125 company/templates/company/company_base.html:129 -#: templates/InvenTree/settings/user.html:47 +#: templates/InvenTree/settings/user.html:48 msgid "Email" msgstr "Email" @@ -2347,8 +2361,8 @@ msgstr "Valuta" msgid "Default currency used for this company" msgstr "" -#: company/models.py:320 company/models.py:535 stock/models.py:468 -#: stock/templates/stock/item_base.html:135 +#: company/models.py:320 company/models.py:535 stock/models.py:469 +#: stock/templates/stock/item_base.html:141 msgid "Base Part" msgstr "Articolo di base" @@ -2359,7 +2373,7 @@ msgstr "Seleziona articolo" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:381 +#: stock/templates/stock/item_base.html:379 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:514 #: templates/js/translated/company.js:797 templates/js/translated/part.js:232 @@ -2393,7 +2407,7 @@ msgstr "Descrizione articolo costruttore" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:391 +#: stock/templates/stock/item_base.html:389 msgid "Manufacturer Part" msgstr "Codice articolo produttore" @@ -2403,8 +2417,8 @@ msgstr "Nome parametro" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:1845 templates/js/translated/company.js:644 -#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117 +#: stock/models.py:1960 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1296 msgid "Value" msgstr "Valore" @@ -2431,7 +2445,7 @@ msgstr "L'articolo del costruttore collegato deve riferirsi alla stesso articolo #: company/templates/company/supplier_part.html:87 order/models.py:224 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219 -#: part/bom.py:247 stock/templates/stock/item_base.html:398 +#: part/bom.py:247 stock/templates/stock/item_base.html:396 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:771 templates/js/translated/order.js:823 #: templates/js/translated/part.js:213 templates/js/translated/part.js:800 @@ -2479,8 +2493,8 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "Onere minimo (ad esempio tassa di stoccaggio)" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:491 stock/templates/stock/item_base.html:339 -#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612 +#: stock/models.py:493 stock/templates/stock/item_base.html:337 +#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1791 msgid "Packaging" msgstr "Confezionamento" @@ -2506,7 +2520,7 @@ msgstr "Codice valuta" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322 +#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322 msgid "Company" msgstr "Azienda" @@ -2548,11 +2562,11 @@ msgid "Download image from URL" msgstr "Scarica immagine dall'URL" #: company/templates/company/company_base.html:83 order/models.py:547 -#: order/templates/order/sales_order_base.html:115 stock/models.py:509 -#: stock/models.py:510 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:291 +#: order/templates/order/sales_order_base.html:115 stock/models.py:512 +#: stock/models.py:513 stock/serializers.py:624 +#: stock/templates/stock/item_base.html:289 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2259 +#: templates/js/translated/stock.js:2452 msgid "Customer" msgstr "Cliente" @@ -2571,7 +2585,7 @@ msgstr "Carica immagine" #: company/templates/company/detail.html:15 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:124 +#: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "Articoli fornitore" @@ -2590,14 +2604,14 @@ msgstr "Nuovo fornitore articolo" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:167 part/templates/part/detail.html:342 +#: part/templates/part/category.html:171 part/templates/part/detail.html:342 #: part/templates/part/detail.html:370 msgid "Options" msgstr "Opzioni" #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order parts" msgstr "Articoli ordinati" @@ -2611,7 +2625,7 @@ msgstr "Cancella articoli" msgid "Delete Parts" msgstr "Cancella articoli" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109 +#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" @@ -2633,8 +2647,8 @@ msgstr "Giacenza Fornitore" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203 +#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" @@ -2655,8 +2669,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223 +#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" @@ -2698,7 +2712,7 @@ msgid "Supplier List" msgstr "Elenco dei fornitori" #: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184 +#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 #: templates/navbar.html:46 msgid "Manufacturers" msgstr "Produttori" @@ -2706,7 +2720,7 @@ msgstr "Produttori" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:67 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76 msgid "Order part" msgstr "Articoli ordinati" @@ -2728,7 +2742,7 @@ msgstr "Articolo interno" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 #: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:194 templates/navbar.html:45 +#: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "Fornitori" @@ -2742,7 +2756,7 @@ msgstr "Elimina articolo fornitore" #: company/templates/company/manufacturer_part.html:254 #: part/templates/part/detail.html:344 part/templates/part/detail.html:372 #: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31 -#: users/models.py:206 +#: users/models.py:209 msgid "Delete" msgstr "Elimina" @@ -2765,7 +2779,7 @@ msgid "Delete parameters" msgstr "Elimina il parametro" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:867 +#: part/templates/part/detail.html:861 msgid "Add Parameter" msgstr "Aggiungi parametro" @@ -2794,9 +2808,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:476 -#: stock/templates/stock/item_base.html:403 -#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569 +#: company/templates/company/supplier_part.html:24 stock/models.py:477 +#: stock/templates/stock/item_base.html:401 +#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1748 msgid "Supplier Part" msgstr "Articolo Fornitore" @@ -2816,13 +2830,13 @@ msgid "Supplier Part Stock" msgstr "Fornitore articolo in giacenza" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:20 stock/templates/stock/location.html:162 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:166 msgid "Create new stock item" msgstr "Crea nuova allocazione magazzino" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163 -#: templates/js/translated/stock.js:359 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 +#: templates/js/translated/stock.js:360 msgid "New Stock Item" msgstr "Nuovo Elemento in giacenza" @@ -2832,7 +2846,7 @@ msgid "Supplier Part Orders" msgstr "Ordini articoli fornitore" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:68 +#: part/templates/part/detail.html:72 msgid "Order Part" msgstr "Ordine Articolo" @@ -2843,7 +2857,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:1717 +#: part/templates/part/prices.html:271 part/views.py:1713 msgid "Add Price Break" msgstr "Aggiungi riduzione prezzo" @@ -2851,11 +2865,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:1779 +#: company/templates/company/supplier_part.html:224 part/views.py:1775 msgid "Delete Price Break" msgstr "Elimina riduzione di prezzo" -#: company/templates/company/supplier_part.html:238 part/views.py:1765 +#: company/templates/company/supplier_part.html:238 part/views.py:1761 msgid "Edit Price Break" msgstr "" @@ -2869,14 +2883,14 @@ msgstr "Cancella riduzione di prezzo" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:156 +#: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434 -#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059 -#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:1401 templates/navbar.html:28 +#: templates/js/translated/bom.js:328 templates/js/translated/part.js:434 +#: templates/js/translated/part.js:569 templates/js/translated/part.js:1061 +#: templates/js/translated/part.js:1222 templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:1580 templates/navbar.html:28 msgid "Stock" msgstr "Magazzino" @@ -2895,11 +2909,11 @@ msgid "Pricing" msgstr "Prezzi" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:133 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:159 +#: stock/templates/stock/location.html:137 +#: stock/templates/stock/location.html:151 +#: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "Articoli in magazzino" @@ -2912,7 +2926,7 @@ msgstr "Nuovo Fornitore" msgid "New Manufacturer" msgstr "Nuovo Produttore" -#: company/views.py:61 templates/InvenTree/search.html:214 +#: company/views.py:61 templates/InvenTree/search.html:208 #: templates/navbar.html:57 msgid "Customers" msgstr "Clienti" @@ -3121,7 +3135,7 @@ msgstr "" msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:562 order/models.py:1026 +#: order/models.py:562 order/models.py:1028 #: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429 msgid "Shipment Date" msgstr "" @@ -3130,7 +3144,7 @@ msgstr "" msgid "shipped by" msgstr "" -#: order/models.py:634 +#: order/models.py:635 msgid "Order cannot be completed as no parts have been assigned" msgstr "" @@ -3138,172 +3152,172 @@ msgstr "" msgid "Only a pending order can be marked as complete" msgstr "" -#: order/models.py:643 +#: order/models.py:642 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:647 +#: order/models.py:645 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:795 +#: order/models.py:797 msgid "Item quantity" msgstr "" -#: order/models.py:801 +#: order/models.py:803 msgid "Line item reference" msgstr "" -#: order/models.py:803 +#: order/models.py:805 msgid "Line item notes" msgstr "" -#: order/models.py:833 order/models.py:924 order/models.py:1020 +#: order/models.py:835 order/models.py:926 order/models.py:1022 #: templates/js/translated/order.js:1820 msgid "Order" msgstr "" -#: order/models.py:834 order/templates/order/order_base.html:9 +#: order/models.py:836 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:353 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/order.js:801 templates/js/translated/part.js:775 -#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240 +#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433 msgid "Purchase Order" msgstr "" -#: order/models.py:855 +#: order/models.py:857 msgid "Supplier part" msgstr "Articolo Fornitore" -#: order/models.py:862 order/templates/order/order_base.html:163 +#: order/models.py:864 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:847 templates/js/translated/part.js:873 #: templates/js/translated/table_filters.js:317 msgid "Received" msgstr "" -#: order/models.py:863 +#: order/models.py:865 msgid "Number of items received" msgstr "" -#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:360 -#: templates/js/translated/stock.js:1600 +#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:358 +#: templates/js/translated/stock.js:1779 msgid "Purchase Price" msgstr "" -#: order/models.py:871 +#: order/models.py:873 msgid "Unit purchase price" msgstr "" -#: order/models.py:879 +#: order/models.py:881 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:934 part/templates/part/part_pricing.html:112 +#: order/models.py:936 part/templates/part/part_pricing.html:112 #: part/templates/part/prices.html:116 part/templates/part/prices.html:284 msgid "Sale Price" msgstr "" -#: order/models.py:935 +#: order/models.py:937 msgid "Unit sale price" msgstr "" -#: order/models.py:940 +#: order/models.py:942 msgid "Shipped quantity" msgstr "" -#: order/models.py:1027 +#: order/models.py:1029 msgid "Date of shipment" msgstr "" -#: order/models.py:1034 +#: order/models.py:1036 msgid "Checked By" msgstr "" -#: order/models.py:1035 +#: order/models.py:1037 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1043 +#: order/models.py:1045 msgid "Shipment number" msgstr "" -#: order/models.py:1050 +#: order/models.py:1052 msgid "Shipment notes" msgstr "" -#: order/models.py:1057 +#: order/models.py:1059 msgid "Tracking Number" msgstr "" -#: order/models.py:1058 +#: order/models.py:1060 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1068 +#: order/models.py:1070 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1071 +#: order/models.py:1073 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1147 order/models.py:1149 +#: order/models.py:1149 order/models.py:1151 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1153 +#: order/models.py:1155 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1155 +#: order/models.py:1157 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1158 +#: order/models.py:1160 msgid "Allocation quantity cannot exceed stock quantity" msgstr "La quantità di ripartizione non puo' superare la disponibilità della giacenza" -#: order/models.py:1162 +#: order/models.py:1164 msgid "StockItem is over-allocated" msgstr "" -#: order/models.py:1168 order/serializers.py:734 +#: order/models.py:1170 order/serializers.py:734 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1171 +#: order/models.py:1173 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1172 +#: order/models.py:1174 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1180 +#: order/models.py:1182 msgid "Line" msgstr "" -#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953 +#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953 #: templates/js/translated/model_renderers.js:251 msgid "Shipment" msgstr "" -#: order/models.py:1189 +#: order/models.py:1191 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1201 +#: order/models.py:1203 msgid "Item" msgstr "" -#: order/models.py:1202 +#: order/models.py:1204 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1205 +#: order/models.py:1207 msgid "Enter stock allocation quantity" msgstr "Inserisci la quantità assegnata alla giacenza" @@ -3530,7 +3544,7 @@ msgstr "Duplica selezionati" #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/build.js:245 templates/js/translated/build.js:1256 #: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:592 +#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761 msgid "Remove row" msgstr "Elimina riga" @@ -3722,7 +3736,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188 +#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1188 msgid "Actions" msgstr "" @@ -3797,24 +3811,24 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:760 +#: part/api.py:777 msgid "Must be greater than zero" msgstr "" -#: part/api.py:764 +#: part/api.py:781 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:779 +#: part/api.py:796 msgid "Specify location for initial part stock" msgstr "Specifica la posizione per lo stock iniziale" -#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833 +#: part/api.py:827 part/api.py:831 part/api.py:846 part/api.py:850 msgid "This field is required" msgstr "" #: part/bom.py:125 part/models.py:81 part/models.py:816 -#: part/templates/part/category.html:104 part/templates/part/part_base.html:338 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "Posizione Predefinita" @@ -3822,99 +3836,43 @@ msgstr "Posizione Predefinita" msgid "Available Stock" msgstr "Disponibilità in magazzino" -#: part/forms.py:63 -msgid "File Format" -msgstr "" - -#: part/forms.py:63 -msgid "Select output file format" -msgstr "" - -#: part/forms.py:65 -msgid "Cascading" -msgstr "" - -#: part/forms.py:65 -msgid "Download cascading / multi-level BOM" -msgstr "" - -#: part/forms.py:67 -msgid "Levels" -msgstr "" - -#: part/forms.py:67 -msgid "Select maximum number of BOM levels to export (0 = all levels)" -msgstr "" - -#: part/forms.py:69 -msgid "Include Parameter Data" -msgstr "" - -#: part/forms.py:69 -msgid "Include part parameters data in exported BOM" -msgstr "" - -#: part/forms.py:71 -msgid "Include Stock Data" -msgstr "" - -#: part/forms.py:71 -msgid "Include part stock data in exported BOM" -msgstr "" - -#: part/forms.py:73 -msgid "Include Manufacturer Data" -msgstr "" - -#: part/forms.py:73 -msgid "Include part manufacturer data in exported BOM" -msgstr "" - -#: part/forms.py:75 -msgid "Include Supplier Data" -msgstr "" - -#: part/forms.py:75 -msgid "Include part supplier data in exported BOM" -msgstr "" - -#: part/forms.py:96 part/models.py:2427 +#: part/forms.py:66 part/models.py:2427 msgid "Parent Part" msgstr "" -#: part/forms.py:97 part/templates/part/bom_duplicate.html:7 +#: part/forms.py:67 part/templates/part/bom_duplicate.html:7 msgid "Select parent part to copy BOM from" msgstr "" -#: part/forms.py:103 +#: part/forms.py:73 msgid "Clear existing BOM items" msgstr "" -#: part/forms.py:109 +#: part/forms.py:79 msgid "Confirm BOM duplication" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "validate" msgstr "convalida" -#: part/forms.py:127 +#: part/forms.py:97 msgid "Confirm that the BOM is correct" msgstr "Conferma che la Distinta Base (BOM) è corretta" -#: part/forms.py:163 +#: part/forms.py:133 msgid "Select part category" msgstr "Seleziona categoria articolo" -#: part/forms.py:200 +#: part/forms.py:170 msgid "Add parameter template to same level categories" msgstr "" -#: part/forms.py:204 +#: part/forms.py:174 msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:224 +#: part/forms.py:194 msgid "Input quantity for price calculation" msgstr "Digita la quantità per il calcolo del prezzo" @@ -3930,24 +3888,24 @@ msgstr "Keywords predefinite" msgid "Default keywords for parts in this category" msgstr "Parole chiave predefinite per gli articoli in questa categoria" -#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11 +#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Categoria Articoli" -#: part/models.py:96 part/templates/part/category.html:124 -#: templates/InvenTree/search.html:101 templates/stats.html:84 +#: part/models.py:96 part/templates/part/category.html:128 +#: templates/InvenTree/search.html:95 templates/stats.html:84 #: users/models.py:40 msgid "Part Categories" msgstr "Categorie Articolo" #: part/models.py:358 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:13 part/templates/part/category.html:129 -#: part/templates/part/category.html:149 +#: part/templates/part/category.html:17 part/templates/part/category.html:133 +#: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1597 templates/navbar.html:21 +#: templates/js/translated/part.js:1599 templates/navbar.html:21 #: templates/stats.html:80 templates/stats.html:89 users/models.py:41 msgid "Parts" msgstr "Articoli" @@ -4001,7 +3959,7 @@ msgstr "Variante Di" msgid "Part description" msgstr "Descrizione articolo" -#: part/models.py:770 part/templates/part/category.html:82 +#: part/models.py:770 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "Parole Chiave" @@ -4014,7 +3972,7 @@ msgstr "Parole chiave per migliorare la visibilità nei risultati di ricerca" #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 #: templates/InvenTree/settings/settings.html:172 -#: templates/js/translated/part.js:1202 +#: templates/js/translated/part.js:1204 msgid "Category" msgstr "Categoria" @@ -4023,8 +3981,8 @@ msgid "Part category" msgstr "Categoria articolo" #: part/models.py:784 part/templates/part/part_base.html:274 -#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155 -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/part.js:557 templates/js/translated/part.js:1157 +#: templates/js/translated/stock.js:1552 msgid "IPN" msgstr "IPN - Numero di riferimento interno" @@ -4145,8 +4103,8 @@ msgstr "" msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2310 templates/js/translated/part.js:1648 -#: templates/js/translated/stock.js:1097 +#: part/models.py:2310 templates/js/translated/part.js:1650 +#: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "" @@ -4162,7 +4120,7 @@ msgstr "Descrizione Di Prova" msgid "Enter description for this test" msgstr "" -#: part/models.py:2322 templates/js/translated/part.js:1657 +#: part/models.py:2322 templates/js/translated/part.js:1659 #: templates/js/translated/table_filters.js:281 msgid "Required" msgstr "" @@ -4171,7 +4129,7 @@ msgstr "" msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2328 templates/js/translated/part.js:1665 +#: part/models.py:2328 templates/js/translated/part.js:1667 msgid "Requires Value" msgstr "" @@ -4179,7 +4137,7 @@ msgstr "" msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2334 templates/js/translated/part.js:1672 +#: part/models.py:2334 templates/js/translated/part.js:1674 msgid "Requires Attachment" msgstr "" @@ -4241,8 +4199,8 @@ msgstr "" msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2578 templates/js/translated/bom.js:454 -#: templates/js/translated/bom.js:528 +#: part/models.py:2578 templates/js/translated/bom.js:566 +#: templates/js/translated/bom.js:640 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" @@ -4275,8 +4233,8 @@ msgstr "" msgid "BOM line checksum" msgstr "" -#: part/models.py:2594 templates/js/translated/bom.js:545 -#: templates/js/translated/bom.js:552 +#: part/models.py:2594 templates/js/translated/bom.js:657 +#: templates/js/translated/bom.js:664 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" @@ -4286,7 +4244,7 @@ msgstr "" msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2600 templates/js/translated/bom.js:537 +#: part/models.py:2600 templates/js/translated/bom.js:649 msgid "Allow Variants" msgstr "Consenti Le Varianti" @@ -4406,100 +4364,100 @@ msgstr "" msgid "This will validate each line in the BOM." msgstr "" -#: part/templates/part/category.html:24 part/templates/part/category.html:28 +#: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "Sei iscritto alle notifiche di questa categoria" -#: part/templates/part/category.html:32 +#: part/templates/part/category.html:36 msgid "Subscribe to notifications for this category" msgstr "Sottoscrivi notifiche per questa categoria" -#: part/templates/part/category.html:38 +#: part/templates/part/category.html:42 msgid "Category Actions" msgstr "Azioni Categoria" -#: part/templates/part/category.html:43 +#: part/templates/part/category.html:47 msgid "Edit category" msgstr "Modifica categoria" -#: part/templates/part/category.html:44 +#: part/templates/part/category.html:48 msgid "Edit Category" msgstr "Modifica Categoria" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:52 msgid "Delete category" msgstr "Elimina la categoria" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:53 msgid "Delete Category" msgstr "Cancella categoria" -#: part/templates/part/category.html:57 +#: part/templates/part/category.html:61 msgid "Create new part category" msgstr "Crea nuova categoria articoli" -#: part/templates/part/category.html:58 +#: part/templates/part/category.html:62 msgid "New Category" msgstr "Nuova categoria" -#: part/templates/part/category.html:76 part/templates/part/category.html:89 +#: part/templates/part/category.html:80 part/templates/part/category.html:93 msgid "Category Path" msgstr "Percorso Categoria" -#: part/templates/part/category.html:90 +#: part/templates/part/category.html:94 msgid "Top level part category" msgstr "Categoria articolo di livello superiore" -#: part/templates/part/category.html:110 part/templates/part/category.html:201 +#: part/templates/part/category.html:114 part/templates/part/category.html:205 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Sottocategorie" -#: part/templates/part/category.html:115 +#: part/templates/part/category.html:119 msgid "Parts (Including subcategories)" msgstr "Articoli (incluse le sottocategorie)" -#: part/templates/part/category.html:152 +#: part/templates/part/category.html:156 msgid "Export Part Data" msgstr "Esporta dati articolo" -#: part/templates/part/category.html:153 part/templates/part/category.html:177 +#: part/templates/part/category.html:157 part/templates/part/category.html:181 msgid "Export" msgstr "Esporta" -#: part/templates/part/category.html:156 +#: part/templates/part/category.html:160 msgid "Create new part" msgstr "Crea nuovo articolo" -#: part/templates/part/category.html:157 templates/js/translated/bom.js:40 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 msgid "New Part" msgstr "Nuovo articolo" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set category" msgstr "Imposta categoria" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set Category" msgstr "Imposta Categoria" -#: part/templates/part/category.html:175 +#: part/templates/part/category.html:179 msgid "Print Labels" msgstr "Stampa Etichette" -#: part/templates/part/category.html:177 +#: part/templates/part/category.html:181 msgid "Export Data" msgstr "Esporta Dati" -#: part/templates/part/category.html:191 +#: part/templates/part/category.html:195 msgid "Part Parameters" msgstr "Parametri articolo" -#: part/templates/part/category.html:268 +#: part/templates/part/category.html:288 msgid "Create Part Category" msgstr "Crea Categoria Articolo" -#: part/templates/part/category.html:295 +#: part/templates/part/category.html:315 msgid "Create Part" msgstr "Crea Articolo" @@ -4566,24 +4524,24 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:17 +#: part/templates/part/detail.html:21 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:29 +#: part/templates/part/detail.html:33 #, python-format msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:39 +#: part/templates/part/detail.html:43 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:44 +#: part/templates/part/detail.html:48 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:101 +#: part/templates/part/detail.html:105 msgid "Sales Order Allocations" msgstr "Assegnazione Ordine Di Vendita" @@ -4619,7 +4577,7 @@ msgstr "Distinta base" msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:242 +#: part/templates/part/detail.html:242 templates/js/translated/bom.js:70 msgid "Export BOM" msgstr "" @@ -4683,38 +4641,38 @@ msgstr "" msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:651 msgid "Related Part" msgstr "Articoli correlati" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:659 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:760 +#: part/templates/part/detail.html:754 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:817 +#: part/templates/part/detail.html:811 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:930 +#: part/templates/part/detail.html:924 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:942 +#: part/templates/part/detail.html:936 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:954 +#: part/templates/part/detail.html:948 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1043 +#: part/templates/part/detail.html:1037 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4745,20 +4703,20 @@ msgid "Subscribe to notifications for this part" msgstr "" #: part/templates/part/part_base.html:43 -#: stock/templates/stock/item_base.html:28 -#: stock/templates/stock/location.html:29 +#: stock/templates/stock/item_base.html:34 +#: stock/templates/stock/location.html:33 msgid "Barcode actions" msgstr "Azioni Barcode" #: part/templates/part/part_base.html:45 -#: stock/templates/stock/item_base.html:32 -#: stock/templates/stock/location.html:31 templates/qr_button.html:1 +#: stock/templates/stock/item_base.html:38 +#: stock/templates/stock/location.html:35 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Mostra QR Code" #: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:48 -#: stock/templates/stock/location.html:32 +#: stock/templates/stock/item_base.html:54 +#: stock/templates/stock/location.html:36 msgid "Print Label" msgstr "Stampa Etichetta" @@ -4767,8 +4725,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:103 -#: stock/templates/stock/location.html:40 +#: stock/templates/stock/item_base.html:109 +#: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "Azioni magazzino" @@ -4848,7 +4806,7 @@ msgstr "" msgid "In Stock" msgstr "In magazzino" -#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1235 +#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1237 msgid "On Order" msgstr "Ordinato" @@ -4864,12 +4822,12 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:566 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1066 -#: templates/js/translated/part.js:1239 +#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1068 +#: templates/js/translated/part.js:1241 msgid "Building" msgstr "" @@ -4882,7 +4840,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:159 +#: stock/templates/stock/item_base.html:165 msgid "Search for serial number" msgstr "" @@ -4921,7 +4879,7 @@ msgid "Total Cost" msgstr "Costo Totale" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:520 +#: templates/js/translated/bom.js:632 msgid "No supplier pricing available" msgstr "" @@ -5036,7 +4994,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626 msgid "Supplier Cost" msgstr "" @@ -5058,7 +5016,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1788 +#: part/templates/part/prices.html:215 part/views.py:1784 msgid "Add Internal Price Break" msgstr "" @@ -5078,9 +5036,9 @@ msgstr "" msgid "Set category for the following parts" msgstr "Imposta categoria per i seguenti articoli" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476 -#: templates/js/translated/part.js:436 templates/js/translated/part.js:1056 -#: templates/js/translated/part.js:1243 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588 +#: templates/js/translated/part.js:436 templates/js/translated/part.js:1058 +#: templates/js/translated/part.js:1245 msgid "No Stock" msgstr "Nessuna giacenza" @@ -5154,67 +5112,67 @@ msgstr "" msgid "Match Parts" msgstr "" -#: part/views.py:1196 +#: part/views.py:1195 msgid "Export Bill of Materials" msgstr "Esporta Distinta base" -#: part/views.py:1248 +#: part/views.py:1244 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1255 +#: part/views.py:1251 msgid "Part was deleted" msgstr "" -#: part/views.py:1264 +#: part/views.py:1260 msgid "Part Pricing" msgstr "" -#: part/views.py:1413 +#: part/views.py:1409 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1423 +#: part/views.py:1419 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1430 +#: part/views.py:1426 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1489 templates/js/translated/part.js:313 +#: part/views.py:1485 templates/js/translated/part.js:313 msgid "Edit Part Category" msgstr "Modifica Categoria Articoli" -#: part/views.py:1527 +#: part/views.py:1523 msgid "Delete Part Category" msgstr "Elimina categoria" -#: part/views.py:1533 +#: part/views.py:1529 msgid "Part category was deleted" msgstr "La Categoria articoli è stata eliminata" -#: part/views.py:1542 +#: part/views.py:1538 msgid "Create Category Parameter Template" msgstr "Crea Template Parametro Categoria" -#: part/views.py:1643 +#: part/views.py:1639 msgid "Edit Category Parameter Template" msgstr "Modifica Modello Parametro Categoria" -#: part/views.py:1699 +#: part/views.py:1695 msgid "Delete Category Parameter Template" msgstr "Elimina Modello Parametro Categoria" -#: part/views.py:1721 +#: part/views.py:1717 msgid "Added new price break" msgstr "" -#: part/views.py:1797 +#: part/views.py:1793 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1805 +#: part/views.py:1801 msgid "Delete Internal Price Break" msgstr "" @@ -5388,12 +5346,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:514 stock/templates/stock/item_base.html:149 +#: stock/models.py:517 stock/templates/stock/item_base.html:155 #: templates/js/translated/build.js:238 templates/js/translated/build.js:642 #: templates/js/translated/build.js:1018 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415 msgid "Serial Number" msgstr "" @@ -5402,19 +5360,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:1833 +#: stock/models.py:1948 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:1839 +#: stock/models.py:1954 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:49 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367 msgid "Date" msgstr "Data" @@ -5432,17 +5390,18 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434 +#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748 +#: templates/js/translated/stock.js:2627 msgid "Serial" msgstr "Seriale" -#: stock/api.py:446 +#: stock/api.py:478 msgid "Quantity is required" msgstr "La quantità è richiesta" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571 -#: stock/templates/stock/item_base.html:186 -#: templates/js/translated/stock.js:1522 +#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574 +#: stock/templates/stock/item_base.html:192 +#: templates/js/translated/stock.js:1701 msgid "Expiry Date" msgstr "Data di Scadenza" @@ -5490,12 +5449,12 @@ msgstr "Conferma la disinstallazione" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:60 stock/models.py:608 -#: stock/templates/stock/item_base.html:417 +#: stock/models.py:60 stock/models.py:611 +#: stock/templates/stock/item_base.html:415 msgid "Owner" msgstr "" -#: stock/models.py:61 stock/models.py:609 +#: stock/models.py:61 stock/models.py:612 msgid "Select Owner" msgstr "Seleziona Owner" @@ -5528,150 +5487,190 @@ msgstr "" msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:460 +#: stock/models.py:461 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:470 msgid "Base part" msgstr "Articolo base" -#: stock/models.py:477 +#: stock/models.py:478 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:482 stock/templates/stock/location.html:12 +#: stock/models.py:484 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Ubicazione magazzino" -#: stock/models.py:485 +#: stock/models.py:487 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:492 +#: stock/models.py:494 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:497 stock/templates/stock/item_base.html:299 +#: stock/models.py:500 stock/templates/stock/item_base.html:297 msgid "Installed In" msgstr "Installato In" -#: stock/models.py:500 +#: stock/models.py:503 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:516 +#: stock/models.py:519 msgid "Serial number for this item" msgstr "" -#: stock/models.py:530 +#: stock/models.py:533 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:534 +#: stock/models.py:537 msgid "Stock Quantity" msgstr "Quantità disponibile" -#: stock/models.py:543 +#: stock/models.py:546 msgid "Source Build" msgstr "" -#: stock/models.py:545 +#: stock/models.py:548 msgid "Build for this stock item" msgstr "" -#: stock/models.py:556 +#: stock/models.py:559 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:559 +#: stock/models.py:562 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:565 +#: stock/models.py:568 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:572 +#: stock/models.py:575 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete on deplete" msgstr "Elimina al esaurimento" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:595 stock/templates/stock/item.html:111 +#: stock/models.py:598 stock/templates/stock/item.html:111 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:604 +#: stock/models.py:607 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1072 +#: stock/models.py:1068 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1078 +#: stock/models.py:1074 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1084 +#: stock/models.py:1080 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1087 +#: stock/models.py:1083 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1090 +#: stock/models.py:1086 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1097 +#: stock/models.py:1093 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1255 +#: stock/models.py:1164 +msgid "Stock item has been assigned to a sales order" +msgstr "" + +#: stock/models.py:1167 +msgid "Stock item is installed in another item" +msgstr "" + +#: stock/models.py:1170 +msgid "Stock item contains other items" +msgstr "" + +#: stock/models.py:1173 +msgid "Stock item has been assigned to a customer" +msgstr "" + +#: stock/models.py:1176 +msgid "Stock item is currently in production" +msgstr "" + +#: stock/models.py:1179 +msgid "Serialized stock cannot be merged" +msgstr "" + +#: stock/models.py:1186 stock/serializers.py:773 +msgid "Duplicate stock items" +msgstr "" + +#: stock/models.py:1190 +msgid "Stock items must refer to the same part" +msgstr "" + +#: stock/models.py:1194 +msgid "Stock items must refer to the same supplier part" +msgstr "" + +#: stock/models.py:1198 +msgid "Stock status codes must match" +msgstr "" + +#: stock/models.py:1369 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1753 +#: stock/models.py:1868 msgid "Entry notes" msgstr "" -#: stock/models.py:1810 +#: stock/models.py:1925 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1931 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1834 +#: stock/models.py:1949 msgid "Test name" msgstr "" -#: stock/models.py:1840 templates/js/translated/table_filters.js:271 +#: stock/models.py:1955 templates/js/translated/table_filters.js:271 msgid "Test result" msgstr "" -#: stock/models.py:1846 +#: stock/models.py:1961 msgid "Test output value" msgstr "" -#: stock/models.py:1853 +#: stock/models.py:1968 msgid "Test result attachment" msgstr "" -#: stock/models.py:1859 +#: stock/models.py:1974 msgid "Test notes" msgstr "" @@ -5696,7 +5695,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:814 +#: stock/serializers.py:326 stock/serializers.py:730 stock/serializers.py:971 msgid "Destination stock location" msgstr "Posizione magazzino di destinazione" @@ -5708,39 +5707,63 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:573 +#: stock/serializers.py:587 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:577 +#: stock/serializers.py:591 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:581 +#: stock/serializers.py:595 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:611 +#: stock/serializers.py:625 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:617 +#: stock/serializers.py:631 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:639 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:635 stock/serializers.py:722 +#: stock/serializers.py:649 stock/serializers.py:879 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:684 +#: stock/serializers.py:737 +msgid "Stock merging notes" +msgstr "" + +#: stock/serializers.py:742 +msgid "Allow mismatched suppliers" +msgstr "" + +#: stock/serializers.py:743 +msgid "Allow stock items with different supplier parts to be merged" +msgstr "" + +#: stock/serializers.py:748 +msgid "Allow mismatched status" +msgstr "" + +#: stock/serializers.py:749 +msgid "Allow stock items with different status codes to be merged" +msgstr "" + +#: stock/serializers.py:759 +msgid "At least two stock items must be provided" +msgstr "" + +#: stock/serializers.py:841 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:712 +#: stock/serializers.py:869 msgid "Stock transaction notes" msgstr "" @@ -5765,7 +5788,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50 +#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:56 msgid "Test Report" msgstr "" @@ -5797,197 +5820,189 @@ msgstr "" msgid "Delete Test Result" msgstr "" -#: stock/templates/stock/item_base.html:35 +#: stock/templates/stock/item_base.html:41 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:37 +#: stock/templates/stock/item_base.html:43 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24 +#: stock/templates/stock/item_base.html:45 templates/stock_table.html:24 msgid "Scan to Location" msgstr "Scansiona nella posizione" -#: stock/templates/stock/item_base.html:46 +#: stock/templates/stock/item_base.html:52 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:71 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:47 templates/stock_table.html:50 +#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/location.html:51 templates/stock_table.html:50 msgid "Count stock" msgstr "Conta giacenza" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:78 templates/stock_table.html:48 msgid "Add stock" msgstr "Aggiungi giacenza" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49 +#: stock/templates/stock/item_base.html:81 templates/stock_table.html:49 msgid "Remove stock" msgstr "Rimuovi giacenza" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:84 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:53 +#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/location.html:57 msgid "Transfer stock" msgstr "Trasferisci giacenza" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53 +#: stock/templates/stock/item_base.html:91 templates/stock_table.html:54 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:94 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:108 +#: stock/templates/stock/item_base.html:114 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/item_base.html:117 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:119 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:116 +#: stock/templates/stock/item_base.html:122 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "previous page" msgstr "pagina precedente" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "next page" msgstr "pagina successiva" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/stock.js:1535 +#: stock/templates/stock/item_base.html:205 +#: templates/js/translated/stock.js:1714 msgid "Last Updated" msgstr "Ultimo aggiornamento" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Last Stocktake" msgstr "Ultimo Inventario" -#: stock/templates/stock/item_base.html:208 +#: stock/templates/stock/item_base.html:214 msgid "No stocktake performed" msgstr "Nessun inventario eseguito" -#: stock/templates/stock/item_base.html:226 +#: stock/templates/stock/item_base.html:232 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:239 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:234 +#: stock/templates/stock/item_base.html:240 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:247 +#: stock/templates/stock/item_base.html:253 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:261 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:263 +#: stock/templates/stock/item_base.html:269 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:269 +#: stock/templates/stock/item_base.html:275 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:273 -msgid "This stock item cannot be deleted as it has child items" -msgstr "" - -#: stock/templates/stock/item_base.html:277 -msgid "This stock item will be automatically deleted when all stock is depleted." -msgstr "" - -#: stock/templates/stock/item_base.html:318 +#: stock/templates/stock/item_base.html:316 #: templates/js/translated/build.js:1040 msgid "No location set" msgstr "Nessuna posizione impostata" -#: stock/templates/stock/item_base.html:325 +#: stock/templates/stock/item_base.html:323 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:367 +#: stock/templates/stock/item_base.html:365 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:385 +#: stock/templates/stock/item_base.html:383 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:410 +#: stock/templates/stock/item_base.html:408 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:500 +#: stock/templates/stock/item_base.html:498 msgid "Edit Stock Status" msgstr "" @@ -6041,59 +6056,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:37 msgid "Check-in Items" msgstr "Articoli controllati" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:65 msgid "Location actions" msgstr "Azioni posizione" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:67 msgid "Edit location" msgstr "Modifica la posizione" -#: stock/templates/stock/location.html:65 +#: stock/templates/stock/location.html:69 msgid "Delete location" msgstr "Elimina la posizione" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:79 msgid "Create new stock location" msgstr "Crea nuova posizione di magazzino" -#: stock/templates/stock/location.html:76 +#: stock/templates/stock/location.html:80 msgid "New Location" msgstr "Nuova Posizione" -#: stock/templates/stock/location.html:95 -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:99 +#: stock/templates/stock/location.html:105 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:102 +#: stock/templates/stock/location.html:106 msgid "Top level stock location" msgstr "Posizione stock di livello superiore" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:119 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "Non sei nell'elenco dei proprietari di questa posizione. Questa posizione di giacenza non può essere modificata." -#: stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:175 +#: stock/templates/stock/location.html:132 +#: stock/templates/stock/location.html:179 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Sottoallocazioni" -#: stock/templates/stock/location.html:142 templates/InvenTree/search.html:170 +#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "Posizioni magazzino" -#: stock/templates/stock/location.html:182 templates/stock_table.html:30 +#: stock/templates/stock/location.html:186 templates/stock_table.html:30 msgid "Printing Actions" msgstr "Azioni di stampa" -#: stock/templates/stock/location.html:186 templates/stock_table.html:34 +#: stock/templates/stock/location.html:190 templates/stock_table.html:34 msgid "Print labels" msgstr "Stampa etichette" @@ -6178,7 +6193,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:887 +#: stock/views.py:727 templates/js/translated/stock.js:1066 msgid "Confirm stock adjustment" msgstr "" @@ -6186,7 +6201,7 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:323 +#: stock/views.py:760 templates/js/translated/stock.js:324 msgid "Edit Stock Item" msgstr "" @@ -6198,7 +6213,7 @@ msgstr "Crea una nuova Posizione di Giacenza" msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:303 +#: stock/views.py:1153 templates/js/translated/stock.js:304 msgid "Duplicate Stock Item" msgstr "" @@ -6314,10 +6329,6 @@ msgstr "" msgid "Search Results" msgstr "Risultati della Ricerca" -#: templates/InvenTree/search.html:22 -msgid "Enter a search query" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6363,7 +6374,7 @@ msgstr "Impostazioni Server" msgid "Login Settings" msgstr "Impostazioni di accesso" -#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5 +#: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5 msgid "Signup" msgstr "Registrati" @@ -6648,7 +6659,7 @@ msgstr "Nome" msgid "Last Name" msgstr "Cognome" -#: templates/InvenTree/settings/user.html:55 +#: templates/InvenTree/settings/user.html:54 msgid "The following email addresses are associated with your account:" msgstr "" @@ -6673,145 +6684,193 @@ msgid "Re-send Verification" msgstr "Re-invia il codice di verifica" #: templates/InvenTree/settings/user.html:87 -#: templates/InvenTree/settings/user.html:154 +#: templates/InvenTree/settings/user.html:149 msgid "Remove" msgstr "Rimuovi" -#: templates/InvenTree/settings/user.html:94 +#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:201 msgid "Warning:" msgstr "Attenzione:" -#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:96 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:102 +#: templates/InvenTree/settings/user.html:104 msgid "Add Email Address" msgstr "Aggiungi indirizzo email" -#: templates/InvenTree/settings/user.html:112 -msgid "Enter e-mail address" -msgstr "Inserisci il tuo indirizzo email" - -#: templates/InvenTree/settings/user.html:114 +#: templates/InvenTree/settings/user.html:109 msgid "Add Email" msgstr "Aggiungi Email" -#: templates/InvenTree/settings/user.html:124 +#: templates/InvenTree/settings/user.html:117 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:129 +#: templates/InvenTree/settings/user.html:122 msgid "You can sign in to your account using any of the following third party accounts:" msgstr "" -#: templates/InvenTree/settings/user.html:163 -msgid "There are no social network accounts connected to your InvenTree account" +#: templates/InvenTree/settings/user.html:157 +msgid "You currently have no social network accounts connected to this account." msgstr "" -#: templates/InvenTree/settings/user.html:168 +#: templates/InvenTree/settings/user.html:162 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:179 -msgid "Active Sessions" +#: templates/InvenTree/settings/user.html:172 +msgid "Multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:185 -msgid "Log out active sessions (except this one)" +#: templates/InvenTree/settings/user.html:177 +msgid "You have these factors available:" msgstr "" -#: templates/InvenTree/settings/user.html:186 -msgid "Log Out Active Sessions" +#: templates/InvenTree/settings/user.html:187 +msgid "TOTP" 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" +#: templates/InvenTree/settings/user.html:193 +msgid "Static" msgstr "" #: templates/InvenTree/settings/user.html:202 -msgid "Last Activity" +msgid "You currently do not have any factors set up." msgstr "" -#: templates/InvenTree/settings/user.html:211 -#, python-format -msgid "%(time)s ago (this session)" +#: templates/InvenTree/settings/user.html:209 +msgid "Change factors" msgstr "" -#: templates/InvenTree/settings/user.html:213 -#, python-format -msgid "%(time)s ago" +#: templates/InvenTree/settings/user.html:210 +msgid "Setup multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:224 -msgid "Do you really want to remove the selected email address?" +#: templates/InvenTree/settings/user.html:212 +msgid "Remove multifactor" msgstr "" +#: templates/InvenTree/settings/user.html:219 #: templates/InvenTree/settings/user_display.html:25 msgid "Theme Settings" msgstr "" +#: templates/InvenTree/settings/user.html:227 #: templates/InvenTree/settings/user_display.html:35 msgid "Select theme" msgstr "" +#: templates/InvenTree/settings/user.html:237 #: templates/InvenTree/settings/user_display.html:46 msgid "Set Theme" msgstr "" +#: templates/InvenTree/settings/user.html:246 #: templates/InvenTree/settings/user_display.html:54 msgid "Language Settings" msgstr "" +#: templates/InvenTree/settings/user.html:254 #: templates/InvenTree/settings/user_display.html:63 msgid "Select language" msgstr "" +#: templates/InvenTree/settings/user.html:270 #: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" +#: templates/InvenTree/settings/user.html:272 #: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" +#: templates/InvenTree/settings/user.html:279 #: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" +#: templates/InvenTree/settings/user.html:281 #: templates/InvenTree/settings/user_display.html:91 msgid "Some languages are not complete" msgstr "" +#: templates/InvenTree/settings/user.html:283 #: 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.html:285 #: templates/InvenTree/settings/user_display.html:95 msgid "Show them too" msgstr "" +#: templates/InvenTree/settings/user.html:292 #: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" +#: templates/InvenTree/settings/user.html:293 +#, python-format +msgid "Native language translation of the\n" +" InvenTree web application is community contributed via crowdin. Contributions are\n" +" welcomed and encouraged." +msgstr "" + +#: templates/InvenTree/settings/user.html:302 +msgid "Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:308 +msgid "Log out active sessions (except this one)" +msgstr "" + +#: templates/InvenTree/settings/user.html:309 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:318 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:319 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:323 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:324 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:325 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:334 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:336 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:348 +msgid "Do you really want to remove the selected email address?" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +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." @@ -6830,7 +6889,7 @@ msgid "InvenTree Version Information" msgstr "Informazioni Versione InvenTree" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53 +#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53 #: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662 #: templates/js/translated/modals.js:965 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 @@ -7007,6 +7066,71 @@ msgstr "" msgid "View in administration panel" msgstr "Visualizza nel pannello di amministrazione" +#: templates/allauth_2fa/authenticate.html:5 +msgid "Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:12 +msgid "Authenticate" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:6 +msgid "Two-Factor Authentication Backup Tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:17 +msgid "Backup tokens have been generated, but are not revealed here for security reasons. Press the button below to generate new ones." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:20 +msgid "No tokens. Press the button below to generate some." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:27 +msgid "Generate backup tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:31 +#: templates/allauth_2fa/setup.html:40 +msgid "back to settings" +msgstr "" + +#: templates/allauth_2fa/remove.html:6 +msgid "Disable Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/remove.html:9 +msgid "Are you sure?" +msgstr "" + +#: templates/allauth_2fa/remove.html:14 +msgid "Disable Two-Factor" +msgstr "" + +#: templates/allauth_2fa/setup.html:6 +msgid "Setup Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/setup.html:10 +msgid "Step 1" +msgstr "" + +#: templates/allauth_2fa/setup.html:14 +msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." +msgstr "" + +#: templates/allauth_2fa/setup.html:23 +msgid "Step 2" +msgstr "" + +#: templates/allauth_2fa/setup.html:27 +msgid "Input a token generated by the app:" +msgstr "" + +#: templates/allauth_2fa/setup.html:35 +msgid "Verify" +msgstr "" + #: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 msgid "Add Link" msgstr "" @@ -7045,13 +7169,13 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:1103 msgid "Required Quantity" msgstr "Quantità richiesta" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134 +#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1134 #: templates/js/translated/build.js:1755 #: templates/js/translated/table_filters.js:178 msgid "Available" @@ -7240,7 +7364,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018 msgid "Remove stock item" msgstr "" @@ -7282,91 +7406,153 @@ msgstr "Controlla Nella Posizione" msgid "Barcode does not match a valid location" msgstr "Il codice a barre non corrisponde a una posizione valida" -#: templates/js/translated/bom.js:184 +#: templates/js/translated/bom.js:36 +msgid "Download BOM Template" +msgstr "" + +#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510 +msgid "Format" +msgstr "Formato" + +#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511 +msgid "Select file format" +msgstr "" + +#: templates/js/translated/bom.js:81 +msgid "Cascading" +msgstr "" + +#: templates/js/translated/bom.js:82 +msgid "Download cascading / multi-level BOM" +msgstr "" + +#: templates/js/translated/bom.js:87 +msgid "Levels" +msgstr "" + +#: templates/js/translated/bom.js:88 +msgid "Select maximum number of BOM levels to export (0 = all levels)" +msgstr "" + +#: templates/js/translated/bom.js:94 +msgid "Include Parameter Data" +msgstr "" + +#: templates/js/translated/bom.js:95 +msgid "Include part parameter data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:100 +msgid "Include Stock Data" +msgstr "" + +#: templates/js/translated/bom.js:101 +msgid "Include part stock data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:106 +msgid "Include Manufacturer Data" +msgstr "" + +#: templates/js/translated/bom.js:107 +msgid "Include part manufacturer data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:112 +msgid "Include Supplier Data" +msgstr "" + +#: templates/js/translated/bom.js:113 +msgid "Include part supplier data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:296 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:228 +#: templates/js/translated/bom.js:340 msgid "Select and add a new variant item using the input below" msgstr "" -#: templates/js/translated/bom.js:239 +#: templates/js/translated/bom.js:351 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:245 +#: templates/js/translated/bom.js:357 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:284 +#: templates/js/translated/bom.js:396 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:285 +#: templates/js/translated/bom.js:397 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:404 +#: templates/js/translated/bom.js:516 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116 +#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1116 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:413 +#: templates/js/translated/bom.js:525 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:485 +#: templates/js/translated/bom.js:597 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:500 +#: templates/js/translated/bom.js:612 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:507 +#: templates/js/translated/bom.js:619 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645 +#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:616 +#: templates/js/translated/bom.js:728 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:618 +#: templates/js/translated/bom.js:730 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:620 +#: templates/js/translated/bom.js:732 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796 +#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779 +#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860 +#: templates/js/translated/bom.js:830 templates/js/translated/build.js:860 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:774 +#: templates/js/translated/bom.js:886 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100 +#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1100 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:996 +#: templates/js/translated/bom.js:1108 msgid "Inherited from parent BOM" msgstr "" @@ -7465,7 +7651,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1199 templates/stock_table.html:52 +#: templates/js/translated/build.js:1199 templates/stock_table.html:53 msgid "Order stock" msgstr "" @@ -7510,9 +7696,9 @@ msgstr "" msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147 -#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333 -#: templates/js/translated/stock.js:2128 +#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1149 +#: templates/js/translated/part.js:1560 templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:2321 msgid "Select" msgstr "" @@ -7520,7 +7706,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347 +#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2540 msgid "No user information" msgstr "" @@ -7683,20 +7869,20 @@ msgstr "Mostra operazione non consentita" msgid "Enter a valid number" msgstr "Inserisci un numero valido" -#: templates/js/translated/forms.js:1078 templates/modals.html:19 +#: templates/js/translated/forms.js:1080 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1469 +#: templates/js/translated/forms.js:1471 msgid "No results found" msgstr "Nessun risultato trovato" -#: templates/js/translated/forms.js:1673 +#: templates/js/translated/forms.js:1675 msgid "Searching" msgstr "Ricerca" -#: templates/js/translated/forms.js:1893 +#: templates/js/translated/forms.js:1895 msgid "Clear input" msgstr "Cancella input" @@ -7709,7 +7895,7 @@ msgid "NO" msgstr "NO" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:863 +#: templates/js/translated/stock.js:1042 msgid "Select Stock Items" msgstr "" @@ -7889,14 +8075,6 @@ msgstr "" msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509 -msgid "Format" -msgstr "Formato" - -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510 -msgid "Select file format" -msgstr "" - #: templates/js/translated/order.js:460 msgid "Select Line Items" msgstr "" @@ -7909,7 +8087,7 @@ msgstr "" msgid "Quantity to receive" msgstr "Quantità da ricevere" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123 msgid "Stock Status" msgstr "Stato giacenza" @@ -7958,7 +8136,7 @@ msgid "Total" msgstr "Totale" #: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163 -#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986 +#: templates/js/translated/part.js:1777 templates/js/translated/part.js:1988 msgid "Unit Price" msgstr "Prezzo Unitario" @@ -8043,7 +8221,7 @@ msgid "Delete Stock Allocation" msgstr "Elimina posizione giacenza" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1249 +#: templates/js/translated/stock.js:1428 msgid "Shipped to customer" msgstr "Spedito al cliente" @@ -8207,92 +8385,92 @@ msgstr "Parte vendibile" msgid "No variants found" msgstr "Nessuna variante trovata" -#: templates/js/translated/part.js:946 +#: templates/js/translated/part.js:948 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:970 +#: templates/js/translated/part.js:972 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1037 templates/js/translated/part.js:1297 +#: templates/js/translated/part.js:1039 templates/js/translated/part.js:1299 msgid "No parts found" msgstr "Nessun articolo trovato" -#: templates/js/translated/part.js:1207 +#: templates/js/translated/part.js:1209 msgid "No category" msgstr "Nessuna categoria" -#: templates/js/translated/part.js:1230 +#: templates/js/translated/part.js:1232 #: templates/js/translated/table_filters.js:412 msgid "Low stock" msgstr "In esaurimento" -#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493 -#: templates/js/translated/stock.js:2089 +#: templates/js/translated/part.js:1323 templates/js/translated/part.js:1495 +#: templates/js/translated/stock.js:2282 msgid "Display as list" msgstr "Visualizza come elenco" -#: templates/js/translated/part.js:1337 +#: templates/js/translated/part.js:1339 msgid "Display as grid" msgstr "Visualizza come griglia" -#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108 +#: templates/js/translated/part.js:1514 templates/js/translated/stock.js:2301 msgid "Display as tree" msgstr "Visualizza come struttura ad albero" -#: templates/js/translated/part.js:1576 +#: templates/js/translated/part.js:1578 msgid "Subscribed category" msgstr "Categoria sottoscritta" -#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152 +#: templates/js/translated/part.js:1592 templates/js/translated/stock.js:2345 msgid "Path" msgstr "Percorso" -#: templates/js/translated/part.js:1634 +#: templates/js/translated/part.js:1636 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055 +#: templates/js/translated/part.js:1687 templates/js/translated/stock.js:1234 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056 +#: templates/js/translated/part.js:1688 templates/js/translated/stock.js:1235 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1692 +#: templates/js/translated/part.js:1694 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1714 +#: templates/js/translated/part.js:1716 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1728 +#: templates/js/translated/part.js:1730 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1753 +#: templates/js/translated/part.js:1755 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1808 +#: templates/js/translated/part.js:1810 #, python-brace-format msgid "Edit ${human_name}" msgstr "Modifica ${human_name}" -#: templates/js/translated/part.js:1809 +#: templates/js/translated/part.js:1811 #, python-brace-format msgid "Delete ${human_name}" msgstr "Elimina ${human_name}" -#: templates/js/translated/part.js:1910 +#: templates/js/translated/part.js:1912 msgid "Single Price" msgstr "Prezzo Singolo" -#: templates/js/translated/part.js:1929 +#: templates/js/translated/part.js:1931 msgid "Single Price Difference" msgstr "" @@ -8366,316 +8544,340 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:72 +#: templates/js/translated/stock.js:73 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173 msgid "Next available serial number" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174 +#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175 msgid "Latest serial number" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:101 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:109 +#: templates/js/translated/stock.js:110 msgid "Parent stock location" msgstr "Posizione giacenza principale" -#: templates/js/translated/stock.js:145 +#: templates/js/translated/stock.js:146 msgid "New Stock Location" msgstr "Nuova posizione giacenza" -#: templates/js/translated/stock.js:185 +#: templates/js/translated/stock.js:186 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:224 +#: templates/js/translated/stock.js:225 msgid "Enter initial quantity for this stock item" msgstr "Inserisci quantità iniziale per questo articolo in giacenza" -#: templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:231 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:373 +#: templates/js/translated/stock.js:374 msgid "Created new stock item" msgstr "Crea nuova allocazione magazzino" -#: templates/js/translated/stock.js:386 +#: templates/js/translated/stock.js:387 msgid "Created multiple stock items" msgstr "Creato più elementi stock" -#: templates/js/translated/stock.js:411 +#: templates/js/translated/stock.js:412 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416 +#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:432 +#: templates/js/translated/stock.js:433 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:452 +#: templates/js/translated/stock.js:453 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:506 +#: templates/js/translated/stock.js:507 msgid "Export Stock" msgstr "Esporta giacenza" -#: templates/js/translated/stock.js:517 +#: templates/js/translated/stock.js:518 msgid "Include Sublocations" msgstr "Includi sotto allocazioni" -#: templates/js/translated/stock.js:518 +#: templates/js/translated/stock.js:519 msgid "Include stock items in sublocations" msgstr "Includi elementi in giacenza nelle sottoallocazioni" -#: templates/js/translated/stock.js:627 +#: templates/js/translated/stock.js:628 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:628 +#: templates/js/translated/stock.js:629 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:713 +#: templates/js/translated/stock.js:706 +msgid "Warning: Merge operation cannot be reversed" +msgstr "" + +#: templates/js/translated/stock.js:707 +msgid "Some information will be lost when merging stock items" +msgstr "" + +#: templates/js/translated/stock.js:709 +msgid "Stock transaction history will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:710 +msgid "Supplier part information will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:796 +msgid "Confirm stock item merge" +msgstr "" + +#: templates/js/translated/stock.js:797 +msgid "Merge Stock Items" +msgstr "" + +#: templates/js/translated/stock.js:892 msgid "Transfer Stock" msgstr "Trasferisci giacenza" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:893 msgid "Move" msgstr "Sposta" -#: templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:899 msgid "Count Stock" msgstr "Conta giacenza" -#: templates/js/translated/stock.js:721 +#: templates/js/translated/stock.js:900 msgid "Count" msgstr "Conta" -#: templates/js/translated/stock.js:725 +#: templates/js/translated/stock.js:904 msgid "Remove Stock" msgstr "Rimuovi giacenza" -#: templates/js/translated/stock.js:726 +#: templates/js/translated/stock.js:905 msgid "Take" msgstr "Prendi" -#: templates/js/translated/stock.js:730 +#: templates/js/translated/stock.js:909 msgid "Add Stock" msgstr "Aggiungi giacenza" -#: templates/js/translated/stock.js:731 users/models.py:202 +#: templates/js/translated/stock.js:910 users/models.py:205 msgid "Add" msgstr "Aggiungi" -#: templates/js/translated/stock.js:735 templates/stock_table.html:57 +#: templates/js/translated/stock.js:914 templates/stock_table.html:58 msgid "Delete Stock" msgstr "Elimina Stock" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Specify stock quantity" msgstr "Specificare la quantità di magazzino" -#: templates/js/translated/stock.js:864 +#: templates/js/translated/stock.js:1043 msgid "You must select at least one available stock item" msgstr "Devi selezionare almeno un articolo disponibile" -#: templates/js/translated/stock.js:1022 +#: templates/js/translated/stock.js:1201 msgid "PASS" msgstr "PASS" -#: templates/js/translated/stock.js:1024 +#: templates/js/translated/stock.js:1203 msgid "FAIL" msgstr "FAIL" -#: templates/js/translated/stock.js:1029 +#: templates/js/translated/stock.js:1208 msgid "NO RESULT" msgstr "NESSUN RISULTATO" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1230 msgid "Add test result" msgstr "Aggiungi risultato test" -#: templates/js/translated/stock.js:1077 +#: templates/js/translated/stock.js:1256 msgid "No test results found" msgstr "Nessun risultato di prova trovato" -#: templates/js/translated/stock.js:1134 +#: templates/js/translated/stock.js:1313 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1420 msgid "In production" msgstr "In produzione" -#: templates/js/translated/stock.js:1245 +#: templates/js/translated/stock.js:1424 msgid "Installed in Stock Item" msgstr "Installato nell'elemento stock" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1432 msgid "Assigned to Sales Order" msgstr "Assegnato all'ordine di vendita" -#: templates/js/translated/stock.js:1259 +#: templates/js/translated/stock.js:1438 msgid "No stock location set" msgstr "Nessuna giacenza impostata" -#: templates/js/translated/stock.js:1417 +#: templates/js/translated/stock.js:1596 msgid "Stock item is in production" msgstr "L'articolo di magazzino è in produzione" -#: templates/js/translated/stock.js:1422 +#: templates/js/translated/stock.js:1601 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1425 +#: templates/js/translated/stock.js:1604 msgid "Stock item assigned to customer" msgstr "Articolo stock assegnato al cliente" -#: templates/js/translated/stock.js:1429 +#: templates/js/translated/stock.js:1608 msgid "Stock item has expired" msgstr "L'articolo stock è scaduto" -#: templates/js/translated/stock.js:1431 +#: templates/js/translated/stock.js:1610 msgid "Stock item will expire soon" msgstr "Articolo in giacenza prossimo alla scadenza" -#: templates/js/translated/stock.js:1437 +#: templates/js/translated/stock.js:1616 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1618 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1441 +#: templates/js/translated/stock.js:1620 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1625 msgid "Stock item has been installed in another item" msgstr "L'elemento stock è stato installato in un altro articolo" -#: templates/js/translated/stock.js:1453 +#: templates/js/translated/stock.js:1632 msgid "Stock item has been rejected" msgstr "L'articolo stock è stato rifiutato" -#: templates/js/translated/stock.js:1455 +#: templates/js/translated/stock.js:1634 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1457 +#: templates/js/translated/stock.js:1636 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1461 +#: templates/js/translated/stock.js:1640 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "Esaurito" -#: templates/js/translated/stock.js:1511 +#: templates/js/translated/stock.js:1690 msgid "Stocktake" msgstr "Inventario" -#: templates/js/translated/stock.js:1584 +#: templates/js/translated/stock.js:1763 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1622 +#: templates/js/translated/stock.js:1801 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691 +#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870 msgid "items" msgstr "elementi" -#: templates/js/translated/stock.js:1731 +#: templates/js/translated/stock.js:1910 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1758 +#: templates/js/translated/stock.js:1937 msgid "locations" msgstr "posizione" -#: templates/js/translated/stock.js:1760 +#: templates/js/translated/stock.js:1939 msgid "Undefined location" msgstr "Posizione non definita" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2138 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1959 +#: templates/js/translated/stock.js:2152 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1960 +#: templates/js/translated/stock.js:2153 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2377 msgid "Invalid date" msgstr "Data non valida" -#: templates/js/translated/stock.js:2206 +#: templates/js/translated/stock.js:2399 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2231 +#: templates/js/translated/stock.js:2424 msgid "Location no longer exists" msgstr "La posizione non esiste più" -#: templates/js/translated/stock.js:2250 +#: templates/js/translated/stock.js:2443 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2269 +#: templates/js/translated/stock.js:2462 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2480 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2310 +#: templates/js/translated/stock.js:2503 msgid "Added" msgstr "Aggiunto" -#: templates/js/translated/stock.js:2318 +#: templates/js/translated/stock.js:2511 msgid "Removed" msgstr "Rimosso" -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2552 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2360 +#: templates/js/translated/stock.js:2553 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2411 +#: templates/js/translated/stock.js:2604 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2462 +#: templates/js/translated/stock.js:2655 msgid "Uninstall Stock Item" msgstr "" @@ -9060,18 +9262,26 @@ msgid "Move stock" msgstr "Sposta giacenza" #: templates/stock_table.html:52 +msgid "Merge selected stock items" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Merge stock" +msgstr "" + +#: templates/stock_table.html:53 msgid "Order selected items" msgstr "Ordina articolo selezionato" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change status" msgstr "Modifica stato" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change stock status" msgstr "Modifica stato stock" -#: templates/stock_table.html:57 +#: templates/stock_table.html:58 msgid "Delete selected items" msgstr "Elimina articoli selezionati" @@ -9107,35 +9317,35 @@ msgstr "Permessi" msgid "Important dates" msgstr "Date Importanti" -#: users/models.py:189 +#: users/models.py:192 msgid "Permission set" msgstr "Impostazione autorizzazioni" -#: users/models.py:197 +#: users/models.py:200 msgid "Group" msgstr "Gruppo" -#: users/models.py:200 +#: users/models.py:203 msgid "View" msgstr "Visualizza" -#: users/models.py:200 +#: users/models.py:203 msgid "Permission to view items" msgstr "Autorizzazione a visualizzare gli articoli" -#: users/models.py:202 +#: users/models.py:205 msgid "Permission to add items" msgstr "Autorizzazione ad aggiungere elementi" -#: users/models.py:204 +#: users/models.py:207 msgid "Change" msgstr "Modificare" -#: users/models.py:204 +#: users/models.py:207 msgid "Permissions to edit items" msgstr "Permessi per modificare gli elementi" -#: users/models.py:206 +#: users/models.py:209 msgid "Permission to delete items" msgstr "Autorizzazione ad eliminare gli elementi" diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po index 84bec02c3a..2452dd64d8 100644 --- a/InvenTree/locale/ja/LC_MESSAGES/django.po +++ b/InvenTree/locale/ja/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-12-08 23:43+0000\n" -"PO-Revision-Date: 2021-12-08 23:47\n" +"POT-Creation-Date: 2021-12-21 02:57+0000\n" +"PO-Revision-Date: 2021-12-21 03:01\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -34,50 +34,50 @@ msgstr "一致するアクションが見つかりませんでした" msgid "Enter date" msgstr "日付を入力する" -#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93 +#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 build/forms.py:93 #: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: part/forms.py:108 templates/account/email_confirm.html:20 +#: part/forms.py:78 templates/account/email_confirm.html:20 #: templates/js/translated/forms.js:595 msgid "Confirm" msgstr "確認" -#: InvenTree/forms.py:136 +#: InvenTree/forms.py:142 msgid "Confirm delete" msgstr "削除の確認" -#: InvenTree/forms.py:137 +#: InvenTree/forms.py:143 msgid "Confirm item deletion" msgstr "削除の確認" -#: InvenTree/forms.py:168 +#: InvenTree/forms.py:174 msgid "Enter password" msgstr "パスワードを入力してください" -#: InvenTree/forms.py:169 +#: InvenTree/forms.py:175 msgid "Enter new password" msgstr "新しいパスワードを入力してください。" -#: InvenTree/forms.py:176 +#: InvenTree/forms.py:182 msgid "Confirm password" msgstr "パスワードの確認" -#: InvenTree/forms.py:177 +#: InvenTree/forms.py:183 msgid "Confirm new password" msgstr "新しいパスワードの確認" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:215 msgid "Select Category" msgstr "カテゴリの選択" -#: InvenTree/forms.py:230 +#: InvenTree/forms.py:236 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:234 +#: InvenTree/forms.py:240 msgid "Email address confirmation" msgstr "" -#: InvenTree/forms.py:254 +#: InvenTree/forms.py:260 msgid "You must type the same email each time." msgstr "" @@ -123,7 +123,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:132 stock/models.py:1852 +#: InvenTree/models.py:132 stock/models.py:1967 #: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "添付ファイル" @@ -136,12 +136,12 @@ msgstr "添付ファイルを選択" #: company/models.py:564 order/models.py:124 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:1258 +#: templates/js/translated/company.js:826 templates/js/translated/part.js:1260 msgid "Link" msgstr "" #: InvenTree/models.py:140 build/models.py:330 part/models.py:798 -#: stock/models.py:524 +#: stock/models.py:527 msgid "Link to external URL" msgstr "" @@ -153,10 +153,10 @@ msgstr "コメント:" msgid "File comment" msgstr "ファイルコメント" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213 -#: common/models.py:1214 part/models.py:2205 part/models.py:2225 +#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1219 +#: common/models.py:1220 part/models.py:2205 part/models.py:2225 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2341 +#: templates/js/translated/stock.js:2534 msgid "User" msgstr "ユーザー" @@ -202,8 +202,8 @@ msgstr "無効な選択です" #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:268 #: templates/js/translated/company.js:638 templates/js/translated/part.js:506 -#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565 -#: templates/js/translated/stock.js:2134 +#: templates/js/translated/part.js:643 templates/js/translated/part.js:1567 +#: templates/js/translated/stock.js:2327 msgid "Name" msgstr "お名前" @@ -212,23 +212,23 @@ msgstr "お名前" #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70 +#: order/models.py:122 part/models.py:764 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:89 +#: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428 +#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540 #: templates/js/translated/build.js:1627 templates/js/translated/company.js:345 #: templates/js/translated/company.js:548 #: templates/js/translated/company.js:837 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 -#: templates/js/translated/part.js:565 templates/js/translated/part.js:933 -#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188 -#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653 -#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146 -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/part.js:565 templates/js/translated/part.js:935 +#: templates/js/translated/part.js:1020 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1586 templates/js/translated/part.js:1655 +#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339 +#: templates/js/translated/stock.js:2384 msgid "Description" msgstr "説明" @@ -248,83 +248,83 @@ msgstr "有効な数字でなければなりません" msgid "Filename" msgstr "" -#: InvenTree/settings.py:689 +#: InvenTree/settings.py:698 msgid "German" msgstr "ドイツ語" -#: InvenTree/settings.py:690 +#: InvenTree/settings.py:699 msgid "Greek" msgstr "" -#: InvenTree/settings.py:691 +#: InvenTree/settings.py:700 msgid "English" msgstr "英語" -#: InvenTree/settings.py:692 +#: InvenTree/settings.py:701 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:693 +#: InvenTree/settings.py:702 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:694 +#: InvenTree/settings.py:703 msgid "French" msgstr "フランス語" -#: InvenTree/settings.py:695 +#: InvenTree/settings.py:704 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:696 +#: InvenTree/settings.py:705 msgid "Italian" msgstr "" -#: InvenTree/settings.py:697 +#: InvenTree/settings.py:706 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:698 +#: InvenTree/settings.py:707 msgid "Korean" msgstr "" -#: InvenTree/settings.py:699 +#: InvenTree/settings.py:708 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:700 +#: InvenTree/settings.py:709 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:701 +#: InvenTree/settings.py:710 msgid "Polish" msgstr "ポーランド語" -#: InvenTree/settings.py:702 +#: InvenTree/settings.py:711 msgid "Portugese" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:712 msgid "Russian" msgstr "" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:713 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:714 msgid "Thai" msgstr "" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:715 msgid "Turkish" msgstr "トルコ語" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:716 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:717 msgid "Chinese" msgstr "" @@ -341,7 +341,7 @@ msgid "InvenTree system health checks failed" msgstr "InvenTree システムのヘルスチェックに失敗しました" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 msgid "Pending" msgstr "処理待ち" @@ -349,14 +349,14 @@ msgstr "処理待ち" msgid "Placed" msgstr "設置済" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:319 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "完了" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:313 +#: InvenTree/status_codes.py:318 msgid "Cancelled" msgstr "キャンセル済" @@ -370,7 +370,7 @@ msgstr "紛失" msgid "Returned" msgstr "返品済" -#: InvenTree/status_codes.py:143 order/models.py:939 +#: InvenTree/status_codes.py:143 order/models.py:941 #: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255 msgid "Shipped" msgstr "発送済み" @@ -395,83 +395,87 @@ msgstr "" msgid "Rejected" msgstr "却下済み" -#: InvenTree/status_codes.py:269 +#: InvenTree/status_codes.py:272 msgid "Legacy stock tracking entry" msgstr "" -#: InvenTree/status_codes.py:271 +#: InvenTree/status_codes.py:274 msgid "Stock item created" msgstr "" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Edited stock item" msgstr "" -#: InvenTree/status_codes.py:274 +#: InvenTree/status_codes.py:277 msgid "Assigned serial number" msgstr "" -#: InvenTree/status_codes.py:276 +#: InvenTree/status_codes.py:279 msgid "Stock counted" msgstr "" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Stock manually added" msgstr "" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Stock manually removed" msgstr "" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Location changed" msgstr "" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Installed into assembly" msgstr "" -#: InvenTree/status_codes.py:283 +#: InvenTree/status_codes.py:286 msgid "Removed from assembly" msgstr "" -#: InvenTree/status_codes.py:285 +#: InvenTree/status_codes.py:288 msgid "Installed component item" msgstr "" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Removed component item" msgstr "" -#: InvenTree/status_codes.py:288 +#: InvenTree/status_codes.py:291 msgid "Split from parent item" msgstr "" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064 +msgid "Merged stock items" +msgstr "" + +#: InvenTree/status_codes.py:296 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:297 msgid "Returned from customer" msgstr "" -#: InvenTree/status_codes.py:294 +#: InvenTree/status_codes.py:299 msgid "Build order output created" msgstr "" -#: InvenTree/status_codes.py:295 +#: InvenTree/status_codes.py:300 msgid "Build order output completed" msgstr "" -#: InvenTree/status_codes.py:297 +#: InvenTree/status_codes.py:302 msgid "Received against purchase order" msgstr "" -#: InvenTree/status_codes.py:312 +#: InvenTree/status_codes.py:317 msgid "Production" msgstr "" @@ -575,16 +579,16 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1283 -#: build/templates/build/build_base.html:132 -#: build/templates/build/detail.html:35 common/models.py:1253 +#: build/forms.py:36 build/models.py:1286 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1259 #: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:794 order/models.py:1205 order/serializers.py:810 +#: order/models.py:796 order/models.py:1207 order/serializers.py:810 #: order/templates/order/order_wizard/match_parts.html:30 -#: 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 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:193 +#: part/forms.py:209 part/forms.py:225 part/models.py:2576 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:967 part/templates/part/detail.html:1053 +#: part/templates/part/detail.html:961 part/templates/part/detail.html:1047 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -592,10 +596,10 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:174 -#: stock/templates/stock/item_base.html:255 -#: stock/templates/stock/item_base.html:263 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443 +#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:261 +#: stock/templates/stock/item_base.html:269 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555 #: templates/js/translated/build.js:240 templates/js/translated/build.js:440 #: templates/js/translated/build.js:634 templates/js/translated/build.js:644 #: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367 @@ -604,10 +608,10 @@ msgstr "" #: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 #: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 #: templates/js/translated/order.js:2150 templates/js/translated/part.js:843 -#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919 -#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382 -#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326 -#: templates/js/translated/stock.js:2428 +#: templates/js/translated/part.js:1798 templates/js/translated/part.js:1921 +#: templates/js/translated/part.js:1999 templates/js/translated/stock.js:383 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750 +#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621 msgid "Quantity" msgstr "" @@ -616,8 +620,8 @@ msgid "Enter quantity for build output" msgstr "" #: build/forms.py:41 order/serializers.py:814 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:229 -#: templates/js/translated/stock.js:383 +#: stock/serializers.py:314 templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:384 msgid "Serial Numbers" msgstr "" @@ -661,7 +665,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:145 +#: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" msgstr "" @@ -671,11 +675,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:199 order/models.py:210 order/models.py:536 -#: order/models.py:801 part/models.py:2585 +#: order/models.py:803 part/models.py:2585 #: part/templates/part/bom_upload/match_parts.html:30 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124 +#: templates/js/translated/bom.js:547 templates/js/translated/build.js:1124 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "" @@ -695,7 +699,7 @@ msgstr "" #: build/models.py:225 build/templates/build/build_base.html:77 #: build/templates/build/detail.html:30 company/models.py:705 -#: order/models.py:854 order/models.py:928 +#: order/models.py:856 order/models.py:930 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357 #: part/models.py:2151 part/models.py:2167 part/models.py:2186 #: part/models.py:2203 part/models.py:2305 part/models.py:2427 @@ -706,20 +710,21 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 -#: templates/InvenTree/search.html:86 +#: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214 -#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326 +#: templates/js/translated/bom.js:505 templates/js/translated/build.js:625 #: templates/js/translated/build.js:993 templates/js/translated/build.js:1364 #: templates/js/translated/build.js:1632 templates/js/translated/company.js:489 #: templates/js/translated/company.js:746 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 -#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918 -#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166 -#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747 -#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416 +#: templates/js/translated/order.js:2128 templates/js/translated/part.js:920 +#: templates/js/translated/part.js:1001 templates/js/translated/part.js:1168 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719 +#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:2609 msgid "Part" msgstr "パーツ" @@ -776,7 +781,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:285 stock/models.py:528 +#: build/models.py:285 stock/models.py:531 msgid "Batch Code" msgstr "" @@ -830,27 +835,27 @@ msgstr "" #: build/models.py:329 build/templates/build/detail.html:102 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:354 stock/models.py:522 -#: stock/templates/stock/item_base.html:374 +#: part/templates/part/part_base.html:354 stock/models.py:525 +#: stock/templates/stock/item_base.html:372 msgid "External Link" 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:144 order/models.py:803 order/models.py:1049 +#: order/models.py:144 order/models.py:805 order/models.py:1051 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:925 -#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50 +#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594 -#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332 -#: stock/serializers.py:624 stock/serializers.py:711 +#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597 +#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332 +#: stock/serializers.py:638 stock/serializers.py:736 stock/serializers.py:868 #: stock/templates/stock/stock_sidebar.html:21 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711 #: templates/js/translated/company.js:842 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795 msgid "Notes" msgstr "" @@ -883,7 +888,7 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1133 order/models.py:1165 +#: build/models.py:1133 order/models.py:1167 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -891,51 +896,52 @@ msgstr "" msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1193 +#: build/models.py:1196 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1253 stock/templates/stock/item_base.html:346 -#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605 +#: build/models.py:1256 stock/templates/stock/item_base.html:344 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1605 #: templates/navbar.html:35 msgid "Build" msgstr "" -#: build/models.py:1254 +#: build/models.py:1257 msgid "Build to allocate parts" msgstr "パーツを割り当てるためにビルドする" -#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690 -#: order/serializers.py:708 stock/serializers.py:562 +#: build/models.py:1273 build/serializers.py:334 order/serializers.py:690 +#: order/serializers.py:708 stock/serializers.py:576 stock/serializers.py:694 #: stock/templates/stock/item_base.html:8 -#: stock/templates/stock/item_base.html:16 -#: stock/templates/stock/item_base.html:368 +#: stock/templates/stock/item_base.html:22 +#: stock/templates/stock/item_base.html:366 #: templates/js/translated/build.js:413 templates/js/translated/build.js:418 #: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277 +#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:2470 msgid "Stock Item" msgstr "" -#: build/models.py:1271 +#: build/models.py:1274 msgid "Source stock item" msgstr "" -#: build/models.py:1284 +#: build/models.py:1287 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1292 +#: build/models.py:1295 msgid "Install into" msgstr "" -#: build/models.py:1293 +#: build/models.py:1296 msgid "Destination stock item" msgstr "" -#: build/serializers.py:137 build/serializers.py:357 +#: build/serializers.py:137 build/serializers.py:363 msgid "Build Output" msgstr "" @@ -956,16 +962,16 @@ msgid "This build output is not fully allocated" msgstr "" #: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813 -#: stock/templates/stock/item_base.html:314 +#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:729 +#: stock/serializers.py:970 stock/templates/stock/item_base.html:312 #: templates/js/translated/barcode.js:384 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425 #: templates/js/translated/build.js:1032 templates/js/translated/order.js:508 #: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 #: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497 -#: templates/js/translated/stock.js:2218 +#: templates/js/translated/part.js:177 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411 msgid "Location" msgstr "" @@ -975,11 +981,11 @@ msgstr "" #: build/serializers.py:197 build/templates/build/build_base.html:137 #: build/templates/build/detail.html:63 order/models.py:552 -#: order/serializers.py:247 stock/templates/stock/item_base.html:180 +#: order/serializers.py:247 stock/templates/stock/item_base.html:186 #: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661 #: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472 -#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651 +#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637 msgid "Status" msgstr "" @@ -1000,33 +1006,33 @@ msgstr "" msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:319 +#: build/serializers.py:325 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:334 stock/serializers.py:569 +#: build/serializers.py:340 stock/serializers.py:583 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:348 order/models.py:277 order/serializers.py:240 -#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305 +#: build/serializers.py:354 order/models.py:277 order/serializers.py:240 +#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:390 order/serializers.py:741 +#: build/serializers.py:396 order/serializers.py:741 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:396 +#: build/serializers.py:402 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:403 +#: build/serializers.py:409 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:431 order/serializers.py:984 +#: build/serializers.py:437 order/serializers.py:984 msgid "Allocation items must be provided" msgstr "" @@ -1067,33 +1073,33 @@ msgstr "" msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:87 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:96 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:98 +#: build/templates/build/build_base.html:103 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:105 +#: build/templates/build/build_base.html:110 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Stock has not been fully allocated to this Build Order" msgstr "" @@ -1131,12 +1137,12 @@ msgid "Completed" msgstr "" #: build/templates/build/build_base.html:171 -#: build/templates/build/detail.html:95 order/models.py:925 -#: order/models.py:1021 order/templates/order/sales_order_base.html:9 +#: build/templates/build/detail.html:95 order/models.py:927 +#: order/models.py:1023 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:308 +#: stock/templates/stock/item_base.html:306 #: templates/js/translated/order.js:1218 msgid "Sales Order" msgstr "" @@ -1211,7 +1217,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "" @@ -1225,8 +1231,8 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:332 -#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451 +#: stock/templates/stock/item_base.html:330 +#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1278,7 +1284,7 @@ msgstr "注文必須パーツ" #: build/templates/build/detail.html:185 #: company/templates/company/detail.html:38 #: company/templates/company/detail.html:85 order/views.py:463 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order Parts" msgstr "パーツの注文" @@ -1347,7 +1353,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115 +#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115 #: stock/templates/stock/item.html:205 msgid "Edit Notes" msgstr "" @@ -1489,7 +1495,7 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:340 common/models.py:998 common/models.py:1206 +#: common/models.py:340 common/models.py:1004 common/models.py:1212 msgid "Settings key (must be unique - case insensitive" msgstr "" @@ -1651,7 +1657,7 @@ msgstr "テンプレート" msgid "Parts are templates by default" msgstr "パーツはデフォルトのテンプレートです" -#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956 +#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:1068 #: templates/js/translated/table_filters.js:168 #: templates/js/translated/table_filters.js:416 msgid "Assembly" @@ -1953,256 +1959,264 @@ msgid "Group to which new users are assigned on registration" msgstr "" #: common/models.py:961 -msgid "Enable URL integration" +msgid "Enforce MFA" msgstr "" #: common/models.py:962 -msgid "Enable plugins to add URL routes" +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:967 +msgid "Enable URL integration" msgstr "" #: common/models.py:968 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:974 msgid "Enable navigation integration" msgstr "" -#: common/models.py:969 +#: common/models.py:975 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:975 +#: common/models.py:981 msgid "Enable global setting integration" msgstr "" -#: common/models.py:976 +#: common/models.py:982 msgid "Enable plugins to integrate into inventree global settings" msgstr "" -#: common/models.py:982 +#: common/models.py:988 msgid "Enable app integration" msgstr "" -#: common/models.py:983 +#: common/models.py:989 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1029 +#: common/models.py:1035 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1030 +#: common/models.py:1036 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1035 +#: common/models.py:1041 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1036 +#: common/models.py:1042 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1041 +#: common/models.py:1047 msgid "Show latest parts" msgstr "" -#: common/models.py:1042 +#: common/models.py:1048 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1047 +#: common/models.py:1053 msgid "Recent Part Count" msgstr "" -#: common/models.py:1048 +#: common/models.py:1054 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1054 +#: common/models.py:1060 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1055 +#: common/models.py:1061 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1060 +#: common/models.py:1066 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1061 +#: common/models.py:1067 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1066 +#: common/models.py:1072 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1067 +#: common/models.py:1073 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1072 +#: common/models.py:1078 msgid "Show low stock" msgstr "" -#: common/models.py:1073 +#: common/models.py:1079 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1078 +#: common/models.py:1084 msgid "Show depleted stock" msgstr "" -#: common/models.py:1079 +#: common/models.py:1085 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1084 +#: common/models.py:1090 msgid "Show needed stock" msgstr "" -#: common/models.py:1085 +#: common/models.py:1091 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1090 +#: common/models.py:1096 msgid "Show expired stock" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1096 +#: common/models.py:1102 msgid "Show stale stock" msgstr "" -#: common/models.py:1097 +#: common/models.py:1103 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1102 +#: common/models.py:1108 msgid "Show pending builds" msgstr "" -#: common/models.py:1103 +#: common/models.py:1109 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1108 +#: common/models.py:1114 msgid "Show overdue builds" msgstr "" -#: common/models.py:1109 +#: common/models.py:1115 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1114 +#: common/models.py:1120 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1115 +#: common/models.py:1121 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1120 +#: common/models.py:1126 msgid "Show overdue POs" msgstr "" -#: common/models.py:1121 +#: common/models.py:1127 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1126 +#: common/models.py:1132 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1127 +#: common/models.py:1133 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1132 +#: common/models.py:1138 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1133 +#: common/models.py:1139 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1139 +#: common/models.py:1145 msgid "Inline label display" msgstr "" -#: common/models.py:1140 +#: common/models.py:1146 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1146 +#: common/models.py:1152 msgid "Inline report display" msgstr "" -#: common/models.py:1147 +#: common/models.py:1153 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "Search Preview Results" msgstr "" -#: common/models.py:1154 +#: common/models.py:1160 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1160 +#: common/models.py:1166 msgid "Search Show Stock" msgstr "" -#: common/models.py:1161 +#: common/models.py:1167 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1167 +#: common/models.py:1173 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1168 +#: common/models.py:1174 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1174 +#: common/models.py:1180 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1175 +#: common/models.py:1181 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1181 +#: common/models.py:1187 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1182 +#: common/models.py:1188 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1188 +#: common/models.py:1194 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1189 +#: common/models.py:1195 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1254 company/forms.py:43 +#: common/models.py:1260 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1261 company/serializers.py:264 +#: common/models.py:1267 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801 +#: templates/js/translated/part.js:852 templates/js/translated/part.js:1803 msgid "Price" msgstr "" -#: common/models.py:1262 +#: common/models.py:1268 msgid "Unit price at specified quantity" msgstr "" @@ -2290,7 +2304,7 @@ msgid "Contact phone number" msgstr "" #: company/models.py:125 company/templates/company/company_base.html:129 -#: templates/InvenTree/settings/user.html:47 +#: templates/InvenTree/settings/user.html:48 msgid "Email" msgstr "" @@ -2347,8 +2361,8 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:320 company/models.py:535 stock/models.py:468 -#: stock/templates/stock/item_base.html:135 +#: company/models.py:320 company/models.py:535 stock/models.py:469 +#: stock/templates/stock/item_base.html:141 msgid "Base Part" msgstr "" @@ -2359,7 +2373,7 @@ msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:381 +#: stock/templates/stock/item_base.html:379 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:514 #: templates/js/translated/company.js:797 templates/js/translated/part.js:232 @@ -2393,7 +2407,7 @@ msgstr "" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:391 +#: stock/templates/stock/item_base.html:389 msgid "Manufacturer Part" msgstr "メーカー・パーツ" @@ -2403,8 +2417,8 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:1845 templates/js/translated/company.js:644 -#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117 +#: stock/models.py:1960 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1296 msgid "Value" msgstr "" @@ -2431,7 +2445,7 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:224 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219 -#: part/bom.py:247 stock/templates/stock/item_base.html:398 +#: part/bom.py:247 stock/templates/stock/item_base.html:396 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:771 templates/js/translated/order.js:823 #: templates/js/translated/part.js:213 templates/js/translated/part.js:800 @@ -2479,8 +2493,8 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:491 stock/templates/stock/item_base.html:339 -#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612 +#: stock/models.py:493 stock/templates/stock/item_base.html:337 +#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1791 msgid "Packaging" msgstr "" @@ -2506,7 +2520,7 @@ msgstr "" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322 +#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322 msgid "Company" msgstr "" @@ -2548,11 +2562,11 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:83 order/models.py:547 -#: order/templates/order/sales_order_base.html:115 stock/models.py:509 -#: stock/models.py:510 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:291 +#: order/templates/order/sales_order_base.html:115 stock/models.py:512 +#: stock/models.py:513 stock/serializers.py:624 +#: stock/templates/stock/item_base.html:289 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2259 +#: templates/js/translated/stock.js:2452 msgid "Customer" msgstr "" @@ -2571,7 +2585,7 @@ msgstr "" #: company/templates/company/detail.html:15 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:124 +#: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "サプライヤー・パーツ" @@ -2590,14 +2604,14 @@ msgstr "新しいサプライヤー・パーツ" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:167 part/templates/part/detail.html:342 +#: part/templates/part/category.html:171 part/templates/part/detail.html:342 #: part/templates/part/detail.html:370 msgid "Options" msgstr "" #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order parts" msgstr "パーツの注文" @@ -2611,7 +2625,7 @@ msgstr "パーツを削除" msgid "Delete Parts" msgstr "パーツを削除" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109 +#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "メーカー・パーツ" @@ -2633,8 +2647,8 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203 +#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" @@ -2655,8 +2669,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223 +#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" @@ -2698,7 +2712,7 @@ msgid "Supplier List" msgstr "" #: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184 +#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 #: templates/navbar.html:46 msgid "Manufacturers" msgstr "" @@ -2706,7 +2720,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:67 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76 msgid "Order part" msgstr "パーツの注文" @@ -2728,7 +2742,7 @@ msgstr "内部パーツ" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 #: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:194 templates/navbar.html:45 +#: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "" @@ -2742,7 +2756,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:254 #: part/templates/part/detail.html:344 part/templates/part/detail.html:372 #: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31 -#: users/models.py:206 +#: users/models.py:209 msgid "Delete" msgstr "" @@ -2765,7 +2779,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:867 +#: part/templates/part/detail.html:861 msgid "Add Parameter" msgstr "" @@ -2794,9 +2808,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:476 -#: stock/templates/stock/item_base.html:403 -#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569 +#: company/templates/company/supplier_part.html:24 stock/models.py:477 +#: stock/templates/stock/item_base.html:401 +#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1748 msgid "Supplier Part" msgstr "" @@ -2816,13 +2830,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:20 stock/templates/stock/location.html:162 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:166 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163 -#: templates/js/translated/stock.js:359 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 +#: templates/js/translated/stock.js:360 msgid "New Stock Item" msgstr "" @@ -2832,7 +2846,7 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:68 +#: part/templates/part/detail.html:72 msgid "Order Part" msgstr "" @@ -2843,7 +2857,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:1717 +#: part/templates/part/prices.html:271 part/views.py:1713 msgid "Add Price Break" msgstr "" @@ -2851,11 +2865,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1779 +#: company/templates/company/supplier_part.html:224 part/views.py:1775 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1765 +#: company/templates/company/supplier_part.html:238 part/views.py:1761 msgid "Edit Price Break" msgstr "" @@ -2869,14 +2883,14 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:156 +#: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434 -#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059 -#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:1401 templates/navbar.html:28 +#: templates/js/translated/bom.js:328 templates/js/translated/part.js:434 +#: templates/js/translated/part.js:569 templates/js/translated/part.js:1061 +#: templates/js/translated/part.js:1222 templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:1580 templates/navbar.html:28 msgid "Stock" msgstr "" @@ -2895,11 +2909,11 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:133 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:159 +#: stock/templates/stock/location.html:137 +#: stock/templates/stock/location.html:151 +#: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "" @@ -2912,7 +2926,7 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:61 templates/InvenTree/search.html:214 +#: company/views.py:61 templates/InvenTree/search.html:208 #: templates/navbar.html:57 msgid "Customers" msgstr "" @@ -3121,7 +3135,7 @@ msgstr "" msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:562 order/models.py:1026 +#: order/models.py:562 order/models.py:1028 #: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429 msgid "Shipment Date" msgstr "" @@ -3130,7 +3144,7 @@ msgstr "" msgid "shipped by" msgstr "" -#: order/models.py:634 +#: order/models.py:635 msgid "Order cannot be completed as no parts have been assigned" msgstr "" @@ -3138,172 +3152,172 @@ msgstr "" msgid "Only a pending order can be marked as complete" msgstr "" -#: order/models.py:643 +#: order/models.py:642 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:647 +#: order/models.py:645 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:795 +#: order/models.py:797 msgid "Item quantity" msgstr "" -#: order/models.py:801 +#: order/models.py:803 msgid "Line item reference" msgstr "" -#: order/models.py:803 +#: order/models.py:805 msgid "Line item notes" msgstr "" -#: order/models.py:833 order/models.py:924 order/models.py:1020 +#: order/models.py:835 order/models.py:926 order/models.py:1022 #: templates/js/translated/order.js:1820 msgid "Order" msgstr "" -#: order/models.py:834 order/templates/order/order_base.html:9 +#: order/models.py:836 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:353 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/order.js:801 templates/js/translated/part.js:775 -#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240 +#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433 msgid "Purchase Order" msgstr "" -#: order/models.py:855 +#: order/models.py:857 msgid "Supplier part" msgstr "" -#: order/models.py:862 order/templates/order/order_base.html:163 +#: order/models.py:864 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:847 templates/js/translated/part.js:873 #: templates/js/translated/table_filters.js:317 msgid "Received" msgstr "" -#: order/models.py:863 +#: order/models.py:865 msgid "Number of items received" msgstr "" -#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:360 -#: templates/js/translated/stock.js:1600 +#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:358 +#: templates/js/translated/stock.js:1779 msgid "Purchase Price" msgstr "" -#: order/models.py:871 +#: order/models.py:873 msgid "Unit purchase price" msgstr "" -#: order/models.py:879 +#: order/models.py:881 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:934 part/templates/part/part_pricing.html:112 +#: order/models.py:936 part/templates/part/part_pricing.html:112 #: part/templates/part/prices.html:116 part/templates/part/prices.html:284 msgid "Sale Price" msgstr "" -#: order/models.py:935 +#: order/models.py:937 msgid "Unit sale price" msgstr "" -#: order/models.py:940 +#: order/models.py:942 msgid "Shipped quantity" msgstr "" -#: order/models.py:1027 +#: order/models.py:1029 msgid "Date of shipment" msgstr "" -#: order/models.py:1034 +#: order/models.py:1036 msgid "Checked By" msgstr "" -#: order/models.py:1035 +#: order/models.py:1037 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1043 +#: order/models.py:1045 msgid "Shipment number" msgstr "" -#: order/models.py:1050 +#: order/models.py:1052 msgid "Shipment notes" msgstr "" -#: order/models.py:1057 +#: order/models.py:1059 msgid "Tracking Number" msgstr "" -#: order/models.py:1058 +#: order/models.py:1060 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1068 +#: order/models.py:1070 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1071 +#: order/models.py:1073 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1147 order/models.py:1149 +#: order/models.py:1149 order/models.py:1151 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1153 +#: order/models.py:1155 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1155 +#: order/models.py:1157 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1158 +#: order/models.py:1160 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1162 +#: order/models.py:1164 msgid "StockItem is over-allocated" msgstr "" -#: order/models.py:1168 order/serializers.py:734 +#: order/models.py:1170 order/serializers.py:734 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1171 +#: order/models.py:1173 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1172 +#: order/models.py:1174 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1180 +#: order/models.py:1182 msgid "Line" msgstr "" -#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953 +#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953 #: templates/js/translated/model_renderers.js:251 msgid "Shipment" msgstr "" -#: order/models.py:1189 +#: order/models.py:1191 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1201 +#: order/models.py:1203 msgid "Item" msgstr "" -#: order/models.py:1202 +#: order/models.py:1204 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1205 +#: order/models.py:1207 msgid "Enter stock allocation quantity" msgstr "" @@ -3530,7 +3544,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/build.js:245 templates/js/translated/build.js:1256 #: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:592 +#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761 msgid "Remove row" msgstr "" @@ -3722,7 +3736,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188 +#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1188 msgid "Actions" msgstr "" @@ -3797,24 +3811,24 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:760 +#: part/api.py:777 msgid "Must be greater than zero" msgstr "" -#: part/api.py:764 +#: part/api.py:781 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:779 +#: part/api.py:796 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833 +#: part/api.py:827 part/api.py:831 part/api.py:846 part/api.py:850 msgid "This field is required" msgstr "" #: part/bom.py:125 part/models.py:81 part/models.py:816 -#: part/templates/part/category.html:104 part/templates/part/part_base.html:338 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "" @@ -3822,99 +3836,43 @@ msgstr "" msgid "Available Stock" msgstr "" -#: part/forms.py:63 -msgid "File Format" -msgstr "" - -#: part/forms.py:63 -msgid "Select output file format" -msgstr "" - -#: part/forms.py:65 -msgid "Cascading" -msgstr "" - -#: part/forms.py:65 -msgid "Download cascading / multi-level BOM" -msgstr "" - -#: part/forms.py:67 -msgid "Levels" -msgstr "" - -#: part/forms.py:67 -msgid "Select maximum number of BOM levels to export (0 = all levels)" -msgstr "" - -#: part/forms.py:69 -msgid "Include Parameter Data" -msgstr "" - -#: part/forms.py:69 -msgid "Include part parameters data in exported BOM" -msgstr "" - -#: part/forms.py:71 -msgid "Include Stock Data" -msgstr "" - -#: part/forms.py:71 -msgid "Include part stock data in exported BOM" -msgstr "" - -#: part/forms.py:73 -msgid "Include Manufacturer Data" -msgstr "" - -#: part/forms.py:73 -msgid "Include part manufacturer data in exported BOM" -msgstr "" - -#: part/forms.py:75 -msgid "Include Supplier Data" -msgstr "" - -#: part/forms.py:75 -msgid "Include part supplier data in exported BOM" -msgstr "" - -#: part/forms.py:96 part/models.py:2427 +#: part/forms.py:66 part/models.py:2427 msgid "Parent Part" msgstr "" -#: part/forms.py:97 part/templates/part/bom_duplicate.html:7 +#: part/forms.py:67 part/templates/part/bom_duplicate.html:7 msgid "Select parent part to copy BOM from" msgstr "" -#: part/forms.py:103 +#: part/forms.py:73 msgid "Clear existing BOM items" msgstr "" -#: part/forms.py:109 +#: part/forms.py:79 msgid "Confirm BOM duplication" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "validate" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "Confirm that the BOM is correct" msgstr "" -#: part/forms.py:163 +#: part/forms.py:133 msgid "Select part category" msgstr "" -#: part/forms.py:200 +#: part/forms.py:170 msgid "Add parameter template to same level categories" msgstr "" -#: part/forms.py:204 +#: part/forms.py:174 msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:224 +#: part/forms.py:194 msgid "Input quantity for price calculation" msgstr "" @@ -3930,24 +3888,24 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11 +#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:96 part/templates/part/category.html:124 -#: templates/InvenTree/search.html:101 templates/stats.html:84 +#: part/models.py:96 part/templates/part/category.html:128 +#: templates/InvenTree/search.html:95 templates/stats.html:84 #: users/models.py:40 msgid "Part Categories" msgstr "" #: part/models.py:358 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:13 part/templates/part/category.html:129 -#: part/templates/part/category.html:149 +#: part/templates/part/category.html:17 part/templates/part/category.html:133 +#: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1597 templates/navbar.html:21 +#: templates/js/translated/part.js:1599 templates/navbar.html:21 #: templates/stats.html:80 templates/stats.html:89 users/models.py:41 msgid "Parts" msgstr "パーツ" @@ -4001,7 +3959,7 @@ msgstr "" msgid "Part description" msgstr "" -#: part/models.py:770 part/templates/part/category.html:82 +#: part/models.py:770 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "" @@ -4014,7 +3972,7 @@ msgstr "" #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 #: templates/InvenTree/settings/settings.html:172 -#: templates/js/translated/part.js:1202 +#: templates/js/translated/part.js:1204 msgid "Category" msgstr "" @@ -4023,8 +3981,8 @@ msgid "Part category" msgstr "" #: part/models.py:784 part/templates/part/part_base.html:274 -#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155 -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/part.js:557 templates/js/translated/part.js:1157 +#: templates/js/translated/stock.js:1552 msgid "IPN" msgstr "" @@ -4145,8 +4103,8 @@ msgstr "" msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2310 templates/js/translated/part.js:1648 -#: templates/js/translated/stock.js:1097 +#: part/models.py:2310 templates/js/translated/part.js:1650 +#: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "" @@ -4162,7 +4120,7 @@ msgstr "" msgid "Enter description for this test" msgstr "" -#: part/models.py:2322 templates/js/translated/part.js:1657 +#: part/models.py:2322 templates/js/translated/part.js:1659 #: templates/js/translated/table_filters.js:281 msgid "Required" msgstr "" @@ -4171,7 +4129,7 @@ msgstr "" msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2328 templates/js/translated/part.js:1665 +#: part/models.py:2328 templates/js/translated/part.js:1667 msgid "Requires Value" msgstr "" @@ -4179,7 +4137,7 @@ msgstr "" msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2334 templates/js/translated/part.js:1672 +#: part/models.py:2334 templates/js/translated/part.js:1674 msgid "Requires Attachment" msgstr "" @@ -4241,8 +4199,8 @@ msgstr "" msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2578 templates/js/translated/bom.js:454 -#: templates/js/translated/bom.js:528 +#: part/models.py:2578 templates/js/translated/bom.js:566 +#: templates/js/translated/bom.js:640 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" @@ -4275,8 +4233,8 @@ msgstr "" msgid "BOM line checksum" msgstr "" -#: part/models.py:2594 templates/js/translated/bom.js:545 -#: templates/js/translated/bom.js:552 +#: part/models.py:2594 templates/js/translated/bom.js:657 +#: templates/js/translated/bom.js:664 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" @@ -4286,7 +4244,7 @@ msgstr "" msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2600 templates/js/translated/bom.js:537 +#: part/models.py:2600 templates/js/translated/bom.js:649 msgid "Allow Variants" msgstr "" @@ -4406,100 +4364,100 @@ msgstr "" msgid "This will validate each line in the BOM." msgstr "" -#: part/templates/part/category.html:24 part/templates/part/category.html:28 +#: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:32 +#: part/templates/part/category.html:36 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:38 +#: part/templates/part/category.html:42 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:43 +#: part/templates/part/category.html:47 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:44 +#: part/templates/part/category.html:48 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:52 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:53 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:57 +#: part/templates/part/category.html:61 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:58 +#: part/templates/part/category.html:62 msgid "New Category" msgstr "" -#: part/templates/part/category.html:76 part/templates/part/category.html:89 +#: part/templates/part/category.html:80 part/templates/part/category.html:93 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:90 +#: part/templates/part/category.html:94 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:110 part/templates/part/category.html:201 +#: part/templates/part/category.html:114 part/templates/part/category.html:205 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:115 +#: part/templates/part/category.html:119 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:152 +#: part/templates/part/category.html:156 msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:153 part/templates/part/category.html:177 +#: part/templates/part/category.html:157 part/templates/part/category.html:181 msgid "Export" msgstr "" -#: part/templates/part/category.html:156 +#: part/templates/part/category.html:160 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:157 templates/js/translated/bom.js:40 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 msgid "New Part" msgstr "新規パーツ" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set category" msgstr "" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:175 +#: part/templates/part/category.html:179 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:177 +#: part/templates/part/category.html:181 msgid "Export Data" msgstr "" -#: part/templates/part/category.html:191 +#: part/templates/part/category.html:195 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:268 +#: part/templates/part/category.html:288 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:295 +#: part/templates/part/category.html:315 msgid "Create Part" msgstr "" @@ -4566,24 +4524,24 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:17 +#: part/templates/part/detail.html:21 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:29 +#: part/templates/part/detail.html:33 #, python-format msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:39 +#: part/templates/part/detail.html:43 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:44 +#: part/templates/part/detail.html:48 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:101 +#: part/templates/part/detail.html:105 msgid "Sales Order Allocations" msgstr "" @@ -4619,7 +4577,7 @@ msgstr "" msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:242 +#: part/templates/part/detail.html:242 templates/js/translated/bom.js:70 msgid "Export BOM" msgstr "" @@ -4683,38 +4641,38 @@ msgstr "" msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:651 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:659 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:760 +#: part/templates/part/detail.html:754 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:817 +#: part/templates/part/detail.html:811 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:930 +#: part/templates/part/detail.html:924 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:942 +#: part/templates/part/detail.html:936 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:954 +#: part/templates/part/detail.html:948 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1043 +#: part/templates/part/detail.html:1037 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4745,20 +4703,20 @@ msgid "Subscribe to notifications for this part" msgstr "" #: part/templates/part/part_base.html:43 -#: stock/templates/stock/item_base.html:28 -#: stock/templates/stock/location.html:29 +#: stock/templates/stock/item_base.html:34 +#: stock/templates/stock/location.html:33 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:45 -#: stock/templates/stock/item_base.html:32 -#: stock/templates/stock/location.html:31 templates/qr_button.html:1 +#: stock/templates/stock/item_base.html:38 +#: stock/templates/stock/location.html:35 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:48 -#: stock/templates/stock/location.html:32 +#: stock/templates/stock/item_base.html:54 +#: stock/templates/stock/location.html:36 msgid "Print Label" msgstr "" @@ -4767,8 +4725,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:103 -#: stock/templates/stock/location.html:40 +#: stock/templates/stock/item_base.html:109 +#: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "" @@ -4848,7 +4806,7 @@ msgstr "" msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1235 +#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1237 msgid "On Order" msgstr "" @@ -4864,12 +4822,12 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:566 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1066 -#: templates/js/translated/part.js:1239 +#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1068 +#: templates/js/translated/part.js:1241 msgid "Building" msgstr "" @@ -4882,7 +4840,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:159 +#: stock/templates/stock/item_base.html:165 msgid "Search for serial number" msgstr "" @@ -4921,7 +4879,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:520 +#: templates/js/translated/bom.js:632 msgid "No supplier pricing available" msgstr "" @@ -5036,7 +4994,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626 msgid "Supplier Cost" msgstr "" @@ -5058,7 +5016,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1788 +#: part/templates/part/prices.html:215 part/views.py:1784 msgid "Add Internal Price Break" msgstr "" @@ -5078,9 +5036,9 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476 -#: templates/js/translated/part.js:436 templates/js/translated/part.js:1056 -#: templates/js/translated/part.js:1243 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588 +#: templates/js/translated/part.js:436 templates/js/translated/part.js:1058 +#: templates/js/translated/part.js:1245 msgid "No Stock" msgstr "" @@ -5154,67 +5112,67 @@ msgstr "" msgid "Match Parts" msgstr "" -#: part/views.py:1196 +#: part/views.py:1195 msgid "Export Bill of Materials" msgstr "" -#: part/views.py:1248 +#: part/views.py:1244 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1255 +#: part/views.py:1251 msgid "Part was deleted" msgstr "" -#: part/views.py:1264 +#: part/views.py:1260 msgid "Part Pricing" msgstr "" -#: part/views.py:1413 +#: part/views.py:1409 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1423 +#: part/views.py:1419 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1430 +#: part/views.py:1426 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1489 templates/js/translated/part.js:313 +#: part/views.py:1485 templates/js/translated/part.js:313 msgid "Edit Part Category" msgstr "" -#: part/views.py:1527 +#: part/views.py:1523 msgid "Delete Part Category" msgstr "" -#: part/views.py:1533 +#: part/views.py:1529 msgid "Part category was deleted" msgstr "" -#: part/views.py:1542 +#: part/views.py:1538 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1643 +#: part/views.py:1639 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1699 +#: part/views.py:1695 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1721 +#: part/views.py:1717 msgid "Added new price break" msgstr "" -#: part/views.py:1797 +#: part/views.py:1793 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1805 +#: part/views.py:1801 msgid "Delete Internal Price Break" msgstr "" @@ -5388,12 +5346,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:514 stock/templates/stock/item_base.html:149 +#: stock/models.py:517 stock/templates/stock/item_base.html:155 #: templates/js/translated/build.js:238 templates/js/translated/build.js:642 #: templates/js/translated/build.js:1018 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415 msgid "Serial Number" msgstr "" @@ -5402,19 +5360,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:1833 +#: stock/models.py:1948 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:1839 +#: stock/models.py:1954 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:49 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367 msgid "Date" msgstr "" @@ -5432,17 +5390,18 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434 +#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748 +#: templates/js/translated/stock.js:2627 msgid "Serial" msgstr "" -#: stock/api.py:446 +#: stock/api.py:478 msgid "Quantity is required" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571 -#: stock/templates/stock/item_base.html:186 -#: templates/js/translated/stock.js:1522 +#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574 +#: stock/templates/stock/item_base.html:192 +#: templates/js/translated/stock.js:1701 msgid "Expiry Date" msgstr "" @@ -5490,12 +5449,12 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:60 stock/models.py:608 -#: stock/templates/stock/item_base.html:417 +#: stock/models.py:60 stock/models.py:611 +#: stock/templates/stock/item_base.html:415 msgid "Owner" msgstr "" -#: stock/models.py:61 stock/models.py:609 +#: stock/models.py:61 stock/models.py:612 msgid "Select Owner" msgstr "" @@ -5528,150 +5487,190 @@ msgstr "" msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:460 +#: stock/models.py:461 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:470 msgid "Base part" msgstr "" -#: stock/models.py:477 +#: stock/models.py:478 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:482 stock/templates/stock/location.html:12 +#: stock/models.py:484 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:485 +#: stock/models.py:487 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:492 +#: stock/models.py:494 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:497 stock/templates/stock/item_base.html:299 +#: stock/models.py:500 stock/templates/stock/item_base.html:297 msgid "Installed In" msgstr "" -#: stock/models.py:500 +#: stock/models.py:503 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:516 +#: stock/models.py:519 msgid "Serial number for this item" msgstr "" -#: stock/models.py:530 +#: stock/models.py:533 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:534 +#: stock/models.py:537 msgid "Stock Quantity" msgstr "" -#: stock/models.py:543 +#: stock/models.py:546 msgid "Source Build" msgstr "" -#: stock/models.py:545 +#: stock/models.py:548 msgid "Build for this stock item" msgstr "" -#: stock/models.py:556 +#: stock/models.py:559 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:559 +#: stock/models.py:562 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:565 +#: stock/models.py:568 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:572 +#: stock/models.py:575 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete on deplete" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:595 stock/templates/stock/item.html:111 +#: stock/models.py:598 stock/templates/stock/item.html:111 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:604 +#: stock/models.py:607 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1072 +#: stock/models.py:1068 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1078 +#: stock/models.py:1074 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1084 +#: stock/models.py:1080 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1087 +#: stock/models.py:1083 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1090 +#: stock/models.py:1086 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1097 +#: stock/models.py:1093 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1255 +#: stock/models.py:1164 +msgid "Stock item has been assigned to a sales order" +msgstr "" + +#: stock/models.py:1167 +msgid "Stock item is installed in another item" +msgstr "" + +#: stock/models.py:1170 +msgid "Stock item contains other items" +msgstr "" + +#: stock/models.py:1173 +msgid "Stock item has been assigned to a customer" +msgstr "" + +#: stock/models.py:1176 +msgid "Stock item is currently in production" +msgstr "" + +#: stock/models.py:1179 +msgid "Serialized stock cannot be merged" +msgstr "" + +#: stock/models.py:1186 stock/serializers.py:773 +msgid "Duplicate stock items" +msgstr "" + +#: stock/models.py:1190 +msgid "Stock items must refer to the same part" +msgstr "" + +#: stock/models.py:1194 +msgid "Stock items must refer to the same supplier part" +msgstr "" + +#: stock/models.py:1198 +msgid "Stock status codes must match" +msgstr "" + +#: stock/models.py:1369 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1753 +#: stock/models.py:1868 msgid "Entry notes" msgstr "" -#: stock/models.py:1810 +#: stock/models.py:1925 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1931 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1834 +#: stock/models.py:1949 msgid "Test name" msgstr "" -#: stock/models.py:1840 templates/js/translated/table_filters.js:271 +#: stock/models.py:1955 templates/js/translated/table_filters.js:271 msgid "Test result" msgstr "" -#: stock/models.py:1846 +#: stock/models.py:1961 msgid "Test output value" msgstr "" -#: stock/models.py:1853 +#: stock/models.py:1968 msgid "Test result attachment" msgstr "" -#: stock/models.py:1859 +#: stock/models.py:1974 msgid "Test notes" msgstr "" @@ -5696,7 +5695,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:814 +#: stock/serializers.py:326 stock/serializers.py:730 stock/serializers.py:971 msgid "Destination stock location" msgstr "" @@ -5708,39 +5707,63 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:573 +#: stock/serializers.py:587 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:577 +#: stock/serializers.py:591 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:581 +#: stock/serializers.py:595 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:611 +#: stock/serializers.py:625 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:617 +#: stock/serializers.py:631 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:639 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:635 stock/serializers.py:722 +#: stock/serializers.py:649 stock/serializers.py:879 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:684 +#: stock/serializers.py:737 +msgid "Stock merging notes" +msgstr "" + +#: stock/serializers.py:742 +msgid "Allow mismatched suppliers" +msgstr "" + +#: stock/serializers.py:743 +msgid "Allow stock items with different supplier parts to be merged" +msgstr "" + +#: stock/serializers.py:748 +msgid "Allow mismatched status" +msgstr "" + +#: stock/serializers.py:749 +msgid "Allow stock items with different status codes to be merged" +msgstr "" + +#: stock/serializers.py:759 +msgid "At least two stock items must be provided" +msgstr "" + +#: stock/serializers.py:841 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:712 +#: stock/serializers.py:869 msgid "Stock transaction notes" msgstr "" @@ -5765,7 +5788,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50 +#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:56 msgid "Test Report" msgstr "" @@ -5797,197 +5820,189 @@ msgstr "" msgid "Delete Test Result" msgstr "" -#: stock/templates/stock/item_base.html:35 +#: stock/templates/stock/item_base.html:41 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:37 +#: stock/templates/stock/item_base.html:43 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24 +#: stock/templates/stock/item_base.html:45 templates/stock_table.html:24 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:46 +#: stock/templates/stock/item_base.html:52 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:71 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:47 templates/stock_table.html:50 +#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/location.html:51 templates/stock_table.html:50 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:78 templates/stock_table.html:48 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49 +#: stock/templates/stock/item_base.html:81 templates/stock_table.html:49 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:84 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:53 +#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/location.html:57 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53 +#: stock/templates/stock/item_base.html:91 templates/stock_table.html:54 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:94 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:108 +#: stock/templates/stock/item_base.html:114 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/item_base.html:117 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:119 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:116 +#: stock/templates/stock/item_base.html:122 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/stock.js:1535 +#: stock/templates/stock/item_base.html:205 +#: templates/js/translated/stock.js:1714 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:208 +#: stock/templates/stock/item_base.html:214 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:226 +#: stock/templates/stock/item_base.html:232 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:239 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:234 +#: stock/templates/stock/item_base.html:240 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:247 +#: stock/templates/stock/item_base.html:253 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:261 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:263 +#: stock/templates/stock/item_base.html:269 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:269 +#: stock/templates/stock/item_base.html:275 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:273 -msgid "This stock item cannot be deleted as it has child items" -msgstr "" - -#: stock/templates/stock/item_base.html:277 -msgid "This stock item will be automatically deleted when all stock is depleted." -msgstr "" - -#: stock/templates/stock/item_base.html:318 +#: stock/templates/stock/item_base.html:316 #: templates/js/translated/build.js:1040 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:325 +#: stock/templates/stock/item_base.html:323 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:367 +#: stock/templates/stock/item_base.html:365 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:385 +#: stock/templates/stock/item_base.html:383 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:410 +#: stock/templates/stock/item_base.html:408 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:500 +#: stock/templates/stock/item_base.html:498 msgid "Edit Stock Status" msgstr "" @@ -6041,59 +6056,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:37 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:65 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:67 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:65 +#: stock/templates/stock/location.html:69 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:79 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:76 +#: stock/templates/stock/location.html:80 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:95 -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:99 +#: stock/templates/stock/location.html:105 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:102 +#: stock/templates/stock/location.html:106 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:119 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:175 +#: stock/templates/stock/location.html:132 +#: stock/templates/stock/location.html:179 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:142 templates/InvenTree/search.html:170 +#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "" -#: stock/templates/stock/location.html:182 templates/stock_table.html:30 +#: stock/templates/stock/location.html:186 templates/stock_table.html:30 msgid "Printing Actions" msgstr "" -#: stock/templates/stock/location.html:186 templates/stock_table.html:34 +#: stock/templates/stock/location.html:190 templates/stock_table.html:34 msgid "Print labels" msgstr "" @@ -6178,7 +6193,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:887 +#: stock/views.py:727 templates/js/translated/stock.js:1066 msgid "Confirm stock adjustment" msgstr "" @@ -6186,7 +6201,7 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:323 +#: stock/views.py:760 templates/js/translated/stock.js:324 msgid "Edit Stock Item" msgstr "" @@ -6198,7 +6213,7 @@ msgstr "" msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:303 +#: stock/views.py:1153 templates/js/translated/stock.js:304 msgid "Duplicate Stock Item" msgstr "" @@ -6314,10 +6329,6 @@ msgstr "" msgid "Search Results" msgstr "" -#: templates/InvenTree/search.html:22 -msgid "Enter a search query" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6363,7 +6374,7 @@ msgstr "" msgid "Login Settings" msgstr "" -#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5 +#: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5 msgid "Signup" msgstr "" @@ -6648,7 +6659,7 @@ msgstr "" msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:55 +#: templates/InvenTree/settings/user.html:54 msgid "The following email addresses are associated with your account:" msgstr "" @@ -6673,145 +6684,193 @@ msgid "Re-send Verification" msgstr "" #: templates/InvenTree/settings/user.html:87 -#: templates/InvenTree/settings/user.html:154 +#: templates/InvenTree/settings/user.html:149 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:94 +#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:201 msgid "Warning:" msgstr "" -#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:96 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:102 +#: templates/InvenTree/settings/user.html:104 msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:112 -msgid "Enter e-mail address" -msgstr "" - -#: templates/InvenTree/settings/user.html:114 +#: templates/InvenTree/settings/user.html:109 msgid "Add Email" msgstr "" -#: templates/InvenTree/settings/user.html:124 +#: templates/InvenTree/settings/user.html:117 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:129 +#: templates/InvenTree/settings/user.html:122 msgid "You can sign in to your account using any of the following third party accounts:" msgstr "" -#: templates/InvenTree/settings/user.html:163 -msgid "There are no social network accounts connected to your InvenTree account" +#: templates/InvenTree/settings/user.html:157 +msgid "You currently have no social network accounts connected to this account." msgstr "" -#: templates/InvenTree/settings/user.html:168 +#: templates/InvenTree/settings/user.html:162 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:179 -msgid "Active Sessions" +#: templates/InvenTree/settings/user.html:172 +msgid "Multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:185 -msgid "Log out active sessions (except this one)" +#: templates/InvenTree/settings/user.html:177 +msgid "You have these factors available:" msgstr "" -#: templates/InvenTree/settings/user.html:186 -msgid "Log Out Active Sessions" +#: templates/InvenTree/settings/user.html:187 +msgid "TOTP" 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" +#: templates/InvenTree/settings/user.html:193 +msgid "Static" msgstr "" #: templates/InvenTree/settings/user.html:202 -msgid "Last Activity" +msgid "You currently do not have any factors set up." msgstr "" -#: templates/InvenTree/settings/user.html:211 -#, python-format -msgid "%(time)s ago (this session)" +#: templates/InvenTree/settings/user.html:209 +msgid "Change factors" msgstr "" -#: templates/InvenTree/settings/user.html:213 -#, python-format -msgid "%(time)s ago" +#: templates/InvenTree/settings/user.html:210 +msgid "Setup multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:224 -msgid "Do you really want to remove the selected email address?" +#: templates/InvenTree/settings/user.html:212 +msgid "Remove multifactor" msgstr "" +#: templates/InvenTree/settings/user.html:219 #: templates/InvenTree/settings/user_display.html:25 msgid "Theme Settings" msgstr "" +#: templates/InvenTree/settings/user.html:227 #: templates/InvenTree/settings/user_display.html:35 msgid "Select theme" msgstr "" +#: templates/InvenTree/settings/user.html:237 #: templates/InvenTree/settings/user_display.html:46 msgid "Set Theme" msgstr "" +#: templates/InvenTree/settings/user.html:246 #: templates/InvenTree/settings/user_display.html:54 msgid "Language Settings" msgstr "" +#: templates/InvenTree/settings/user.html:254 #: templates/InvenTree/settings/user_display.html:63 msgid "Select language" msgstr "" +#: templates/InvenTree/settings/user.html:270 #: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" +#: templates/InvenTree/settings/user.html:272 #: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" +#: templates/InvenTree/settings/user.html:279 #: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" +#: templates/InvenTree/settings/user.html:281 #: templates/InvenTree/settings/user_display.html:91 msgid "Some languages are not complete" msgstr "" +#: templates/InvenTree/settings/user.html:283 #: 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.html:285 #: templates/InvenTree/settings/user_display.html:95 msgid "Show them too" msgstr "" +#: templates/InvenTree/settings/user.html:292 #: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" +#: templates/InvenTree/settings/user.html:293 +#, python-format +msgid "Native language translation of the\n" +" InvenTree web application is community contributed via crowdin. Contributions are\n" +" welcomed and encouraged." +msgstr "" + +#: templates/InvenTree/settings/user.html:302 +msgid "Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:308 +msgid "Log out active sessions (except this one)" +msgstr "" + +#: templates/InvenTree/settings/user.html:309 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:318 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:319 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:323 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:324 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:325 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:334 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:336 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:348 +msgid "Do you really want to remove the selected email address?" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +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." @@ -6830,7 +6889,7 @@ msgid "InvenTree Version Information" msgstr "" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53 +#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53 #: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662 #: templates/js/translated/modals.js:965 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 @@ -7006,6 +7065,71 @@ msgstr "" msgid "View in administration panel" msgstr "" +#: templates/allauth_2fa/authenticate.html:5 +msgid "Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:12 +msgid "Authenticate" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:6 +msgid "Two-Factor Authentication Backup Tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:17 +msgid "Backup tokens have been generated, but are not revealed here for security reasons. Press the button below to generate new ones." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:20 +msgid "No tokens. Press the button below to generate some." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:27 +msgid "Generate backup tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:31 +#: templates/allauth_2fa/setup.html:40 +msgid "back to settings" +msgstr "" + +#: templates/allauth_2fa/remove.html:6 +msgid "Disable Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/remove.html:9 +msgid "Are you sure?" +msgstr "" + +#: templates/allauth_2fa/remove.html:14 +msgid "Disable Two-Factor" +msgstr "" + +#: templates/allauth_2fa/setup.html:6 +msgid "Setup Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/setup.html:10 +msgid "Step 1" +msgstr "" + +#: templates/allauth_2fa/setup.html:14 +msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." +msgstr "" + +#: templates/allauth_2fa/setup.html:23 +msgid "Step 2" +msgstr "" + +#: templates/allauth_2fa/setup.html:27 +msgid "Input a token generated by the app:" +msgstr "" + +#: templates/allauth_2fa/setup.html:35 +msgid "Verify" +msgstr "" + #: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 msgid "Add Link" msgstr "" @@ -7044,13 +7168,13 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:1103 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134 +#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1134 #: templates/js/translated/build.js:1755 #: templates/js/translated/table_filters.js:178 msgid "Available" @@ -7239,7 +7363,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018 msgid "Remove stock item" msgstr "" @@ -7281,91 +7405,153 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:184 +#: templates/js/translated/bom.js:36 +msgid "Download BOM Template" +msgstr "" + +#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510 +msgid "Format" +msgstr "" + +#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511 +msgid "Select file format" +msgstr "" + +#: templates/js/translated/bom.js:81 +msgid "Cascading" +msgstr "" + +#: templates/js/translated/bom.js:82 +msgid "Download cascading / multi-level BOM" +msgstr "" + +#: templates/js/translated/bom.js:87 +msgid "Levels" +msgstr "" + +#: templates/js/translated/bom.js:88 +msgid "Select maximum number of BOM levels to export (0 = all levels)" +msgstr "" + +#: templates/js/translated/bom.js:94 +msgid "Include Parameter Data" +msgstr "" + +#: templates/js/translated/bom.js:95 +msgid "Include part parameter data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:100 +msgid "Include Stock Data" +msgstr "" + +#: templates/js/translated/bom.js:101 +msgid "Include part stock data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:106 +msgid "Include Manufacturer Data" +msgstr "" + +#: templates/js/translated/bom.js:107 +msgid "Include part manufacturer data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:112 +msgid "Include Supplier Data" +msgstr "" + +#: templates/js/translated/bom.js:113 +msgid "Include part supplier data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:296 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:228 +#: templates/js/translated/bom.js:340 msgid "Select and add a new variant item using the input below" msgstr "" -#: templates/js/translated/bom.js:239 +#: templates/js/translated/bom.js:351 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:245 +#: templates/js/translated/bom.js:357 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:284 +#: templates/js/translated/bom.js:396 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:285 +#: templates/js/translated/bom.js:397 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:404 +#: templates/js/translated/bom.js:516 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116 +#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1116 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:413 +#: templates/js/translated/bom.js:525 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:485 +#: templates/js/translated/bom.js:597 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:500 +#: templates/js/translated/bom.js:612 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:507 +#: templates/js/translated/bom.js:619 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645 +#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:616 +#: templates/js/translated/bom.js:728 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:618 +#: templates/js/translated/bom.js:730 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:620 +#: templates/js/translated/bom.js:732 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796 +#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779 +#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860 +#: templates/js/translated/bom.js:830 templates/js/translated/build.js:860 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:774 +#: templates/js/translated/bom.js:886 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100 +#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1100 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:996 +#: templates/js/translated/bom.js:1108 msgid "Inherited from parent BOM" msgstr "" @@ -7464,7 +7650,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1199 templates/stock_table.html:52 +#: templates/js/translated/build.js:1199 templates/stock_table.html:53 msgid "Order stock" msgstr "" @@ -7509,9 +7695,9 @@ msgstr "" msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147 -#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333 -#: templates/js/translated/stock.js:2128 +#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1149 +#: templates/js/translated/part.js:1560 templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:2321 msgid "Select" msgstr "" @@ -7519,7 +7705,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347 +#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2540 msgid "No user information" msgstr "" @@ -7682,20 +7868,20 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1078 templates/modals.html:19 +#: templates/js/translated/forms.js:1080 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1469 +#: templates/js/translated/forms.js:1471 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1673 +#: templates/js/translated/forms.js:1675 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1893 +#: templates/js/translated/forms.js:1895 msgid "Clear input" msgstr "" @@ -7708,7 +7894,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:863 +#: templates/js/translated/stock.js:1042 msgid "Select Stock Items" msgstr "" @@ -7888,14 +8074,6 @@ msgstr "" msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509 -msgid "Format" -msgstr "" - -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510 -msgid "Select file format" -msgstr "" - #: templates/js/translated/order.js:460 msgid "Select Line Items" msgstr "" @@ -7908,7 +8086,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123 msgid "Stock Status" msgstr "" @@ -7957,7 +8135,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163 -#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986 +#: templates/js/translated/part.js:1777 templates/js/translated/part.js:1988 msgid "Unit Price" msgstr "" @@ -8042,7 +8220,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1249 +#: templates/js/translated/stock.js:1428 msgid "Shipped to customer" msgstr "" @@ -8206,92 +8384,92 @@ msgstr "" msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:946 +#: templates/js/translated/part.js:948 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:970 +#: templates/js/translated/part.js:972 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1037 templates/js/translated/part.js:1297 +#: templates/js/translated/part.js:1039 templates/js/translated/part.js:1299 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1207 +#: templates/js/translated/part.js:1209 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1230 +#: templates/js/translated/part.js:1232 #: templates/js/translated/table_filters.js:412 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493 -#: templates/js/translated/stock.js:2089 +#: templates/js/translated/part.js:1323 templates/js/translated/part.js:1495 +#: templates/js/translated/stock.js:2282 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1337 +#: templates/js/translated/part.js:1339 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108 +#: templates/js/translated/part.js:1514 templates/js/translated/stock.js:2301 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1576 +#: templates/js/translated/part.js:1578 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152 +#: templates/js/translated/part.js:1592 templates/js/translated/stock.js:2345 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1634 +#: templates/js/translated/part.js:1636 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055 +#: templates/js/translated/part.js:1687 templates/js/translated/stock.js:1234 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056 +#: templates/js/translated/part.js:1688 templates/js/translated/stock.js:1235 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1692 +#: templates/js/translated/part.js:1694 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1714 +#: templates/js/translated/part.js:1716 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1728 +#: templates/js/translated/part.js:1730 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1753 +#: templates/js/translated/part.js:1755 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1808 +#: templates/js/translated/part.js:1810 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1809 +#: templates/js/translated/part.js:1811 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1910 +#: templates/js/translated/part.js:1912 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1929 +#: templates/js/translated/part.js:1931 msgid "Single Price Difference" msgstr "" @@ -8365,316 +8543,340 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:72 +#: templates/js/translated/stock.js:73 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173 msgid "Next available serial number" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174 +#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175 msgid "Latest serial number" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:101 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:109 +#: templates/js/translated/stock.js:110 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:145 +#: templates/js/translated/stock.js:146 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:185 +#: templates/js/translated/stock.js:186 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:224 +#: templates/js/translated/stock.js:225 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:231 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:373 +#: templates/js/translated/stock.js:374 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:386 +#: templates/js/translated/stock.js:387 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:411 +#: templates/js/translated/stock.js:412 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416 +#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:432 +#: templates/js/translated/stock.js:433 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:452 +#: templates/js/translated/stock.js:453 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:506 +#: templates/js/translated/stock.js:507 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:517 +#: templates/js/translated/stock.js:518 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:518 +#: templates/js/translated/stock.js:519 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:627 +#: templates/js/translated/stock.js:628 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:628 +#: templates/js/translated/stock.js:629 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:713 +#: templates/js/translated/stock.js:706 +msgid "Warning: Merge operation cannot be reversed" +msgstr "" + +#: templates/js/translated/stock.js:707 +msgid "Some information will be lost when merging stock items" +msgstr "" + +#: templates/js/translated/stock.js:709 +msgid "Stock transaction history will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:710 +msgid "Supplier part information will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:796 +msgid "Confirm stock item merge" +msgstr "" + +#: templates/js/translated/stock.js:797 +msgid "Merge Stock Items" +msgstr "" + +#: templates/js/translated/stock.js:892 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:893 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:899 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:721 +#: templates/js/translated/stock.js:900 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:725 +#: templates/js/translated/stock.js:904 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:726 +#: templates/js/translated/stock.js:905 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:730 +#: templates/js/translated/stock.js:909 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:731 users/models.py:202 +#: templates/js/translated/stock.js:910 users/models.py:205 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:735 templates/stock_table.html:57 +#: templates/js/translated/stock.js:914 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:864 +#: templates/js/translated/stock.js:1043 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1022 +#: templates/js/translated/stock.js:1201 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1024 +#: templates/js/translated/stock.js:1203 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1029 +#: templates/js/translated/stock.js:1208 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1230 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1077 +#: templates/js/translated/stock.js:1256 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1134 +#: templates/js/translated/stock.js:1313 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1420 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1245 +#: templates/js/translated/stock.js:1424 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1432 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1259 +#: templates/js/translated/stock.js:1438 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1417 +#: templates/js/translated/stock.js:1596 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1422 +#: templates/js/translated/stock.js:1601 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1425 +#: templates/js/translated/stock.js:1604 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1429 +#: templates/js/translated/stock.js:1608 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1431 +#: templates/js/translated/stock.js:1610 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1437 +#: templates/js/translated/stock.js:1616 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1618 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1441 +#: templates/js/translated/stock.js:1620 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1625 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1453 +#: templates/js/translated/stock.js:1632 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1455 +#: templates/js/translated/stock.js:1634 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1457 +#: templates/js/translated/stock.js:1636 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1461 +#: templates/js/translated/stock.js:1640 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1511 +#: templates/js/translated/stock.js:1690 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1584 +#: templates/js/translated/stock.js:1763 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1622 +#: templates/js/translated/stock.js:1801 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691 +#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1731 +#: templates/js/translated/stock.js:1910 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1758 +#: templates/js/translated/stock.js:1937 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1760 +#: templates/js/translated/stock.js:1939 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2138 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1959 +#: templates/js/translated/stock.js:2152 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1960 +#: templates/js/translated/stock.js:2153 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2377 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2206 +#: templates/js/translated/stock.js:2399 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2231 +#: templates/js/translated/stock.js:2424 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2250 +#: templates/js/translated/stock.js:2443 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2269 +#: templates/js/translated/stock.js:2462 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2480 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2310 +#: templates/js/translated/stock.js:2503 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2318 +#: templates/js/translated/stock.js:2511 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2552 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2360 +#: templates/js/translated/stock.js:2553 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2411 +#: templates/js/translated/stock.js:2604 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2462 +#: templates/js/translated/stock.js:2655 msgid "Uninstall Stock Item" msgstr "" @@ -9059,18 +9261,26 @@ msgid "Move stock" msgstr "" #: templates/stock_table.html:52 +msgid "Merge selected stock items" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Merge stock" +msgstr "" + +#: templates/stock_table.html:53 msgid "Order selected items" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change status" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change stock status" msgstr "" -#: templates/stock_table.html:57 +#: templates/stock_table.html:58 msgid "Delete selected items" msgstr "" @@ -9106,35 +9316,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:189 +#: users/models.py:192 msgid "Permission set" msgstr "" -#: users/models.py:197 +#: users/models.py:200 msgid "Group" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "View" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "Permission to view items" msgstr "" -#: users/models.py:202 +#: users/models.py:205 msgid "Permission to add items" msgstr "" -#: users/models.py:204 +#: users/models.py:207 msgid "Change" msgstr "" -#: users/models.py:204 +#: users/models.py:207 msgid "Permissions to edit items" msgstr "" -#: users/models.py:206 +#: users/models.py:209 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po index 033d2a192a..762ba0d084 100644 --- a/InvenTree/locale/ko/LC_MESSAGES/django.po +++ b/InvenTree/locale/ko/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-12-08 23:43+0000\n" -"PO-Revision-Date: 2021-12-08 23:47\n" +"POT-Creation-Date: 2021-12-21 02:57+0000\n" +"PO-Revision-Date: 2021-12-21 03:01\n" "Last-Translator: \n" "Language-Team: Korean\n" "Language: ko_KR\n" @@ -34,50 +34,50 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93 +#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 build/forms.py:93 #: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: part/forms.py:108 templates/account/email_confirm.html:20 +#: part/forms.py:78 templates/account/email_confirm.html:20 #: templates/js/translated/forms.js:595 msgid "Confirm" msgstr "" -#: InvenTree/forms.py:136 +#: InvenTree/forms.py:142 msgid "Confirm delete" msgstr "" -#: InvenTree/forms.py:137 +#: InvenTree/forms.py:143 msgid "Confirm item deletion" msgstr "" -#: InvenTree/forms.py:168 +#: InvenTree/forms.py:174 msgid "Enter password" msgstr "" -#: InvenTree/forms.py:169 +#: InvenTree/forms.py:175 msgid "Enter new password" msgstr "" -#: InvenTree/forms.py:176 +#: InvenTree/forms.py:182 msgid "Confirm password" msgstr "" -#: InvenTree/forms.py:177 +#: InvenTree/forms.py:183 msgid "Confirm new password" msgstr "" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:215 msgid "Select Category" msgstr "" -#: InvenTree/forms.py:230 +#: InvenTree/forms.py:236 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:234 +#: InvenTree/forms.py:240 msgid "Email address confirmation" msgstr "" -#: InvenTree/forms.py:254 +#: InvenTree/forms.py:260 msgid "You must type the same email each time." msgstr "" @@ -123,7 +123,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:132 stock/models.py:1852 +#: InvenTree/models.py:132 stock/models.py:1967 #: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "" @@ -136,12 +136,12 @@ msgstr "" #: company/models.py:564 order/models.py:124 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:1258 +#: templates/js/translated/company.js:826 templates/js/translated/part.js:1260 msgid "Link" msgstr "" #: InvenTree/models.py:140 build/models.py:330 part/models.py:798 -#: stock/models.py:524 +#: stock/models.py:527 msgid "Link to external URL" msgstr "" @@ -153,10 +153,10 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213 -#: common/models.py:1214 part/models.py:2205 part/models.py:2225 +#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1219 +#: common/models.py:1220 part/models.py:2205 part/models.py:2225 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2341 +#: templates/js/translated/stock.js:2534 msgid "User" msgstr "" @@ -202,8 +202,8 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:268 #: templates/js/translated/company.js:638 templates/js/translated/part.js:506 -#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565 -#: templates/js/translated/stock.js:2134 +#: templates/js/translated/part.js:643 templates/js/translated/part.js:1567 +#: templates/js/translated/stock.js:2327 msgid "Name" msgstr "" @@ -212,23 +212,23 @@ msgstr "" #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70 +#: order/models.py:122 part/models.py:764 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:89 +#: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428 +#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540 #: templates/js/translated/build.js:1627 templates/js/translated/company.js:345 #: templates/js/translated/company.js:548 #: templates/js/translated/company.js:837 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 -#: templates/js/translated/part.js:565 templates/js/translated/part.js:933 -#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188 -#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653 -#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146 -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/part.js:565 templates/js/translated/part.js:935 +#: templates/js/translated/part.js:1020 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1586 templates/js/translated/part.js:1655 +#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339 +#: templates/js/translated/stock.js:2384 msgid "Description" msgstr "" @@ -248,83 +248,83 @@ msgstr "" msgid "Filename" msgstr "" -#: InvenTree/settings.py:689 +#: InvenTree/settings.py:698 msgid "German" msgstr "" -#: InvenTree/settings.py:690 +#: InvenTree/settings.py:699 msgid "Greek" msgstr "" -#: InvenTree/settings.py:691 +#: InvenTree/settings.py:700 msgid "English" msgstr "" -#: InvenTree/settings.py:692 +#: InvenTree/settings.py:701 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:693 +#: InvenTree/settings.py:702 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:694 +#: InvenTree/settings.py:703 msgid "French" msgstr "" -#: InvenTree/settings.py:695 +#: InvenTree/settings.py:704 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:696 +#: InvenTree/settings.py:705 msgid "Italian" msgstr "" -#: InvenTree/settings.py:697 +#: InvenTree/settings.py:706 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:698 +#: InvenTree/settings.py:707 msgid "Korean" msgstr "" -#: InvenTree/settings.py:699 +#: InvenTree/settings.py:708 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:700 +#: InvenTree/settings.py:709 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:701 +#: InvenTree/settings.py:710 msgid "Polish" msgstr "" -#: InvenTree/settings.py:702 +#: InvenTree/settings.py:711 msgid "Portugese" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:712 msgid "Russian" msgstr "" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:713 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:714 msgid "Thai" msgstr "" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:715 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:716 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:717 msgid "Chinese" msgstr "" @@ -341,7 +341,7 @@ msgid "InvenTree system health checks failed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 msgid "Pending" msgstr "" @@ -349,14 +349,14 @@ msgstr "" msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:319 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:313 +#: InvenTree/status_codes.py:318 msgid "Cancelled" msgstr "" @@ -370,7 +370,7 @@ msgstr "" msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:143 order/models.py:939 +#: InvenTree/status_codes.py:143 order/models.py:941 #: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255 msgid "Shipped" msgstr "" @@ -395,83 +395,87 @@ msgstr "" msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:269 +#: InvenTree/status_codes.py:272 msgid "Legacy stock tracking entry" msgstr "" -#: InvenTree/status_codes.py:271 +#: InvenTree/status_codes.py:274 msgid "Stock item created" msgstr "" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Edited stock item" msgstr "" -#: InvenTree/status_codes.py:274 +#: InvenTree/status_codes.py:277 msgid "Assigned serial number" msgstr "" -#: InvenTree/status_codes.py:276 +#: InvenTree/status_codes.py:279 msgid "Stock counted" msgstr "" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Stock manually added" msgstr "" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Stock manually removed" msgstr "" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Location changed" msgstr "" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Installed into assembly" msgstr "" -#: InvenTree/status_codes.py:283 +#: InvenTree/status_codes.py:286 msgid "Removed from assembly" msgstr "" -#: InvenTree/status_codes.py:285 +#: InvenTree/status_codes.py:288 msgid "Installed component item" msgstr "" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Removed component item" msgstr "" -#: InvenTree/status_codes.py:288 +#: InvenTree/status_codes.py:291 msgid "Split from parent item" msgstr "" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064 +msgid "Merged stock items" +msgstr "" + +#: InvenTree/status_codes.py:296 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:297 msgid "Returned from customer" msgstr "" -#: InvenTree/status_codes.py:294 +#: InvenTree/status_codes.py:299 msgid "Build order output created" msgstr "" -#: InvenTree/status_codes.py:295 +#: InvenTree/status_codes.py:300 msgid "Build order output completed" msgstr "" -#: InvenTree/status_codes.py:297 +#: InvenTree/status_codes.py:302 msgid "Received against purchase order" msgstr "" -#: InvenTree/status_codes.py:312 +#: InvenTree/status_codes.py:317 msgid "Production" msgstr "" @@ -575,16 +579,16 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1283 -#: build/templates/build/build_base.html:132 -#: build/templates/build/detail.html:35 common/models.py:1253 +#: build/forms.py:36 build/models.py:1286 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1259 #: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:794 order/models.py:1205 order/serializers.py:810 +#: order/models.py:796 order/models.py:1207 order/serializers.py:810 #: order/templates/order/order_wizard/match_parts.html:30 -#: 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 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:193 +#: part/forms.py:209 part/forms.py:225 part/models.py:2576 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:967 part/templates/part/detail.html:1053 +#: part/templates/part/detail.html:961 part/templates/part/detail.html:1047 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -592,10 +596,10 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:174 -#: stock/templates/stock/item_base.html:255 -#: stock/templates/stock/item_base.html:263 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443 +#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:261 +#: stock/templates/stock/item_base.html:269 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555 #: templates/js/translated/build.js:240 templates/js/translated/build.js:440 #: templates/js/translated/build.js:634 templates/js/translated/build.js:644 #: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367 @@ -604,10 +608,10 @@ msgstr "" #: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 #: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 #: templates/js/translated/order.js:2150 templates/js/translated/part.js:843 -#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919 -#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382 -#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326 -#: templates/js/translated/stock.js:2428 +#: templates/js/translated/part.js:1798 templates/js/translated/part.js:1921 +#: templates/js/translated/part.js:1999 templates/js/translated/stock.js:383 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750 +#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621 msgid "Quantity" msgstr "" @@ -616,8 +620,8 @@ msgid "Enter quantity for build output" msgstr "" #: build/forms.py:41 order/serializers.py:814 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:229 -#: templates/js/translated/stock.js:383 +#: stock/serializers.py:314 templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:384 msgid "Serial Numbers" msgstr "" @@ -661,7 +665,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:145 +#: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" msgstr "" @@ -671,11 +675,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:199 order/models.py:210 order/models.py:536 -#: order/models.py:801 part/models.py:2585 +#: order/models.py:803 part/models.py:2585 #: part/templates/part/bom_upload/match_parts.html:30 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124 +#: templates/js/translated/bom.js:547 templates/js/translated/build.js:1124 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "" @@ -695,7 +699,7 @@ msgstr "" #: build/models.py:225 build/templates/build/build_base.html:77 #: build/templates/build/detail.html:30 company/models.py:705 -#: order/models.py:854 order/models.py:928 +#: order/models.py:856 order/models.py:930 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357 #: part/models.py:2151 part/models.py:2167 part/models.py:2186 #: part/models.py:2203 part/models.py:2305 part/models.py:2427 @@ -706,20 +710,21 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 -#: templates/InvenTree/search.html:86 +#: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214 -#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326 +#: templates/js/translated/bom.js:505 templates/js/translated/build.js:625 #: templates/js/translated/build.js:993 templates/js/translated/build.js:1364 #: templates/js/translated/build.js:1632 templates/js/translated/company.js:489 #: templates/js/translated/company.js:746 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 -#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918 -#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166 -#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747 -#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416 +#: templates/js/translated/order.js:2128 templates/js/translated/part.js:920 +#: templates/js/translated/part.js:1001 templates/js/translated/part.js:1168 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719 +#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:2609 msgid "Part" msgstr "" @@ -776,7 +781,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:285 stock/models.py:528 +#: build/models.py:285 stock/models.py:531 msgid "Batch Code" msgstr "" @@ -830,27 +835,27 @@ msgstr "" #: build/models.py:329 build/templates/build/detail.html:102 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:354 stock/models.py:522 -#: stock/templates/stock/item_base.html:374 +#: part/templates/part/part_base.html:354 stock/models.py:525 +#: stock/templates/stock/item_base.html:372 msgid "External Link" 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:144 order/models.py:803 order/models.py:1049 +#: order/models.py:144 order/models.py:805 order/models.py:1051 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:925 -#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50 +#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594 -#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332 -#: stock/serializers.py:624 stock/serializers.py:711 +#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597 +#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332 +#: stock/serializers.py:638 stock/serializers.py:736 stock/serializers.py:868 #: stock/templates/stock/stock_sidebar.html:21 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711 #: templates/js/translated/company.js:842 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795 msgid "Notes" msgstr "" @@ -883,7 +888,7 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1133 order/models.py:1165 +#: build/models.py:1133 order/models.py:1167 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -891,51 +896,52 @@ msgstr "" msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1193 +#: build/models.py:1196 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1253 stock/templates/stock/item_base.html:346 -#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605 +#: build/models.py:1256 stock/templates/stock/item_base.html:344 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1605 #: templates/navbar.html:35 msgid "Build" msgstr "" -#: build/models.py:1254 +#: build/models.py:1257 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690 -#: order/serializers.py:708 stock/serializers.py:562 +#: build/models.py:1273 build/serializers.py:334 order/serializers.py:690 +#: order/serializers.py:708 stock/serializers.py:576 stock/serializers.py:694 #: stock/templates/stock/item_base.html:8 -#: stock/templates/stock/item_base.html:16 -#: stock/templates/stock/item_base.html:368 +#: stock/templates/stock/item_base.html:22 +#: stock/templates/stock/item_base.html:366 #: templates/js/translated/build.js:413 templates/js/translated/build.js:418 #: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277 +#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:2470 msgid "Stock Item" msgstr "" -#: build/models.py:1271 +#: build/models.py:1274 msgid "Source stock item" msgstr "" -#: build/models.py:1284 +#: build/models.py:1287 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1292 +#: build/models.py:1295 msgid "Install into" msgstr "" -#: build/models.py:1293 +#: build/models.py:1296 msgid "Destination stock item" msgstr "" -#: build/serializers.py:137 build/serializers.py:357 +#: build/serializers.py:137 build/serializers.py:363 msgid "Build Output" msgstr "" @@ -956,16 +962,16 @@ msgid "This build output is not fully allocated" msgstr "" #: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813 -#: stock/templates/stock/item_base.html:314 +#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:729 +#: stock/serializers.py:970 stock/templates/stock/item_base.html:312 #: templates/js/translated/barcode.js:384 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425 #: templates/js/translated/build.js:1032 templates/js/translated/order.js:508 #: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 #: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497 -#: templates/js/translated/stock.js:2218 +#: templates/js/translated/part.js:177 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411 msgid "Location" msgstr "" @@ -975,11 +981,11 @@ msgstr "" #: build/serializers.py:197 build/templates/build/build_base.html:137 #: build/templates/build/detail.html:63 order/models.py:552 -#: order/serializers.py:247 stock/templates/stock/item_base.html:180 +#: order/serializers.py:247 stock/templates/stock/item_base.html:186 #: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661 #: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472 -#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651 +#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637 msgid "Status" msgstr "" @@ -1000,33 +1006,33 @@ msgstr "" msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:319 +#: build/serializers.py:325 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:334 stock/serializers.py:569 +#: build/serializers.py:340 stock/serializers.py:583 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:348 order/models.py:277 order/serializers.py:240 -#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305 +#: build/serializers.py:354 order/models.py:277 order/serializers.py:240 +#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:390 order/serializers.py:741 +#: build/serializers.py:396 order/serializers.py:741 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:396 +#: build/serializers.py:402 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:403 +#: build/serializers.py:409 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:431 order/serializers.py:984 +#: build/serializers.py:437 order/serializers.py:984 msgid "Allocation items must be provided" msgstr "" @@ -1067,33 +1073,33 @@ msgstr "" msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:87 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:96 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:98 +#: build/templates/build/build_base.html:103 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:105 +#: build/templates/build/build_base.html:110 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Stock has not been fully allocated to this Build Order" msgstr "" @@ -1131,12 +1137,12 @@ msgid "Completed" msgstr "" #: build/templates/build/build_base.html:171 -#: build/templates/build/detail.html:95 order/models.py:925 -#: order/models.py:1021 order/templates/order/sales_order_base.html:9 +#: build/templates/build/detail.html:95 order/models.py:927 +#: order/models.py:1023 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:308 +#: stock/templates/stock/item_base.html:306 #: templates/js/translated/order.js:1218 msgid "Sales Order" msgstr "" @@ -1211,7 +1217,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "" @@ -1225,8 +1231,8 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:332 -#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451 +#: stock/templates/stock/item_base.html:330 +#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1278,7 +1284,7 @@ msgstr "" #: build/templates/build/detail.html:185 #: company/templates/company/detail.html:38 #: company/templates/company/detail.html:85 order/views.py:463 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order Parts" msgstr "" @@ -1347,7 +1353,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115 +#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115 #: stock/templates/stock/item.html:205 msgid "Edit Notes" msgstr "" @@ -1489,7 +1495,7 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:340 common/models.py:998 common/models.py:1206 +#: common/models.py:340 common/models.py:1004 common/models.py:1212 msgid "Settings key (must be unique - case insensitive" msgstr "" @@ -1651,7 +1657,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956 +#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:1068 #: templates/js/translated/table_filters.js:168 #: templates/js/translated/table_filters.js:416 msgid "Assembly" @@ -1953,256 +1959,264 @@ msgid "Group to which new users are assigned on registration" msgstr "" #: common/models.py:961 -msgid "Enable URL integration" +msgid "Enforce MFA" msgstr "" #: common/models.py:962 -msgid "Enable plugins to add URL routes" +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:967 +msgid "Enable URL integration" msgstr "" #: common/models.py:968 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:974 msgid "Enable navigation integration" msgstr "" -#: common/models.py:969 +#: common/models.py:975 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:975 +#: common/models.py:981 msgid "Enable global setting integration" msgstr "" -#: common/models.py:976 +#: common/models.py:982 msgid "Enable plugins to integrate into inventree global settings" msgstr "" -#: common/models.py:982 +#: common/models.py:988 msgid "Enable app integration" msgstr "" -#: common/models.py:983 +#: common/models.py:989 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1029 +#: common/models.py:1035 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1030 +#: common/models.py:1036 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1035 +#: common/models.py:1041 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1036 +#: common/models.py:1042 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1041 +#: common/models.py:1047 msgid "Show latest parts" msgstr "" -#: common/models.py:1042 +#: common/models.py:1048 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1047 +#: common/models.py:1053 msgid "Recent Part Count" msgstr "" -#: common/models.py:1048 +#: common/models.py:1054 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1054 +#: common/models.py:1060 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1055 +#: common/models.py:1061 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1060 +#: common/models.py:1066 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1061 +#: common/models.py:1067 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1066 +#: common/models.py:1072 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1067 +#: common/models.py:1073 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1072 +#: common/models.py:1078 msgid "Show low stock" msgstr "" -#: common/models.py:1073 +#: common/models.py:1079 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1078 +#: common/models.py:1084 msgid "Show depleted stock" msgstr "" -#: common/models.py:1079 +#: common/models.py:1085 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1084 +#: common/models.py:1090 msgid "Show needed stock" msgstr "" -#: common/models.py:1085 +#: common/models.py:1091 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1090 +#: common/models.py:1096 msgid "Show expired stock" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1096 +#: common/models.py:1102 msgid "Show stale stock" msgstr "" -#: common/models.py:1097 +#: common/models.py:1103 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1102 +#: common/models.py:1108 msgid "Show pending builds" msgstr "" -#: common/models.py:1103 +#: common/models.py:1109 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1108 +#: common/models.py:1114 msgid "Show overdue builds" msgstr "" -#: common/models.py:1109 +#: common/models.py:1115 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1114 +#: common/models.py:1120 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1115 +#: common/models.py:1121 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1120 +#: common/models.py:1126 msgid "Show overdue POs" msgstr "" -#: common/models.py:1121 +#: common/models.py:1127 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1126 +#: common/models.py:1132 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1127 +#: common/models.py:1133 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1132 +#: common/models.py:1138 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1133 +#: common/models.py:1139 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1139 +#: common/models.py:1145 msgid "Inline label display" msgstr "" -#: common/models.py:1140 +#: common/models.py:1146 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1146 +#: common/models.py:1152 msgid "Inline report display" msgstr "" -#: common/models.py:1147 +#: common/models.py:1153 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "Search Preview Results" msgstr "" -#: common/models.py:1154 +#: common/models.py:1160 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1160 +#: common/models.py:1166 msgid "Search Show Stock" msgstr "" -#: common/models.py:1161 +#: common/models.py:1167 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1167 +#: common/models.py:1173 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1168 +#: common/models.py:1174 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1174 +#: common/models.py:1180 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1175 +#: common/models.py:1181 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1181 +#: common/models.py:1187 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1182 +#: common/models.py:1188 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1188 +#: common/models.py:1194 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1189 +#: common/models.py:1195 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1254 company/forms.py:43 +#: common/models.py:1260 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1261 company/serializers.py:264 +#: common/models.py:1267 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801 +#: templates/js/translated/part.js:852 templates/js/translated/part.js:1803 msgid "Price" msgstr "" -#: common/models.py:1262 +#: common/models.py:1268 msgid "Unit price at specified quantity" msgstr "" @@ -2290,7 +2304,7 @@ msgid "Contact phone number" msgstr "" #: company/models.py:125 company/templates/company/company_base.html:129 -#: templates/InvenTree/settings/user.html:47 +#: templates/InvenTree/settings/user.html:48 msgid "Email" msgstr "" @@ -2347,8 +2361,8 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:320 company/models.py:535 stock/models.py:468 -#: stock/templates/stock/item_base.html:135 +#: company/models.py:320 company/models.py:535 stock/models.py:469 +#: stock/templates/stock/item_base.html:141 msgid "Base Part" msgstr "" @@ -2359,7 +2373,7 @@ msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:381 +#: stock/templates/stock/item_base.html:379 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:514 #: templates/js/translated/company.js:797 templates/js/translated/part.js:232 @@ -2393,7 +2407,7 @@ msgstr "" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:391 +#: stock/templates/stock/item_base.html:389 msgid "Manufacturer Part" msgstr "" @@ -2403,8 +2417,8 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:1845 templates/js/translated/company.js:644 -#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117 +#: stock/models.py:1960 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1296 msgid "Value" msgstr "" @@ -2431,7 +2445,7 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:224 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219 -#: part/bom.py:247 stock/templates/stock/item_base.html:398 +#: part/bom.py:247 stock/templates/stock/item_base.html:396 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:771 templates/js/translated/order.js:823 #: templates/js/translated/part.js:213 templates/js/translated/part.js:800 @@ -2479,8 +2493,8 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:491 stock/templates/stock/item_base.html:339 -#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612 +#: stock/models.py:493 stock/templates/stock/item_base.html:337 +#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1791 msgid "Packaging" msgstr "" @@ -2506,7 +2520,7 @@ msgstr "" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322 +#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322 msgid "Company" msgstr "" @@ -2548,11 +2562,11 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:83 order/models.py:547 -#: order/templates/order/sales_order_base.html:115 stock/models.py:509 -#: stock/models.py:510 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:291 +#: order/templates/order/sales_order_base.html:115 stock/models.py:512 +#: stock/models.py:513 stock/serializers.py:624 +#: stock/templates/stock/item_base.html:289 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2259 +#: templates/js/translated/stock.js:2452 msgid "Customer" msgstr "" @@ -2571,7 +2585,7 @@ msgstr "" #: company/templates/company/detail.html:15 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:124 +#: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" @@ -2590,14 +2604,14 @@ msgstr "" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:167 part/templates/part/detail.html:342 +#: part/templates/part/category.html:171 part/templates/part/detail.html:342 #: part/templates/part/detail.html:370 msgid "Options" msgstr "" #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order parts" msgstr "" @@ -2611,7 +2625,7 @@ msgstr "" msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109 +#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" @@ -2633,8 +2647,8 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203 +#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" @@ -2655,8 +2669,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223 +#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" @@ -2698,7 +2712,7 @@ msgid "Supplier List" msgstr "" #: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184 +#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 #: templates/navbar.html:46 msgid "Manufacturers" msgstr "" @@ -2706,7 +2720,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:67 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76 msgid "Order part" msgstr "" @@ -2728,7 +2742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 #: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:194 templates/navbar.html:45 +#: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "" @@ -2742,7 +2756,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:254 #: part/templates/part/detail.html:344 part/templates/part/detail.html:372 #: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31 -#: users/models.py:206 +#: users/models.py:209 msgid "Delete" msgstr "" @@ -2765,7 +2779,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:867 +#: part/templates/part/detail.html:861 msgid "Add Parameter" msgstr "" @@ -2794,9 +2808,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:476 -#: stock/templates/stock/item_base.html:403 -#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569 +#: company/templates/company/supplier_part.html:24 stock/models.py:477 +#: stock/templates/stock/item_base.html:401 +#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1748 msgid "Supplier Part" msgstr "" @@ -2816,13 +2830,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:20 stock/templates/stock/location.html:162 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:166 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163 -#: templates/js/translated/stock.js:359 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 +#: templates/js/translated/stock.js:360 msgid "New Stock Item" msgstr "" @@ -2832,7 +2846,7 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:68 +#: part/templates/part/detail.html:72 msgid "Order Part" msgstr "" @@ -2843,7 +2857,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:1717 +#: part/templates/part/prices.html:271 part/views.py:1713 msgid "Add Price Break" msgstr "" @@ -2851,11 +2865,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1779 +#: company/templates/company/supplier_part.html:224 part/views.py:1775 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1765 +#: company/templates/company/supplier_part.html:238 part/views.py:1761 msgid "Edit Price Break" msgstr "" @@ -2869,14 +2883,14 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:156 +#: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434 -#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059 -#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:1401 templates/navbar.html:28 +#: templates/js/translated/bom.js:328 templates/js/translated/part.js:434 +#: templates/js/translated/part.js:569 templates/js/translated/part.js:1061 +#: templates/js/translated/part.js:1222 templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:1580 templates/navbar.html:28 msgid "Stock" msgstr "" @@ -2895,11 +2909,11 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:133 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:159 +#: stock/templates/stock/location.html:137 +#: stock/templates/stock/location.html:151 +#: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "" @@ -2912,7 +2926,7 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:61 templates/InvenTree/search.html:214 +#: company/views.py:61 templates/InvenTree/search.html:208 #: templates/navbar.html:57 msgid "Customers" msgstr "" @@ -3121,7 +3135,7 @@ msgstr "" msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:562 order/models.py:1026 +#: order/models.py:562 order/models.py:1028 #: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429 msgid "Shipment Date" msgstr "" @@ -3130,7 +3144,7 @@ msgstr "" msgid "shipped by" msgstr "" -#: order/models.py:634 +#: order/models.py:635 msgid "Order cannot be completed as no parts have been assigned" msgstr "" @@ -3138,172 +3152,172 @@ msgstr "" msgid "Only a pending order can be marked as complete" msgstr "" -#: order/models.py:643 +#: order/models.py:642 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:647 +#: order/models.py:645 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:795 +#: order/models.py:797 msgid "Item quantity" msgstr "" -#: order/models.py:801 +#: order/models.py:803 msgid "Line item reference" msgstr "" -#: order/models.py:803 +#: order/models.py:805 msgid "Line item notes" msgstr "" -#: order/models.py:833 order/models.py:924 order/models.py:1020 +#: order/models.py:835 order/models.py:926 order/models.py:1022 #: templates/js/translated/order.js:1820 msgid "Order" msgstr "" -#: order/models.py:834 order/templates/order/order_base.html:9 +#: order/models.py:836 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:353 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/order.js:801 templates/js/translated/part.js:775 -#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240 +#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433 msgid "Purchase Order" msgstr "" -#: order/models.py:855 +#: order/models.py:857 msgid "Supplier part" msgstr "" -#: order/models.py:862 order/templates/order/order_base.html:163 +#: order/models.py:864 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:847 templates/js/translated/part.js:873 #: templates/js/translated/table_filters.js:317 msgid "Received" msgstr "" -#: order/models.py:863 +#: order/models.py:865 msgid "Number of items received" msgstr "" -#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:360 -#: templates/js/translated/stock.js:1600 +#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:358 +#: templates/js/translated/stock.js:1779 msgid "Purchase Price" msgstr "" -#: order/models.py:871 +#: order/models.py:873 msgid "Unit purchase price" msgstr "" -#: order/models.py:879 +#: order/models.py:881 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:934 part/templates/part/part_pricing.html:112 +#: order/models.py:936 part/templates/part/part_pricing.html:112 #: part/templates/part/prices.html:116 part/templates/part/prices.html:284 msgid "Sale Price" msgstr "" -#: order/models.py:935 +#: order/models.py:937 msgid "Unit sale price" msgstr "" -#: order/models.py:940 +#: order/models.py:942 msgid "Shipped quantity" msgstr "" -#: order/models.py:1027 +#: order/models.py:1029 msgid "Date of shipment" msgstr "" -#: order/models.py:1034 +#: order/models.py:1036 msgid "Checked By" msgstr "" -#: order/models.py:1035 +#: order/models.py:1037 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1043 +#: order/models.py:1045 msgid "Shipment number" msgstr "" -#: order/models.py:1050 +#: order/models.py:1052 msgid "Shipment notes" msgstr "" -#: order/models.py:1057 +#: order/models.py:1059 msgid "Tracking Number" msgstr "" -#: order/models.py:1058 +#: order/models.py:1060 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1068 +#: order/models.py:1070 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1071 +#: order/models.py:1073 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1147 order/models.py:1149 +#: order/models.py:1149 order/models.py:1151 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1153 +#: order/models.py:1155 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1155 +#: order/models.py:1157 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1158 +#: order/models.py:1160 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1162 +#: order/models.py:1164 msgid "StockItem is over-allocated" msgstr "" -#: order/models.py:1168 order/serializers.py:734 +#: order/models.py:1170 order/serializers.py:734 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1171 +#: order/models.py:1173 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1172 +#: order/models.py:1174 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1180 +#: order/models.py:1182 msgid "Line" msgstr "" -#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953 +#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953 #: templates/js/translated/model_renderers.js:251 msgid "Shipment" msgstr "" -#: order/models.py:1189 +#: order/models.py:1191 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1201 +#: order/models.py:1203 msgid "Item" msgstr "" -#: order/models.py:1202 +#: order/models.py:1204 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1205 +#: order/models.py:1207 msgid "Enter stock allocation quantity" msgstr "" @@ -3530,7 +3544,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/build.js:245 templates/js/translated/build.js:1256 #: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:592 +#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761 msgid "Remove row" msgstr "" @@ -3722,7 +3736,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188 +#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1188 msgid "Actions" msgstr "" @@ -3797,24 +3811,24 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:760 +#: part/api.py:777 msgid "Must be greater than zero" msgstr "" -#: part/api.py:764 +#: part/api.py:781 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:779 +#: part/api.py:796 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833 +#: part/api.py:827 part/api.py:831 part/api.py:846 part/api.py:850 msgid "This field is required" msgstr "" #: part/bom.py:125 part/models.py:81 part/models.py:816 -#: part/templates/part/category.html:104 part/templates/part/part_base.html:338 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "" @@ -3822,99 +3836,43 @@ msgstr "" msgid "Available Stock" msgstr "" -#: part/forms.py:63 -msgid "File Format" -msgstr "" - -#: part/forms.py:63 -msgid "Select output file format" -msgstr "" - -#: part/forms.py:65 -msgid "Cascading" -msgstr "" - -#: part/forms.py:65 -msgid "Download cascading / multi-level BOM" -msgstr "" - -#: part/forms.py:67 -msgid "Levels" -msgstr "" - -#: part/forms.py:67 -msgid "Select maximum number of BOM levels to export (0 = all levels)" -msgstr "" - -#: part/forms.py:69 -msgid "Include Parameter Data" -msgstr "" - -#: part/forms.py:69 -msgid "Include part parameters data in exported BOM" -msgstr "" - -#: part/forms.py:71 -msgid "Include Stock Data" -msgstr "" - -#: part/forms.py:71 -msgid "Include part stock data in exported BOM" -msgstr "" - -#: part/forms.py:73 -msgid "Include Manufacturer Data" -msgstr "" - -#: part/forms.py:73 -msgid "Include part manufacturer data in exported BOM" -msgstr "" - -#: part/forms.py:75 -msgid "Include Supplier Data" -msgstr "" - -#: part/forms.py:75 -msgid "Include part supplier data in exported BOM" -msgstr "" - -#: part/forms.py:96 part/models.py:2427 +#: part/forms.py:66 part/models.py:2427 msgid "Parent Part" msgstr "" -#: part/forms.py:97 part/templates/part/bom_duplicate.html:7 +#: part/forms.py:67 part/templates/part/bom_duplicate.html:7 msgid "Select parent part to copy BOM from" msgstr "" -#: part/forms.py:103 +#: part/forms.py:73 msgid "Clear existing BOM items" msgstr "" -#: part/forms.py:109 +#: part/forms.py:79 msgid "Confirm BOM duplication" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "validate" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "Confirm that the BOM is correct" msgstr "" -#: part/forms.py:163 +#: part/forms.py:133 msgid "Select part category" msgstr "" -#: part/forms.py:200 +#: part/forms.py:170 msgid "Add parameter template to same level categories" msgstr "" -#: part/forms.py:204 +#: part/forms.py:174 msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:224 +#: part/forms.py:194 msgid "Input quantity for price calculation" msgstr "" @@ -3930,24 +3888,24 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11 +#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:96 part/templates/part/category.html:124 -#: templates/InvenTree/search.html:101 templates/stats.html:84 +#: part/models.py:96 part/templates/part/category.html:128 +#: templates/InvenTree/search.html:95 templates/stats.html:84 #: users/models.py:40 msgid "Part Categories" msgstr "" #: part/models.py:358 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:13 part/templates/part/category.html:129 -#: part/templates/part/category.html:149 +#: part/templates/part/category.html:17 part/templates/part/category.html:133 +#: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1597 templates/navbar.html:21 +#: templates/js/translated/part.js:1599 templates/navbar.html:21 #: templates/stats.html:80 templates/stats.html:89 users/models.py:41 msgid "Parts" msgstr "" @@ -4001,7 +3959,7 @@ msgstr "" msgid "Part description" msgstr "" -#: part/models.py:770 part/templates/part/category.html:82 +#: part/models.py:770 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "" @@ -4014,7 +3972,7 @@ msgstr "" #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 #: templates/InvenTree/settings/settings.html:172 -#: templates/js/translated/part.js:1202 +#: templates/js/translated/part.js:1204 msgid "Category" msgstr "" @@ -4023,8 +3981,8 @@ msgid "Part category" msgstr "" #: part/models.py:784 part/templates/part/part_base.html:274 -#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155 -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/part.js:557 templates/js/translated/part.js:1157 +#: templates/js/translated/stock.js:1552 msgid "IPN" msgstr "" @@ -4145,8 +4103,8 @@ msgstr "" msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2310 templates/js/translated/part.js:1648 -#: templates/js/translated/stock.js:1097 +#: part/models.py:2310 templates/js/translated/part.js:1650 +#: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "" @@ -4162,7 +4120,7 @@ msgstr "" msgid "Enter description for this test" msgstr "" -#: part/models.py:2322 templates/js/translated/part.js:1657 +#: part/models.py:2322 templates/js/translated/part.js:1659 #: templates/js/translated/table_filters.js:281 msgid "Required" msgstr "" @@ -4171,7 +4129,7 @@ msgstr "" msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2328 templates/js/translated/part.js:1665 +#: part/models.py:2328 templates/js/translated/part.js:1667 msgid "Requires Value" msgstr "" @@ -4179,7 +4137,7 @@ msgstr "" msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2334 templates/js/translated/part.js:1672 +#: part/models.py:2334 templates/js/translated/part.js:1674 msgid "Requires Attachment" msgstr "" @@ -4241,8 +4199,8 @@ msgstr "" msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2578 templates/js/translated/bom.js:454 -#: templates/js/translated/bom.js:528 +#: part/models.py:2578 templates/js/translated/bom.js:566 +#: templates/js/translated/bom.js:640 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" @@ -4275,8 +4233,8 @@ msgstr "" msgid "BOM line checksum" msgstr "" -#: part/models.py:2594 templates/js/translated/bom.js:545 -#: templates/js/translated/bom.js:552 +#: part/models.py:2594 templates/js/translated/bom.js:657 +#: templates/js/translated/bom.js:664 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" @@ -4286,7 +4244,7 @@ msgstr "" msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2600 templates/js/translated/bom.js:537 +#: part/models.py:2600 templates/js/translated/bom.js:649 msgid "Allow Variants" msgstr "" @@ -4406,100 +4364,100 @@ msgstr "" msgid "This will validate each line in the BOM." msgstr "" -#: part/templates/part/category.html:24 part/templates/part/category.html:28 +#: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:32 +#: part/templates/part/category.html:36 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:38 +#: part/templates/part/category.html:42 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:43 +#: part/templates/part/category.html:47 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:44 +#: part/templates/part/category.html:48 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:52 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:53 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:57 +#: part/templates/part/category.html:61 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:58 +#: part/templates/part/category.html:62 msgid "New Category" msgstr "" -#: part/templates/part/category.html:76 part/templates/part/category.html:89 +#: part/templates/part/category.html:80 part/templates/part/category.html:93 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:90 +#: part/templates/part/category.html:94 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:110 part/templates/part/category.html:201 +#: part/templates/part/category.html:114 part/templates/part/category.html:205 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:115 +#: part/templates/part/category.html:119 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:152 +#: part/templates/part/category.html:156 msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:153 part/templates/part/category.html:177 +#: part/templates/part/category.html:157 part/templates/part/category.html:181 msgid "Export" msgstr "" -#: part/templates/part/category.html:156 +#: part/templates/part/category.html:160 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:157 templates/js/translated/bom.js:40 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 msgid "New Part" msgstr "" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set category" msgstr "" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:175 +#: part/templates/part/category.html:179 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:177 +#: part/templates/part/category.html:181 msgid "Export Data" msgstr "" -#: part/templates/part/category.html:191 +#: part/templates/part/category.html:195 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:268 +#: part/templates/part/category.html:288 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:295 +#: part/templates/part/category.html:315 msgid "Create Part" msgstr "" @@ -4566,24 +4524,24 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:17 +#: part/templates/part/detail.html:21 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:29 +#: part/templates/part/detail.html:33 #, python-format msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:39 +#: part/templates/part/detail.html:43 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:44 +#: part/templates/part/detail.html:48 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:101 +#: part/templates/part/detail.html:105 msgid "Sales Order Allocations" msgstr "" @@ -4619,7 +4577,7 @@ msgstr "" msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:242 +#: part/templates/part/detail.html:242 templates/js/translated/bom.js:70 msgid "Export BOM" msgstr "" @@ -4683,38 +4641,38 @@ msgstr "" msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:651 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:659 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:760 +#: part/templates/part/detail.html:754 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:817 +#: part/templates/part/detail.html:811 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:930 +#: part/templates/part/detail.html:924 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:942 +#: part/templates/part/detail.html:936 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:954 +#: part/templates/part/detail.html:948 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1043 +#: part/templates/part/detail.html:1037 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4745,20 +4703,20 @@ msgid "Subscribe to notifications for this part" msgstr "" #: part/templates/part/part_base.html:43 -#: stock/templates/stock/item_base.html:28 -#: stock/templates/stock/location.html:29 +#: stock/templates/stock/item_base.html:34 +#: stock/templates/stock/location.html:33 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:45 -#: stock/templates/stock/item_base.html:32 -#: stock/templates/stock/location.html:31 templates/qr_button.html:1 +#: stock/templates/stock/item_base.html:38 +#: stock/templates/stock/location.html:35 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:48 -#: stock/templates/stock/location.html:32 +#: stock/templates/stock/item_base.html:54 +#: stock/templates/stock/location.html:36 msgid "Print Label" msgstr "" @@ -4767,8 +4725,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:103 -#: stock/templates/stock/location.html:40 +#: stock/templates/stock/item_base.html:109 +#: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "" @@ -4848,7 +4806,7 @@ msgstr "" msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1235 +#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1237 msgid "On Order" msgstr "" @@ -4864,12 +4822,12 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:566 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1066 -#: templates/js/translated/part.js:1239 +#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1068 +#: templates/js/translated/part.js:1241 msgid "Building" msgstr "" @@ -4882,7 +4840,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:159 +#: stock/templates/stock/item_base.html:165 msgid "Search for serial number" msgstr "" @@ -4921,7 +4879,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:520 +#: templates/js/translated/bom.js:632 msgid "No supplier pricing available" msgstr "" @@ -5036,7 +4994,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626 msgid "Supplier Cost" msgstr "" @@ -5058,7 +5016,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1788 +#: part/templates/part/prices.html:215 part/views.py:1784 msgid "Add Internal Price Break" msgstr "" @@ -5078,9 +5036,9 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476 -#: templates/js/translated/part.js:436 templates/js/translated/part.js:1056 -#: templates/js/translated/part.js:1243 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588 +#: templates/js/translated/part.js:436 templates/js/translated/part.js:1058 +#: templates/js/translated/part.js:1245 msgid "No Stock" msgstr "" @@ -5154,67 +5112,67 @@ msgstr "" msgid "Match Parts" msgstr "" -#: part/views.py:1196 +#: part/views.py:1195 msgid "Export Bill of Materials" msgstr "" -#: part/views.py:1248 +#: part/views.py:1244 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1255 +#: part/views.py:1251 msgid "Part was deleted" msgstr "" -#: part/views.py:1264 +#: part/views.py:1260 msgid "Part Pricing" msgstr "" -#: part/views.py:1413 +#: part/views.py:1409 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1423 +#: part/views.py:1419 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1430 +#: part/views.py:1426 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1489 templates/js/translated/part.js:313 +#: part/views.py:1485 templates/js/translated/part.js:313 msgid "Edit Part Category" msgstr "" -#: part/views.py:1527 +#: part/views.py:1523 msgid "Delete Part Category" msgstr "" -#: part/views.py:1533 +#: part/views.py:1529 msgid "Part category was deleted" msgstr "" -#: part/views.py:1542 +#: part/views.py:1538 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1643 +#: part/views.py:1639 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1699 +#: part/views.py:1695 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1721 +#: part/views.py:1717 msgid "Added new price break" msgstr "" -#: part/views.py:1797 +#: part/views.py:1793 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1805 +#: part/views.py:1801 msgid "Delete Internal Price Break" msgstr "" @@ -5388,12 +5346,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:514 stock/templates/stock/item_base.html:149 +#: stock/models.py:517 stock/templates/stock/item_base.html:155 #: templates/js/translated/build.js:238 templates/js/translated/build.js:642 #: templates/js/translated/build.js:1018 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415 msgid "Serial Number" msgstr "" @@ -5402,19 +5360,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:1833 +#: stock/models.py:1948 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:1839 +#: stock/models.py:1954 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:49 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367 msgid "Date" msgstr "" @@ -5432,17 +5390,18 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434 +#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748 +#: templates/js/translated/stock.js:2627 msgid "Serial" msgstr "" -#: stock/api.py:446 +#: stock/api.py:478 msgid "Quantity is required" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571 -#: stock/templates/stock/item_base.html:186 -#: templates/js/translated/stock.js:1522 +#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574 +#: stock/templates/stock/item_base.html:192 +#: templates/js/translated/stock.js:1701 msgid "Expiry Date" msgstr "" @@ -5490,12 +5449,12 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:60 stock/models.py:608 -#: stock/templates/stock/item_base.html:417 +#: stock/models.py:60 stock/models.py:611 +#: stock/templates/stock/item_base.html:415 msgid "Owner" msgstr "" -#: stock/models.py:61 stock/models.py:609 +#: stock/models.py:61 stock/models.py:612 msgid "Select Owner" msgstr "" @@ -5528,150 +5487,190 @@ msgstr "" msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:460 +#: stock/models.py:461 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:470 msgid "Base part" msgstr "" -#: stock/models.py:477 +#: stock/models.py:478 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:482 stock/templates/stock/location.html:12 +#: stock/models.py:484 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:485 +#: stock/models.py:487 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:492 +#: stock/models.py:494 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:497 stock/templates/stock/item_base.html:299 +#: stock/models.py:500 stock/templates/stock/item_base.html:297 msgid "Installed In" msgstr "" -#: stock/models.py:500 +#: stock/models.py:503 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:516 +#: stock/models.py:519 msgid "Serial number for this item" msgstr "" -#: stock/models.py:530 +#: stock/models.py:533 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:534 +#: stock/models.py:537 msgid "Stock Quantity" msgstr "" -#: stock/models.py:543 +#: stock/models.py:546 msgid "Source Build" msgstr "" -#: stock/models.py:545 +#: stock/models.py:548 msgid "Build for this stock item" msgstr "" -#: stock/models.py:556 +#: stock/models.py:559 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:559 +#: stock/models.py:562 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:565 +#: stock/models.py:568 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:572 +#: stock/models.py:575 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete on deplete" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:595 stock/templates/stock/item.html:111 +#: stock/models.py:598 stock/templates/stock/item.html:111 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:604 +#: stock/models.py:607 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1072 +#: stock/models.py:1068 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1078 +#: stock/models.py:1074 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1084 +#: stock/models.py:1080 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1087 +#: stock/models.py:1083 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1090 +#: stock/models.py:1086 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1097 +#: stock/models.py:1093 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1255 +#: stock/models.py:1164 +msgid "Stock item has been assigned to a sales order" +msgstr "" + +#: stock/models.py:1167 +msgid "Stock item is installed in another item" +msgstr "" + +#: stock/models.py:1170 +msgid "Stock item contains other items" +msgstr "" + +#: stock/models.py:1173 +msgid "Stock item has been assigned to a customer" +msgstr "" + +#: stock/models.py:1176 +msgid "Stock item is currently in production" +msgstr "" + +#: stock/models.py:1179 +msgid "Serialized stock cannot be merged" +msgstr "" + +#: stock/models.py:1186 stock/serializers.py:773 +msgid "Duplicate stock items" +msgstr "" + +#: stock/models.py:1190 +msgid "Stock items must refer to the same part" +msgstr "" + +#: stock/models.py:1194 +msgid "Stock items must refer to the same supplier part" +msgstr "" + +#: stock/models.py:1198 +msgid "Stock status codes must match" +msgstr "" + +#: stock/models.py:1369 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1753 +#: stock/models.py:1868 msgid "Entry notes" msgstr "" -#: stock/models.py:1810 +#: stock/models.py:1925 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1931 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1834 +#: stock/models.py:1949 msgid "Test name" msgstr "" -#: stock/models.py:1840 templates/js/translated/table_filters.js:271 +#: stock/models.py:1955 templates/js/translated/table_filters.js:271 msgid "Test result" msgstr "" -#: stock/models.py:1846 +#: stock/models.py:1961 msgid "Test output value" msgstr "" -#: stock/models.py:1853 +#: stock/models.py:1968 msgid "Test result attachment" msgstr "" -#: stock/models.py:1859 +#: stock/models.py:1974 msgid "Test notes" msgstr "" @@ -5696,7 +5695,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:814 +#: stock/serializers.py:326 stock/serializers.py:730 stock/serializers.py:971 msgid "Destination stock location" msgstr "" @@ -5708,39 +5707,63 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:573 +#: stock/serializers.py:587 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:577 +#: stock/serializers.py:591 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:581 +#: stock/serializers.py:595 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:611 +#: stock/serializers.py:625 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:617 +#: stock/serializers.py:631 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:639 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:635 stock/serializers.py:722 +#: stock/serializers.py:649 stock/serializers.py:879 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:684 +#: stock/serializers.py:737 +msgid "Stock merging notes" +msgstr "" + +#: stock/serializers.py:742 +msgid "Allow mismatched suppliers" +msgstr "" + +#: stock/serializers.py:743 +msgid "Allow stock items with different supplier parts to be merged" +msgstr "" + +#: stock/serializers.py:748 +msgid "Allow mismatched status" +msgstr "" + +#: stock/serializers.py:749 +msgid "Allow stock items with different status codes to be merged" +msgstr "" + +#: stock/serializers.py:759 +msgid "At least two stock items must be provided" +msgstr "" + +#: stock/serializers.py:841 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:712 +#: stock/serializers.py:869 msgid "Stock transaction notes" msgstr "" @@ -5765,7 +5788,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50 +#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:56 msgid "Test Report" msgstr "" @@ -5797,197 +5820,189 @@ msgstr "" msgid "Delete Test Result" msgstr "" -#: stock/templates/stock/item_base.html:35 +#: stock/templates/stock/item_base.html:41 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:37 +#: stock/templates/stock/item_base.html:43 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24 +#: stock/templates/stock/item_base.html:45 templates/stock_table.html:24 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:46 +#: stock/templates/stock/item_base.html:52 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:71 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:47 templates/stock_table.html:50 +#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/location.html:51 templates/stock_table.html:50 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:78 templates/stock_table.html:48 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49 +#: stock/templates/stock/item_base.html:81 templates/stock_table.html:49 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:84 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:53 +#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/location.html:57 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53 +#: stock/templates/stock/item_base.html:91 templates/stock_table.html:54 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:94 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:108 +#: stock/templates/stock/item_base.html:114 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/item_base.html:117 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:119 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:116 +#: stock/templates/stock/item_base.html:122 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/stock.js:1535 +#: stock/templates/stock/item_base.html:205 +#: templates/js/translated/stock.js:1714 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:208 +#: stock/templates/stock/item_base.html:214 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:226 +#: stock/templates/stock/item_base.html:232 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:239 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:234 +#: stock/templates/stock/item_base.html:240 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:247 +#: stock/templates/stock/item_base.html:253 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:261 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:263 +#: stock/templates/stock/item_base.html:269 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:269 +#: stock/templates/stock/item_base.html:275 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:273 -msgid "This stock item cannot be deleted as it has child items" -msgstr "" - -#: stock/templates/stock/item_base.html:277 -msgid "This stock item will be automatically deleted when all stock is depleted." -msgstr "" - -#: stock/templates/stock/item_base.html:318 +#: stock/templates/stock/item_base.html:316 #: templates/js/translated/build.js:1040 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:325 +#: stock/templates/stock/item_base.html:323 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:367 +#: stock/templates/stock/item_base.html:365 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:385 +#: stock/templates/stock/item_base.html:383 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:410 +#: stock/templates/stock/item_base.html:408 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:500 +#: stock/templates/stock/item_base.html:498 msgid "Edit Stock Status" msgstr "" @@ -6041,59 +6056,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:37 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:65 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:67 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:65 +#: stock/templates/stock/location.html:69 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:79 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:76 +#: stock/templates/stock/location.html:80 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:95 -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:99 +#: stock/templates/stock/location.html:105 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:102 +#: stock/templates/stock/location.html:106 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:119 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:175 +#: stock/templates/stock/location.html:132 +#: stock/templates/stock/location.html:179 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:142 templates/InvenTree/search.html:170 +#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "" -#: stock/templates/stock/location.html:182 templates/stock_table.html:30 +#: stock/templates/stock/location.html:186 templates/stock_table.html:30 msgid "Printing Actions" msgstr "" -#: stock/templates/stock/location.html:186 templates/stock_table.html:34 +#: stock/templates/stock/location.html:190 templates/stock_table.html:34 msgid "Print labels" msgstr "" @@ -6178,7 +6193,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:887 +#: stock/views.py:727 templates/js/translated/stock.js:1066 msgid "Confirm stock adjustment" msgstr "" @@ -6186,7 +6201,7 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:323 +#: stock/views.py:760 templates/js/translated/stock.js:324 msgid "Edit Stock Item" msgstr "" @@ -6198,7 +6213,7 @@ msgstr "" msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:303 +#: stock/views.py:1153 templates/js/translated/stock.js:304 msgid "Duplicate Stock Item" msgstr "" @@ -6314,10 +6329,6 @@ msgstr "" msgid "Search Results" msgstr "" -#: templates/InvenTree/search.html:22 -msgid "Enter a search query" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6363,7 +6374,7 @@ msgstr "" msgid "Login Settings" msgstr "" -#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5 +#: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5 msgid "Signup" msgstr "" @@ -6648,7 +6659,7 @@ msgstr "" msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:55 +#: templates/InvenTree/settings/user.html:54 msgid "The following email addresses are associated with your account:" msgstr "" @@ -6673,145 +6684,193 @@ msgid "Re-send Verification" msgstr "" #: templates/InvenTree/settings/user.html:87 -#: templates/InvenTree/settings/user.html:154 +#: templates/InvenTree/settings/user.html:149 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:94 +#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:201 msgid "Warning:" msgstr "" -#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:96 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:102 +#: templates/InvenTree/settings/user.html:104 msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:112 -msgid "Enter e-mail address" -msgstr "" - -#: templates/InvenTree/settings/user.html:114 +#: templates/InvenTree/settings/user.html:109 msgid "Add Email" msgstr "" -#: templates/InvenTree/settings/user.html:124 +#: templates/InvenTree/settings/user.html:117 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:129 +#: templates/InvenTree/settings/user.html:122 msgid "You can sign in to your account using any of the following third party accounts:" msgstr "" -#: templates/InvenTree/settings/user.html:163 -msgid "There are no social network accounts connected to your InvenTree account" +#: templates/InvenTree/settings/user.html:157 +msgid "You currently have no social network accounts connected to this account." msgstr "" -#: templates/InvenTree/settings/user.html:168 +#: templates/InvenTree/settings/user.html:162 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:179 -msgid "Active Sessions" +#: templates/InvenTree/settings/user.html:172 +msgid "Multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:185 -msgid "Log out active sessions (except this one)" +#: templates/InvenTree/settings/user.html:177 +msgid "You have these factors available:" msgstr "" -#: templates/InvenTree/settings/user.html:186 -msgid "Log Out Active Sessions" +#: templates/InvenTree/settings/user.html:187 +msgid "TOTP" 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" +#: templates/InvenTree/settings/user.html:193 +msgid "Static" msgstr "" #: templates/InvenTree/settings/user.html:202 -msgid "Last Activity" +msgid "You currently do not have any factors set up." msgstr "" -#: templates/InvenTree/settings/user.html:211 -#, python-format -msgid "%(time)s ago (this session)" +#: templates/InvenTree/settings/user.html:209 +msgid "Change factors" msgstr "" -#: templates/InvenTree/settings/user.html:213 -#, python-format -msgid "%(time)s ago" +#: templates/InvenTree/settings/user.html:210 +msgid "Setup multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:224 -msgid "Do you really want to remove the selected email address?" +#: templates/InvenTree/settings/user.html:212 +msgid "Remove multifactor" msgstr "" +#: templates/InvenTree/settings/user.html:219 #: templates/InvenTree/settings/user_display.html:25 msgid "Theme Settings" msgstr "" +#: templates/InvenTree/settings/user.html:227 #: templates/InvenTree/settings/user_display.html:35 msgid "Select theme" msgstr "" +#: templates/InvenTree/settings/user.html:237 #: templates/InvenTree/settings/user_display.html:46 msgid "Set Theme" msgstr "" +#: templates/InvenTree/settings/user.html:246 #: templates/InvenTree/settings/user_display.html:54 msgid "Language Settings" msgstr "" +#: templates/InvenTree/settings/user.html:254 #: templates/InvenTree/settings/user_display.html:63 msgid "Select language" msgstr "" +#: templates/InvenTree/settings/user.html:270 #: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" +#: templates/InvenTree/settings/user.html:272 #: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" +#: templates/InvenTree/settings/user.html:279 #: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" +#: templates/InvenTree/settings/user.html:281 #: templates/InvenTree/settings/user_display.html:91 msgid "Some languages are not complete" msgstr "" +#: templates/InvenTree/settings/user.html:283 #: 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.html:285 #: templates/InvenTree/settings/user_display.html:95 msgid "Show them too" msgstr "" +#: templates/InvenTree/settings/user.html:292 #: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" +#: templates/InvenTree/settings/user.html:293 +#, python-format +msgid "Native language translation of the\n" +" InvenTree web application is community contributed via crowdin. Contributions are\n" +" welcomed and encouraged." +msgstr "" + +#: templates/InvenTree/settings/user.html:302 +msgid "Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:308 +msgid "Log out active sessions (except this one)" +msgstr "" + +#: templates/InvenTree/settings/user.html:309 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:318 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:319 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:323 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:324 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:325 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:334 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:336 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:348 +msgid "Do you really want to remove the selected email address?" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +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." @@ -6830,7 +6889,7 @@ msgid "InvenTree Version Information" msgstr "" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53 +#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53 #: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662 #: templates/js/translated/modals.js:965 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 @@ -7006,6 +7065,71 @@ msgstr "" msgid "View in administration panel" msgstr "" +#: templates/allauth_2fa/authenticate.html:5 +msgid "Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:12 +msgid "Authenticate" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:6 +msgid "Two-Factor Authentication Backup Tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:17 +msgid "Backup tokens have been generated, but are not revealed here for security reasons. Press the button below to generate new ones." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:20 +msgid "No tokens. Press the button below to generate some." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:27 +msgid "Generate backup tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:31 +#: templates/allauth_2fa/setup.html:40 +msgid "back to settings" +msgstr "" + +#: templates/allauth_2fa/remove.html:6 +msgid "Disable Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/remove.html:9 +msgid "Are you sure?" +msgstr "" + +#: templates/allauth_2fa/remove.html:14 +msgid "Disable Two-Factor" +msgstr "" + +#: templates/allauth_2fa/setup.html:6 +msgid "Setup Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/setup.html:10 +msgid "Step 1" +msgstr "" + +#: templates/allauth_2fa/setup.html:14 +msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." +msgstr "" + +#: templates/allauth_2fa/setup.html:23 +msgid "Step 2" +msgstr "" + +#: templates/allauth_2fa/setup.html:27 +msgid "Input a token generated by the app:" +msgstr "" + +#: templates/allauth_2fa/setup.html:35 +msgid "Verify" +msgstr "" + #: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 msgid "Add Link" msgstr "" @@ -7044,13 +7168,13 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:1103 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134 +#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1134 #: templates/js/translated/build.js:1755 #: templates/js/translated/table_filters.js:178 msgid "Available" @@ -7239,7 +7363,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018 msgid "Remove stock item" msgstr "" @@ -7281,91 +7405,153 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:184 +#: templates/js/translated/bom.js:36 +msgid "Download BOM Template" +msgstr "" + +#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510 +msgid "Format" +msgstr "" + +#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511 +msgid "Select file format" +msgstr "" + +#: templates/js/translated/bom.js:81 +msgid "Cascading" +msgstr "" + +#: templates/js/translated/bom.js:82 +msgid "Download cascading / multi-level BOM" +msgstr "" + +#: templates/js/translated/bom.js:87 +msgid "Levels" +msgstr "" + +#: templates/js/translated/bom.js:88 +msgid "Select maximum number of BOM levels to export (0 = all levels)" +msgstr "" + +#: templates/js/translated/bom.js:94 +msgid "Include Parameter Data" +msgstr "" + +#: templates/js/translated/bom.js:95 +msgid "Include part parameter data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:100 +msgid "Include Stock Data" +msgstr "" + +#: templates/js/translated/bom.js:101 +msgid "Include part stock data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:106 +msgid "Include Manufacturer Data" +msgstr "" + +#: templates/js/translated/bom.js:107 +msgid "Include part manufacturer data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:112 +msgid "Include Supplier Data" +msgstr "" + +#: templates/js/translated/bom.js:113 +msgid "Include part supplier data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:296 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:228 +#: templates/js/translated/bom.js:340 msgid "Select and add a new variant item using the input below" msgstr "" -#: templates/js/translated/bom.js:239 +#: templates/js/translated/bom.js:351 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:245 +#: templates/js/translated/bom.js:357 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:284 +#: templates/js/translated/bom.js:396 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:285 +#: templates/js/translated/bom.js:397 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:404 +#: templates/js/translated/bom.js:516 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116 +#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1116 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:413 +#: templates/js/translated/bom.js:525 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:485 +#: templates/js/translated/bom.js:597 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:500 +#: templates/js/translated/bom.js:612 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:507 +#: templates/js/translated/bom.js:619 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645 +#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:616 +#: templates/js/translated/bom.js:728 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:618 +#: templates/js/translated/bom.js:730 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:620 +#: templates/js/translated/bom.js:732 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796 +#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779 +#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860 +#: templates/js/translated/bom.js:830 templates/js/translated/build.js:860 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:774 +#: templates/js/translated/bom.js:886 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100 +#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1100 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:996 +#: templates/js/translated/bom.js:1108 msgid "Inherited from parent BOM" msgstr "" @@ -7464,7 +7650,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1199 templates/stock_table.html:52 +#: templates/js/translated/build.js:1199 templates/stock_table.html:53 msgid "Order stock" msgstr "" @@ -7509,9 +7695,9 @@ msgstr "" msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147 -#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333 -#: templates/js/translated/stock.js:2128 +#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1149 +#: templates/js/translated/part.js:1560 templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:2321 msgid "Select" msgstr "" @@ -7519,7 +7705,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347 +#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2540 msgid "No user information" msgstr "" @@ -7682,20 +7868,20 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1078 templates/modals.html:19 +#: templates/js/translated/forms.js:1080 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1469 +#: templates/js/translated/forms.js:1471 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1673 +#: templates/js/translated/forms.js:1675 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1893 +#: templates/js/translated/forms.js:1895 msgid "Clear input" msgstr "" @@ -7708,7 +7894,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:863 +#: templates/js/translated/stock.js:1042 msgid "Select Stock Items" msgstr "" @@ -7888,14 +8074,6 @@ msgstr "" msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509 -msgid "Format" -msgstr "" - -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510 -msgid "Select file format" -msgstr "" - #: templates/js/translated/order.js:460 msgid "Select Line Items" msgstr "" @@ -7908,7 +8086,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123 msgid "Stock Status" msgstr "" @@ -7957,7 +8135,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163 -#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986 +#: templates/js/translated/part.js:1777 templates/js/translated/part.js:1988 msgid "Unit Price" msgstr "" @@ -8042,7 +8220,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1249 +#: templates/js/translated/stock.js:1428 msgid "Shipped to customer" msgstr "" @@ -8206,92 +8384,92 @@ msgstr "" msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:946 +#: templates/js/translated/part.js:948 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:970 +#: templates/js/translated/part.js:972 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1037 templates/js/translated/part.js:1297 +#: templates/js/translated/part.js:1039 templates/js/translated/part.js:1299 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1207 +#: templates/js/translated/part.js:1209 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1230 +#: templates/js/translated/part.js:1232 #: templates/js/translated/table_filters.js:412 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493 -#: templates/js/translated/stock.js:2089 +#: templates/js/translated/part.js:1323 templates/js/translated/part.js:1495 +#: templates/js/translated/stock.js:2282 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1337 +#: templates/js/translated/part.js:1339 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108 +#: templates/js/translated/part.js:1514 templates/js/translated/stock.js:2301 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1576 +#: templates/js/translated/part.js:1578 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152 +#: templates/js/translated/part.js:1592 templates/js/translated/stock.js:2345 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1634 +#: templates/js/translated/part.js:1636 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055 +#: templates/js/translated/part.js:1687 templates/js/translated/stock.js:1234 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056 +#: templates/js/translated/part.js:1688 templates/js/translated/stock.js:1235 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1692 +#: templates/js/translated/part.js:1694 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1714 +#: templates/js/translated/part.js:1716 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1728 +#: templates/js/translated/part.js:1730 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1753 +#: templates/js/translated/part.js:1755 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1808 +#: templates/js/translated/part.js:1810 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1809 +#: templates/js/translated/part.js:1811 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1910 +#: templates/js/translated/part.js:1912 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1929 +#: templates/js/translated/part.js:1931 msgid "Single Price Difference" msgstr "" @@ -8365,316 +8543,340 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:72 +#: templates/js/translated/stock.js:73 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173 msgid "Next available serial number" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174 +#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175 msgid "Latest serial number" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:101 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:109 +#: templates/js/translated/stock.js:110 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:145 +#: templates/js/translated/stock.js:146 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:185 +#: templates/js/translated/stock.js:186 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:224 +#: templates/js/translated/stock.js:225 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:231 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:373 +#: templates/js/translated/stock.js:374 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:386 +#: templates/js/translated/stock.js:387 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:411 +#: templates/js/translated/stock.js:412 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416 +#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:432 +#: templates/js/translated/stock.js:433 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:452 +#: templates/js/translated/stock.js:453 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:506 +#: templates/js/translated/stock.js:507 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:517 +#: templates/js/translated/stock.js:518 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:518 +#: templates/js/translated/stock.js:519 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:627 +#: templates/js/translated/stock.js:628 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:628 +#: templates/js/translated/stock.js:629 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:713 +#: templates/js/translated/stock.js:706 +msgid "Warning: Merge operation cannot be reversed" +msgstr "" + +#: templates/js/translated/stock.js:707 +msgid "Some information will be lost when merging stock items" +msgstr "" + +#: templates/js/translated/stock.js:709 +msgid "Stock transaction history will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:710 +msgid "Supplier part information will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:796 +msgid "Confirm stock item merge" +msgstr "" + +#: templates/js/translated/stock.js:797 +msgid "Merge Stock Items" +msgstr "" + +#: templates/js/translated/stock.js:892 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:893 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:899 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:721 +#: templates/js/translated/stock.js:900 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:725 +#: templates/js/translated/stock.js:904 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:726 +#: templates/js/translated/stock.js:905 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:730 +#: templates/js/translated/stock.js:909 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:731 users/models.py:202 +#: templates/js/translated/stock.js:910 users/models.py:205 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:735 templates/stock_table.html:57 +#: templates/js/translated/stock.js:914 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:864 +#: templates/js/translated/stock.js:1043 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1022 +#: templates/js/translated/stock.js:1201 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1024 +#: templates/js/translated/stock.js:1203 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1029 +#: templates/js/translated/stock.js:1208 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1230 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1077 +#: templates/js/translated/stock.js:1256 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1134 +#: templates/js/translated/stock.js:1313 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1420 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1245 +#: templates/js/translated/stock.js:1424 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1432 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1259 +#: templates/js/translated/stock.js:1438 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1417 +#: templates/js/translated/stock.js:1596 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1422 +#: templates/js/translated/stock.js:1601 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1425 +#: templates/js/translated/stock.js:1604 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1429 +#: templates/js/translated/stock.js:1608 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1431 +#: templates/js/translated/stock.js:1610 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1437 +#: templates/js/translated/stock.js:1616 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1618 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1441 +#: templates/js/translated/stock.js:1620 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1625 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1453 +#: templates/js/translated/stock.js:1632 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1455 +#: templates/js/translated/stock.js:1634 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1457 +#: templates/js/translated/stock.js:1636 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1461 +#: templates/js/translated/stock.js:1640 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1511 +#: templates/js/translated/stock.js:1690 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1584 +#: templates/js/translated/stock.js:1763 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1622 +#: templates/js/translated/stock.js:1801 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691 +#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1731 +#: templates/js/translated/stock.js:1910 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1758 +#: templates/js/translated/stock.js:1937 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1760 +#: templates/js/translated/stock.js:1939 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2138 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1959 +#: templates/js/translated/stock.js:2152 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1960 +#: templates/js/translated/stock.js:2153 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2377 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2206 +#: templates/js/translated/stock.js:2399 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2231 +#: templates/js/translated/stock.js:2424 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2250 +#: templates/js/translated/stock.js:2443 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2269 +#: templates/js/translated/stock.js:2462 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2480 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2310 +#: templates/js/translated/stock.js:2503 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2318 +#: templates/js/translated/stock.js:2511 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2552 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2360 +#: templates/js/translated/stock.js:2553 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2411 +#: templates/js/translated/stock.js:2604 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2462 +#: templates/js/translated/stock.js:2655 msgid "Uninstall Stock Item" msgstr "" @@ -9059,18 +9261,26 @@ msgid "Move stock" msgstr "" #: templates/stock_table.html:52 +msgid "Merge selected stock items" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Merge stock" +msgstr "" + +#: templates/stock_table.html:53 msgid "Order selected items" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change status" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change stock status" msgstr "" -#: templates/stock_table.html:57 +#: templates/stock_table.html:58 msgid "Delete selected items" msgstr "" @@ -9106,35 +9316,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:189 +#: users/models.py:192 msgid "Permission set" msgstr "" -#: users/models.py:197 +#: users/models.py:200 msgid "Group" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "View" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "Permission to view items" msgstr "" -#: users/models.py:202 +#: users/models.py:205 msgid "Permission to add items" msgstr "" -#: users/models.py:204 +#: users/models.py:207 msgid "Change" msgstr "" -#: users/models.py:204 +#: users/models.py:207 msgid "Permissions to edit items" msgstr "" -#: users/models.py:206 +#: users/models.py:209 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po index 713d52d267..9c93c0018d 100644 --- a/InvenTree/locale/nl/LC_MESSAGES/django.po +++ b/InvenTree/locale/nl/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-12-08 23:43+0000\n" -"PO-Revision-Date: 2021-12-08 23:47\n" +"POT-Creation-Date: 2021-12-21 02:57+0000\n" +"PO-Revision-Date: 2021-12-21 03:01\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -34,52 +34,52 @@ msgstr "Geen overeenkomende actie gevonden" msgid "Enter date" msgstr "Voer datum in" -#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93 +#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 build/forms.py:93 #: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: part/forms.py:108 templates/account/email_confirm.html:20 +#: part/forms.py:78 templates/account/email_confirm.html:20 #: templates/js/translated/forms.js:595 msgid "Confirm" msgstr "Bevestigen" -#: InvenTree/forms.py:136 +#: InvenTree/forms.py:142 msgid "Confirm delete" -msgstr "Bevestigen verwijdering" +msgstr "Bevestig verwijdering" -#: InvenTree/forms.py:137 +#: InvenTree/forms.py:143 msgid "Confirm item deletion" msgstr "Bevestig item verwijdering" -#: InvenTree/forms.py:168 +#: InvenTree/forms.py:174 msgid "Enter password" msgstr "Voer wachtwoord in" -#: InvenTree/forms.py:169 +#: InvenTree/forms.py:175 msgid "Enter new password" msgstr "Voer een nieuw wachtwoord in" -#: InvenTree/forms.py:176 +#: InvenTree/forms.py:182 msgid "Confirm password" msgstr "Wachtwoord bevestigen" -#: InvenTree/forms.py:177 +#: InvenTree/forms.py:183 msgid "Confirm new password" msgstr "Nieuw wachtwoord bevestigen" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:215 msgid "Select Category" msgstr "Categorie selecteren" -#: InvenTree/forms.py:230 +#: InvenTree/forms.py:236 msgid "Email (again)" msgstr "E-mailadres (opnieuw)" -#: InvenTree/forms.py:234 +#: InvenTree/forms.py:240 msgid "Email address confirmation" msgstr "E-mailadres bevestiging" -#: InvenTree/forms.py:254 +#: InvenTree/forms.py:260 msgid "You must type the same email each time." -msgstr "U moet elke keer hetzelfde e-mailadres invoeren." +msgstr "Er moet hetzelfde e-mailadres ingevoerd worden." #: InvenTree/helpers.py:430 #, python-brace-format @@ -123,7 +123,7 @@ msgstr "Ontbrekend bestand" msgid "Missing external link" msgstr "Externe link ontbreekt" -#: InvenTree/models.py:132 stock/models.py:1852 +#: InvenTree/models.py:132 stock/models.py:1967 #: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "Bijlage" @@ -136,12 +136,12 @@ msgstr "Bestand als bijlage selecteren" #: company/models.py:564 order/models.py:124 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:1258 +#: templates/js/translated/company.js:826 templates/js/translated/part.js:1260 msgid "Link" msgstr "Link" #: InvenTree/models.py:140 build/models.py:330 part/models.py:798 -#: stock/models.py:524 +#: stock/models.py:527 msgid "Link to external URL" msgstr "Link naar externe URL" @@ -153,10 +153,10 @@ msgstr "Opmerking" msgid "File comment" msgstr "Bijlage opmerking" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213 -#: common/models.py:1214 part/models.py:2205 part/models.py:2225 +#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1219 +#: common/models.py:1220 part/models.py:2205 part/models.py:2225 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2341 +#: templates/js/translated/stock.js:2534 msgid "User" msgstr "Gebruiker" @@ -202,8 +202,8 @@ msgstr "Ongeldige keuze" #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:268 #: templates/js/translated/company.js:638 templates/js/translated/part.js:506 -#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565 -#: templates/js/translated/stock.js:2134 +#: templates/js/translated/part.js:643 templates/js/translated/part.js:1567 +#: templates/js/translated/stock.js:2327 msgid "Name" msgstr "Naam" @@ -212,23 +212,23 @@ msgstr "Naam" #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70 +#: order/models.py:122 part/models.py:764 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:89 +#: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428 +#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540 #: templates/js/translated/build.js:1627 templates/js/translated/company.js:345 #: templates/js/translated/company.js:548 #: templates/js/translated/company.js:837 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 -#: templates/js/translated/part.js:565 templates/js/translated/part.js:933 -#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188 -#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653 -#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146 -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/part.js:565 templates/js/translated/part.js:935 +#: templates/js/translated/part.js:1020 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1586 templates/js/translated/part.js:1655 +#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339 +#: templates/js/translated/stock.js:2384 msgid "Description" msgstr "Omschrijving" @@ -248,83 +248,83 @@ msgstr "Moet een geldig nummer zijn" msgid "Filename" msgstr "Bestandsnaam" -#: InvenTree/settings.py:689 +#: InvenTree/settings.py:698 msgid "German" msgstr "Duits" -#: InvenTree/settings.py:690 +#: InvenTree/settings.py:699 msgid "Greek" msgstr "Grieks" -#: InvenTree/settings.py:691 +#: InvenTree/settings.py:700 msgid "English" msgstr "Engels" -#: InvenTree/settings.py:692 +#: InvenTree/settings.py:701 msgid "Spanish" msgstr "Spaans" -#: InvenTree/settings.py:693 +#: InvenTree/settings.py:702 msgid "Spanish (Mexican)" msgstr "Spaans (Mexicaans)" -#: InvenTree/settings.py:694 +#: InvenTree/settings.py:703 msgid "French" msgstr "Frans" -#: InvenTree/settings.py:695 +#: InvenTree/settings.py:704 msgid "Hebrew" msgstr "Hebreeuws" -#: InvenTree/settings.py:696 +#: InvenTree/settings.py:705 msgid "Italian" msgstr "Italiaans" -#: InvenTree/settings.py:697 +#: InvenTree/settings.py:706 msgid "Japanese" msgstr "Japans" -#: InvenTree/settings.py:698 +#: InvenTree/settings.py:707 msgid "Korean" msgstr "Koreaans" -#: InvenTree/settings.py:699 +#: InvenTree/settings.py:708 msgid "Dutch" msgstr "Nederlands" -#: InvenTree/settings.py:700 +#: InvenTree/settings.py:709 msgid "Norwegian" msgstr "Noors" -#: InvenTree/settings.py:701 +#: InvenTree/settings.py:710 msgid "Polish" msgstr "Pools" -#: InvenTree/settings.py:702 +#: InvenTree/settings.py:711 msgid "Portugese" msgstr "Portugees" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:712 msgid "Russian" msgstr "Russisch" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:713 msgid "Swedish" msgstr "Zweeds" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:714 msgid "Thai" msgstr "Thais" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:715 msgid "Turkish" msgstr "Turks" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:716 msgid "Vietnamese" msgstr "Vietnamees" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:717 msgid "Chinese" msgstr "Chinees" @@ -341,7 +341,7 @@ msgid "InvenTree system health checks failed" msgstr "Inventree gezondsheidscheck faalt" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 msgid "Pending" msgstr "Bezig" @@ -349,14 +349,14 @@ msgstr "Bezig" msgid "Placed" msgstr "Geplaatst" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:319 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "Voltooid" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:313 +#: InvenTree/status_codes.py:318 msgid "Cancelled" msgstr "Geannuleerd" @@ -370,7 +370,7 @@ msgstr "Kwijt" msgid "Returned" msgstr "Retour" -#: InvenTree/status_codes.py:143 order/models.py:939 +#: InvenTree/status_codes.py:143 order/models.py:941 #: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255 msgid "Shipped" msgstr "Verzonden" @@ -395,83 +395,87 @@ msgstr "Verwoest" msgid "Rejected" msgstr "Afgewezen" -#: InvenTree/status_codes.py:269 +#: InvenTree/status_codes.py:272 msgid "Legacy stock tracking entry" msgstr "Verouderde trackingscode" -#: InvenTree/status_codes.py:271 +#: InvenTree/status_codes.py:274 msgid "Stock item created" msgstr "Voorraaditem gemaakt" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Edited stock item" msgstr "Bewerken voorraaditem" -#: InvenTree/status_codes.py:274 +#: InvenTree/status_codes.py:277 msgid "Assigned serial number" msgstr "Serienummer toegewezen" -#: InvenTree/status_codes.py:276 +#: InvenTree/status_codes.py:279 msgid "Stock counted" msgstr "Voorraad geteld" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Stock manually added" msgstr "Voorraad handmatig toegevoegd" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Stock manually removed" msgstr "Voorraad handmatig verwijderd" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Location changed" msgstr "Locatie veranderd" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Installed into assembly" msgstr "Gemonteerd" -#: InvenTree/status_codes.py:283 +#: InvenTree/status_codes.py:286 msgid "Removed from assembly" msgstr "Gedemonteerd" -#: InvenTree/status_codes.py:285 +#: InvenTree/status_codes.py:288 msgid "Installed component item" msgstr "Gemonteerd item" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Removed component item" msgstr "Gedemonteerd item" -#: InvenTree/status_codes.py:288 +#: InvenTree/status_codes.py:291 msgid "Split from parent item" msgstr "Splits van bovenliggend item" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Split child item" msgstr "Splits onderliggende item" -#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064 +msgid "Merged stock items" +msgstr "" + +#: InvenTree/status_codes.py:296 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "Naar klant verzonden" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:297 msgid "Returned from customer" msgstr "Geretourneerd door klant" -#: InvenTree/status_codes.py:294 +#: InvenTree/status_codes.py:299 msgid "Build order output created" -msgstr "Montageopdracht gecreëerd" +msgstr "Product aangemaakt" -#: InvenTree/status_codes.py:295 +#: InvenTree/status_codes.py:300 msgid "Build order output completed" -msgstr "Montageopdracht voltooid" +msgstr "Product voltooid" -#: InvenTree/status_codes.py:297 +#: InvenTree/status_codes.py:302 msgid "Received against purchase order" msgstr "Ontvangen tegen inkoopopdracht" -#: InvenTree/status_codes.py:312 +#: InvenTree/status_codes.py:317 msgid "Production" msgstr "Productie" @@ -575,16 +579,16 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1283 -#: build/templates/build/build_base.html:132 -#: build/templates/build/detail.html:35 common/models.py:1253 +#: build/forms.py:36 build/models.py:1286 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1259 #: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:794 order/models.py:1205 order/serializers.py:810 +#: order/models.py:796 order/models.py:1207 order/serializers.py:810 #: order/templates/order/order_wizard/match_parts.html:30 -#: 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 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:193 +#: part/forms.py:209 part/forms.py:225 part/models.py:2576 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:967 part/templates/part/detail.html:1053 +#: part/templates/part/detail.html:961 part/templates/part/detail.html:1047 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -592,10 +596,10 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:174 -#: stock/templates/stock/item_base.html:255 -#: stock/templates/stock/item_base.html:263 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443 +#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:261 +#: stock/templates/stock/item_base.html:269 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555 #: templates/js/translated/build.js:240 templates/js/translated/build.js:440 #: templates/js/translated/build.js:634 templates/js/translated/build.js:644 #: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367 @@ -604,10 +608,10 @@ msgstr "" #: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 #: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 #: templates/js/translated/order.js:2150 templates/js/translated/part.js:843 -#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919 -#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382 -#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326 -#: templates/js/translated/stock.js:2428 +#: templates/js/translated/part.js:1798 templates/js/translated/part.js:1921 +#: templates/js/translated/part.js:1999 templates/js/translated/stock.js:383 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750 +#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621 msgid "Quantity" msgstr "Aantal" @@ -616,8 +620,8 @@ msgid "Enter quantity for build output" msgstr "Voer hoeveelheid in voor build-output" #: build/forms.py:41 order/serializers.py:814 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:229 -#: templates/js/translated/stock.js:383 +#: stock/serializers.py:314 templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:384 msgid "Serial Numbers" msgstr "Serienummers" @@ -654,28 +658,28 @@ msgstr "Ongeldige keuze voor bovenliggende build" #: report/templates/report/inventree_build_order_base.html:106 #: templates/js/translated/build.js:402 msgid "Build Order" -msgstr "Bouwopdracht" +msgstr "Productie-opdracht" #: build/models.py:138 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:145 +#: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" -msgstr "Bouwopdrachten" +msgstr "Productie-opdrachten" #: build/models.py:198 msgid "Build Order Reference" -msgstr "Bouwopdracht referentie" +msgstr "Productie-opdracht referentie" #: build/models.py:199 order/models.py:210 order/models.py:536 -#: order/models.py:801 part/models.py:2585 +#: order/models.py:803 part/models.py:2585 #: part/templates/part/bom_upload/match_parts.html:30 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124 +#: templates/js/translated/bom.js:547 templates/js/translated/build.js:1124 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "Referentie" @@ -691,11 +695,11 @@ msgstr "Bovenliggende bouw" #: build/models.py:220 msgid "BuildOrder to which this build is allocated" -msgstr "BuildOrder waaraan deze build is toegewezen" +msgstr "Productie-opdracht waar dit product aan is toegewezen" #: build/models.py:225 build/templates/build/build_base.html:77 #: build/templates/build/detail.html:30 company/models.py:705 -#: order/models.py:854 order/models.py:928 +#: order/models.py:856 order/models.py:930 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357 #: part/models.py:2151 part/models.py:2167 part/models.py:2186 #: part/models.py:2203 part/models.py:2305 part/models.py:2427 @@ -706,20 +710,21 @@ msgstr "BuildOrder waaraan deze build is toegewezen" #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 -#: templates/InvenTree/search.html:86 +#: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214 -#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326 +#: templates/js/translated/bom.js:505 templates/js/translated/build.js:625 #: templates/js/translated/build.js:993 templates/js/translated/build.js:1364 #: templates/js/translated/build.js:1632 templates/js/translated/company.js:489 #: templates/js/translated/company.js:746 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 -#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918 -#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166 -#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747 -#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416 +#: templates/js/translated/order.js:2128 templates/js/translated/part.js:920 +#: templates/js/translated/part.js:1001 templates/js/translated/part.js:1168 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719 +#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:2609 msgid "Part" msgstr "Onderdeel" @@ -729,11 +734,11 @@ msgstr "Selecteer onderdeel om te bouwen" #: build/models.py:238 msgid "Sales Order Reference" -msgstr "Verkoop Order Referentie" +msgstr "Verkooporder referentie" #: build/models.py:242 msgid "SalesOrder to which this build is allocated" -msgstr "Verkooporder waaraan deze build is toegewezen" +msgstr "Verkooporder waar dit product aan is toegewezen" #: build/models.py:247 templates/js/translated/build.js:1352 #: templates/js/translated/order.js:1564 @@ -776,7 +781,7 @@ msgstr "Bouwstatus" msgid "Build status code" msgstr "Bouwstatuscode" -#: build/models.py:285 stock/models.py:528 +#: build/models.py:285 stock/models.py:531 msgid "Batch Code" msgstr "" @@ -791,7 +796,7 @@ msgstr "Aanmaakdatum" #: build/models.py:296 order/models.py:558 msgid "Target completion date" -msgstr "Verwachte voltooiingsdatum" +msgstr "Verwachte opleveringsdatum" #: build/models.py:297 msgid "Target date for build completion. Build will be overdue after this date." @@ -800,7 +805,7 @@ msgstr "" #: build/models.py:300 order/models.py:252 #: templates/js/translated/build.js:1703 msgid "Completion Date" -msgstr "Voltooiingsdatum" +msgstr "Opleveringsdatum" #: build/models.py:306 msgid "completed by" @@ -812,7 +817,7 @@ msgstr "" #: build/models.py:315 msgid "User who issued this build order" -msgstr "Gebruiker die bouwopdracht heeft gegeven" +msgstr "Gebruiker die de productie-opdracht heeft gegeven" #: build/models.py:323 build/templates/build/build_base.html:185 #: build/templates/build/detail.html:116 order/models.py:140 @@ -825,32 +830,32 @@ msgstr "Verantwoordelijke" #: build/models.py:324 msgid "User responsible for this build order" -msgstr "Gebruiker verantwoordelijk voor deze bouwopdracht" +msgstr "Gebruiker verantwoordelijk voor deze productie-opdracht" #: build/models.py:329 build/templates/build/detail.html:102 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:354 stock/models.py:522 -#: stock/templates/stock/item_base.html:374 +#: part/templates/part/part_base.html:354 stock/models.py:525 +#: stock/templates/stock/item_base.html:372 msgid "External Link" msgstr "Externe Link" #: 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:144 order/models.py:803 order/models.py:1049 +#: order/models.py:144 order/models.py:805 order/models.py:1051 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:925 -#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50 +#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594 -#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332 -#: stock/serializers.py:624 stock/serializers.py:711 +#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597 +#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332 +#: stock/serializers.py:638 stock/serializers.py:736 stock/serializers.py:868 #: stock/templates/stock/stock_sidebar.html:21 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711 #: templates/js/translated/company.js:842 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795 msgid "Notes" msgstr "Opmerkingen" @@ -868,7 +873,7 @@ msgstr "Bouwuitvoer is al voltooid" #: build/models.py:716 msgid "Build output does not match Build Order" -msgstr "Bouwuitvoer komt niet overeen met bouwopdracht" +msgstr "Product komt niet overeen met de productie-opdracht" #: build/models.py:1108 msgid "Build item must specify a build output, as master part is marked as trackable" @@ -883,7 +888,7 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1133 order/models.py:1165 +#: build/models.py:1133 order/models.py:1167 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -891,51 +896,52 @@ msgstr "" msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1193 +#: build/models.py:1196 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1253 stock/templates/stock/item_base.html:346 -#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605 +#: build/models.py:1256 stock/templates/stock/item_base.html:344 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1605 #: templates/navbar.html:35 msgid "Build" msgstr "Product" -#: build/models.py:1254 +#: build/models.py:1257 msgid "Build to allocate parts" msgstr "Bouw om onderdelen toe te wijzen" -#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690 -#: order/serializers.py:708 stock/serializers.py:562 +#: build/models.py:1273 build/serializers.py:334 order/serializers.py:690 +#: order/serializers.py:708 stock/serializers.py:576 stock/serializers.py:694 #: stock/templates/stock/item_base.html:8 -#: stock/templates/stock/item_base.html:16 -#: stock/templates/stock/item_base.html:368 +#: stock/templates/stock/item_base.html:22 +#: stock/templates/stock/item_base.html:366 #: templates/js/translated/build.js:413 templates/js/translated/build.js:418 #: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277 +#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:2470 msgid "Stock Item" msgstr "Voorraadartikel" -#: build/models.py:1271 +#: build/models.py:1274 msgid "Source stock item" msgstr "Bron voorraadartikel" -#: build/models.py:1284 +#: build/models.py:1287 msgid "Stock quantity to allocate to build" msgstr "Voorraad hoeveelheid te alloceren aan bouw" -#: build/models.py:1292 +#: build/models.py:1295 msgid "Install into" msgstr "Installeren in" -#: build/models.py:1293 +#: build/models.py:1296 msgid "Destination stock item" msgstr "Bestemming voorraadartikel" -#: build/serializers.py:137 build/serializers.py:357 +#: build/serializers.py:137 build/serializers.py:363 msgid "Build Output" msgstr "" @@ -956,16 +962,16 @@ msgid "This build output is not fully allocated" msgstr "" #: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813 -#: stock/templates/stock/item_base.html:314 +#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:729 +#: stock/serializers.py:970 stock/templates/stock/item_base.html:312 #: templates/js/translated/barcode.js:384 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425 #: templates/js/translated/build.js:1032 templates/js/translated/order.js:508 #: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 #: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497 -#: templates/js/translated/stock.js:2218 +#: templates/js/translated/part.js:177 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411 msgid "Location" msgstr "Locatie" @@ -975,11 +981,11 @@ msgstr "" #: build/serializers.py:197 build/templates/build/build_base.html:137 #: build/templates/build/detail.html:63 order/models.py:552 -#: order/serializers.py:247 stock/templates/stock/item_base.html:180 +#: order/serializers.py:247 stock/templates/stock/item_base.html:186 #: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661 #: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472 -#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651 +#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637 msgid "Status" msgstr "Status" @@ -1000,33 +1006,33 @@ msgstr "" msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:319 +#: build/serializers.py:325 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:334 stock/serializers.py:569 +#: build/serializers.py:340 stock/serializers.py:583 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:348 order/models.py:277 order/serializers.py:240 -#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305 +#: build/serializers.py:354 order/models.py:277 order/serializers.py:240 +#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:390 order/serializers.py:741 +#: build/serializers.py:396 order/serializers.py:741 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:396 +#: build/serializers.py:402 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:403 +#: build/serializers.py:409 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:431 order/serializers.py:984 +#: build/serializers.py:437 order/serializers.py:984 msgid "Allocation items must be provided" msgstr "" @@ -1067,35 +1073,35 @@ msgstr "Verwijder bouw" msgid "Complete Build" msgstr "Voltooi Build" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:87 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:96 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" -msgstr "Deze bouwopdracht is toegewezen aan verkooporder %(link)s" +msgstr "Deze productie-opdracht is toegewezen aan verkooporder %(link)s" -#: build/templates/build/build_base.html:98 +#: build/templates/build/build_base.html:103 #, python-format msgid "This Build Order is a child of Build Order %(link)s" -msgstr "Deze bouwopdracht is een onderdeel van bouwopdracht %(link)s" - -#: build/templates/build/build_base.html:105 -msgid "Build Order is ready to mark as completed" -msgstr "Bouwopdracht is gereed om te markeren als voltooid" +msgstr "Deze productie-opdracht is een onderdeel van productie-opdracht %(link)s" #: build/templates/build/build_base.html:110 -msgid "Build Order cannot be completed as outstanding outputs remain" -msgstr "Bouwopdracht kan niet worden voltooid omdat openstaande outputs blijven" +msgid "Build Order is ready to mark as completed" +msgstr "Productie-opdracht is gereed om te markeren als voltooid" #: build/templates/build/build_base.html:115 +msgid "Build Order cannot be completed as outstanding outputs remain" +msgstr "Productie-opdracht kan niet worden voltooid omdat er nog producties openstaan" + +#: build/templates/build/build_base.html:120 msgid "Required build quantity has not yet been completed" msgstr "Vereiste bouwhoeveelheid is nog niet bereikt" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Stock has not been fully allocated to this Build Order" -msgstr "Voorraad is niet volledig toegewezen aan deze bouwopdracht" +msgstr "Voorraad is niet volledig toegewezen aan deze productie-opdracht" #: build/templates/build/build_base.html:146 #: build/templates/build/detail.html:132 @@ -1131,15 +1137,15 @@ msgid "Completed" msgstr "" #: build/templates/build/build_base.html:171 -#: build/templates/build/detail.html:95 order/models.py:925 -#: order/models.py:1021 order/templates/order/sales_order_base.html:9 +#: build/templates/build/detail.html:95 order/models.py:927 +#: order/models.py:1023 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:308 +#: stock/templates/stock/item_base.html:306 #: templates/js/translated/order.js:1218 msgid "Sales Order" -msgstr "Verkoop Order" +msgstr "Verkooporder" #: build/templates/build/build_base.html:178 #: build/templates/build/detail.html:109 @@ -1153,7 +1159,7 @@ msgstr "Onvolledige bouwuitvoer" #: build/templates/build/build_base.html:224 msgid "Build Order cannot be completed as incomplete build outputs remain" -msgstr "Bouwopdracht kan niet worden voltooid omdat onvolledige bouwuitvoer blijft bestaan" +msgstr "Productie-opdracht kan niet worden voltooid omdat er onvoltooide producten openstaan" #: build/templates/build/build_output_create.html:7 msgid "The Bill of Materials contains trackable parts" @@ -1181,11 +1187,11 @@ msgstr "Weet je zeker dat je de bouw wilt annuleren?" #: build/templates/build/complete.html:8 msgid "Build Order is complete" -msgstr "Bouwopdracht is voltooid" +msgstr "Productie-opdracht is voltooid" #: build/templates/build/complete.html:12 msgid "Build Order is incomplete" -msgstr "Bouwopdracht is onvolledig" +msgstr "Productie-opdracht is onvolledig" #: build/templates/build/complete.html:15 msgid "Incompleted build outputs remain" @@ -1211,7 +1217,7 @@ msgstr "Voorraadbron" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "" @@ -1225,8 +1231,8 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:332 -#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451 +#: stock/templates/stock/item_base.html:330 +#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1253,7 +1259,7 @@ msgstr "" #: build/templates/build/detail.html:173 msgid "Allocate Stock to Build" -msgstr "" +msgstr "Voorraad toewijzen aan Product" #: build/templates/build/detail.html:177 templates/js/translated/build.js:1207 msgid "Unallocate stock" @@ -1265,7 +1271,7 @@ msgstr "Niet toegewezen voorraad" #: build/templates/build/detail.html:180 msgid "Allocate stock to build" -msgstr "" +msgstr "Voorraad toewijzen aan product" #: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8 msgid "Allocate Stock" @@ -1278,9 +1284,9 @@ msgstr "" #: build/templates/build/detail.html:185 #: company/templates/company/detail.html:38 #: company/templates/company/detail.html:85 order/views.py:463 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order Parts" -msgstr "Bestel onderdelen" +msgstr "Onderdelen bestellen" #: build/templates/build/detail.html:197 msgid "Untracked stock has been fully allocated for this Build Order" @@ -1347,7 +1353,7 @@ msgstr "Bouw notities" #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115 +#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115 #: stock/templates/stock/item.html:205 msgid "Edit Notes" msgstr "Notities Bewerken" @@ -1474,11 +1480,11 @@ msgstr "" #: common/forms.py:34 msgid "File" -msgstr "" +msgstr "Bestand" #: common/forms.py:35 msgid "Select file to upload" -msgstr "" +msgstr "Selecteer bestand om te uploaden" #: common/forms.py:50 msgid "{name.title()} File" @@ -1487,9 +1493,9 @@ msgstr "" #: common/forms.py:51 #, python-brace-format msgid "Select {name} file to upload" -msgstr "" +msgstr "Kies {name} bestand om te uploaden" -#: common/models.py:340 common/models.py:998 common/models.py:1206 +#: common/models.py:340 common/models.py:1004 common/models.py:1212 msgid "Settings key (must be unique - case insensitive" msgstr "Instellingssleutel (moet uniek zijn - hoofdletter ongevoelig" @@ -1503,7 +1509,7 @@ msgstr "Moet een geheel getal zijn" #: common/models.py:382 msgid "Chosen value is not a valid option" -msgstr "" +msgstr "Gekozen waarde is geen geldige optie" #: common/models.py:405 msgid "Value must be a boolean value" @@ -1651,7 +1657,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956 +#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:1068 #: templates/js/translated/table_filters.js:168 #: templates/js/translated/table_filters.js:416 msgid "Assembly" @@ -1953,256 +1959,264 @@ msgid "Group to which new users are assigned on registration" msgstr "" #: common/models.py:961 -msgid "Enable URL integration" +msgid "Enforce MFA" msgstr "" #: common/models.py:962 -msgid "Enable plugins to add URL routes" +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:967 +msgid "Enable URL integration" msgstr "" #: common/models.py:968 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:974 msgid "Enable navigation integration" msgstr "" -#: common/models.py:969 +#: common/models.py:975 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:975 +#: common/models.py:981 msgid "Enable global setting integration" msgstr "" -#: common/models.py:976 +#: common/models.py:982 msgid "Enable plugins to integrate into inventree global settings" msgstr "" -#: common/models.py:982 +#: common/models.py:988 msgid "Enable app integration" msgstr "" -#: common/models.py:983 +#: common/models.py:989 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1029 +#: common/models.py:1035 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1030 +#: common/models.py:1036 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1035 +#: common/models.py:1041 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1036 +#: common/models.py:1042 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1041 +#: common/models.py:1047 msgid "Show latest parts" msgstr "" -#: common/models.py:1042 +#: common/models.py:1048 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1047 +#: common/models.py:1053 msgid "Recent Part Count" msgstr "" -#: common/models.py:1048 +#: common/models.py:1054 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1054 +#: common/models.py:1060 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1055 +#: common/models.py:1061 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1060 +#: common/models.py:1066 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1061 +#: common/models.py:1067 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1066 +#: common/models.py:1072 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1067 +#: common/models.py:1073 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1072 +#: common/models.py:1078 msgid "Show low stock" msgstr "" -#: common/models.py:1073 +#: common/models.py:1079 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1078 +#: common/models.py:1084 msgid "Show depleted stock" msgstr "" -#: common/models.py:1079 +#: common/models.py:1085 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1084 +#: common/models.py:1090 msgid "Show needed stock" msgstr "" -#: common/models.py:1085 +#: common/models.py:1091 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1090 +#: common/models.py:1096 msgid "Show expired stock" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1096 +#: common/models.py:1102 msgid "Show stale stock" msgstr "" -#: common/models.py:1097 +#: common/models.py:1103 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1102 +#: common/models.py:1108 msgid "Show pending builds" msgstr "" -#: common/models.py:1103 +#: common/models.py:1109 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1108 +#: common/models.py:1114 msgid "Show overdue builds" msgstr "" -#: common/models.py:1109 +#: common/models.py:1115 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1114 +#: common/models.py:1120 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1115 +#: common/models.py:1121 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1120 +#: common/models.py:1126 msgid "Show overdue POs" msgstr "" -#: common/models.py:1121 +#: common/models.py:1127 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1126 +#: common/models.py:1132 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1127 +#: common/models.py:1133 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1132 +#: common/models.py:1138 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1133 +#: common/models.py:1139 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1139 +#: common/models.py:1145 msgid "Inline label display" msgstr "" -#: common/models.py:1140 +#: common/models.py:1146 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1146 +#: common/models.py:1152 msgid "Inline report display" msgstr "" -#: common/models.py:1147 +#: common/models.py:1153 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "Search Preview Results" msgstr "" -#: common/models.py:1154 +#: common/models.py:1160 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1160 +#: common/models.py:1166 msgid "Search Show Stock" msgstr "" -#: common/models.py:1161 +#: common/models.py:1167 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1167 +#: common/models.py:1173 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1168 +#: common/models.py:1174 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1174 +#: common/models.py:1180 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1175 +#: common/models.py:1181 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1181 +#: common/models.py:1187 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1182 +#: common/models.py:1188 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1188 +#: common/models.py:1194 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1189 +#: common/models.py:1195 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1254 company/forms.py:43 +#: common/models.py:1260 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1261 company/serializers.py:264 +#: common/models.py:1267 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801 +#: templates/js/translated/part.js:852 templates/js/translated/part.js:1803 msgid "Price" msgstr "" -#: common/models.py:1262 +#: common/models.py:1268 msgid "Unit price at specified quantity" msgstr "" @@ -2290,7 +2304,7 @@ msgid "Contact phone number" msgstr "" #: company/models.py:125 company/templates/company/company_base.html:129 -#: templates/InvenTree/settings/user.html:47 +#: templates/InvenTree/settings/user.html:48 msgid "Email" msgstr "" @@ -2347,8 +2361,8 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:320 company/models.py:535 stock/models.py:468 -#: stock/templates/stock/item_base.html:135 +#: company/models.py:320 company/models.py:535 stock/models.py:469 +#: stock/templates/stock/item_base.html:141 msgid "Base Part" msgstr "" @@ -2359,7 +2373,7 @@ msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:381 +#: stock/templates/stock/item_base.html:379 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:514 #: templates/js/translated/company.js:797 templates/js/translated/part.js:232 @@ -2393,7 +2407,7 @@ msgstr "Omschrijving onderdeel fabrikant" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:391 +#: stock/templates/stock/item_base.html:389 msgid "Manufacturer Part" msgstr "Fabrikant onderdeel" @@ -2403,8 +2417,8 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:1845 templates/js/translated/company.js:644 -#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117 +#: stock/models.py:1960 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1296 msgid "Value" msgstr "" @@ -2431,7 +2445,7 @@ msgstr "Gekoppeld fabrikant onderdeel moet verwijzen naar hetzelfde basis onderd #: company/templates/company/supplier_part.html:87 order/models.py:224 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219 -#: part/bom.py:247 stock/templates/stock/item_base.html:398 +#: part/bom.py:247 stock/templates/stock/item_base.html:396 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:771 templates/js/translated/order.js:823 #: templates/js/translated/part.js:213 templates/js/translated/part.js:800 @@ -2479,8 +2493,8 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:491 stock/templates/stock/item_base.html:339 -#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612 +#: stock/models.py:493 stock/templates/stock/item_base.html:337 +#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1791 msgid "Packaging" msgstr "" @@ -2506,7 +2520,7 @@ msgstr "" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322 +#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322 msgid "Company" msgstr "" @@ -2548,11 +2562,11 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:83 order/models.py:547 -#: order/templates/order/sales_order_base.html:115 stock/models.py:509 -#: stock/models.py:510 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:291 +#: order/templates/order/sales_order_base.html:115 stock/models.py:512 +#: stock/models.py:513 stock/serializers.py:624 +#: stock/templates/stock/item_base.html:289 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2259 +#: templates/js/translated/stock.js:2452 msgid "Customer" msgstr "" @@ -2571,7 +2585,7 @@ msgstr "" #: company/templates/company/detail.html:15 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:124 +#: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" @@ -2590,14 +2604,14 @@ msgstr "" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:167 part/templates/part/detail.html:342 +#: part/templates/part/category.html:171 part/templates/part/detail.html:342 #: part/templates/part/detail.html:370 msgid "Options" msgstr "" #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order parts" msgstr "" @@ -2611,7 +2625,7 @@ msgstr "" msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109 +#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "Fabrikant onderdelen" @@ -2633,8 +2647,8 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203 +#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" @@ -2655,8 +2669,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223 +#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" @@ -2698,7 +2712,7 @@ msgid "Supplier List" msgstr "" #: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184 +#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 #: templates/navbar.html:46 msgid "Manufacturers" msgstr "Fabrikanten" @@ -2706,7 +2720,7 @@ msgstr "Fabrikanten" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:67 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76 msgid "Order part" msgstr "" @@ -2728,7 +2742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 #: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:194 templates/navbar.html:45 +#: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "" @@ -2742,7 +2756,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:254 #: part/templates/part/detail.html:344 part/templates/part/detail.html:372 #: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31 -#: users/models.py:206 +#: users/models.py:209 msgid "Delete" msgstr "" @@ -2765,7 +2779,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:867 +#: part/templates/part/detail.html:861 msgid "Add Parameter" msgstr "" @@ -2794,9 +2808,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:476 -#: stock/templates/stock/item_base.html:403 -#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569 +#: company/templates/company/supplier_part.html:24 stock/models.py:477 +#: stock/templates/stock/item_base.html:401 +#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1748 msgid "Supplier Part" msgstr "" @@ -2816,13 +2830,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:20 stock/templates/stock/location.html:162 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:166 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163 -#: templates/js/translated/stock.js:359 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 +#: templates/js/translated/stock.js:360 msgid "New Stock Item" msgstr "" @@ -2832,7 +2846,7 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:68 +#: part/templates/part/detail.html:72 msgid "Order Part" msgstr "" @@ -2843,7 +2857,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:1717 +#: part/templates/part/prices.html:271 part/views.py:1713 msgid "Add Price Break" msgstr "" @@ -2851,11 +2865,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1779 +#: company/templates/company/supplier_part.html:224 part/views.py:1775 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1765 +#: company/templates/company/supplier_part.html:238 part/views.py:1761 msgid "Edit Price Break" msgstr "" @@ -2869,14 +2883,14 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:156 +#: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434 -#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059 -#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:1401 templates/navbar.html:28 +#: templates/js/translated/bom.js:328 templates/js/translated/part.js:434 +#: templates/js/translated/part.js:569 templates/js/translated/part.js:1061 +#: templates/js/translated/part.js:1222 templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:1580 templates/navbar.html:28 msgid "Stock" msgstr "" @@ -2895,11 +2909,11 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:133 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:159 +#: stock/templates/stock/location.html:137 +#: stock/templates/stock/location.html:151 +#: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "" @@ -2912,7 +2926,7 @@ msgstr "" msgid "New Manufacturer" msgstr "Nieuwe fabrikant" -#: company/views.py:61 templates/InvenTree/search.html:214 +#: company/views.py:61 templates/InvenTree/search.html:208 #: templates/navbar.html:57 msgid "Customers" msgstr "" @@ -3121,7 +3135,7 @@ msgstr "" msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:562 order/models.py:1026 +#: order/models.py:562 order/models.py:1028 #: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429 msgid "Shipment Date" msgstr "" @@ -3130,7 +3144,7 @@ msgstr "" msgid "shipped by" msgstr "" -#: order/models.py:634 +#: order/models.py:635 msgid "Order cannot be completed as no parts have been assigned" msgstr "" @@ -3138,172 +3152,172 @@ msgstr "" msgid "Only a pending order can be marked as complete" msgstr "" -#: order/models.py:643 +#: order/models.py:642 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:647 +#: order/models.py:645 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:795 +#: order/models.py:797 msgid "Item quantity" msgstr "" -#: order/models.py:801 +#: order/models.py:803 msgid "Line item reference" msgstr "" -#: order/models.py:803 +#: order/models.py:805 msgid "Line item notes" msgstr "" -#: order/models.py:833 order/models.py:924 order/models.py:1020 +#: order/models.py:835 order/models.py:926 order/models.py:1022 #: templates/js/translated/order.js:1820 msgid "Order" msgstr "" -#: order/models.py:834 order/templates/order/order_base.html:9 +#: order/models.py:836 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:353 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/order.js:801 templates/js/translated/part.js:775 -#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240 +#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433 msgid "Purchase Order" msgstr "" -#: order/models.py:855 +#: order/models.py:857 msgid "Supplier part" msgstr "" -#: order/models.py:862 order/templates/order/order_base.html:163 +#: order/models.py:864 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:847 templates/js/translated/part.js:873 #: templates/js/translated/table_filters.js:317 msgid "Received" msgstr "" -#: order/models.py:863 +#: order/models.py:865 msgid "Number of items received" msgstr "" -#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:360 -#: templates/js/translated/stock.js:1600 +#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:358 +#: templates/js/translated/stock.js:1779 msgid "Purchase Price" msgstr "" -#: order/models.py:871 +#: order/models.py:873 msgid "Unit purchase price" msgstr "" -#: order/models.py:879 +#: order/models.py:881 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:934 part/templates/part/part_pricing.html:112 +#: order/models.py:936 part/templates/part/part_pricing.html:112 #: part/templates/part/prices.html:116 part/templates/part/prices.html:284 msgid "Sale Price" msgstr "" -#: order/models.py:935 +#: order/models.py:937 msgid "Unit sale price" msgstr "" -#: order/models.py:940 +#: order/models.py:942 msgid "Shipped quantity" msgstr "" -#: order/models.py:1027 +#: order/models.py:1029 msgid "Date of shipment" msgstr "" -#: order/models.py:1034 +#: order/models.py:1036 msgid "Checked By" msgstr "" -#: order/models.py:1035 +#: order/models.py:1037 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1043 +#: order/models.py:1045 msgid "Shipment number" msgstr "" -#: order/models.py:1050 +#: order/models.py:1052 msgid "Shipment notes" msgstr "" -#: order/models.py:1057 +#: order/models.py:1059 msgid "Tracking Number" msgstr "" -#: order/models.py:1058 +#: order/models.py:1060 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1068 +#: order/models.py:1070 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1071 +#: order/models.py:1073 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1147 order/models.py:1149 +#: order/models.py:1149 order/models.py:1151 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1153 +#: order/models.py:1155 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1155 +#: order/models.py:1157 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1158 +#: order/models.py:1160 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1162 +#: order/models.py:1164 msgid "StockItem is over-allocated" msgstr "" -#: order/models.py:1168 order/serializers.py:734 +#: order/models.py:1170 order/serializers.py:734 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1171 +#: order/models.py:1173 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1172 +#: order/models.py:1174 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1180 +#: order/models.py:1182 msgid "Line" msgstr "" -#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953 +#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953 #: templates/js/translated/model_renderers.js:251 msgid "Shipment" msgstr "" -#: order/models.py:1189 +#: order/models.py:1191 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1201 +#: order/models.py:1203 msgid "Item" msgstr "" -#: order/models.py:1202 +#: order/models.py:1204 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1205 +#: order/models.py:1207 msgid "Enter stock allocation quantity" msgstr "" @@ -3530,7 +3544,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/build.js:245 templates/js/translated/build.js:1256 #: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:592 +#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761 msgid "Remove row" msgstr "" @@ -3722,7 +3736,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188 +#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1188 msgid "Actions" msgstr "" @@ -3797,24 +3811,24 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:760 +#: part/api.py:777 msgid "Must be greater than zero" msgstr "" -#: part/api.py:764 +#: part/api.py:781 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:779 +#: part/api.py:796 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833 +#: part/api.py:827 part/api.py:831 part/api.py:846 part/api.py:850 msgid "This field is required" msgstr "" #: part/bom.py:125 part/models.py:81 part/models.py:816 -#: part/templates/part/category.html:104 part/templates/part/part_base.html:338 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "Standaard locatie" @@ -3822,99 +3836,43 @@ msgstr "Standaard locatie" msgid "Available Stock" msgstr "" -#: part/forms.py:63 -msgid "File Format" -msgstr "" - -#: part/forms.py:63 -msgid "Select output file format" -msgstr "" - -#: part/forms.py:65 -msgid "Cascading" -msgstr "" - -#: part/forms.py:65 -msgid "Download cascading / multi-level BOM" -msgstr "" - -#: part/forms.py:67 -msgid "Levels" -msgstr "" - -#: part/forms.py:67 -msgid "Select maximum number of BOM levels to export (0 = all levels)" -msgstr "" - -#: part/forms.py:69 -msgid "Include Parameter Data" -msgstr "" - -#: part/forms.py:69 -msgid "Include part parameters data in exported BOM" -msgstr "" - -#: part/forms.py:71 -msgid "Include Stock Data" -msgstr "" - -#: part/forms.py:71 -msgid "Include part stock data in exported BOM" -msgstr "" - -#: part/forms.py:73 -msgid "Include Manufacturer Data" -msgstr "Voeg fabrikantgegevens toe" - -#: part/forms.py:73 -msgid "Include part manufacturer data in exported BOM" -msgstr "Voeg fabrikantgegevens toe aan geëxporteerde BOM" - -#: part/forms.py:75 -msgid "Include Supplier Data" -msgstr "" - -#: part/forms.py:75 -msgid "Include part supplier data in exported BOM" -msgstr "" - -#: part/forms.py:96 part/models.py:2427 +#: part/forms.py:66 part/models.py:2427 msgid "Parent Part" msgstr "" -#: part/forms.py:97 part/templates/part/bom_duplicate.html:7 +#: part/forms.py:67 part/templates/part/bom_duplicate.html:7 msgid "Select parent part to copy BOM from" msgstr "Selecteer bovenliggend onderdeel om stuklijst van te kopiëren" -#: part/forms.py:103 +#: part/forms.py:73 msgid "Clear existing BOM items" msgstr "" -#: part/forms.py:109 +#: part/forms.py:79 msgid "Confirm BOM duplication" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "validate" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "Confirm that the BOM is correct" msgstr "" -#: part/forms.py:163 +#: part/forms.py:133 msgid "Select part category" msgstr "" -#: part/forms.py:200 +#: part/forms.py:170 msgid "Add parameter template to same level categories" msgstr "" -#: part/forms.py:204 +#: part/forms.py:174 msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:224 +#: part/forms.py:194 msgid "Input quantity for price calculation" msgstr "" @@ -3930,24 +3888,24 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11 +#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:96 part/templates/part/category.html:124 -#: templates/InvenTree/search.html:101 templates/stats.html:84 +#: part/models.py:96 part/templates/part/category.html:128 +#: templates/InvenTree/search.html:95 templates/stats.html:84 #: users/models.py:40 msgid "Part Categories" msgstr "" #: part/models.py:358 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:13 part/templates/part/category.html:129 -#: part/templates/part/category.html:149 +#: part/templates/part/category.html:17 part/templates/part/category.html:133 +#: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1597 templates/navbar.html:21 +#: templates/js/translated/part.js:1599 templates/navbar.html:21 #: templates/stats.html:80 templates/stats.html:89 users/models.py:41 msgid "Parts" msgstr "" @@ -4001,7 +3959,7 @@ msgstr "" msgid "Part description" msgstr "" -#: part/models.py:770 part/templates/part/category.html:82 +#: part/models.py:770 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "" @@ -4014,7 +3972,7 @@ msgstr "" #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 #: templates/InvenTree/settings/settings.html:172 -#: templates/js/translated/part.js:1202 +#: templates/js/translated/part.js:1204 msgid "Category" msgstr "" @@ -4023,8 +3981,8 @@ msgid "Part category" msgstr "" #: part/models.py:784 part/templates/part/part_base.html:274 -#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155 -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/part.js:557 templates/js/translated/part.js:1157 +#: templates/js/translated/stock.js:1552 msgid "IPN" msgstr "" @@ -4145,8 +4103,8 @@ msgstr "" msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2310 templates/js/translated/part.js:1648 -#: templates/js/translated/stock.js:1097 +#: part/models.py:2310 templates/js/translated/part.js:1650 +#: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "" @@ -4162,7 +4120,7 @@ msgstr "" msgid "Enter description for this test" msgstr "" -#: part/models.py:2322 templates/js/translated/part.js:1657 +#: part/models.py:2322 templates/js/translated/part.js:1659 #: templates/js/translated/table_filters.js:281 msgid "Required" msgstr "" @@ -4171,7 +4129,7 @@ msgstr "" msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2328 templates/js/translated/part.js:1665 +#: part/models.py:2328 templates/js/translated/part.js:1667 msgid "Requires Value" msgstr "" @@ -4179,7 +4137,7 @@ msgstr "" msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2334 templates/js/translated/part.js:1672 +#: part/models.py:2334 templates/js/translated/part.js:1674 msgid "Requires Attachment" msgstr "" @@ -4241,8 +4199,8 @@ msgstr "" msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2578 templates/js/translated/bom.js:454 -#: templates/js/translated/bom.js:528 +#: part/models.py:2578 templates/js/translated/bom.js:566 +#: templates/js/translated/bom.js:640 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" @@ -4275,8 +4233,8 @@ msgstr "" msgid "BOM line checksum" msgstr "" -#: part/models.py:2594 templates/js/translated/bom.js:545 -#: templates/js/translated/bom.js:552 +#: part/models.py:2594 templates/js/translated/bom.js:657 +#: templates/js/translated/bom.js:664 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" @@ -4286,7 +4244,7 @@ msgstr "" msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2600 templates/js/translated/bom.js:537 +#: part/models.py:2600 templates/js/translated/bom.js:649 msgid "Allow Variants" msgstr "" @@ -4406,100 +4364,100 @@ msgstr "" msgid "This will validate each line in the BOM." msgstr "" -#: part/templates/part/category.html:24 part/templates/part/category.html:28 +#: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:32 +#: part/templates/part/category.html:36 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:38 +#: part/templates/part/category.html:42 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:43 +#: part/templates/part/category.html:47 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:44 +#: part/templates/part/category.html:48 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:52 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:53 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:57 +#: part/templates/part/category.html:61 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:58 +#: part/templates/part/category.html:62 msgid "New Category" msgstr "" -#: part/templates/part/category.html:76 part/templates/part/category.html:89 +#: part/templates/part/category.html:80 part/templates/part/category.html:93 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:90 +#: part/templates/part/category.html:94 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:110 part/templates/part/category.html:201 +#: part/templates/part/category.html:114 part/templates/part/category.html:205 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:115 +#: part/templates/part/category.html:119 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:152 +#: part/templates/part/category.html:156 msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:153 part/templates/part/category.html:177 +#: part/templates/part/category.html:157 part/templates/part/category.html:181 msgid "Export" msgstr "" -#: part/templates/part/category.html:156 +#: part/templates/part/category.html:160 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:157 templates/js/translated/bom.js:40 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 msgid "New Part" msgstr "" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set category" msgstr "" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:175 +#: part/templates/part/category.html:179 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:177 +#: part/templates/part/category.html:181 msgid "Export Data" msgstr "" -#: part/templates/part/category.html:191 +#: part/templates/part/category.html:195 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:268 +#: part/templates/part/category.html:288 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:295 +#: part/templates/part/category.html:315 msgid "Create Part" msgstr "" @@ -4566,24 +4524,24 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:17 +#: part/templates/part/detail.html:21 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:29 +#: part/templates/part/detail.html:33 #, python-format msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:39 +#: part/templates/part/detail.html:43 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:44 +#: part/templates/part/detail.html:48 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:101 +#: part/templates/part/detail.html:105 msgid "Sales Order Allocations" msgstr "Toewijzingen verkoopopdracht" @@ -4619,7 +4577,7 @@ msgstr "" msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:242 +#: part/templates/part/detail.html:242 templates/js/translated/bom.js:70 msgid "Export BOM" msgstr "" @@ -4657,7 +4615,7 @@ msgstr "" #: part/templates/part/detail.html:319 msgid "Build Order Allocations" -msgstr "Toewijzingen bouwopdracht" +msgstr "Productie-opdracht toewijzingen" #: part/templates/part/detail.html:329 msgid "Part Suppliers" @@ -4683,38 +4641,38 @@ msgstr "" msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:651 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:659 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:760 +#: part/templates/part/detail.html:754 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:817 +#: part/templates/part/detail.html:811 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:930 +#: part/templates/part/detail.html:924 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:942 +#: part/templates/part/detail.html:936 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:954 +#: part/templates/part/detail.html:948 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1043 +#: part/templates/part/detail.html:1037 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4745,20 +4703,20 @@ msgid "Subscribe to notifications for this part" msgstr "" #: part/templates/part/part_base.html:43 -#: stock/templates/stock/item_base.html:28 -#: stock/templates/stock/location.html:29 +#: stock/templates/stock/item_base.html:34 +#: stock/templates/stock/location.html:33 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:45 -#: stock/templates/stock/item_base.html:32 -#: stock/templates/stock/location.html:31 templates/qr_button.html:1 +#: stock/templates/stock/item_base.html:38 +#: stock/templates/stock/location.html:35 templates/qr_button.html:1 msgid "Show QR Code" msgstr "QR-code weergeven" #: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:48 -#: stock/templates/stock/location.html:32 +#: stock/templates/stock/item_base.html:54 +#: stock/templates/stock/location.html:36 msgid "Print Label" msgstr "Label afdrukken" @@ -4767,8 +4725,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:103 -#: stock/templates/stock/location.html:40 +#: stock/templates/stock/item_base.html:109 +#: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "Voorraad acties" @@ -4848,7 +4806,7 @@ msgstr "" msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1235 +#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1237 msgid "On Order" msgstr "" @@ -4864,12 +4822,12 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:566 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1066 -#: templates/js/translated/part.js:1239 +#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1068 +#: templates/js/translated/part.js:1241 msgid "Building" msgstr "" @@ -4882,7 +4840,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:159 +#: stock/templates/stock/item_base.html:165 msgid "Search for serial number" msgstr "" @@ -4921,7 +4879,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:520 +#: templates/js/translated/bom.js:632 msgid "No supplier pricing available" msgstr "" @@ -5036,7 +4994,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626 msgid "Supplier Cost" msgstr "" @@ -5058,7 +5016,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1788 +#: part/templates/part/prices.html:215 part/views.py:1784 msgid "Add Internal Price Break" msgstr "" @@ -5078,9 +5036,9 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476 -#: templates/js/translated/part.js:436 templates/js/translated/part.js:1056 -#: templates/js/translated/part.js:1243 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588 +#: templates/js/translated/part.js:436 templates/js/translated/part.js:1058 +#: templates/js/translated/part.js:1245 msgid "No Stock" msgstr "" @@ -5154,67 +5112,67 @@ msgstr "" msgid "Match Parts" msgstr "" -#: part/views.py:1196 +#: part/views.py:1195 msgid "Export Bill of Materials" msgstr "" -#: part/views.py:1248 +#: part/views.py:1244 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1255 +#: part/views.py:1251 msgid "Part was deleted" msgstr "" -#: part/views.py:1264 +#: part/views.py:1260 msgid "Part Pricing" msgstr "" -#: part/views.py:1413 +#: part/views.py:1409 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1423 +#: part/views.py:1419 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1430 +#: part/views.py:1426 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1489 templates/js/translated/part.js:313 +#: part/views.py:1485 templates/js/translated/part.js:313 msgid "Edit Part Category" msgstr "" -#: part/views.py:1527 +#: part/views.py:1523 msgid "Delete Part Category" msgstr "" -#: part/views.py:1533 +#: part/views.py:1529 msgid "Part category was deleted" msgstr "" -#: part/views.py:1542 +#: part/views.py:1538 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1643 +#: part/views.py:1639 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1699 +#: part/views.py:1695 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1721 +#: part/views.py:1717 msgid "Added new price break" msgstr "" -#: part/views.py:1797 +#: part/views.py:1793 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1805 +#: part/views.py:1801 msgid "Delete Internal Price Break" msgstr "" @@ -5388,12 +5346,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:514 stock/templates/stock/item_base.html:149 +#: stock/models.py:517 stock/templates/stock/item_base.html:155 #: templates/js/translated/build.js:238 templates/js/translated/build.js:642 #: templates/js/translated/build.js:1018 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415 msgid "Serial Number" msgstr "Serienummer" @@ -5402,19 +5360,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:1833 +#: stock/models.py:1948 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:1839 +#: stock/models.py:1954 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:49 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367 msgid "Date" msgstr "" @@ -5432,17 +5390,18 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434 +#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748 +#: templates/js/translated/stock.js:2627 msgid "Serial" msgstr "" -#: stock/api.py:446 +#: stock/api.py:478 msgid "Quantity is required" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571 -#: stock/templates/stock/item_base.html:186 -#: templates/js/translated/stock.js:1522 +#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574 +#: stock/templates/stock/item_base.html:192 +#: templates/js/translated/stock.js:1701 msgid "Expiry Date" msgstr "" @@ -5490,12 +5449,12 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:60 stock/models.py:608 -#: stock/templates/stock/item_base.html:417 +#: stock/models.py:60 stock/models.py:611 +#: stock/templates/stock/item_base.html:415 msgid "Owner" msgstr "" -#: stock/models.py:61 stock/models.py:609 +#: stock/models.py:61 stock/models.py:612 msgid "Select Owner" msgstr "" @@ -5528,150 +5487,190 @@ msgstr "" msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:460 +#: stock/models.py:461 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:470 msgid "Base part" msgstr "" -#: stock/models.py:477 +#: stock/models.py:478 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:482 stock/templates/stock/location.html:12 +#: stock/models.py:484 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Voorraadlocatie" -#: stock/models.py:485 +#: stock/models.py:487 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:492 +#: stock/models.py:494 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:497 stock/templates/stock/item_base.html:299 +#: stock/models.py:500 stock/templates/stock/item_base.html:297 msgid "Installed In" msgstr "" -#: stock/models.py:500 +#: stock/models.py:503 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:516 +#: stock/models.py:519 msgid "Serial number for this item" msgstr "" -#: stock/models.py:530 +#: stock/models.py:533 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:534 +#: stock/models.py:537 msgid "Stock Quantity" msgstr "" -#: stock/models.py:543 +#: stock/models.py:546 msgid "Source Build" msgstr "" -#: stock/models.py:545 +#: stock/models.py:548 msgid "Build for this stock item" msgstr "" -#: stock/models.py:556 +#: stock/models.py:559 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:559 +#: stock/models.py:562 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:565 +#: stock/models.py:568 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:572 +#: stock/models.py:575 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete on deplete" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:595 stock/templates/stock/item.html:111 +#: stock/models.py:598 stock/templates/stock/item.html:111 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:604 +#: stock/models.py:607 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1072 +#: stock/models.py:1068 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1078 +#: stock/models.py:1074 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1084 +#: stock/models.py:1080 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1087 +#: stock/models.py:1083 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1090 +#: stock/models.py:1086 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1097 +#: stock/models.py:1093 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1255 +#: stock/models.py:1164 +msgid "Stock item has been assigned to a sales order" +msgstr "" + +#: stock/models.py:1167 +msgid "Stock item is installed in another item" +msgstr "" + +#: stock/models.py:1170 +msgid "Stock item contains other items" +msgstr "" + +#: stock/models.py:1173 +msgid "Stock item has been assigned to a customer" +msgstr "" + +#: stock/models.py:1176 +msgid "Stock item is currently in production" +msgstr "" + +#: stock/models.py:1179 +msgid "Serialized stock cannot be merged" +msgstr "" + +#: stock/models.py:1186 stock/serializers.py:773 +msgid "Duplicate stock items" +msgstr "" + +#: stock/models.py:1190 +msgid "Stock items must refer to the same part" +msgstr "" + +#: stock/models.py:1194 +msgid "Stock items must refer to the same supplier part" +msgstr "" + +#: stock/models.py:1198 +msgid "Stock status codes must match" +msgstr "" + +#: stock/models.py:1369 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1753 +#: stock/models.py:1868 msgid "Entry notes" msgstr "" -#: stock/models.py:1810 +#: stock/models.py:1925 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1931 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1834 +#: stock/models.py:1949 msgid "Test name" msgstr "" -#: stock/models.py:1840 templates/js/translated/table_filters.js:271 +#: stock/models.py:1955 templates/js/translated/table_filters.js:271 msgid "Test result" msgstr "" -#: stock/models.py:1846 +#: stock/models.py:1961 msgid "Test output value" msgstr "" -#: stock/models.py:1853 +#: stock/models.py:1968 msgid "Test result attachment" msgstr "" -#: stock/models.py:1859 +#: stock/models.py:1974 msgid "Test notes" msgstr "" @@ -5696,7 +5695,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:814 +#: stock/serializers.py:326 stock/serializers.py:730 stock/serializers.py:971 msgid "Destination stock location" msgstr "" @@ -5708,39 +5707,63 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:573 +#: stock/serializers.py:587 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:577 +#: stock/serializers.py:591 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:581 +#: stock/serializers.py:595 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:611 +#: stock/serializers.py:625 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:617 +#: stock/serializers.py:631 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:639 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:635 stock/serializers.py:722 +#: stock/serializers.py:649 stock/serializers.py:879 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:684 +#: stock/serializers.py:737 +msgid "Stock merging notes" +msgstr "" + +#: stock/serializers.py:742 +msgid "Allow mismatched suppliers" +msgstr "" + +#: stock/serializers.py:743 +msgid "Allow stock items with different supplier parts to be merged" +msgstr "" + +#: stock/serializers.py:748 +msgid "Allow mismatched status" +msgstr "" + +#: stock/serializers.py:749 +msgid "Allow stock items with different status codes to be merged" +msgstr "" + +#: stock/serializers.py:759 +msgid "At least two stock items must be provided" +msgstr "" + +#: stock/serializers.py:841 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:712 +#: stock/serializers.py:869 msgid "Stock transaction notes" msgstr "" @@ -5765,7 +5788,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50 +#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:56 msgid "Test Report" msgstr "" @@ -5797,197 +5820,189 @@ msgstr "" msgid "Delete Test Result" msgstr "" -#: stock/templates/stock/item_base.html:35 +#: stock/templates/stock/item_base.html:41 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:37 +#: stock/templates/stock/item_base.html:43 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24 +#: stock/templates/stock/item_base.html:45 templates/stock_table.html:24 msgid "Scan to Location" msgstr "Scan naar locatie" -#: stock/templates/stock/item_base.html:46 +#: stock/templates/stock/item_base.html:52 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:71 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:47 templates/stock_table.html:50 +#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/location.html:51 templates/stock_table.html:50 msgid "Count stock" msgstr "Voorraad tellen" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:78 templates/stock_table.html:48 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49 +#: stock/templates/stock/item_base.html:81 templates/stock_table.html:49 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:84 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:53 +#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/location.html:57 msgid "Transfer stock" msgstr "Voorraad overzetten" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53 +#: stock/templates/stock/item_base.html:91 templates/stock_table.html:54 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:94 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:108 +#: stock/templates/stock/item_base.html:114 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/item_base.html:117 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:119 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:116 +#: stock/templates/stock/item_base.html:122 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/stock.js:1535 +#: stock/templates/stock/item_base.html:205 +#: templates/js/translated/stock.js:1714 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:208 +#: stock/templates/stock/item_base.html:214 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:226 +#: stock/templates/stock/item_base.html:232 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:239 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:234 +#: stock/templates/stock/item_base.html:240 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:247 +#: stock/templates/stock/item_base.html:253 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:261 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:263 +#: stock/templates/stock/item_base.html:269 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:269 +#: stock/templates/stock/item_base.html:275 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:273 -msgid "This stock item cannot be deleted as it has child items" -msgstr "" - -#: stock/templates/stock/item_base.html:277 -msgid "This stock item will be automatically deleted when all stock is depleted." -msgstr "" - -#: stock/templates/stock/item_base.html:318 +#: stock/templates/stock/item_base.html:316 #: templates/js/translated/build.js:1040 msgid "No location set" msgstr "Geen Locatie ingesteld" -#: stock/templates/stock/item_base.html:325 +#: stock/templates/stock/item_base.html:323 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:367 +#: stock/templates/stock/item_base.html:365 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:385 +#: stock/templates/stock/item_base.html:383 msgid "No manufacturer set" msgstr "Geen fabrikant geselecteerd" -#: stock/templates/stock/item_base.html:410 +#: stock/templates/stock/item_base.html:408 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:500 +#: stock/templates/stock/item_base.html:498 msgid "Edit Stock Status" msgstr "" @@ -6041,59 +6056,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:37 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:65 msgid "Location actions" msgstr "Locatie acties" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:67 msgid "Edit location" msgstr "Bewerk locatie" -#: stock/templates/stock/location.html:65 +#: stock/templates/stock/location.html:69 msgid "Delete location" msgstr "Verwijder locatie" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:79 msgid "Create new stock location" msgstr "Maak nieuwe voorraadlocatie" -#: stock/templates/stock/location.html:76 +#: stock/templates/stock/location.html:80 msgid "New Location" msgstr "Nieuwe locatie" -#: stock/templates/stock/location.html:95 -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:99 +#: stock/templates/stock/location.html:105 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:102 +#: stock/templates/stock/location.html:106 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:119 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "U staat niet in de lijst van eigenaars van deze locatie. Deze voorraadlocatie kan niet worden bewerkt." -#: stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:175 +#: stock/templates/stock/location.html:132 +#: stock/templates/stock/location.html:179 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Sublocaties" -#: stock/templates/stock/location.html:142 templates/InvenTree/search.html:170 +#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "Voorraadlocaties" -#: stock/templates/stock/location.html:182 templates/stock_table.html:30 +#: stock/templates/stock/location.html:186 templates/stock_table.html:30 msgid "Printing Actions" msgstr "Afdrukacties" -#: stock/templates/stock/location.html:186 templates/stock_table.html:34 +#: stock/templates/stock/location.html:190 templates/stock_table.html:34 msgid "Print labels" msgstr "Labels afdrukken" @@ -6178,7 +6193,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:887 +#: stock/views.py:727 templates/js/translated/stock.js:1066 msgid "Confirm stock adjustment" msgstr "" @@ -6186,7 +6201,7 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:323 +#: stock/views.py:760 templates/js/translated/stock.js:324 msgid "Edit Stock Item" msgstr "" @@ -6198,7 +6213,7 @@ msgstr "Maak nieuwe voorraadlocatie" msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:303 +#: stock/views.py:1153 templates/js/translated/stock.js:304 msgid "Duplicate Stock Item" msgstr "" @@ -6314,10 +6329,6 @@ msgstr "" msgid "Search Results" msgstr "" -#: templates/InvenTree/search.html:22 -msgid "Enter a search query" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6363,7 +6374,7 @@ msgstr "" msgid "Login Settings" msgstr "" -#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5 +#: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5 msgid "Signup" msgstr "" @@ -6648,7 +6659,7 @@ msgstr "" msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:55 +#: templates/InvenTree/settings/user.html:54 msgid "The following email addresses are associated with your account:" msgstr "" @@ -6673,145 +6684,193 @@ msgid "Re-send Verification" msgstr "" #: templates/InvenTree/settings/user.html:87 -#: templates/InvenTree/settings/user.html:154 +#: templates/InvenTree/settings/user.html:149 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:94 +#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:201 msgid "Warning:" msgstr "" -#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:96 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:102 +#: templates/InvenTree/settings/user.html:104 msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:112 -msgid "Enter e-mail address" -msgstr "" - -#: templates/InvenTree/settings/user.html:114 +#: templates/InvenTree/settings/user.html:109 msgid "Add Email" msgstr "" -#: templates/InvenTree/settings/user.html:124 +#: templates/InvenTree/settings/user.html:117 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:129 +#: templates/InvenTree/settings/user.html:122 msgid "You can sign in to your account using any of the following third party accounts:" msgstr "" -#: templates/InvenTree/settings/user.html:163 -msgid "There are no social network accounts connected to your InvenTree account" +#: templates/InvenTree/settings/user.html:157 +msgid "You currently have no social network accounts connected to this account." msgstr "" -#: templates/InvenTree/settings/user.html:168 +#: templates/InvenTree/settings/user.html:162 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:179 -msgid "Active Sessions" +#: templates/InvenTree/settings/user.html:172 +msgid "Multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:185 -msgid "Log out active sessions (except this one)" +#: templates/InvenTree/settings/user.html:177 +msgid "You have these factors available:" msgstr "" -#: templates/InvenTree/settings/user.html:186 -msgid "Log Out Active Sessions" +#: templates/InvenTree/settings/user.html:187 +msgid "TOTP" 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" +#: templates/InvenTree/settings/user.html:193 +msgid "Static" msgstr "" #: templates/InvenTree/settings/user.html:202 -msgid "Last Activity" +msgid "You currently do not have any factors set up." msgstr "" -#: templates/InvenTree/settings/user.html:211 -#, python-format -msgid "%(time)s ago (this session)" +#: templates/InvenTree/settings/user.html:209 +msgid "Change factors" msgstr "" -#: templates/InvenTree/settings/user.html:213 -#, python-format -msgid "%(time)s ago" +#: templates/InvenTree/settings/user.html:210 +msgid "Setup multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:224 -msgid "Do you really want to remove the selected email address?" +#: templates/InvenTree/settings/user.html:212 +msgid "Remove multifactor" msgstr "" +#: templates/InvenTree/settings/user.html:219 #: templates/InvenTree/settings/user_display.html:25 msgid "Theme Settings" msgstr "" +#: templates/InvenTree/settings/user.html:227 #: templates/InvenTree/settings/user_display.html:35 msgid "Select theme" msgstr "" +#: templates/InvenTree/settings/user.html:237 #: templates/InvenTree/settings/user_display.html:46 msgid "Set Theme" msgstr "" +#: templates/InvenTree/settings/user.html:246 #: templates/InvenTree/settings/user_display.html:54 msgid "Language Settings" msgstr "" +#: templates/InvenTree/settings/user.html:254 #: templates/InvenTree/settings/user_display.html:63 msgid "Select language" msgstr "" +#: templates/InvenTree/settings/user.html:270 #: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" +#: templates/InvenTree/settings/user.html:272 #: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" +#: templates/InvenTree/settings/user.html:279 #: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" +#: templates/InvenTree/settings/user.html:281 #: templates/InvenTree/settings/user_display.html:91 msgid "Some languages are not complete" msgstr "" +#: templates/InvenTree/settings/user.html:283 #: 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.html:285 #: templates/InvenTree/settings/user_display.html:95 msgid "Show them too" msgstr "" +#: templates/InvenTree/settings/user.html:292 #: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" +#: templates/InvenTree/settings/user.html:293 +#, python-format +msgid "Native language translation of the\n" +" InvenTree web application is community contributed via crowdin. Contributions are\n" +" welcomed and encouraged." +msgstr "" + +#: templates/InvenTree/settings/user.html:302 +msgid "Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:308 +msgid "Log out active sessions (except this one)" +msgstr "" + +#: templates/InvenTree/settings/user.html:309 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:318 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:319 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:323 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:324 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:325 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:334 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:336 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:348 +msgid "Do you really want to remove the selected email address?" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +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." @@ -6830,7 +6889,7 @@ msgid "InvenTree Version Information" msgstr "" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53 +#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53 #: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662 #: templates/js/translated/modals.js:965 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 @@ -7006,6 +7065,71 @@ msgstr "" msgid "View in administration panel" msgstr "" +#: templates/allauth_2fa/authenticate.html:5 +msgid "Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:12 +msgid "Authenticate" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:6 +msgid "Two-Factor Authentication Backup Tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:17 +msgid "Backup tokens have been generated, but are not revealed here for security reasons. Press the button below to generate new ones." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:20 +msgid "No tokens. Press the button below to generate some." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:27 +msgid "Generate backup tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:31 +#: templates/allauth_2fa/setup.html:40 +msgid "back to settings" +msgstr "" + +#: templates/allauth_2fa/remove.html:6 +msgid "Disable Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/remove.html:9 +msgid "Are you sure?" +msgstr "" + +#: templates/allauth_2fa/remove.html:14 +msgid "Disable Two-Factor" +msgstr "" + +#: templates/allauth_2fa/setup.html:6 +msgid "Setup Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/setup.html:10 +msgid "Step 1" +msgstr "" + +#: templates/allauth_2fa/setup.html:14 +msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." +msgstr "" + +#: templates/allauth_2fa/setup.html:23 +msgid "Step 2" +msgstr "" + +#: templates/allauth_2fa/setup.html:27 +msgid "Input a token generated by the app:" +msgstr "" + +#: templates/allauth_2fa/setup.html:35 +msgid "Verify" +msgstr "" + #: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 msgid "Add Link" msgstr "" @@ -7044,22 +7168,22 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:1103 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134 +#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1134 #: templates/js/translated/build.js:1755 #: templates/js/translated/table_filters.js:178 msgid "Available" -msgstr "" +msgstr "Beschikbaar" #: templates/email/build_order_required_stock.html:38 #: templates/email/low_stock_notification.html:31 msgid "You are receiving this email because you are subscribed to notifications for this part " -msgstr "" +msgstr "Je ontvangt deze e-mail omdat je bent geabonneerd op notificaties van dit onderdeel " #: templates/email/email.html:35 msgid "InvenTree version" @@ -7239,7 +7363,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018 msgid "Remove stock item" msgstr "" @@ -7281,91 +7405,153 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:184 +#: templates/js/translated/bom.js:36 +msgid "Download BOM Template" +msgstr "" + +#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510 +msgid "Format" +msgstr "" + +#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511 +msgid "Select file format" +msgstr "" + +#: templates/js/translated/bom.js:81 +msgid "Cascading" +msgstr "" + +#: templates/js/translated/bom.js:82 +msgid "Download cascading / multi-level BOM" +msgstr "" + +#: templates/js/translated/bom.js:87 +msgid "Levels" +msgstr "" + +#: templates/js/translated/bom.js:88 +msgid "Select maximum number of BOM levels to export (0 = all levels)" +msgstr "" + +#: templates/js/translated/bom.js:94 +msgid "Include Parameter Data" +msgstr "" + +#: templates/js/translated/bom.js:95 +msgid "Include part parameter data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:100 +msgid "Include Stock Data" +msgstr "" + +#: templates/js/translated/bom.js:101 +msgid "Include part stock data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:106 +msgid "Include Manufacturer Data" +msgstr "Voeg fabrikantgegevens toe" + +#: templates/js/translated/bom.js:107 +msgid "Include part manufacturer data in exported BOM" +msgstr "Voeg fabrikantgegevens toe aan geëxporteerde BOM" + +#: templates/js/translated/bom.js:112 +msgid "Include Supplier Data" +msgstr "" + +#: templates/js/translated/bom.js:113 +msgid "Include part supplier data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:296 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:228 +#: templates/js/translated/bom.js:340 msgid "Select and add a new variant item using the input below" msgstr "" -#: templates/js/translated/bom.js:239 +#: templates/js/translated/bom.js:351 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:245 +#: templates/js/translated/bom.js:357 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:284 +#: templates/js/translated/bom.js:396 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:285 +#: templates/js/translated/bom.js:397 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:404 +#: templates/js/translated/bom.js:516 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116 +#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1116 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:413 +#: templates/js/translated/bom.js:525 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:485 +#: templates/js/translated/bom.js:597 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:500 +#: templates/js/translated/bom.js:612 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:507 +#: templates/js/translated/bom.js:619 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645 +#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:616 +#: templates/js/translated/bom.js:728 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:618 +#: templates/js/translated/bom.js:730 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:620 +#: templates/js/translated/bom.js:732 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796 +#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779 +#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860 +#: templates/js/translated/bom.js:830 templates/js/translated/build.js:860 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:774 +#: templates/js/translated/bom.js:886 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100 +#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1100 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:996 +#: templates/js/translated/bom.js:1108 msgid "Inherited from parent BOM" msgstr "" @@ -7423,7 +7609,7 @@ msgstr "" #: templates/js/translated/build.js:429 templates/js/translated/order.js:1848 msgid "Location not specified" -msgstr "" +msgstr "Locatie is niet opgegeven" #: templates/js/translated/build.js:608 msgid "No active build outputs found" @@ -7432,12 +7618,12 @@ msgstr "" #: templates/js/translated/build.js:1057 templates/js/translated/build.js:1766 #: templates/js/translated/order.js:1982 msgid "Edit stock allocation" -msgstr "" +msgstr "Voorraadtoewijzing bewerken" #: templates/js/translated/build.js:1059 templates/js/translated/build.js:1767 #: templates/js/translated/order.js:1983 msgid "Delete stock allocation" -msgstr "" +msgstr "Voorraadtoewijzing verwijderen" #: templates/js/translated/build.js:1077 msgid "Edit Allocation" @@ -7458,19 +7644,19 @@ msgstr "" #: templates/js/translated/build.js:1139 templates/js/translated/build.js:1365 #: templates/js/translated/build.js:1762 templates/js/translated/order.js:2227 msgid "Allocated" -msgstr "" +msgstr "Toegewezen" #: templates/js/translated/build.js:1195 templates/js/translated/order.js:2307 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1199 templates/stock_table.html:52 +#: templates/js/translated/build.js:1199 templates/stock_table.html:53 msgid "Order stock" msgstr "" #: templates/js/translated/build.js:1202 templates/js/translated/order.js:2300 msgid "Allocate stock" -msgstr "" +msgstr "Voorraad toewijzen" #: templates/js/translated/build.js:1267 templates/js/translated/order.js:1499 msgid "Specify stock allocation quantity" @@ -7479,15 +7665,15 @@ msgstr "" #: templates/js/translated/build.js:1338 templates/js/translated/label.js:134 #: templates/js/translated/order.js:1550 templates/js/translated/report.js:225 msgid "Select Parts" -msgstr "" +msgstr "Onderdelen selecteren" #: templates/js/translated/build.js:1339 templates/js/translated/order.js:1551 msgid "You must select at least one part to allocate" -msgstr "" +msgstr "Er moet op zijn minst één onderdeel toegewezen worden" #: templates/js/translated/build.js:1353 templates/js/translated/order.js:1565 msgid "Select source location (leave blank to take from all locations)" -msgstr "" +msgstr "Selecteer bron locatie (laat het veld leeg om iedere locatie te gebruiken)" #: templates/js/translated/build.js:1382 templates/js/translated/order.js:1600 msgid "Confirm stock allocation" @@ -7509,9 +7695,9 @@ msgstr "" msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147 -#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333 -#: templates/js/translated/stock.js:2128 +#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1149 +#: templates/js/translated/part.js:1560 templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:2321 msgid "Select" msgstr "" @@ -7519,7 +7705,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347 +#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2540 msgid "No user information" msgstr "" @@ -7682,20 +7868,20 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1078 templates/modals.html:19 +#: templates/js/translated/forms.js:1080 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1469 +#: templates/js/translated/forms.js:1471 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1673 +#: templates/js/translated/forms.js:1675 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1893 +#: templates/js/translated/forms.js:1895 msgid "Clear input" msgstr "" @@ -7708,7 +7894,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:863 +#: templates/js/translated/stock.js:1042 msgid "Select Stock Items" msgstr "" @@ -7888,14 +8074,6 @@ msgstr "" msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509 -msgid "Format" -msgstr "" - -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510 -msgid "Select file format" -msgstr "" - #: templates/js/translated/order.js:460 msgid "Select Line Items" msgstr "" @@ -7908,7 +8086,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123 msgid "Stock Status" msgstr "" @@ -7957,7 +8135,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163 -#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986 +#: templates/js/translated/part.js:1777 templates/js/translated/part.js:1988 msgid "Unit Price" msgstr "" @@ -8042,7 +8220,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1249 +#: templates/js/translated/stock.js:1428 msgid "Shipped to customer" msgstr "" @@ -8206,92 +8384,92 @@ msgstr "" msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:946 +#: templates/js/translated/part.js:948 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:970 +#: templates/js/translated/part.js:972 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1037 templates/js/translated/part.js:1297 +#: templates/js/translated/part.js:1039 templates/js/translated/part.js:1299 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1207 +#: templates/js/translated/part.js:1209 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1230 +#: templates/js/translated/part.js:1232 #: templates/js/translated/table_filters.js:412 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493 -#: templates/js/translated/stock.js:2089 +#: templates/js/translated/part.js:1323 templates/js/translated/part.js:1495 +#: templates/js/translated/stock.js:2282 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1337 +#: templates/js/translated/part.js:1339 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108 +#: templates/js/translated/part.js:1514 templates/js/translated/stock.js:2301 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1576 +#: templates/js/translated/part.js:1578 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152 +#: templates/js/translated/part.js:1592 templates/js/translated/stock.js:2345 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1634 +#: templates/js/translated/part.js:1636 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055 +#: templates/js/translated/part.js:1687 templates/js/translated/stock.js:1234 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056 +#: templates/js/translated/part.js:1688 templates/js/translated/stock.js:1235 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1692 +#: templates/js/translated/part.js:1694 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1714 +#: templates/js/translated/part.js:1716 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1728 +#: templates/js/translated/part.js:1730 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1753 +#: templates/js/translated/part.js:1755 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1808 +#: templates/js/translated/part.js:1810 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1809 +#: templates/js/translated/part.js:1811 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1910 +#: templates/js/translated/part.js:1912 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1929 +#: templates/js/translated/part.js:1931 msgid "Single Price Difference" msgstr "" @@ -8365,316 +8543,340 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:72 +#: templates/js/translated/stock.js:73 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173 msgid "Next available serial number" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174 +#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175 msgid "Latest serial number" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:101 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:109 +#: templates/js/translated/stock.js:110 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:145 +#: templates/js/translated/stock.js:146 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:185 +#: templates/js/translated/stock.js:186 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:224 +#: templates/js/translated/stock.js:225 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:231 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:373 +#: templates/js/translated/stock.js:374 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:386 +#: templates/js/translated/stock.js:387 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:411 +#: templates/js/translated/stock.js:412 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416 +#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:432 +#: templates/js/translated/stock.js:433 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:452 +#: templates/js/translated/stock.js:453 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:506 +#: templates/js/translated/stock.js:507 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:517 +#: templates/js/translated/stock.js:518 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:518 +#: templates/js/translated/stock.js:519 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:627 +#: templates/js/translated/stock.js:628 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:628 +#: templates/js/translated/stock.js:629 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:713 +#: templates/js/translated/stock.js:706 +msgid "Warning: Merge operation cannot be reversed" +msgstr "" + +#: templates/js/translated/stock.js:707 +msgid "Some information will be lost when merging stock items" +msgstr "" + +#: templates/js/translated/stock.js:709 +msgid "Stock transaction history will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:710 +msgid "Supplier part information will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:796 +msgid "Confirm stock item merge" +msgstr "" + +#: templates/js/translated/stock.js:797 +msgid "Merge Stock Items" +msgstr "" + +#: templates/js/translated/stock.js:892 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:893 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:899 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:721 +#: templates/js/translated/stock.js:900 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:725 +#: templates/js/translated/stock.js:904 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:726 +#: templates/js/translated/stock.js:905 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:730 +#: templates/js/translated/stock.js:909 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:731 users/models.py:202 +#: templates/js/translated/stock.js:910 users/models.py:205 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:735 templates/stock_table.html:57 +#: templates/js/translated/stock.js:914 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:864 +#: templates/js/translated/stock.js:1043 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1022 +#: templates/js/translated/stock.js:1201 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1024 +#: templates/js/translated/stock.js:1203 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1029 +#: templates/js/translated/stock.js:1208 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1230 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1077 +#: templates/js/translated/stock.js:1256 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1134 +#: templates/js/translated/stock.js:1313 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1420 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1245 +#: templates/js/translated/stock.js:1424 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1432 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1259 +#: templates/js/translated/stock.js:1438 msgid "No stock location set" msgstr "Geen voorraadlocatie ingesteld" -#: templates/js/translated/stock.js:1417 +#: templates/js/translated/stock.js:1596 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1422 +#: templates/js/translated/stock.js:1601 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1425 +#: templates/js/translated/stock.js:1604 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1429 +#: templates/js/translated/stock.js:1608 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1431 +#: templates/js/translated/stock.js:1610 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1437 +#: templates/js/translated/stock.js:1616 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1618 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1441 +#: templates/js/translated/stock.js:1620 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1625 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1453 +#: templates/js/translated/stock.js:1632 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1455 +#: templates/js/translated/stock.js:1634 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1457 +#: templates/js/translated/stock.js:1636 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1461 +#: templates/js/translated/stock.js:1640 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1511 +#: templates/js/translated/stock.js:1690 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1584 +#: templates/js/translated/stock.js:1763 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1622 +#: templates/js/translated/stock.js:1801 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691 +#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1731 +#: templates/js/translated/stock.js:1910 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1758 +#: templates/js/translated/stock.js:1937 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1760 +#: templates/js/translated/stock.js:1939 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2138 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1959 +#: templates/js/translated/stock.js:2152 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1960 +#: templates/js/translated/stock.js:2153 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2377 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2206 +#: templates/js/translated/stock.js:2399 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2231 +#: templates/js/translated/stock.js:2424 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2250 +#: templates/js/translated/stock.js:2443 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2269 +#: templates/js/translated/stock.js:2462 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2480 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2310 +#: templates/js/translated/stock.js:2503 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2318 +#: templates/js/translated/stock.js:2511 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2552 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2360 +#: templates/js/translated/stock.js:2553 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2411 +#: templates/js/translated/stock.js:2604 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2462 +#: templates/js/translated/stock.js:2655 msgid "Uninstall Stock Item" msgstr "" @@ -9059,18 +9261,26 @@ msgid "Move stock" msgstr "" #: templates/stock_table.html:52 +msgid "Merge selected stock items" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Merge stock" +msgstr "" + +#: templates/stock_table.html:53 msgid "Order selected items" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change status" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change stock status" msgstr "" -#: templates/stock_table.html:57 +#: templates/stock_table.html:58 msgid "Delete selected items" msgstr "" @@ -9106,35 +9316,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:189 +#: users/models.py:192 msgid "Permission set" msgstr "" -#: users/models.py:197 +#: users/models.py:200 msgid "Group" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "View" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "Permission to view items" msgstr "" -#: users/models.py:202 +#: users/models.py:205 msgid "Permission to add items" msgstr "" -#: users/models.py:204 +#: users/models.py:207 msgid "Change" msgstr "" -#: users/models.py:204 +#: users/models.py:207 msgid "Permissions to edit items" msgstr "" -#: users/models.py:206 +#: users/models.py:209 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po index 4201822661..b327f4a617 100644 --- a/InvenTree/locale/no/LC_MESSAGES/django.po +++ b/InvenTree/locale/no/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-12-08 23:43+0000\n" -"PO-Revision-Date: 2021-12-08 23:47\n" +"POT-Creation-Date: 2021-12-21 02:57+0000\n" +"PO-Revision-Date: 2021-12-21 03:01\n" "Last-Translator: \n" "Language-Team: Norwegian\n" "Language: no_NO\n" @@ -34,50 +34,50 @@ msgstr "Ingen samsvarende handling funnet" msgid "Enter date" msgstr "Oppgi dato" -#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93 +#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 build/forms.py:93 #: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: part/forms.py:108 templates/account/email_confirm.html:20 +#: part/forms.py:78 templates/account/email_confirm.html:20 #: templates/js/translated/forms.js:595 msgid "Confirm" msgstr "Bekreft" -#: InvenTree/forms.py:136 +#: InvenTree/forms.py:142 msgid "Confirm delete" msgstr "Bekreft sletting" -#: InvenTree/forms.py:137 +#: InvenTree/forms.py:143 msgid "Confirm item deletion" msgstr "" -#: InvenTree/forms.py:168 +#: InvenTree/forms.py:174 msgid "Enter password" msgstr "Oppgi passord" -#: InvenTree/forms.py:169 +#: InvenTree/forms.py:175 msgid "Enter new password" msgstr "Oppgi nytt passord" -#: InvenTree/forms.py:176 +#: InvenTree/forms.py:182 msgid "Confirm password" msgstr "Bekreft passord" -#: InvenTree/forms.py:177 +#: InvenTree/forms.py:183 msgid "Confirm new password" msgstr "Bekreft nytt passord" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:215 msgid "Select Category" msgstr "Velg kategori" -#: InvenTree/forms.py:230 +#: InvenTree/forms.py:236 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:234 +#: InvenTree/forms.py:240 msgid "Email address confirmation" msgstr "" -#: InvenTree/forms.py:254 +#: InvenTree/forms.py:260 msgid "You must type the same email each time." msgstr "" @@ -123,7 +123,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:132 stock/models.py:1852 +#: InvenTree/models.py:132 stock/models.py:1967 #: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "Vedlegg" @@ -136,12 +136,12 @@ msgstr "Velg fil å legge ved" #: company/models.py:564 order/models.py:124 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:1258 +#: templates/js/translated/company.js:826 templates/js/translated/part.js:1260 msgid "Link" msgstr "" #: InvenTree/models.py:140 build/models.py:330 part/models.py:798 -#: stock/models.py:524 +#: stock/models.py:527 msgid "Link to external URL" msgstr "" @@ -153,10 +153,10 @@ msgstr "Kommenter" msgid "File comment" msgstr "Kommentar til fil" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213 -#: common/models.py:1214 part/models.py:2205 part/models.py:2225 +#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1219 +#: common/models.py:1220 part/models.py:2205 part/models.py:2225 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2341 +#: templates/js/translated/stock.js:2534 msgid "User" msgstr "Bruker" @@ -202,8 +202,8 @@ msgstr "Ugyldig valg" #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:268 #: templates/js/translated/company.js:638 templates/js/translated/part.js:506 -#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565 -#: templates/js/translated/stock.js:2134 +#: templates/js/translated/part.js:643 templates/js/translated/part.js:1567 +#: templates/js/translated/stock.js:2327 msgid "Name" msgstr "Navn" @@ -212,23 +212,23 @@ msgstr "Navn" #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70 +#: order/models.py:122 part/models.py:764 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:89 +#: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428 +#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540 #: templates/js/translated/build.js:1627 templates/js/translated/company.js:345 #: templates/js/translated/company.js:548 #: templates/js/translated/company.js:837 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 -#: templates/js/translated/part.js:565 templates/js/translated/part.js:933 -#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188 -#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653 -#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146 -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/part.js:565 templates/js/translated/part.js:935 +#: templates/js/translated/part.js:1020 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1586 templates/js/translated/part.js:1655 +#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339 +#: templates/js/translated/stock.js:2384 msgid "Description" msgstr "Beskrivelse" @@ -248,83 +248,83 @@ msgstr "Nummer må være gyldig" msgid "Filename" msgstr "" -#: InvenTree/settings.py:689 +#: InvenTree/settings.py:698 msgid "German" msgstr "Tysk" -#: InvenTree/settings.py:690 +#: InvenTree/settings.py:699 msgid "Greek" msgstr "Gresk" -#: InvenTree/settings.py:691 +#: InvenTree/settings.py:700 msgid "English" msgstr "Engelsk" -#: InvenTree/settings.py:692 +#: InvenTree/settings.py:701 msgid "Spanish" msgstr "Spansk" -#: InvenTree/settings.py:693 +#: InvenTree/settings.py:702 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:694 +#: InvenTree/settings.py:703 msgid "French" msgstr "Fransk" -#: InvenTree/settings.py:695 +#: InvenTree/settings.py:704 msgid "Hebrew" msgstr "Hebraisk" -#: InvenTree/settings.py:696 +#: InvenTree/settings.py:705 msgid "Italian" msgstr "Italiensk" -#: InvenTree/settings.py:697 +#: InvenTree/settings.py:706 msgid "Japanese" msgstr "Japansk" -#: InvenTree/settings.py:698 +#: InvenTree/settings.py:707 msgid "Korean" msgstr "Koreansk" -#: InvenTree/settings.py:699 +#: InvenTree/settings.py:708 msgid "Dutch" msgstr "Nederlandsk" -#: InvenTree/settings.py:700 +#: InvenTree/settings.py:709 msgid "Norwegian" msgstr "Norsk" -#: InvenTree/settings.py:701 +#: InvenTree/settings.py:710 msgid "Polish" msgstr "Polsk" -#: InvenTree/settings.py:702 +#: InvenTree/settings.py:711 msgid "Portugese" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:712 msgid "Russian" msgstr "Russisk" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:713 msgid "Swedish" msgstr "Svensk" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:714 msgid "Thai" msgstr "Thailandsk" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:715 msgid "Turkish" msgstr "Tyrkisk" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:716 msgid "Vietnamese" msgstr "Vietnamesisk" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:717 msgid "Chinese" msgstr "Kinesisk" @@ -341,7 +341,7 @@ msgid "InvenTree system health checks failed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 msgid "Pending" msgstr "" @@ -349,14 +349,14 @@ msgstr "" msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:319 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:313 +#: InvenTree/status_codes.py:318 msgid "Cancelled" msgstr "" @@ -370,7 +370,7 @@ msgstr "" msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:143 order/models.py:939 +#: InvenTree/status_codes.py:143 order/models.py:941 #: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255 msgid "Shipped" msgstr "" @@ -395,83 +395,87 @@ msgstr "" msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:269 +#: InvenTree/status_codes.py:272 msgid "Legacy stock tracking entry" msgstr "" -#: InvenTree/status_codes.py:271 +#: InvenTree/status_codes.py:274 msgid "Stock item created" msgstr "" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Edited stock item" msgstr "" -#: InvenTree/status_codes.py:274 +#: InvenTree/status_codes.py:277 msgid "Assigned serial number" msgstr "" -#: InvenTree/status_codes.py:276 +#: InvenTree/status_codes.py:279 msgid "Stock counted" msgstr "" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Stock manually added" msgstr "" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Stock manually removed" msgstr "" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Location changed" msgstr "" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Installed into assembly" msgstr "" -#: InvenTree/status_codes.py:283 +#: InvenTree/status_codes.py:286 msgid "Removed from assembly" msgstr "" -#: InvenTree/status_codes.py:285 +#: InvenTree/status_codes.py:288 msgid "Installed component item" msgstr "" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Removed component item" msgstr "" -#: InvenTree/status_codes.py:288 +#: InvenTree/status_codes.py:291 msgid "Split from parent item" msgstr "" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064 +msgid "Merged stock items" +msgstr "" + +#: InvenTree/status_codes.py:296 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:297 msgid "Returned from customer" msgstr "" -#: InvenTree/status_codes.py:294 +#: InvenTree/status_codes.py:299 msgid "Build order output created" msgstr "" -#: InvenTree/status_codes.py:295 +#: InvenTree/status_codes.py:300 msgid "Build order output completed" msgstr "" -#: InvenTree/status_codes.py:297 +#: InvenTree/status_codes.py:302 msgid "Received against purchase order" msgstr "" -#: InvenTree/status_codes.py:312 +#: InvenTree/status_codes.py:317 msgid "Production" msgstr "" @@ -575,16 +579,16 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1283 -#: build/templates/build/build_base.html:132 -#: build/templates/build/detail.html:35 common/models.py:1253 +#: build/forms.py:36 build/models.py:1286 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1259 #: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:794 order/models.py:1205 order/serializers.py:810 +#: order/models.py:796 order/models.py:1207 order/serializers.py:810 #: order/templates/order/order_wizard/match_parts.html:30 -#: 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 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:193 +#: part/forms.py:209 part/forms.py:225 part/models.py:2576 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:967 part/templates/part/detail.html:1053 +#: part/templates/part/detail.html:961 part/templates/part/detail.html:1047 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -592,10 +596,10 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:174 -#: stock/templates/stock/item_base.html:255 -#: stock/templates/stock/item_base.html:263 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443 +#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:261 +#: stock/templates/stock/item_base.html:269 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555 #: templates/js/translated/build.js:240 templates/js/translated/build.js:440 #: templates/js/translated/build.js:634 templates/js/translated/build.js:644 #: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367 @@ -604,10 +608,10 @@ msgstr "" #: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 #: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 #: templates/js/translated/order.js:2150 templates/js/translated/part.js:843 -#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919 -#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382 -#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326 -#: templates/js/translated/stock.js:2428 +#: templates/js/translated/part.js:1798 templates/js/translated/part.js:1921 +#: templates/js/translated/part.js:1999 templates/js/translated/stock.js:383 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750 +#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621 msgid "Quantity" msgstr "" @@ -616,8 +620,8 @@ msgid "Enter quantity for build output" msgstr "" #: build/forms.py:41 order/serializers.py:814 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:229 -#: templates/js/translated/stock.js:383 +#: stock/serializers.py:314 templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:384 msgid "Serial Numbers" msgstr "" @@ -661,7 +665,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:145 +#: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" msgstr "" @@ -671,11 +675,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:199 order/models.py:210 order/models.py:536 -#: order/models.py:801 part/models.py:2585 +#: order/models.py:803 part/models.py:2585 #: part/templates/part/bom_upload/match_parts.html:30 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124 +#: templates/js/translated/bom.js:547 templates/js/translated/build.js:1124 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "" @@ -695,7 +699,7 @@ msgstr "" #: build/models.py:225 build/templates/build/build_base.html:77 #: build/templates/build/detail.html:30 company/models.py:705 -#: order/models.py:854 order/models.py:928 +#: order/models.py:856 order/models.py:930 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357 #: part/models.py:2151 part/models.py:2167 part/models.py:2186 #: part/models.py:2203 part/models.py:2305 part/models.py:2427 @@ -706,20 +710,21 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 -#: templates/InvenTree/search.html:86 +#: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214 -#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326 +#: templates/js/translated/bom.js:505 templates/js/translated/build.js:625 #: templates/js/translated/build.js:993 templates/js/translated/build.js:1364 #: templates/js/translated/build.js:1632 templates/js/translated/company.js:489 #: templates/js/translated/company.js:746 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 -#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918 -#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166 -#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747 -#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416 +#: templates/js/translated/order.js:2128 templates/js/translated/part.js:920 +#: templates/js/translated/part.js:1001 templates/js/translated/part.js:1168 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719 +#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:2609 msgid "Part" msgstr "" @@ -776,7 +781,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:285 stock/models.py:528 +#: build/models.py:285 stock/models.py:531 msgid "Batch Code" msgstr "" @@ -830,27 +835,27 @@ msgstr "" #: build/models.py:329 build/templates/build/detail.html:102 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:354 stock/models.py:522 -#: stock/templates/stock/item_base.html:374 +#: part/templates/part/part_base.html:354 stock/models.py:525 +#: stock/templates/stock/item_base.html:372 msgid "External Link" 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:144 order/models.py:803 order/models.py:1049 +#: order/models.py:144 order/models.py:805 order/models.py:1051 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:925 -#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50 +#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594 -#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332 -#: stock/serializers.py:624 stock/serializers.py:711 +#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597 +#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332 +#: stock/serializers.py:638 stock/serializers.py:736 stock/serializers.py:868 #: stock/templates/stock/stock_sidebar.html:21 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711 #: templates/js/translated/company.js:842 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795 msgid "Notes" msgstr "" @@ -883,7 +888,7 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1133 order/models.py:1165 +#: build/models.py:1133 order/models.py:1167 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -891,51 +896,52 @@ msgstr "" msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1193 +#: build/models.py:1196 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1253 stock/templates/stock/item_base.html:346 -#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605 +#: build/models.py:1256 stock/templates/stock/item_base.html:344 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1605 #: templates/navbar.html:35 msgid "Build" msgstr "" -#: build/models.py:1254 +#: build/models.py:1257 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690 -#: order/serializers.py:708 stock/serializers.py:562 +#: build/models.py:1273 build/serializers.py:334 order/serializers.py:690 +#: order/serializers.py:708 stock/serializers.py:576 stock/serializers.py:694 #: stock/templates/stock/item_base.html:8 -#: stock/templates/stock/item_base.html:16 -#: stock/templates/stock/item_base.html:368 +#: stock/templates/stock/item_base.html:22 +#: stock/templates/stock/item_base.html:366 #: templates/js/translated/build.js:413 templates/js/translated/build.js:418 #: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277 +#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:2470 msgid "Stock Item" msgstr "" -#: build/models.py:1271 +#: build/models.py:1274 msgid "Source stock item" msgstr "" -#: build/models.py:1284 +#: build/models.py:1287 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1292 +#: build/models.py:1295 msgid "Install into" msgstr "" -#: build/models.py:1293 +#: build/models.py:1296 msgid "Destination stock item" msgstr "" -#: build/serializers.py:137 build/serializers.py:357 +#: build/serializers.py:137 build/serializers.py:363 msgid "Build Output" msgstr "" @@ -956,16 +962,16 @@ msgid "This build output is not fully allocated" msgstr "" #: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813 -#: stock/templates/stock/item_base.html:314 +#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:729 +#: stock/serializers.py:970 stock/templates/stock/item_base.html:312 #: templates/js/translated/barcode.js:384 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425 #: templates/js/translated/build.js:1032 templates/js/translated/order.js:508 #: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 #: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497 -#: templates/js/translated/stock.js:2218 +#: templates/js/translated/part.js:177 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411 msgid "Location" msgstr "" @@ -975,11 +981,11 @@ msgstr "" #: build/serializers.py:197 build/templates/build/build_base.html:137 #: build/templates/build/detail.html:63 order/models.py:552 -#: order/serializers.py:247 stock/templates/stock/item_base.html:180 +#: order/serializers.py:247 stock/templates/stock/item_base.html:186 #: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661 #: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472 -#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651 +#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637 msgid "Status" msgstr "" @@ -1000,33 +1006,33 @@ msgstr "" msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:319 +#: build/serializers.py:325 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:334 stock/serializers.py:569 +#: build/serializers.py:340 stock/serializers.py:583 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:348 order/models.py:277 order/serializers.py:240 -#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305 +#: build/serializers.py:354 order/models.py:277 order/serializers.py:240 +#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:390 order/serializers.py:741 +#: build/serializers.py:396 order/serializers.py:741 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:396 +#: build/serializers.py:402 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:403 +#: build/serializers.py:409 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:431 order/serializers.py:984 +#: build/serializers.py:437 order/serializers.py:984 msgid "Allocation items must be provided" msgstr "" @@ -1067,33 +1073,33 @@ msgstr "" msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:87 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:96 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:98 +#: build/templates/build/build_base.html:103 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:105 +#: build/templates/build/build_base.html:110 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Stock has not been fully allocated to this Build Order" msgstr "" @@ -1131,12 +1137,12 @@ msgid "Completed" msgstr "" #: build/templates/build/build_base.html:171 -#: build/templates/build/detail.html:95 order/models.py:925 -#: order/models.py:1021 order/templates/order/sales_order_base.html:9 +#: build/templates/build/detail.html:95 order/models.py:927 +#: order/models.py:1023 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:308 +#: stock/templates/stock/item_base.html:306 #: templates/js/translated/order.js:1218 msgid "Sales Order" msgstr "" @@ -1211,7 +1217,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "" @@ -1225,8 +1231,8 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:332 -#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451 +#: stock/templates/stock/item_base.html:330 +#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1278,7 +1284,7 @@ msgstr "" #: build/templates/build/detail.html:185 #: company/templates/company/detail.html:38 #: company/templates/company/detail.html:85 order/views.py:463 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order Parts" msgstr "" @@ -1347,7 +1353,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115 +#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115 #: stock/templates/stock/item.html:205 msgid "Edit Notes" msgstr "" @@ -1489,7 +1495,7 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:340 common/models.py:998 common/models.py:1206 +#: common/models.py:340 common/models.py:1004 common/models.py:1212 msgid "Settings key (must be unique - case insensitive" msgstr "" @@ -1651,7 +1657,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956 +#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:1068 #: templates/js/translated/table_filters.js:168 #: templates/js/translated/table_filters.js:416 msgid "Assembly" @@ -1953,256 +1959,264 @@ msgid "Group to which new users are assigned on registration" msgstr "" #: common/models.py:961 -msgid "Enable URL integration" +msgid "Enforce MFA" msgstr "" #: common/models.py:962 -msgid "Enable plugins to add URL routes" +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:967 +msgid "Enable URL integration" msgstr "" #: common/models.py:968 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:974 msgid "Enable navigation integration" msgstr "" -#: common/models.py:969 +#: common/models.py:975 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:975 +#: common/models.py:981 msgid "Enable global setting integration" msgstr "" -#: common/models.py:976 +#: common/models.py:982 msgid "Enable plugins to integrate into inventree global settings" msgstr "" -#: common/models.py:982 +#: common/models.py:988 msgid "Enable app integration" msgstr "" -#: common/models.py:983 +#: common/models.py:989 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1029 +#: common/models.py:1035 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1030 +#: common/models.py:1036 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1035 +#: common/models.py:1041 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1036 +#: common/models.py:1042 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1041 +#: common/models.py:1047 msgid "Show latest parts" msgstr "" -#: common/models.py:1042 +#: common/models.py:1048 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1047 +#: common/models.py:1053 msgid "Recent Part Count" msgstr "" -#: common/models.py:1048 +#: common/models.py:1054 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1054 +#: common/models.py:1060 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1055 +#: common/models.py:1061 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1060 +#: common/models.py:1066 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1061 +#: common/models.py:1067 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1066 +#: common/models.py:1072 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1067 +#: common/models.py:1073 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1072 +#: common/models.py:1078 msgid "Show low stock" msgstr "" -#: common/models.py:1073 +#: common/models.py:1079 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1078 +#: common/models.py:1084 msgid "Show depleted stock" msgstr "" -#: common/models.py:1079 +#: common/models.py:1085 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1084 +#: common/models.py:1090 msgid "Show needed stock" msgstr "" -#: common/models.py:1085 +#: common/models.py:1091 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1090 +#: common/models.py:1096 msgid "Show expired stock" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1096 +#: common/models.py:1102 msgid "Show stale stock" msgstr "" -#: common/models.py:1097 +#: common/models.py:1103 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1102 +#: common/models.py:1108 msgid "Show pending builds" msgstr "" -#: common/models.py:1103 +#: common/models.py:1109 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1108 +#: common/models.py:1114 msgid "Show overdue builds" msgstr "" -#: common/models.py:1109 +#: common/models.py:1115 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1114 +#: common/models.py:1120 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1115 +#: common/models.py:1121 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1120 +#: common/models.py:1126 msgid "Show overdue POs" msgstr "" -#: common/models.py:1121 +#: common/models.py:1127 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1126 +#: common/models.py:1132 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1127 +#: common/models.py:1133 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1132 +#: common/models.py:1138 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1133 +#: common/models.py:1139 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1139 +#: common/models.py:1145 msgid "Inline label display" msgstr "" -#: common/models.py:1140 +#: common/models.py:1146 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1146 +#: common/models.py:1152 msgid "Inline report display" msgstr "" -#: common/models.py:1147 +#: common/models.py:1153 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "Search Preview Results" msgstr "" -#: common/models.py:1154 +#: common/models.py:1160 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1160 +#: common/models.py:1166 msgid "Search Show Stock" msgstr "" -#: common/models.py:1161 +#: common/models.py:1167 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1167 +#: common/models.py:1173 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1168 +#: common/models.py:1174 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1174 +#: common/models.py:1180 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1175 +#: common/models.py:1181 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1181 +#: common/models.py:1187 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1182 +#: common/models.py:1188 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1188 +#: common/models.py:1194 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1189 +#: common/models.py:1195 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1254 company/forms.py:43 +#: common/models.py:1260 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1261 company/serializers.py:264 +#: common/models.py:1267 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801 +#: templates/js/translated/part.js:852 templates/js/translated/part.js:1803 msgid "Price" msgstr "" -#: common/models.py:1262 +#: common/models.py:1268 msgid "Unit price at specified quantity" msgstr "" @@ -2290,7 +2304,7 @@ msgid "Contact phone number" msgstr "" #: company/models.py:125 company/templates/company/company_base.html:129 -#: templates/InvenTree/settings/user.html:47 +#: templates/InvenTree/settings/user.html:48 msgid "Email" msgstr "" @@ -2347,8 +2361,8 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:320 company/models.py:535 stock/models.py:468 -#: stock/templates/stock/item_base.html:135 +#: company/models.py:320 company/models.py:535 stock/models.py:469 +#: stock/templates/stock/item_base.html:141 msgid "Base Part" msgstr "" @@ -2359,7 +2373,7 @@ msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:381 +#: stock/templates/stock/item_base.html:379 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:514 #: templates/js/translated/company.js:797 templates/js/translated/part.js:232 @@ -2393,7 +2407,7 @@ msgstr "" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:391 +#: stock/templates/stock/item_base.html:389 msgid "Manufacturer Part" msgstr "" @@ -2403,8 +2417,8 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:1845 templates/js/translated/company.js:644 -#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117 +#: stock/models.py:1960 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1296 msgid "Value" msgstr "" @@ -2431,7 +2445,7 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:224 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219 -#: part/bom.py:247 stock/templates/stock/item_base.html:398 +#: part/bom.py:247 stock/templates/stock/item_base.html:396 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:771 templates/js/translated/order.js:823 #: templates/js/translated/part.js:213 templates/js/translated/part.js:800 @@ -2479,8 +2493,8 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:491 stock/templates/stock/item_base.html:339 -#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612 +#: stock/models.py:493 stock/templates/stock/item_base.html:337 +#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1791 msgid "Packaging" msgstr "" @@ -2506,7 +2520,7 @@ msgstr "" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322 +#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322 msgid "Company" msgstr "" @@ -2548,11 +2562,11 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:83 order/models.py:547 -#: order/templates/order/sales_order_base.html:115 stock/models.py:509 -#: stock/models.py:510 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:291 +#: order/templates/order/sales_order_base.html:115 stock/models.py:512 +#: stock/models.py:513 stock/serializers.py:624 +#: stock/templates/stock/item_base.html:289 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2259 +#: templates/js/translated/stock.js:2452 msgid "Customer" msgstr "" @@ -2571,7 +2585,7 @@ msgstr "" #: company/templates/company/detail.html:15 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:124 +#: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" @@ -2590,14 +2604,14 @@ msgstr "" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:167 part/templates/part/detail.html:342 +#: part/templates/part/category.html:171 part/templates/part/detail.html:342 #: part/templates/part/detail.html:370 msgid "Options" msgstr "" #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order parts" msgstr "" @@ -2611,7 +2625,7 @@ msgstr "" msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109 +#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" @@ -2633,8 +2647,8 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203 +#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" @@ -2655,8 +2669,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223 +#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" @@ -2698,7 +2712,7 @@ msgid "Supplier List" msgstr "" #: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184 +#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 #: templates/navbar.html:46 msgid "Manufacturers" msgstr "" @@ -2706,7 +2720,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:67 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76 msgid "Order part" msgstr "" @@ -2728,7 +2742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 #: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:194 templates/navbar.html:45 +#: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "" @@ -2742,7 +2756,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:254 #: part/templates/part/detail.html:344 part/templates/part/detail.html:372 #: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31 -#: users/models.py:206 +#: users/models.py:209 msgid "Delete" msgstr "" @@ -2765,7 +2779,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:867 +#: part/templates/part/detail.html:861 msgid "Add Parameter" msgstr "" @@ -2794,9 +2808,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:476 -#: stock/templates/stock/item_base.html:403 -#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569 +#: company/templates/company/supplier_part.html:24 stock/models.py:477 +#: stock/templates/stock/item_base.html:401 +#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1748 msgid "Supplier Part" msgstr "" @@ -2816,13 +2830,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:20 stock/templates/stock/location.html:162 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:166 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163 -#: templates/js/translated/stock.js:359 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 +#: templates/js/translated/stock.js:360 msgid "New Stock Item" msgstr "" @@ -2832,7 +2846,7 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:68 +#: part/templates/part/detail.html:72 msgid "Order Part" msgstr "" @@ -2843,7 +2857,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:1717 +#: part/templates/part/prices.html:271 part/views.py:1713 msgid "Add Price Break" msgstr "" @@ -2851,11 +2865,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1779 +#: company/templates/company/supplier_part.html:224 part/views.py:1775 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1765 +#: company/templates/company/supplier_part.html:238 part/views.py:1761 msgid "Edit Price Break" msgstr "" @@ -2869,14 +2883,14 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:156 +#: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434 -#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059 -#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:1401 templates/navbar.html:28 +#: templates/js/translated/bom.js:328 templates/js/translated/part.js:434 +#: templates/js/translated/part.js:569 templates/js/translated/part.js:1061 +#: templates/js/translated/part.js:1222 templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:1580 templates/navbar.html:28 msgid "Stock" msgstr "" @@ -2895,11 +2909,11 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:133 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:159 +#: stock/templates/stock/location.html:137 +#: stock/templates/stock/location.html:151 +#: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "" @@ -2912,7 +2926,7 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:61 templates/InvenTree/search.html:214 +#: company/views.py:61 templates/InvenTree/search.html:208 #: templates/navbar.html:57 msgid "Customers" msgstr "" @@ -3121,7 +3135,7 @@ msgstr "" msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:562 order/models.py:1026 +#: order/models.py:562 order/models.py:1028 #: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429 msgid "Shipment Date" msgstr "" @@ -3130,7 +3144,7 @@ msgstr "" msgid "shipped by" msgstr "" -#: order/models.py:634 +#: order/models.py:635 msgid "Order cannot be completed as no parts have been assigned" msgstr "" @@ -3138,172 +3152,172 @@ msgstr "" msgid "Only a pending order can be marked as complete" msgstr "" -#: order/models.py:643 +#: order/models.py:642 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:647 +#: order/models.py:645 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:795 +#: order/models.py:797 msgid "Item quantity" msgstr "" -#: order/models.py:801 +#: order/models.py:803 msgid "Line item reference" msgstr "" -#: order/models.py:803 +#: order/models.py:805 msgid "Line item notes" msgstr "" -#: order/models.py:833 order/models.py:924 order/models.py:1020 +#: order/models.py:835 order/models.py:926 order/models.py:1022 #: templates/js/translated/order.js:1820 msgid "Order" msgstr "" -#: order/models.py:834 order/templates/order/order_base.html:9 +#: order/models.py:836 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:353 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/order.js:801 templates/js/translated/part.js:775 -#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240 +#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433 msgid "Purchase Order" msgstr "" -#: order/models.py:855 +#: order/models.py:857 msgid "Supplier part" msgstr "" -#: order/models.py:862 order/templates/order/order_base.html:163 +#: order/models.py:864 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:847 templates/js/translated/part.js:873 #: templates/js/translated/table_filters.js:317 msgid "Received" msgstr "" -#: order/models.py:863 +#: order/models.py:865 msgid "Number of items received" msgstr "" -#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:360 -#: templates/js/translated/stock.js:1600 +#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:358 +#: templates/js/translated/stock.js:1779 msgid "Purchase Price" msgstr "" -#: order/models.py:871 +#: order/models.py:873 msgid "Unit purchase price" msgstr "" -#: order/models.py:879 +#: order/models.py:881 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:934 part/templates/part/part_pricing.html:112 +#: order/models.py:936 part/templates/part/part_pricing.html:112 #: part/templates/part/prices.html:116 part/templates/part/prices.html:284 msgid "Sale Price" msgstr "" -#: order/models.py:935 +#: order/models.py:937 msgid "Unit sale price" msgstr "" -#: order/models.py:940 +#: order/models.py:942 msgid "Shipped quantity" msgstr "" -#: order/models.py:1027 +#: order/models.py:1029 msgid "Date of shipment" msgstr "" -#: order/models.py:1034 +#: order/models.py:1036 msgid "Checked By" msgstr "" -#: order/models.py:1035 +#: order/models.py:1037 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1043 +#: order/models.py:1045 msgid "Shipment number" msgstr "" -#: order/models.py:1050 +#: order/models.py:1052 msgid "Shipment notes" msgstr "" -#: order/models.py:1057 +#: order/models.py:1059 msgid "Tracking Number" msgstr "" -#: order/models.py:1058 +#: order/models.py:1060 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1068 +#: order/models.py:1070 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1071 +#: order/models.py:1073 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1147 order/models.py:1149 +#: order/models.py:1149 order/models.py:1151 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1153 +#: order/models.py:1155 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1155 +#: order/models.py:1157 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1158 +#: order/models.py:1160 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1162 +#: order/models.py:1164 msgid "StockItem is over-allocated" msgstr "" -#: order/models.py:1168 order/serializers.py:734 +#: order/models.py:1170 order/serializers.py:734 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1171 +#: order/models.py:1173 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1172 +#: order/models.py:1174 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1180 +#: order/models.py:1182 msgid "Line" msgstr "" -#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953 +#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953 #: templates/js/translated/model_renderers.js:251 msgid "Shipment" msgstr "" -#: order/models.py:1189 +#: order/models.py:1191 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1201 +#: order/models.py:1203 msgid "Item" msgstr "" -#: order/models.py:1202 +#: order/models.py:1204 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1205 +#: order/models.py:1207 msgid "Enter stock allocation quantity" msgstr "" @@ -3530,7 +3544,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/build.js:245 templates/js/translated/build.js:1256 #: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:592 +#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761 msgid "Remove row" msgstr "" @@ -3722,7 +3736,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188 +#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1188 msgid "Actions" msgstr "" @@ -3797,24 +3811,24 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:760 +#: part/api.py:777 msgid "Must be greater than zero" msgstr "" -#: part/api.py:764 +#: part/api.py:781 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:779 +#: part/api.py:796 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833 +#: part/api.py:827 part/api.py:831 part/api.py:846 part/api.py:850 msgid "This field is required" msgstr "" #: part/bom.py:125 part/models.py:81 part/models.py:816 -#: part/templates/part/category.html:104 part/templates/part/part_base.html:338 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "" @@ -3822,99 +3836,43 @@ msgstr "" msgid "Available Stock" msgstr "" -#: part/forms.py:63 -msgid "File Format" -msgstr "" - -#: part/forms.py:63 -msgid "Select output file format" -msgstr "" - -#: part/forms.py:65 -msgid "Cascading" -msgstr "" - -#: part/forms.py:65 -msgid "Download cascading / multi-level BOM" -msgstr "" - -#: part/forms.py:67 -msgid "Levels" -msgstr "" - -#: part/forms.py:67 -msgid "Select maximum number of BOM levels to export (0 = all levels)" -msgstr "" - -#: part/forms.py:69 -msgid "Include Parameter Data" -msgstr "" - -#: part/forms.py:69 -msgid "Include part parameters data in exported BOM" -msgstr "" - -#: part/forms.py:71 -msgid "Include Stock Data" -msgstr "" - -#: part/forms.py:71 -msgid "Include part stock data in exported BOM" -msgstr "" - -#: part/forms.py:73 -msgid "Include Manufacturer Data" -msgstr "" - -#: part/forms.py:73 -msgid "Include part manufacturer data in exported BOM" -msgstr "" - -#: part/forms.py:75 -msgid "Include Supplier Data" -msgstr "" - -#: part/forms.py:75 -msgid "Include part supplier data in exported BOM" -msgstr "" - -#: part/forms.py:96 part/models.py:2427 +#: part/forms.py:66 part/models.py:2427 msgid "Parent Part" msgstr "" -#: part/forms.py:97 part/templates/part/bom_duplicate.html:7 +#: part/forms.py:67 part/templates/part/bom_duplicate.html:7 msgid "Select parent part to copy BOM from" msgstr "" -#: part/forms.py:103 +#: part/forms.py:73 msgid "Clear existing BOM items" msgstr "" -#: part/forms.py:109 +#: part/forms.py:79 msgid "Confirm BOM duplication" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "validate" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "Confirm that the BOM is correct" msgstr "" -#: part/forms.py:163 +#: part/forms.py:133 msgid "Select part category" msgstr "" -#: part/forms.py:200 +#: part/forms.py:170 msgid "Add parameter template to same level categories" msgstr "" -#: part/forms.py:204 +#: part/forms.py:174 msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:224 +#: part/forms.py:194 msgid "Input quantity for price calculation" msgstr "" @@ -3930,24 +3888,24 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11 +#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:96 part/templates/part/category.html:124 -#: templates/InvenTree/search.html:101 templates/stats.html:84 +#: part/models.py:96 part/templates/part/category.html:128 +#: templates/InvenTree/search.html:95 templates/stats.html:84 #: users/models.py:40 msgid "Part Categories" msgstr "" #: part/models.py:358 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:13 part/templates/part/category.html:129 -#: part/templates/part/category.html:149 +#: part/templates/part/category.html:17 part/templates/part/category.html:133 +#: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1597 templates/navbar.html:21 +#: templates/js/translated/part.js:1599 templates/navbar.html:21 #: templates/stats.html:80 templates/stats.html:89 users/models.py:41 msgid "Parts" msgstr "" @@ -4001,7 +3959,7 @@ msgstr "" msgid "Part description" msgstr "" -#: part/models.py:770 part/templates/part/category.html:82 +#: part/models.py:770 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "" @@ -4014,7 +3972,7 @@ msgstr "" #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 #: templates/InvenTree/settings/settings.html:172 -#: templates/js/translated/part.js:1202 +#: templates/js/translated/part.js:1204 msgid "Category" msgstr "" @@ -4023,8 +3981,8 @@ msgid "Part category" msgstr "" #: part/models.py:784 part/templates/part/part_base.html:274 -#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155 -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/part.js:557 templates/js/translated/part.js:1157 +#: templates/js/translated/stock.js:1552 msgid "IPN" msgstr "" @@ -4145,8 +4103,8 @@ msgstr "" msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2310 templates/js/translated/part.js:1648 -#: templates/js/translated/stock.js:1097 +#: part/models.py:2310 templates/js/translated/part.js:1650 +#: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "" @@ -4162,7 +4120,7 @@ msgstr "" msgid "Enter description for this test" msgstr "" -#: part/models.py:2322 templates/js/translated/part.js:1657 +#: part/models.py:2322 templates/js/translated/part.js:1659 #: templates/js/translated/table_filters.js:281 msgid "Required" msgstr "" @@ -4171,7 +4129,7 @@ msgstr "" msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2328 templates/js/translated/part.js:1665 +#: part/models.py:2328 templates/js/translated/part.js:1667 msgid "Requires Value" msgstr "" @@ -4179,7 +4137,7 @@ msgstr "" msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2334 templates/js/translated/part.js:1672 +#: part/models.py:2334 templates/js/translated/part.js:1674 msgid "Requires Attachment" msgstr "" @@ -4241,8 +4199,8 @@ msgstr "" msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2578 templates/js/translated/bom.js:454 -#: templates/js/translated/bom.js:528 +#: part/models.py:2578 templates/js/translated/bom.js:566 +#: templates/js/translated/bom.js:640 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" @@ -4275,8 +4233,8 @@ msgstr "" msgid "BOM line checksum" msgstr "" -#: part/models.py:2594 templates/js/translated/bom.js:545 -#: templates/js/translated/bom.js:552 +#: part/models.py:2594 templates/js/translated/bom.js:657 +#: templates/js/translated/bom.js:664 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" @@ -4286,7 +4244,7 @@ msgstr "" msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2600 templates/js/translated/bom.js:537 +#: part/models.py:2600 templates/js/translated/bom.js:649 msgid "Allow Variants" msgstr "" @@ -4406,100 +4364,100 @@ msgstr "" msgid "This will validate each line in the BOM." msgstr "" -#: part/templates/part/category.html:24 part/templates/part/category.html:28 +#: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:32 +#: part/templates/part/category.html:36 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:38 +#: part/templates/part/category.html:42 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:43 +#: part/templates/part/category.html:47 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:44 +#: part/templates/part/category.html:48 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:52 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:53 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:57 +#: part/templates/part/category.html:61 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:58 +#: part/templates/part/category.html:62 msgid "New Category" msgstr "" -#: part/templates/part/category.html:76 part/templates/part/category.html:89 +#: part/templates/part/category.html:80 part/templates/part/category.html:93 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:90 +#: part/templates/part/category.html:94 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:110 part/templates/part/category.html:201 +#: part/templates/part/category.html:114 part/templates/part/category.html:205 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:115 +#: part/templates/part/category.html:119 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:152 +#: part/templates/part/category.html:156 msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:153 part/templates/part/category.html:177 +#: part/templates/part/category.html:157 part/templates/part/category.html:181 msgid "Export" msgstr "" -#: part/templates/part/category.html:156 +#: part/templates/part/category.html:160 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:157 templates/js/translated/bom.js:40 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 msgid "New Part" msgstr "" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set category" msgstr "" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:175 +#: part/templates/part/category.html:179 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:177 +#: part/templates/part/category.html:181 msgid "Export Data" msgstr "" -#: part/templates/part/category.html:191 +#: part/templates/part/category.html:195 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:268 +#: part/templates/part/category.html:288 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:295 +#: part/templates/part/category.html:315 msgid "Create Part" msgstr "" @@ -4566,24 +4524,24 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:17 +#: part/templates/part/detail.html:21 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:29 +#: part/templates/part/detail.html:33 #, python-format msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:39 +#: part/templates/part/detail.html:43 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:44 +#: part/templates/part/detail.html:48 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:101 +#: part/templates/part/detail.html:105 msgid "Sales Order Allocations" msgstr "" @@ -4619,7 +4577,7 @@ msgstr "" msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:242 +#: part/templates/part/detail.html:242 templates/js/translated/bom.js:70 msgid "Export BOM" msgstr "" @@ -4683,38 +4641,38 @@ msgstr "" msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:651 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:659 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:760 +#: part/templates/part/detail.html:754 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:817 +#: part/templates/part/detail.html:811 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:930 +#: part/templates/part/detail.html:924 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:942 +#: part/templates/part/detail.html:936 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:954 +#: part/templates/part/detail.html:948 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1043 +#: part/templates/part/detail.html:1037 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4745,20 +4703,20 @@ msgid "Subscribe to notifications for this part" msgstr "" #: part/templates/part/part_base.html:43 -#: stock/templates/stock/item_base.html:28 -#: stock/templates/stock/location.html:29 +#: stock/templates/stock/item_base.html:34 +#: stock/templates/stock/location.html:33 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:45 -#: stock/templates/stock/item_base.html:32 -#: stock/templates/stock/location.html:31 templates/qr_button.html:1 +#: stock/templates/stock/item_base.html:38 +#: stock/templates/stock/location.html:35 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:48 -#: stock/templates/stock/location.html:32 +#: stock/templates/stock/item_base.html:54 +#: stock/templates/stock/location.html:36 msgid "Print Label" msgstr "" @@ -4767,8 +4725,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:103 -#: stock/templates/stock/location.html:40 +#: stock/templates/stock/item_base.html:109 +#: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "" @@ -4848,7 +4806,7 @@ msgstr "" msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1235 +#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1237 msgid "On Order" msgstr "" @@ -4864,12 +4822,12 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:566 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1066 -#: templates/js/translated/part.js:1239 +#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1068 +#: templates/js/translated/part.js:1241 msgid "Building" msgstr "" @@ -4882,7 +4840,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:159 +#: stock/templates/stock/item_base.html:165 msgid "Search for serial number" msgstr "" @@ -4921,7 +4879,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:520 +#: templates/js/translated/bom.js:632 msgid "No supplier pricing available" msgstr "" @@ -5036,7 +4994,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626 msgid "Supplier Cost" msgstr "" @@ -5058,7 +5016,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1788 +#: part/templates/part/prices.html:215 part/views.py:1784 msgid "Add Internal Price Break" msgstr "" @@ -5078,9 +5036,9 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476 -#: templates/js/translated/part.js:436 templates/js/translated/part.js:1056 -#: templates/js/translated/part.js:1243 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588 +#: templates/js/translated/part.js:436 templates/js/translated/part.js:1058 +#: templates/js/translated/part.js:1245 msgid "No Stock" msgstr "" @@ -5154,67 +5112,67 @@ msgstr "" msgid "Match Parts" msgstr "" -#: part/views.py:1196 +#: part/views.py:1195 msgid "Export Bill of Materials" msgstr "" -#: part/views.py:1248 +#: part/views.py:1244 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1255 +#: part/views.py:1251 msgid "Part was deleted" msgstr "" -#: part/views.py:1264 +#: part/views.py:1260 msgid "Part Pricing" msgstr "" -#: part/views.py:1413 +#: part/views.py:1409 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1423 +#: part/views.py:1419 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1430 +#: part/views.py:1426 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1489 templates/js/translated/part.js:313 +#: part/views.py:1485 templates/js/translated/part.js:313 msgid "Edit Part Category" msgstr "" -#: part/views.py:1527 +#: part/views.py:1523 msgid "Delete Part Category" msgstr "" -#: part/views.py:1533 +#: part/views.py:1529 msgid "Part category was deleted" msgstr "" -#: part/views.py:1542 +#: part/views.py:1538 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1643 +#: part/views.py:1639 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1699 +#: part/views.py:1695 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1721 +#: part/views.py:1717 msgid "Added new price break" msgstr "" -#: part/views.py:1797 +#: part/views.py:1793 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1805 +#: part/views.py:1801 msgid "Delete Internal Price Break" msgstr "" @@ -5388,12 +5346,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:514 stock/templates/stock/item_base.html:149 +#: stock/models.py:517 stock/templates/stock/item_base.html:155 #: templates/js/translated/build.js:238 templates/js/translated/build.js:642 #: templates/js/translated/build.js:1018 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415 msgid "Serial Number" msgstr "" @@ -5402,19 +5360,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:1833 +#: stock/models.py:1948 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:1839 +#: stock/models.py:1954 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:49 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367 msgid "Date" msgstr "" @@ -5432,17 +5390,18 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434 +#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748 +#: templates/js/translated/stock.js:2627 msgid "Serial" msgstr "" -#: stock/api.py:446 +#: stock/api.py:478 msgid "Quantity is required" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571 -#: stock/templates/stock/item_base.html:186 -#: templates/js/translated/stock.js:1522 +#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574 +#: stock/templates/stock/item_base.html:192 +#: templates/js/translated/stock.js:1701 msgid "Expiry Date" msgstr "" @@ -5490,12 +5449,12 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:60 stock/models.py:608 -#: stock/templates/stock/item_base.html:417 +#: stock/models.py:60 stock/models.py:611 +#: stock/templates/stock/item_base.html:415 msgid "Owner" msgstr "" -#: stock/models.py:61 stock/models.py:609 +#: stock/models.py:61 stock/models.py:612 msgid "Select Owner" msgstr "" @@ -5528,150 +5487,190 @@ msgstr "" msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:460 +#: stock/models.py:461 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:470 msgid "Base part" msgstr "" -#: stock/models.py:477 +#: stock/models.py:478 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:482 stock/templates/stock/location.html:12 +#: stock/models.py:484 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:485 +#: stock/models.py:487 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:492 +#: stock/models.py:494 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:497 stock/templates/stock/item_base.html:299 +#: stock/models.py:500 stock/templates/stock/item_base.html:297 msgid "Installed In" msgstr "" -#: stock/models.py:500 +#: stock/models.py:503 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:516 +#: stock/models.py:519 msgid "Serial number for this item" msgstr "" -#: stock/models.py:530 +#: stock/models.py:533 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:534 +#: stock/models.py:537 msgid "Stock Quantity" msgstr "" -#: stock/models.py:543 +#: stock/models.py:546 msgid "Source Build" msgstr "" -#: stock/models.py:545 +#: stock/models.py:548 msgid "Build for this stock item" msgstr "" -#: stock/models.py:556 +#: stock/models.py:559 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:559 +#: stock/models.py:562 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:565 +#: stock/models.py:568 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:572 +#: stock/models.py:575 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete on deplete" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:595 stock/templates/stock/item.html:111 +#: stock/models.py:598 stock/templates/stock/item.html:111 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:604 +#: stock/models.py:607 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1072 +#: stock/models.py:1068 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1078 +#: stock/models.py:1074 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1084 +#: stock/models.py:1080 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1087 +#: stock/models.py:1083 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1090 +#: stock/models.py:1086 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1097 +#: stock/models.py:1093 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1255 +#: stock/models.py:1164 +msgid "Stock item has been assigned to a sales order" +msgstr "" + +#: stock/models.py:1167 +msgid "Stock item is installed in another item" +msgstr "" + +#: stock/models.py:1170 +msgid "Stock item contains other items" +msgstr "" + +#: stock/models.py:1173 +msgid "Stock item has been assigned to a customer" +msgstr "" + +#: stock/models.py:1176 +msgid "Stock item is currently in production" +msgstr "" + +#: stock/models.py:1179 +msgid "Serialized stock cannot be merged" +msgstr "" + +#: stock/models.py:1186 stock/serializers.py:773 +msgid "Duplicate stock items" +msgstr "" + +#: stock/models.py:1190 +msgid "Stock items must refer to the same part" +msgstr "" + +#: stock/models.py:1194 +msgid "Stock items must refer to the same supplier part" +msgstr "" + +#: stock/models.py:1198 +msgid "Stock status codes must match" +msgstr "" + +#: stock/models.py:1369 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1753 +#: stock/models.py:1868 msgid "Entry notes" msgstr "" -#: stock/models.py:1810 +#: stock/models.py:1925 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1931 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1834 +#: stock/models.py:1949 msgid "Test name" msgstr "" -#: stock/models.py:1840 templates/js/translated/table_filters.js:271 +#: stock/models.py:1955 templates/js/translated/table_filters.js:271 msgid "Test result" msgstr "" -#: stock/models.py:1846 +#: stock/models.py:1961 msgid "Test output value" msgstr "" -#: stock/models.py:1853 +#: stock/models.py:1968 msgid "Test result attachment" msgstr "" -#: stock/models.py:1859 +#: stock/models.py:1974 msgid "Test notes" msgstr "" @@ -5696,7 +5695,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:814 +#: stock/serializers.py:326 stock/serializers.py:730 stock/serializers.py:971 msgid "Destination stock location" msgstr "" @@ -5708,39 +5707,63 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:573 +#: stock/serializers.py:587 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:577 +#: stock/serializers.py:591 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:581 +#: stock/serializers.py:595 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:611 +#: stock/serializers.py:625 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:617 +#: stock/serializers.py:631 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:639 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:635 stock/serializers.py:722 +#: stock/serializers.py:649 stock/serializers.py:879 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:684 +#: stock/serializers.py:737 +msgid "Stock merging notes" +msgstr "" + +#: stock/serializers.py:742 +msgid "Allow mismatched suppliers" +msgstr "" + +#: stock/serializers.py:743 +msgid "Allow stock items with different supplier parts to be merged" +msgstr "" + +#: stock/serializers.py:748 +msgid "Allow mismatched status" +msgstr "" + +#: stock/serializers.py:749 +msgid "Allow stock items with different status codes to be merged" +msgstr "" + +#: stock/serializers.py:759 +msgid "At least two stock items must be provided" +msgstr "" + +#: stock/serializers.py:841 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:712 +#: stock/serializers.py:869 msgid "Stock transaction notes" msgstr "" @@ -5765,7 +5788,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50 +#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:56 msgid "Test Report" msgstr "" @@ -5797,197 +5820,189 @@ msgstr "" msgid "Delete Test Result" msgstr "" -#: stock/templates/stock/item_base.html:35 +#: stock/templates/stock/item_base.html:41 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:37 +#: stock/templates/stock/item_base.html:43 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24 +#: stock/templates/stock/item_base.html:45 templates/stock_table.html:24 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:46 +#: stock/templates/stock/item_base.html:52 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:71 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:47 templates/stock_table.html:50 +#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/location.html:51 templates/stock_table.html:50 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:78 templates/stock_table.html:48 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49 +#: stock/templates/stock/item_base.html:81 templates/stock_table.html:49 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:84 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:53 +#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/location.html:57 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53 +#: stock/templates/stock/item_base.html:91 templates/stock_table.html:54 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:94 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:108 +#: stock/templates/stock/item_base.html:114 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/item_base.html:117 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:119 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:116 +#: stock/templates/stock/item_base.html:122 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/stock.js:1535 +#: stock/templates/stock/item_base.html:205 +#: templates/js/translated/stock.js:1714 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:208 +#: stock/templates/stock/item_base.html:214 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:226 +#: stock/templates/stock/item_base.html:232 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:239 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:234 +#: stock/templates/stock/item_base.html:240 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:247 +#: stock/templates/stock/item_base.html:253 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:261 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:263 +#: stock/templates/stock/item_base.html:269 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:269 +#: stock/templates/stock/item_base.html:275 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:273 -msgid "This stock item cannot be deleted as it has child items" -msgstr "" - -#: stock/templates/stock/item_base.html:277 -msgid "This stock item will be automatically deleted when all stock is depleted." -msgstr "" - -#: stock/templates/stock/item_base.html:318 +#: stock/templates/stock/item_base.html:316 #: templates/js/translated/build.js:1040 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:325 +#: stock/templates/stock/item_base.html:323 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:367 +#: stock/templates/stock/item_base.html:365 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:385 +#: stock/templates/stock/item_base.html:383 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:410 +#: stock/templates/stock/item_base.html:408 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:500 +#: stock/templates/stock/item_base.html:498 msgid "Edit Stock Status" msgstr "" @@ -6041,59 +6056,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:37 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:65 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:67 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:65 +#: stock/templates/stock/location.html:69 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:79 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:76 +#: stock/templates/stock/location.html:80 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:95 -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:99 +#: stock/templates/stock/location.html:105 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:102 +#: stock/templates/stock/location.html:106 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:119 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:175 +#: stock/templates/stock/location.html:132 +#: stock/templates/stock/location.html:179 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:142 templates/InvenTree/search.html:170 +#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "" -#: stock/templates/stock/location.html:182 templates/stock_table.html:30 +#: stock/templates/stock/location.html:186 templates/stock_table.html:30 msgid "Printing Actions" msgstr "" -#: stock/templates/stock/location.html:186 templates/stock_table.html:34 +#: stock/templates/stock/location.html:190 templates/stock_table.html:34 msgid "Print labels" msgstr "" @@ -6178,7 +6193,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:887 +#: stock/views.py:727 templates/js/translated/stock.js:1066 msgid "Confirm stock adjustment" msgstr "" @@ -6186,7 +6201,7 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:323 +#: stock/views.py:760 templates/js/translated/stock.js:324 msgid "Edit Stock Item" msgstr "" @@ -6198,7 +6213,7 @@ msgstr "" msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:303 +#: stock/views.py:1153 templates/js/translated/stock.js:304 msgid "Duplicate Stock Item" msgstr "" @@ -6314,10 +6329,6 @@ msgstr "" msgid "Search Results" msgstr "" -#: templates/InvenTree/search.html:22 -msgid "Enter a search query" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6363,7 +6374,7 @@ msgstr "" msgid "Login Settings" msgstr "" -#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5 +#: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5 msgid "Signup" msgstr "" @@ -6648,7 +6659,7 @@ msgstr "" msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:55 +#: templates/InvenTree/settings/user.html:54 msgid "The following email addresses are associated with your account:" msgstr "" @@ -6673,145 +6684,193 @@ msgid "Re-send Verification" msgstr "" #: templates/InvenTree/settings/user.html:87 -#: templates/InvenTree/settings/user.html:154 +#: templates/InvenTree/settings/user.html:149 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:94 +#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:201 msgid "Warning:" msgstr "" -#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:96 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:102 +#: templates/InvenTree/settings/user.html:104 msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:112 -msgid "Enter e-mail address" -msgstr "" - -#: templates/InvenTree/settings/user.html:114 +#: templates/InvenTree/settings/user.html:109 msgid "Add Email" msgstr "" -#: templates/InvenTree/settings/user.html:124 +#: templates/InvenTree/settings/user.html:117 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:129 +#: templates/InvenTree/settings/user.html:122 msgid "You can sign in to your account using any of the following third party accounts:" msgstr "" -#: templates/InvenTree/settings/user.html:163 -msgid "There are no social network accounts connected to your InvenTree account" +#: templates/InvenTree/settings/user.html:157 +msgid "You currently have no social network accounts connected to this account." msgstr "" -#: templates/InvenTree/settings/user.html:168 +#: templates/InvenTree/settings/user.html:162 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:179 -msgid "Active Sessions" +#: templates/InvenTree/settings/user.html:172 +msgid "Multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:185 -msgid "Log out active sessions (except this one)" +#: templates/InvenTree/settings/user.html:177 +msgid "You have these factors available:" msgstr "" -#: templates/InvenTree/settings/user.html:186 -msgid "Log Out Active Sessions" +#: templates/InvenTree/settings/user.html:187 +msgid "TOTP" 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" +#: templates/InvenTree/settings/user.html:193 +msgid "Static" msgstr "" #: templates/InvenTree/settings/user.html:202 -msgid "Last Activity" +msgid "You currently do not have any factors set up." msgstr "" -#: templates/InvenTree/settings/user.html:211 -#, python-format -msgid "%(time)s ago (this session)" +#: templates/InvenTree/settings/user.html:209 +msgid "Change factors" msgstr "" -#: templates/InvenTree/settings/user.html:213 -#, python-format -msgid "%(time)s ago" +#: templates/InvenTree/settings/user.html:210 +msgid "Setup multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:224 -msgid "Do you really want to remove the selected email address?" +#: templates/InvenTree/settings/user.html:212 +msgid "Remove multifactor" msgstr "" +#: templates/InvenTree/settings/user.html:219 #: templates/InvenTree/settings/user_display.html:25 msgid "Theme Settings" msgstr "" +#: templates/InvenTree/settings/user.html:227 #: templates/InvenTree/settings/user_display.html:35 msgid "Select theme" msgstr "" +#: templates/InvenTree/settings/user.html:237 #: templates/InvenTree/settings/user_display.html:46 msgid "Set Theme" msgstr "" +#: templates/InvenTree/settings/user.html:246 #: templates/InvenTree/settings/user_display.html:54 msgid "Language Settings" msgstr "" +#: templates/InvenTree/settings/user.html:254 #: templates/InvenTree/settings/user_display.html:63 msgid "Select language" msgstr "" +#: templates/InvenTree/settings/user.html:270 #: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" +#: templates/InvenTree/settings/user.html:272 #: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" +#: templates/InvenTree/settings/user.html:279 #: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" +#: templates/InvenTree/settings/user.html:281 #: templates/InvenTree/settings/user_display.html:91 msgid "Some languages are not complete" msgstr "" +#: templates/InvenTree/settings/user.html:283 #: 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.html:285 #: templates/InvenTree/settings/user_display.html:95 msgid "Show them too" msgstr "" +#: templates/InvenTree/settings/user.html:292 #: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" +#: templates/InvenTree/settings/user.html:293 +#, python-format +msgid "Native language translation of the\n" +" InvenTree web application is community contributed via crowdin. Contributions are\n" +" welcomed and encouraged." +msgstr "" + +#: templates/InvenTree/settings/user.html:302 +msgid "Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:308 +msgid "Log out active sessions (except this one)" +msgstr "" + +#: templates/InvenTree/settings/user.html:309 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:318 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:319 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:323 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:324 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:325 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:334 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:336 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:348 +msgid "Do you really want to remove the selected email address?" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +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." @@ -6830,7 +6889,7 @@ msgid "InvenTree Version Information" msgstr "" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53 +#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53 #: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662 #: templates/js/translated/modals.js:965 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 @@ -7006,6 +7065,71 @@ msgstr "" msgid "View in administration panel" msgstr "" +#: templates/allauth_2fa/authenticate.html:5 +msgid "Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:12 +msgid "Authenticate" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:6 +msgid "Two-Factor Authentication Backup Tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:17 +msgid "Backup tokens have been generated, but are not revealed here for security reasons. Press the button below to generate new ones." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:20 +msgid "No tokens. Press the button below to generate some." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:27 +msgid "Generate backup tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:31 +#: templates/allauth_2fa/setup.html:40 +msgid "back to settings" +msgstr "" + +#: templates/allauth_2fa/remove.html:6 +msgid "Disable Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/remove.html:9 +msgid "Are you sure?" +msgstr "" + +#: templates/allauth_2fa/remove.html:14 +msgid "Disable Two-Factor" +msgstr "" + +#: templates/allauth_2fa/setup.html:6 +msgid "Setup Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/setup.html:10 +msgid "Step 1" +msgstr "" + +#: templates/allauth_2fa/setup.html:14 +msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." +msgstr "" + +#: templates/allauth_2fa/setup.html:23 +msgid "Step 2" +msgstr "" + +#: templates/allauth_2fa/setup.html:27 +msgid "Input a token generated by the app:" +msgstr "" + +#: templates/allauth_2fa/setup.html:35 +msgid "Verify" +msgstr "" + #: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 msgid "Add Link" msgstr "" @@ -7044,13 +7168,13 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:1103 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134 +#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1134 #: templates/js/translated/build.js:1755 #: templates/js/translated/table_filters.js:178 msgid "Available" @@ -7239,7 +7363,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018 msgid "Remove stock item" msgstr "" @@ -7281,91 +7405,153 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:184 +#: templates/js/translated/bom.js:36 +msgid "Download BOM Template" +msgstr "" + +#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510 +msgid "Format" +msgstr "" + +#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511 +msgid "Select file format" +msgstr "" + +#: templates/js/translated/bom.js:81 +msgid "Cascading" +msgstr "" + +#: templates/js/translated/bom.js:82 +msgid "Download cascading / multi-level BOM" +msgstr "" + +#: templates/js/translated/bom.js:87 +msgid "Levels" +msgstr "" + +#: templates/js/translated/bom.js:88 +msgid "Select maximum number of BOM levels to export (0 = all levels)" +msgstr "" + +#: templates/js/translated/bom.js:94 +msgid "Include Parameter Data" +msgstr "" + +#: templates/js/translated/bom.js:95 +msgid "Include part parameter data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:100 +msgid "Include Stock Data" +msgstr "" + +#: templates/js/translated/bom.js:101 +msgid "Include part stock data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:106 +msgid "Include Manufacturer Data" +msgstr "" + +#: templates/js/translated/bom.js:107 +msgid "Include part manufacturer data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:112 +msgid "Include Supplier Data" +msgstr "" + +#: templates/js/translated/bom.js:113 +msgid "Include part supplier data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:296 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:228 +#: templates/js/translated/bom.js:340 msgid "Select and add a new variant item using the input below" msgstr "" -#: templates/js/translated/bom.js:239 +#: templates/js/translated/bom.js:351 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:245 +#: templates/js/translated/bom.js:357 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:284 +#: templates/js/translated/bom.js:396 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:285 +#: templates/js/translated/bom.js:397 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:404 +#: templates/js/translated/bom.js:516 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116 +#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1116 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:413 +#: templates/js/translated/bom.js:525 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:485 +#: templates/js/translated/bom.js:597 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:500 +#: templates/js/translated/bom.js:612 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:507 +#: templates/js/translated/bom.js:619 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645 +#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:616 +#: templates/js/translated/bom.js:728 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:618 +#: templates/js/translated/bom.js:730 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:620 +#: templates/js/translated/bom.js:732 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796 +#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779 +#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860 +#: templates/js/translated/bom.js:830 templates/js/translated/build.js:860 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:774 +#: templates/js/translated/bom.js:886 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100 +#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1100 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:996 +#: templates/js/translated/bom.js:1108 msgid "Inherited from parent BOM" msgstr "" @@ -7464,7 +7650,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1199 templates/stock_table.html:52 +#: templates/js/translated/build.js:1199 templates/stock_table.html:53 msgid "Order stock" msgstr "" @@ -7509,9 +7695,9 @@ msgstr "" msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147 -#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333 -#: templates/js/translated/stock.js:2128 +#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1149 +#: templates/js/translated/part.js:1560 templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:2321 msgid "Select" msgstr "" @@ -7519,7 +7705,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347 +#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2540 msgid "No user information" msgstr "" @@ -7682,20 +7868,20 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1078 templates/modals.html:19 +#: templates/js/translated/forms.js:1080 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1469 +#: templates/js/translated/forms.js:1471 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1673 +#: templates/js/translated/forms.js:1675 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1893 +#: templates/js/translated/forms.js:1895 msgid "Clear input" msgstr "" @@ -7708,7 +7894,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:863 +#: templates/js/translated/stock.js:1042 msgid "Select Stock Items" msgstr "" @@ -7888,14 +8074,6 @@ msgstr "" msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509 -msgid "Format" -msgstr "" - -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510 -msgid "Select file format" -msgstr "" - #: templates/js/translated/order.js:460 msgid "Select Line Items" msgstr "" @@ -7908,7 +8086,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123 msgid "Stock Status" msgstr "" @@ -7957,7 +8135,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163 -#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986 +#: templates/js/translated/part.js:1777 templates/js/translated/part.js:1988 msgid "Unit Price" msgstr "" @@ -8042,7 +8220,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1249 +#: templates/js/translated/stock.js:1428 msgid "Shipped to customer" msgstr "" @@ -8206,92 +8384,92 @@ msgstr "" msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:946 +#: templates/js/translated/part.js:948 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:970 +#: templates/js/translated/part.js:972 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1037 templates/js/translated/part.js:1297 +#: templates/js/translated/part.js:1039 templates/js/translated/part.js:1299 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1207 +#: templates/js/translated/part.js:1209 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1230 +#: templates/js/translated/part.js:1232 #: templates/js/translated/table_filters.js:412 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493 -#: templates/js/translated/stock.js:2089 +#: templates/js/translated/part.js:1323 templates/js/translated/part.js:1495 +#: templates/js/translated/stock.js:2282 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1337 +#: templates/js/translated/part.js:1339 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108 +#: templates/js/translated/part.js:1514 templates/js/translated/stock.js:2301 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1576 +#: templates/js/translated/part.js:1578 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152 +#: templates/js/translated/part.js:1592 templates/js/translated/stock.js:2345 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1634 +#: templates/js/translated/part.js:1636 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055 +#: templates/js/translated/part.js:1687 templates/js/translated/stock.js:1234 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056 +#: templates/js/translated/part.js:1688 templates/js/translated/stock.js:1235 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1692 +#: templates/js/translated/part.js:1694 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1714 +#: templates/js/translated/part.js:1716 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1728 +#: templates/js/translated/part.js:1730 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1753 +#: templates/js/translated/part.js:1755 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1808 +#: templates/js/translated/part.js:1810 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1809 +#: templates/js/translated/part.js:1811 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1910 +#: templates/js/translated/part.js:1912 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1929 +#: templates/js/translated/part.js:1931 msgid "Single Price Difference" msgstr "" @@ -8365,316 +8543,340 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:72 +#: templates/js/translated/stock.js:73 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173 msgid "Next available serial number" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174 +#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175 msgid "Latest serial number" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:101 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:109 +#: templates/js/translated/stock.js:110 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:145 +#: templates/js/translated/stock.js:146 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:185 +#: templates/js/translated/stock.js:186 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:224 +#: templates/js/translated/stock.js:225 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:231 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:373 +#: templates/js/translated/stock.js:374 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:386 +#: templates/js/translated/stock.js:387 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:411 +#: templates/js/translated/stock.js:412 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416 +#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:432 +#: templates/js/translated/stock.js:433 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:452 +#: templates/js/translated/stock.js:453 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:506 +#: templates/js/translated/stock.js:507 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:517 +#: templates/js/translated/stock.js:518 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:518 +#: templates/js/translated/stock.js:519 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:627 +#: templates/js/translated/stock.js:628 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:628 +#: templates/js/translated/stock.js:629 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:713 +#: templates/js/translated/stock.js:706 +msgid "Warning: Merge operation cannot be reversed" +msgstr "" + +#: templates/js/translated/stock.js:707 +msgid "Some information will be lost when merging stock items" +msgstr "" + +#: templates/js/translated/stock.js:709 +msgid "Stock transaction history will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:710 +msgid "Supplier part information will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:796 +msgid "Confirm stock item merge" +msgstr "" + +#: templates/js/translated/stock.js:797 +msgid "Merge Stock Items" +msgstr "" + +#: templates/js/translated/stock.js:892 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:893 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:899 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:721 +#: templates/js/translated/stock.js:900 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:725 +#: templates/js/translated/stock.js:904 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:726 +#: templates/js/translated/stock.js:905 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:730 +#: templates/js/translated/stock.js:909 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:731 users/models.py:202 +#: templates/js/translated/stock.js:910 users/models.py:205 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:735 templates/stock_table.html:57 +#: templates/js/translated/stock.js:914 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:864 +#: templates/js/translated/stock.js:1043 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1022 +#: templates/js/translated/stock.js:1201 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1024 +#: templates/js/translated/stock.js:1203 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1029 +#: templates/js/translated/stock.js:1208 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1230 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1077 +#: templates/js/translated/stock.js:1256 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1134 +#: templates/js/translated/stock.js:1313 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1420 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1245 +#: templates/js/translated/stock.js:1424 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1432 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1259 +#: templates/js/translated/stock.js:1438 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1417 +#: templates/js/translated/stock.js:1596 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1422 +#: templates/js/translated/stock.js:1601 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1425 +#: templates/js/translated/stock.js:1604 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1429 +#: templates/js/translated/stock.js:1608 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1431 +#: templates/js/translated/stock.js:1610 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1437 +#: templates/js/translated/stock.js:1616 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1618 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1441 +#: templates/js/translated/stock.js:1620 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1625 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1453 +#: templates/js/translated/stock.js:1632 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1455 +#: templates/js/translated/stock.js:1634 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1457 +#: templates/js/translated/stock.js:1636 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1461 +#: templates/js/translated/stock.js:1640 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1511 +#: templates/js/translated/stock.js:1690 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1584 +#: templates/js/translated/stock.js:1763 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1622 +#: templates/js/translated/stock.js:1801 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691 +#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1731 +#: templates/js/translated/stock.js:1910 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1758 +#: templates/js/translated/stock.js:1937 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1760 +#: templates/js/translated/stock.js:1939 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2138 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1959 +#: templates/js/translated/stock.js:2152 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1960 +#: templates/js/translated/stock.js:2153 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2377 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2206 +#: templates/js/translated/stock.js:2399 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2231 +#: templates/js/translated/stock.js:2424 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2250 +#: templates/js/translated/stock.js:2443 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2269 +#: templates/js/translated/stock.js:2462 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2480 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2310 +#: templates/js/translated/stock.js:2503 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2318 +#: templates/js/translated/stock.js:2511 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2552 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2360 +#: templates/js/translated/stock.js:2553 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2411 +#: templates/js/translated/stock.js:2604 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2462 +#: templates/js/translated/stock.js:2655 msgid "Uninstall Stock Item" msgstr "" @@ -9059,18 +9261,26 @@ msgid "Move stock" msgstr "" #: templates/stock_table.html:52 +msgid "Merge selected stock items" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Merge stock" +msgstr "" + +#: templates/stock_table.html:53 msgid "Order selected items" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change status" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change stock status" msgstr "" -#: templates/stock_table.html:57 +#: templates/stock_table.html:58 msgid "Delete selected items" msgstr "" @@ -9106,35 +9316,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:189 +#: users/models.py:192 msgid "Permission set" msgstr "" -#: users/models.py:197 +#: users/models.py:200 msgid "Group" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "View" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "Permission to view items" msgstr "" -#: users/models.py:202 +#: users/models.py:205 msgid "Permission to add items" msgstr "" -#: users/models.py:204 +#: users/models.py:207 msgid "Change" msgstr "" -#: users/models.py:204 +#: users/models.py:207 msgid "Permissions to edit items" msgstr "" -#: users/models.py:206 +#: users/models.py:209 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po index 22b38b1665..2b467b4de9 100644 --- a/InvenTree/locale/pl/LC_MESSAGES/django.po +++ b/InvenTree/locale/pl/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-12-08 23:43+0000\n" -"PO-Revision-Date: 2021-12-08 23:47\n" +"POT-Creation-Date: 2021-12-21 02:57+0000\n" +"PO-Revision-Date: 2021-12-21 03:01\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -34,50 +34,50 @@ msgstr "Nie znaleziono pasującej akcji" msgid "Enter date" msgstr "Wprowadź dane" -#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93 +#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 build/forms.py:93 #: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: part/forms.py:108 templates/account/email_confirm.html:20 +#: part/forms.py:78 templates/account/email_confirm.html:20 #: templates/js/translated/forms.js:595 msgid "Confirm" msgstr "Potwierdź" -#: InvenTree/forms.py:136 +#: InvenTree/forms.py:142 msgid "Confirm delete" msgstr "Potwierdź usunięcie" -#: InvenTree/forms.py:137 +#: InvenTree/forms.py:143 msgid "Confirm item deletion" msgstr "Potwierdź usuwanie elementu" -#: InvenTree/forms.py:168 +#: InvenTree/forms.py:174 msgid "Enter password" msgstr "Wprowadź hasło" -#: InvenTree/forms.py:169 +#: InvenTree/forms.py:175 msgid "Enter new password" msgstr "Wprowadź nowe hasło" -#: InvenTree/forms.py:176 +#: InvenTree/forms.py:182 msgid "Confirm password" msgstr "Potwierdź hasło" -#: InvenTree/forms.py:177 +#: InvenTree/forms.py:183 msgid "Confirm new password" msgstr "Potwierdź nowe hasło" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:215 msgid "Select Category" msgstr "Wybierz kategorię" -#: InvenTree/forms.py:230 +#: InvenTree/forms.py:236 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:234 +#: InvenTree/forms.py:240 msgid "Email address confirmation" msgstr "Potwierdzenie adresu email" -#: InvenTree/forms.py:254 +#: InvenTree/forms.py:260 msgid "You must type the same email each time." msgstr "" @@ -123,7 +123,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:132 stock/models.py:1852 +#: InvenTree/models.py:132 stock/models.py:1967 #: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "Załącznik" @@ -136,12 +136,12 @@ msgstr "Wybierz plik do załączenia" #: company/models.py:564 order/models.py:124 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:1258 +#: templates/js/translated/company.js:826 templates/js/translated/part.js:1260 msgid "Link" msgstr "Łącze" #: InvenTree/models.py:140 build/models.py:330 part/models.py:798 -#: stock/models.py:524 +#: stock/models.py:527 msgid "Link to external URL" msgstr "Link do zewnętrznego adresu URL" @@ -153,10 +153,10 @@ msgstr "Komentarz" msgid "File comment" msgstr "Komentarz pliku" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213 -#: common/models.py:1214 part/models.py:2205 part/models.py:2225 +#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1219 +#: common/models.py:1220 part/models.py:2205 part/models.py:2225 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2341 +#: templates/js/translated/stock.js:2534 msgid "User" msgstr "Użytkownik" @@ -202,8 +202,8 @@ msgstr "Błędny wybór" #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:268 #: templates/js/translated/company.js:638 templates/js/translated/part.js:506 -#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565 -#: templates/js/translated/stock.js:2134 +#: templates/js/translated/part.js:643 templates/js/translated/part.js:1567 +#: templates/js/translated/stock.js:2327 msgid "Name" msgstr "Nazwa" @@ -212,23 +212,23 @@ msgstr "Nazwa" #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70 +#: order/models.py:122 part/models.py:764 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:89 +#: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428 +#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540 #: templates/js/translated/build.js:1627 templates/js/translated/company.js:345 #: templates/js/translated/company.js:548 #: templates/js/translated/company.js:837 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 -#: templates/js/translated/part.js:565 templates/js/translated/part.js:933 -#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188 -#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653 -#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146 -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/part.js:565 templates/js/translated/part.js:935 +#: templates/js/translated/part.js:1020 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1586 templates/js/translated/part.js:1655 +#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339 +#: templates/js/translated/stock.js:2384 msgid "Description" msgstr "Opis" @@ -248,83 +248,83 @@ msgstr "Numer musi być prawidłowy" msgid "Filename" msgstr "Nazwa pliku" -#: InvenTree/settings.py:689 +#: InvenTree/settings.py:698 msgid "German" msgstr "Niemiecki" -#: InvenTree/settings.py:690 +#: InvenTree/settings.py:699 msgid "Greek" msgstr "Grecki" -#: InvenTree/settings.py:691 +#: InvenTree/settings.py:700 msgid "English" msgstr "Angielski" -#: InvenTree/settings.py:692 +#: InvenTree/settings.py:701 msgid "Spanish" msgstr "Hiszpański" -#: InvenTree/settings.py:693 +#: InvenTree/settings.py:702 msgid "Spanish (Mexican)" msgstr "Hiszpański (Meksyk)" -#: InvenTree/settings.py:694 +#: InvenTree/settings.py:703 msgid "French" msgstr "Francuski" -#: InvenTree/settings.py:695 +#: InvenTree/settings.py:704 msgid "Hebrew" msgstr "Hebrajski" -#: InvenTree/settings.py:696 +#: InvenTree/settings.py:705 msgid "Italian" msgstr "Włoski" -#: InvenTree/settings.py:697 +#: InvenTree/settings.py:706 msgid "Japanese" msgstr "Japoński" -#: InvenTree/settings.py:698 +#: InvenTree/settings.py:707 msgid "Korean" msgstr "Koreański" -#: InvenTree/settings.py:699 +#: InvenTree/settings.py:708 msgid "Dutch" msgstr "Holenderski" -#: InvenTree/settings.py:700 +#: InvenTree/settings.py:709 msgid "Norwegian" msgstr "Norweski" -#: InvenTree/settings.py:701 +#: InvenTree/settings.py:710 msgid "Polish" msgstr "Polski" -#: InvenTree/settings.py:702 +#: InvenTree/settings.py:711 msgid "Portugese" msgstr "Portugalski" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:712 msgid "Russian" msgstr "Rosyjski" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:713 msgid "Swedish" msgstr "Szwedzki" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:714 msgid "Thai" msgstr "Tajski" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:715 msgid "Turkish" msgstr "Turecki" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:716 msgid "Vietnamese" msgstr "Wietnamski" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:717 msgid "Chinese" msgstr "Chiński" @@ -341,7 +341,7 @@ msgid "InvenTree system health checks failed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 msgid "Pending" msgstr "W toku" @@ -349,14 +349,14 @@ msgstr "W toku" msgid "Placed" msgstr "Umieszczony" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:319 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "Zakończono" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:313 +#: InvenTree/status_codes.py:318 msgid "Cancelled" msgstr "Anulowano" @@ -370,7 +370,7 @@ msgstr "Zagubiono" msgid "Returned" msgstr "Zwrócone" -#: InvenTree/status_codes.py:143 order/models.py:939 +#: InvenTree/status_codes.py:143 order/models.py:941 #: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255 msgid "Shipped" msgstr "Wysłane" @@ -395,83 +395,87 @@ msgstr "Zniszczone" msgid "Rejected" msgstr "Odrzucone" -#: InvenTree/status_codes.py:269 +#: InvenTree/status_codes.py:272 msgid "Legacy stock tracking entry" msgstr "" -#: InvenTree/status_codes.py:271 +#: InvenTree/status_codes.py:274 msgid "Stock item created" msgstr "Utworzono element magazynowy" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Edited stock item" msgstr "" -#: InvenTree/status_codes.py:274 +#: InvenTree/status_codes.py:277 msgid "Assigned serial number" msgstr "Przypisano numer seryjny" -#: InvenTree/status_codes.py:276 +#: InvenTree/status_codes.py:279 msgid "Stock counted" msgstr "Zapas policzony" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Stock manually added" msgstr "Zapas dodany ręcznie" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Stock manually removed" msgstr "Zapas usunięty ręcznie" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Location changed" msgstr "Lokalizacja zmieniona" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Installed into assembly" msgstr "" -#: InvenTree/status_codes.py:283 +#: InvenTree/status_codes.py:286 msgid "Removed from assembly" msgstr "" -#: InvenTree/status_codes.py:285 +#: InvenTree/status_codes.py:288 msgid "Installed component item" msgstr "" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Removed component item" msgstr "" -#: InvenTree/status_codes.py:288 +#: InvenTree/status_codes.py:291 msgid "Split from parent item" msgstr "" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Split child item" msgstr "Podziel element podrzędny" -#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064 +msgid "Merged stock items" +msgstr "" + +#: InvenTree/status_codes.py:296 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "Wyślij do klienta" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:297 msgid "Returned from customer" msgstr "Zwrócony od klienta" -#: InvenTree/status_codes.py:294 +#: InvenTree/status_codes.py:299 msgid "Build order output created" msgstr "" -#: InvenTree/status_codes.py:295 +#: InvenTree/status_codes.py:300 msgid "Build order output completed" msgstr "" -#: InvenTree/status_codes.py:297 +#: InvenTree/status_codes.py:302 msgid "Received against purchase order" msgstr "" -#: InvenTree/status_codes.py:312 +#: InvenTree/status_codes.py:317 msgid "Production" msgstr "Produkcja" @@ -575,16 +579,16 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1283 -#: build/templates/build/build_base.html:132 -#: build/templates/build/detail.html:35 common/models.py:1253 +#: build/forms.py:36 build/models.py:1286 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1259 #: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:794 order/models.py:1205 order/serializers.py:810 +#: order/models.py:796 order/models.py:1207 order/serializers.py:810 #: order/templates/order/order_wizard/match_parts.html:30 -#: 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 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:193 +#: part/forms.py:209 part/forms.py:225 part/models.py:2576 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:967 part/templates/part/detail.html:1053 +#: part/templates/part/detail.html:961 part/templates/part/detail.html:1047 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -592,10 +596,10 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:174 -#: stock/templates/stock/item_base.html:255 -#: stock/templates/stock/item_base.html:263 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443 +#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:261 +#: stock/templates/stock/item_base.html:269 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555 #: templates/js/translated/build.js:240 templates/js/translated/build.js:440 #: templates/js/translated/build.js:634 templates/js/translated/build.js:644 #: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367 @@ -604,10 +608,10 @@ msgstr "" #: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 #: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 #: templates/js/translated/order.js:2150 templates/js/translated/part.js:843 -#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919 -#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382 -#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326 -#: templates/js/translated/stock.js:2428 +#: templates/js/translated/part.js:1798 templates/js/translated/part.js:1921 +#: templates/js/translated/part.js:1999 templates/js/translated/stock.js:383 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750 +#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621 msgid "Quantity" msgstr "Ilość" @@ -616,8 +620,8 @@ msgid "Enter quantity for build output" msgstr "" #: build/forms.py:41 order/serializers.py:814 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:229 -#: templates/js/translated/stock.js:383 +#: stock/serializers.py:314 templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:384 msgid "Serial Numbers" msgstr "Numer seryjny" @@ -661,7 +665,7 @@ msgstr "Zlecenie Budowy" #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:145 +#: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" msgstr "Zlecenia budowy" @@ -671,11 +675,11 @@ msgid "Build Order Reference" msgstr "Odwołanie do zamówienia wykonania" #: build/models.py:199 order/models.py:210 order/models.py:536 -#: order/models.py:801 part/models.py:2585 +#: order/models.py:803 part/models.py:2585 #: part/templates/part/bom_upload/match_parts.html:30 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124 +#: templates/js/translated/bom.js:547 templates/js/translated/build.js:1124 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "Referencja" @@ -695,7 +699,7 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana" #: build/models.py:225 build/templates/build/build_base.html:77 #: build/templates/build/detail.html:30 company/models.py:705 -#: order/models.py:854 order/models.py:928 +#: order/models.py:856 order/models.py:930 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357 #: part/models.py:2151 part/models.py:2167 part/models.py:2186 #: part/models.py:2203 part/models.py:2305 part/models.py:2427 @@ -706,20 +710,21 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana" #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 -#: templates/InvenTree/search.html:86 +#: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214 -#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326 +#: templates/js/translated/bom.js:505 templates/js/translated/build.js:625 #: templates/js/translated/build.js:993 templates/js/translated/build.js:1364 #: templates/js/translated/build.js:1632 templates/js/translated/company.js:489 #: templates/js/translated/company.js:746 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 -#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918 -#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166 -#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747 -#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416 +#: templates/js/translated/order.js:2128 templates/js/translated/part.js:920 +#: templates/js/translated/part.js:1001 templates/js/translated/part.js:1168 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719 +#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:2609 msgid "Part" msgstr "Część" @@ -776,7 +781,7 @@ msgstr "Status budowania" msgid "Build status code" msgstr "Kod statusu budowania" -#: build/models.py:285 stock/models.py:528 +#: build/models.py:285 stock/models.py:531 msgid "Batch Code" msgstr "Kod partii" @@ -830,27 +835,27 @@ msgstr "Użytkownik odpowiedzialny za to zamówienie budowy" #: build/models.py:329 build/templates/build/detail.html:102 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:354 stock/models.py:522 -#: stock/templates/stock/item_base.html:374 +#: part/templates/part/part_base.html:354 stock/models.py:525 +#: stock/templates/stock/item_base.html:372 msgid "External Link" msgstr "Link Zewnętrzny" #: 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:144 order/models.py:803 order/models.py:1049 +#: order/models.py:144 order/models.py:805 order/models.py:1051 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:925 -#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50 +#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594 -#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332 -#: stock/serializers.py:624 stock/serializers.py:711 +#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597 +#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332 +#: stock/serializers.py:638 stock/serializers.py:736 stock/serializers.py:868 #: stock/templates/stock/stock_sidebar.html:21 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711 #: templates/js/translated/company.js:842 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795 msgid "Notes" msgstr "Uwagi" @@ -883,7 +888,7 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1133 order/models.py:1165 +#: build/models.py:1133 order/models.py:1167 msgid "Allocation quantity must be greater than zero" msgstr "Alokowana ilość musi być większa niż zero" @@ -891,51 +896,52 @@ msgstr "Alokowana ilość musi być większa niż zero" msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1193 +#: build/models.py:1196 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1253 stock/templates/stock/item_base.html:346 -#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605 +#: build/models.py:1256 stock/templates/stock/item_base.html:344 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1605 #: templates/navbar.html:35 msgid "Build" msgstr "Budowa" -#: build/models.py:1254 +#: build/models.py:1257 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690 -#: order/serializers.py:708 stock/serializers.py:562 +#: build/models.py:1273 build/serializers.py:334 order/serializers.py:690 +#: order/serializers.py:708 stock/serializers.py:576 stock/serializers.py:694 #: stock/templates/stock/item_base.html:8 -#: stock/templates/stock/item_base.html:16 -#: stock/templates/stock/item_base.html:368 +#: stock/templates/stock/item_base.html:22 +#: stock/templates/stock/item_base.html:366 #: templates/js/translated/build.js:413 templates/js/translated/build.js:418 #: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277 +#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:2470 msgid "Stock Item" msgstr "Element magazynowy" -#: build/models.py:1271 +#: build/models.py:1274 msgid "Source stock item" msgstr "Lokalizacja magazynowania przedmiotu" -#: build/models.py:1284 +#: build/models.py:1287 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1292 +#: build/models.py:1295 msgid "Install into" msgstr "Zainstaluj do" -#: build/models.py:1293 +#: build/models.py:1296 msgid "Destination stock item" msgstr "Docelowa lokalizacja magazynowa przedmiotu" -#: build/serializers.py:137 build/serializers.py:357 +#: build/serializers.py:137 build/serializers.py:363 msgid "Build Output" msgstr "" @@ -956,16 +962,16 @@ msgid "This build output is not fully allocated" msgstr "" #: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813 -#: stock/templates/stock/item_base.html:314 +#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:729 +#: stock/serializers.py:970 stock/templates/stock/item_base.html:312 #: templates/js/translated/barcode.js:384 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425 #: templates/js/translated/build.js:1032 templates/js/translated/order.js:508 #: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 #: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497 -#: templates/js/translated/stock.js:2218 +#: templates/js/translated/part.js:177 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411 msgid "Location" msgstr "Lokalizacja" @@ -975,11 +981,11 @@ msgstr "" #: build/serializers.py:197 build/templates/build/build_base.html:137 #: build/templates/build/detail.html:63 order/models.py:552 -#: order/serializers.py:247 stock/templates/stock/item_base.html:180 +#: order/serializers.py:247 stock/templates/stock/item_base.html:186 #: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661 #: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472 -#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651 +#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637 msgid "Status" msgstr "Status" @@ -1000,33 +1006,33 @@ msgstr "" msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:319 +#: build/serializers.py:325 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:334 stock/serializers.py:569 +#: build/serializers.py:340 stock/serializers.py:583 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:348 order/models.py:277 order/serializers.py:240 -#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305 +#: build/serializers.py:354 order/models.py:277 order/serializers.py:240 +#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "Ilość musi być większa niż zero" -#: build/serializers.py:390 order/serializers.py:741 +#: build/serializers.py:396 order/serializers.py:741 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:396 +#: build/serializers.py:402 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:403 +#: build/serializers.py:409 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:431 order/serializers.py:984 +#: build/serializers.py:437 order/serializers.py:984 msgid "Allocation items must be provided" msgstr "" @@ -1067,33 +1073,33 @@ msgstr "" msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:87 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:96 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:98 +#: build/templates/build/build_base.html:103 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:105 +#: build/templates/build/build_base.html:110 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Stock has not been fully allocated to this Build Order" msgstr "" @@ -1131,12 +1137,12 @@ msgid "Completed" msgstr "Zakończone" #: build/templates/build/build_base.html:171 -#: build/templates/build/detail.html:95 order/models.py:925 -#: order/models.py:1021 order/templates/order/sales_order_base.html:9 +#: build/templates/build/detail.html:95 order/models.py:927 +#: order/models.py:1023 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:308 +#: stock/templates/stock/item_base.html:306 #: templates/js/translated/order.js:1218 msgid "Sales Order" msgstr "Zamówienie zakupu" @@ -1211,7 +1217,7 @@ msgstr "Źródło magazynu" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "Przeznaczenie" @@ -1225,8 +1231,8 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:332 -#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451 +#: stock/templates/stock/item_base.html:330 +#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1278,7 +1284,7 @@ msgstr "Zamów wymagane komponenty" #: build/templates/build/detail.html:185 #: company/templates/company/detail.html:38 #: company/templates/company/detail.html:85 order/views.py:463 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order Parts" msgstr "Zamów części" @@ -1347,7 +1353,7 @@ msgstr "Notatki tworzenia" #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115 +#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115 #: stock/templates/stock/item.html:205 msgid "Edit Notes" msgstr "" @@ -1489,7 +1495,7 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:340 common/models.py:998 common/models.py:1206 +#: common/models.py:340 common/models.py:1004 common/models.py:1212 msgid "Settings key (must be unique - case insensitive" msgstr "" @@ -1651,7 +1657,7 @@ msgstr "Szablon" msgid "Parts are templates by default" msgstr "" -#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956 +#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:1068 #: templates/js/translated/table_filters.js:168 #: templates/js/translated/table_filters.js:416 msgid "Assembly" @@ -1953,256 +1959,264 @@ msgid "Group to which new users are assigned on registration" msgstr "" #: common/models.py:961 -msgid "Enable URL integration" +msgid "Enforce MFA" msgstr "" #: common/models.py:962 -msgid "Enable plugins to add URL routes" +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:967 +msgid "Enable URL integration" msgstr "" #: common/models.py:968 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:974 msgid "Enable navigation integration" msgstr "" -#: common/models.py:969 +#: common/models.py:975 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:975 +#: common/models.py:981 msgid "Enable global setting integration" msgstr "" -#: common/models.py:976 +#: common/models.py:982 msgid "Enable plugins to integrate into inventree global settings" msgstr "" -#: common/models.py:982 +#: common/models.py:988 msgid "Enable app integration" msgstr "" -#: common/models.py:983 +#: common/models.py:989 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1029 +#: common/models.py:1035 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1030 +#: common/models.py:1036 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1035 +#: common/models.py:1041 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1036 +#: common/models.py:1042 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1041 +#: common/models.py:1047 msgid "Show latest parts" msgstr "" -#: common/models.py:1042 +#: common/models.py:1048 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1047 +#: common/models.py:1053 msgid "Recent Part Count" msgstr "" -#: common/models.py:1048 +#: common/models.py:1054 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1054 +#: common/models.py:1060 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1055 +#: common/models.py:1061 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1060 +#: common/models.py:1066 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1061 +#: common/models.py:1067 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1066 +#: common/models.py:1072 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1067 +#: common/models.py:1073 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1072 +#: common/models.py:1078 msgid "Show low stock" msgstr "" -#: common/models.py:1073 +#: common/models.py:1079 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1078 +#: common/models.py:1084 msgid "Show depleted stock" msgstr "" -#: common/models.py:1079 +#: common/models.py:1085 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1084 +#: common/models.py:1090 msgid "Show needed stock" msgstr "" -#: common/models.py:1085 +#: common/models.py:1091 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1090 +#: common/models.py:1096 msgid "Show expired stock" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1096 +#: common/models.py:1102 msgid "Show stale stock" msgstr "" -#: common/models.py:1097 +#: common/models.py:1103 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1102 +#: common/models.py:1108 msgid "Show pending builds" msgstr "" -#: common/models.py:1103 +#: common/models.py:1109 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1108 +#: common/models.py:1114 msgid "Show overdue builds" msgstr "" -#: common/models.py:1109 +#: common/models.py:1115 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1114 +#: common/models.py:1120 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1115 +#: common/models.py:1121 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1120 +#: common/models.py:1126 msgid "Show overdue POs" msgstr "" -#: common/models.py:1121 +#: common/models.py:1127 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1126 +#: common/models.py:1132 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1127 +#: common/models.py:1133 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1132 +#: common/models.py:1138 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1133 +#: common/models.py:1139 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1139 +#: common/models.py:1145 msgid "Inline label display" msgstr "" -#: common/models.py:1140 +#: common/models.py:1146 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1146 +#: common/models.py:1152 msgid "Inline report display" msgstr "" -#: common/models.py:1147 +#: common/models.py:1153 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "Search Preview Results" msgstr "" -#: common/models.py:1154 +#: common/models.py:1160 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1160 +#: common/models.py:1166 msgid "Search Show Stock" msgstr "" -#: common/models.py:1161 +#: common/models.py:1167 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1167 +#: common/models.py:1173 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1168 +#: common/models.py:1174 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1174 +#: common/models.py:1180 msgid "Show Quantity in Forms" msgstr "Pokaż ilość w formularzach" -#: common/models.py:1175 +#: common/models.py:1181 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1181 +#: common/models.py:1187 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1182 +#: common/models.py:1188 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1188 +#: common/models.py:1194 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1189 +#: common/models.py:1195 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1254 company/forms.py:43 +#: common/models.py:1260 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1261 company/serializers.py:264 +#: common/models.py:1267 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801 +#: templates/js/translated/part.js:852 templates/js/translated/part.js:1803 msgid "Price" msgstr "Cena" -#: common/models.py:1262 +#: common/models.py:1268 msgid "Unit price at specified quantity" msgstr "" @@ -2290,7 +2304,7 @@ msgid "Contact phone number" msgstr "Numer telefonu kontaktowego" #: company/models.py:125 company/templates/company/company_base.html:129 -#: templates/InvenTree/settings/user.html:47 +#: templates/InvenTree/settings/user.html:48 msgid "Email" msgstr "Adres E-Mail" @@ -2347,8 +2361,8 @@ msgstr "Waluta" msgid "Default currency used for this company" msgstr "" -#: company/models.py:320 company/models.py:535 stock/models.py:468 -#: stock/templates/stock/item_base.html:135 +#: company/models.py:320 company/models.py:535 stock/models.py:469 +#: stock/templates/stock/item_base.html:141 msgid "Base Part" msgstr "Część bazowa" @@ -2359,7 +2373,7 @@ msgstr "Wybierz część" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:381 +#: stock/templates/stock/item_base.html:379 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:514 #: templates/js/translated/company.js:797 templates/js/translated/part.js:232 @@ -2393,7 +2407,7 @@ msgstr "" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:391 +#: stock/templates/stock/item_base.html:389 msgid "Manufacturer Part" msgstr "Część producenta" @@ -2403,8 +2417,8 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:1845 templates/js/translated/company.js:644 -#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117 +#: stock/models.py:1960 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1296 msgid "Value" msgstr "" @@ -2431,7 +2445,7 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:224 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219 -#: part/bom.py:247 stock/templates/stock/item_base.html:398 +#: part/bom.py:247 stock/templates/stock/item_base.html:396 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:771 templates/js/translated/order.js:823 #: templates/js/translated/part.js:213 templates/js/translated/part.js:800 @@ -2479,8 +2493,8 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:491 stock/templates/stock/item_base.html:339 -#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612 +#: stock/models.py:493 stock/templates/stock/item_base.html:337 +#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1791 msgid "Packaging" msgstr "Opakowanie" @@ -2506,7 +2520,7 @@ msgstr "" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322 +#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322 msgid "Company" msgstr "Firma" @@ -2548,11 +2562,11 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:83 order/models.py:547 -#: order/templates/order/sales_order_base.html:115 stock/models.py:509 -#: stock/models.py:510 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:291 +#: order/templates/order/sales_order_base.html:115 stock/models.py:512 +#: stock/models.py:513 stock/serializers.py:624 +#: stock/templates/stock/item_base.html:289 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2259 +#: templates/js/translated/stock.js:2452 msgid "Customer" msgstr "Klient" @@ -2571,7 +2585,7 @@ msgstr "" #: company/templates/company/detail.html:15 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:124 +#: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "Komponenty dostawcy" @@ -2590,14 +2604,14 @@ msgstr "Nowy dostawca części" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:167 part/templates/part/detail.html:342 +#: part/templates/part/category.html:171 part/templates/part/detail.html:342 #: part/templates/part/detail.html:370 msgid "Options" msgstr "Opcje" #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order parts" msgstr "Zamów części" @@ -2611,7 +2625,7 @@ msgstr "Usuń części" msgid "Delete Parts" msgstr "Usuń części" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109 +#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "Części producenta" @@ -2633,8 +2647,8 @@ msgstr "Zapasy dostawcy" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203 +#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" @@ -2655,8 +2669,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223 +#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" @@ -2698,7 +2712,7 @@ msgid "Supplier List" msgstr "Lista dostawców" #: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184 +#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 #: templates/navbar.html:46 msgid "Manufacturers" msgstr "Producenci" @@ -2706,7 +2720,7 @@ msgstr "Producenci" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:67 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76 msgid "Order part" msgstr "Zamów część" @@ -2728,7 +2742,7 @@ msgstr "Część wewnętrzna" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 #: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:194 templates/navbar.html:45 +#: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "Dostawcy" @@ -2742,7 +2756,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:254 #: part/templates/part/detail.html:344 part/templates/part/detail.html:372 #: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31 -#: users/models.py:206 +#: users/models.py:209 msgid "Delete" msgstr "Usuń" @@ -2765,7 +2779,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:867 +#: part/templates/part/detail.html:861 msgid "Add Parameter" msgstr "Dodaj parametr" @@ -2794,9 +2808,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:476 -#: stock/templates/stock/item_base.html:403 -#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569 +#: company/templates/company/supplier_part.html:24 stock/models.py:477 +#: stock/templates/stock/item_base.html:401 +#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1748 msgid "Supplier Part" msgstr "" @@ -2816,13 +2830,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:20 stock/templates/stock/location.html:162 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:166 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163 -#: templates/js/translated/stock.js:359 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 +#: templates/js/translated/stock.js:360 msgid "New Stock Item" msgstr "" @@ -2832,7 +2846,7 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:68 +#: part/templates/part/detail.html:72 msgid "Order Part" msgstr "" @@ -2843,7 +2857,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:1717 +#: part/templates/part/prices.html:271 part/views.py:1713 msgid "Add Price Break" msgstr "" @@ -2851,11 +2865,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1779 +#: company/templates/company/supplier_part.html:224 part/views.py:1775 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1765 +#: company/templates/company/supplier_part.html:238 part/views.py:1761 msgid "Edit Price Break" msgstr "Edytuj przedział cenowy" @@ -2869,14 +2883,14 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:156 +#: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434 -#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059 -#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:1401 templates/navbar.html:28 +#: templates/js/translated/bom.js:328 templates/js/translated/part.js:434 +#: templates/js/translated/part.js:569 templates/js/translated/part.js:1061 +#: templates/js/translated/part.js:1222 templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:1580 templates/navbar.html:28 msgid "Stock" msgstr "Stan" @@ -2895,11 +2909,11 @@ msgid "Pricing" msgstr "Cennik" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:133 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:159 +#: stock/templates/stock/location.html:137 +#: stock/templates/stock/location.html:151 +#: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "" @@ -2912,7 +2926,7 @@ msgstr "Nowy dostawca" msgid "New Manufacturer" msgstr "Now producent" -#: company/views.py:61 templates/InvenTree/search.html:214 +#: company/views.py:61 templates/InvenTree/search.html:208 #: templates/navbar.html:57 msgid "Customers" msgstr "Klienci" @@ -3121,7 +3135,7 @@ msgstr "" msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:562 order/models.py:1026 +#: order/models.py:562 order/models.py:1028 #: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429 msgid "Shipment Date" msgstr "Data wysyłki" @@ -3130,7 +3144,7 @@ msgstr "Data wysyłki" msgid "shipped by" msgstr "wysłane przez" -#: order/models.py:634 +#: order/models.py:635 msgid "Order cannot be completed as no parts have been assigned" msgstr "" @@ -3138,172 +3152,172 @@ msgstr "" msgid "Only a pending order can be marked as complete" msgstr "" -#: order/models.py:643 +#: order/models.py:642 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:647 +#: order/models.py:645 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:795 +#: order/models.py:797 msgid "Item quantity" msgstr "Ilość elementów" -#: order/models.py:801 +#: order/models.py:803 msgid "Line item reference" msgstr "" -#: order/models.py:803 +#: order/models.py:805 msgid "Line item notes" msgstr "" -#: order/models.py:833 order/models.py:924 order/models.py:1020 +#: order/models.py:835 order/models.py:926 order/models.py:1022 #: templates/js/translated/order.js:1820 msgid "Order" msgstr "Zamówienie" -#: order/models.py:834 order/templates/order/order_base.html:9 +#: order/models.py:836 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:353 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/order.js:801 templates/js/translated/part.js:775 -#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240 +#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433 msgid "Purchase Order" msgstr "Zlecenie zakupu" -#: order/models.py:855 +#: order/models.py:857 msgid "Supplier part" msgstr "" -#: order/models.py:862 order/templates/order/order_base.html:163 +#: order/models.py:864 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:847 templates/js/translated/part.js:873 #: templates/js/translated/table_filters.js:317 msgid "Received" msgstr "Odebrane" -#: order/models.py:863 +#: order/models.py:865 msgid "Number of items received" msgstr "" -#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:360 -#: templates/js/translated/stock.js:1600 +#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:358 +#: templates/js/translated/stock.js:1779 msgid "Purchase Price" msgstr "Cena zakupu" -#: order/models.py:871 +#: order/models.py:873 msgid "Unit purchase price" msgstr "Cena zakupu jednostkowego" -#: order/models.py:879 +#: order/models.py:881 msgid "Where does the Purchaser want this item to be stored?" msgstr "Gdzie kupujący chce przechowywać ten przedmiot?" -#: order/models.py:934 part/templates/part/part_pricing.html:112 +#: order/models.py:936 part/templates/part/part_pricing.html:112 #: part/templates/part/prices.html:116 part/templates/part/prices.html:284 msgid "Sale Price" msgstr "Cena sprzedaży" -#: order/models.py:935 +#: order/models.py:937 msgid "Unit sale price" msgstr "Jednostkowa cena sprzedaży" -#: order/models.py:940 +#: order/models.py:942 msgid "Shipped quantity" msgstr "" -#: order/models.py:1027 +#: order/models.py:1029 msgid "Date of shipment" msgstr "" -#: order/models.py:1034 +#: order/models.py:1036 msgid "Checked By" msgstr "" -#: order/models.py:1035 +#: order/models.py:1037 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1043 +#: order/models.py:1045 msgid "Shipment number" msgstr "" -#: order/models.py:1050 +#: order/models.py:1052 msgid "Shipment notes" msgstr "" -#: order/models.py:1057 +#: order/models.py:1059 msgid "Tracking Number" msgstr "" -#: order/models.py:1058 +#: order/models.py:1060 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1068 +#: order/models.py:1070 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1071 +#: order/models.py:1073 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1147 order/models.py:1149 +#: order/models.py:1149 order/models.py:1151 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1153 +#: order/models.py:1155 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1155 +#: order/models.py:1157 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1158 +#: order/models.py:1160 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Zarezerwowana ilość nie może przekraczać ilości na stanie" -#: order/models.py:1162 +#: order/models.py:1164 msgid "StockItem is over-allocated" msgstr "" -#: order/models.py:1168 order/serializers.py:734 +#: order/models.py:1170 order/serializers.py:734 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1171 +#: order/models.py:1173 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1172 +#: order/models.py:1174 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1180 +#: order/models.py:1182 msgid "Line" msgstr "Linia" -#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953 +#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953 #: templates/js/translated/model_renderers.js:251 msgid "Shipment" msgstr "" -#: order/models.py:1189 +#: order/models.py:1191 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1201 +#: order/models.py:1203 msgid "Item" msgstr "Komponent" -#: order/models.py:1202 +#: order/models.py:1204 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1205 +#: order/models.py:1207 msgid "Enter stock allocation quantity" msgstr "" @@ -3530,7 +3544,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/build.js:245 templates/js/translated/build.js:1256 #: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:592 +#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761 msgid "Remove row" msgstr "" @@ -3722,7 +3736,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188 +#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1188 msgid "Actions" msgstr "Akcje" @@ -3797,24 +3811,24 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:760 +#: part/api.py:777 msgid "Must be greater than zero" msgstr "" -#: part/api.py:764 +#: part/api.py:781 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:779 +#: part/api.py:796 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833 +#: part/api.py:827 part/api.py:831 part/api.py:846 part/api.py:850 msgid "This field is required" msgstr "" #: part/bom.py:125 part/models.py:81 part/models.py:816 -#: part/templates/part/category.html:104 part/templates/part/part_base.html:338 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "Domyślna lokalizacja" @@ -3822,99 +3836,43 @@ msgstr "Domyślna lokalizacja" msgid "Available Stock" msgstr "Dostępna ilość" -#: part/forms.py:63 -msgid "File Format" -msgstr "Format pliku" - -#: part/forms.py:63 -msgid "Select output file format" -msgstr "Wybierz format pliku wyjściowego" - -#: part/forms.py:65 -msgid "Cascading" -msgstr "Kaskadowe" - -#: part/forms.py:65 -msgid "Download cascading / multi-level BOM" -msgstr "" - -#: part/forms.py:67 -msgid "Levels" -msgstr "Poziomy" - -#: part/forms.py:67 -msgid "Select maximum number of BOM levels to export (0 = all levels)" -msgstr "" - -#: part/forms.py:69 -msgid "Include Parameter Data" -msgstr "" - -#: part/forms.py:69 -msgid "Include part parameters data in exported BOM" -msgstr "" - -#: part/forms.py:71 -msgid "Include Stock Data" -msgstr "" - -#: part/forms.py:71 -msgid "Include part stock data in exported BOM" -msgstr "" - -#: part/forms.py:73 -msgid "Include Manufacturer Data" -msgstr "" - -#: part/forms.py:73 -msgid "Include part manufacturer data in exported BOM" -msgstr "" - -#: part/forms.py:75 -msgid "Include Supplier Data" -msgstr "" - -#: part/forms.py:75 -msgid "Include part supplier data in exported BOM" -msgstr "" - -#: part/forms.py:96 part/models.py:2427 +#: part/forms.py:66 part/models.py:2427 msgid "Parent Part" msgstr "Część nadrzędna" -#: part/forms.py:97 part/templates/part/bom_duplicate.html:7 +#: part/forms.py:67 part/templates/part/bom_duplicate.html:7 msgid "Select parent part to copy BOM from" msgstr "" -#: part/forms.py:103 +#: part/forms.py:73 msgid "Clear existing BOM items" msgstr "" -#: part/forms.py:109 +#: part/forms.py:79 msgid "Confirm BOM duplication" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "validate" msgstr "potwierdź" -#: part/forms.py:127 +#: part/forms.py:97 msgid "Confirm that the BOM is correct" msgstr "" -#: part/forms.py:163 +#: part/forms.py:133 msgid "Select part category" msgstr "Wybierz kategorię części" -#: part/forms.py:200 +#: part/forms.py:170 msgid "Add parameter template to same level categories" msgstr "" -#: part/forms.py:204 +#: part/forms.py:174 msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:224 +#: part/forms.py:194 msgid "Input quantity for price calculation" msgstr "" @@ -3930,24 +3888,24 @@ msgstr "Domyślne słowa kluczowe" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11 +#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:96 part/templates/part/category.html:124 -#: templates/InvenTree/search.html:101 templates/stats.html:84 +#: part/models.py:96 part/templates/part/category.html:128 +#: templates/InvenTree/search.html:95 templates/stats.html:84 #: users/models.py:40 msgid "Part Categories" msgstr "" #: part/models.py:358 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:13 part/templates/part/category.html:129 -#: part/templates/part/category.html:149 +#: part/templates/part/category.html:17 part/templates/part/category.html:133 +#: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1597 templates/navbar.html:21 +#: templates/js/translated/part.js:1599 templates/navbar.html:21 #: templates/stats.html:80 templates/stats.html:89 users/models.py:41 msgid "Parts" msgstr "Części" @@ -4001,7 +3959,7 @@ msgstr "Wariant" msgid "Part description" msgstr "Opis części" -#: part/models.py:770 part/templates/part/category.html:82 +#: part/models.py:770 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "Słowa kluczowe" @@ -4014,7 +3972,7 @@ msgstr "" #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 #: templates/InvenTree/settings/settings.html:172 -#: templates/js/translated/part.js:1202 +#: templates/js/translated/part.js:1204 msgid "Category" msgstr "Kategoria" @@ -4023,8 +3981,8 @@ msgid "Part category" msgstr "" #: part/models.py:784 part/templates/part/part_base.html:274 -#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155 -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/part.js:557 templates/js/translated/part.js:1157 +#: templates/js/translated/stock.js:1552 msgid "IPN" msgstr "IPN" @@ -4145,8 +4103,8 @@ msgstr "" msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2310 templates/js/translated/part.js:1648 -#: templates/js/translated/stock.js:1097 +#: part/models.py:2310 templates/js/translated/part.js:1650 +#: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "Nazwa testu" @@ -4162,7 +4120,7 @@ msgstr "" msgid "Enter description for this test" msgstr "" -#: part/models.py:2322 templates/js/translated/part.js:1657 +#: part/models.py:2322 templates/js/translated/part.js:1659 #: templates/js/translated/table_filters.js:281 msgid "Required" msgstr "Wymagane" @@ -4171,7 +4129,7 @@ msgstr "Wymagane" msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2328 templates/js/translated/part.js:1665 +#: part/models.py:2328 templates/js/translated/part.js:1667 msgid "Requires Value" msgstr "" @@ -4179,7 +4137,7 @@ msgstr "" msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2334 templates/js/translated/part.js:1672 +#: part/models.py:2334 templates/js/translated/part.js:1674 msgid "Requires Attachment" msgstr "" @@ -4241,8 +4199,8 @@ msgstr "" msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2578 templates/js/translated/bom.js:454 -#: templates/js/translated/bom.js:528 +#: part/models.py:2578 templates/js/translated/bom.js:566 +#: templates/js/translated/bom.js:640 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" @@ -4275,8 +4233,8 @@ msgstr "Suma kontrolna" msgid "BOM line checksum" msgstr "" -#: part/models.py:2594 templates/js/translated/bom.js:545 -#: templates/js/translated/bom.js:552 +#: part/models.py:2594 templates/js/translated/bom.js:657 +#: templates/js/translated/bom.js:664 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" @@ -4286,7 +4244,7 @@ msgstr "" msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2600 templates/js/translated/bom.js:537 +#: part/models.py:2600 templates/js/translated/bom.js:649 msgid "Allow Variants" msgstr "" @@ -4406,100 +4364,100 @@ msgstr "" msgid "This will validate each line in the BOM." msgstr "" -#: part/templates/part/category.html:24 part/templates/part/category.html:28 +#: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:32 +#: part/templates/part/category.html:36 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:38 +#: part/templates/part/category.html:42 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:43 +#: part/templates/part/category.html:47 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:44 +#: part/templates/part/category.html:48 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:52 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:53 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:57 +#: part/templates/part/category.html:61 msgid "Create new part category" msgstr "Stwórz nową kategorię komponentów" -#: part/templates/part/category.html:58 +#: part/templates/part/category.html:62 msgid "New Category" msgstr "" -#: part/templates/part/category.html:76 part/templates/part/category.html:89 +#: part/templates/part/category.html:80 part/templates/part/category.html:93 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:90 +#: part/templates/part/category.html:94 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:110 part/templates/part/category.html:201 +#: part/templates/part/category.html:114 part/templates/part/category.html:205 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:115 +#: part/templates/part/category.html:119 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:152 +#: part/templates/part/category.html:156 msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:153 part/templates/part/category.html:177 +#: part/templates/part/category.html:157 part/templates/part/category.html:181 msgid "Export" msgstr "Eksportuj" -#: part/templates/part/category.html:156 +#: part/templates/part/category.html:160 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:157 templates/js/translated/bom.js:40 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 msgid "New Part" msgstr "Nowy komponent" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set category" msgstr "Ustaw kategorię" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set Category" msgstr "Ustaw kategorię" -#: part/templates/part/category.html:175 +#: part/templates/part/category.html:179 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:177 +#: part/templates/part/category.html:181 msgid "Export Data" msgstr "Eksportuj dane" -#: part/templates/part/category.html:191 +#: part/templates/part/category.html:195 msgid "Part Parameters" msgstr "Parametry części" -#: part/templates/part/category.html:268 +#: part/templates/part/category.html:288 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:295 +#: part/templates/part/category.html:315 msgid "Create Part" msgstr "" @@ -4566,24 +4524,24 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:17 +#: part/templates/part/detail.html:21 msgid "Part Stock" msgstr "Zapasy części" -#: part/templates/part/detail.html:29 +#: part/templates/part/detail.html:33 #, python-format msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:39 +#: part/templates/part/detail.html:43 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:44 +#: part/templates/part/detail.html:48 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:101 +#: part/templates/part/detail.html:105 msgid "Sales Order Allocations" msgstr "" @@ -4619,7 +4577,7 @@ msgstr "Zestawienie materiałowe" msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:242 +#: part/templates/part/detail.html:242 templates/js/translated/bom.js:70 msgid "Export BOM" msgstr "" @@ -4683,38 +4641,38 @@ msgstr "" msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:651 msgid "Related Part" msgstr "Powiązane części" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:659 msgid "Add Related Part" msgstr "Dodaj powiązaną część" -#: part/templates/part/detail.html:760 +#: part/templates/part/detail.html:754 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:817 +#: part/templates/part/detail.html:811 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:930 +#: part/templates/part/detail.html:924 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:942 +#: part/templates/part/detail.html:936 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:954 +#: part/templates/part/detail.html:948 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1043 +#: part/templates/part/detail.html:1037 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4745,20 +4703,20 @@ msgid "Subscribe to notifications for this part" msgstr "" #: part/templates/part/part_base.html:43 -#: stock/templates/stock/item_base.html:28 -#: stock/templates/stock/location.html:29 +#: stock/templates/stock/item_base.html:34 +#: stock/templates/stock/location.html:33 msgid "Barcode actions" msgstr "Akcje kodów kreskowych" #: part/templates/part/part_base.html:45 -#: stock/templates/stock/item_base.html:32 -#: stock/templates/stock/location.html:31 templates/qr_button.html:1 +#: stock/templates/stock/item_base.html:38 +#: stock/templates/stock/location.html:35 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Pokaż Kod QR" #: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:48 -#: stock/templates/stock/location.html:32 +#: stock/templates/stock/item_base.html:54 +#: stock/templates/stock/location.html:36 msgid "Print Label" msgstr "Drukuj etykietę" @@ -4767,8 +4725,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:103 -#: stock/templates/stock/location.html:40 +#: stock/templates/stock/item_base.html:109 +#: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "Akcje magazynowe" @@ -4848,7 +4806,7 @@ msgstr "" msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1235 +#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1237 msgid "On Order" msgstr "" @@ -4864,12 +4822,12 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:566 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1066 -#: templates/js/translated/part.js:1239 +#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1068 +#: templates/js/translated/part.js:1241 msgid "Building" msgstr "" @@ -4882,7 +4840,7 @@ msgid "Latest Serial Number" msgstr "Ostatni numer seryjny" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:159 +#: stock/templates/stock/item_base.html:165 msgid "Search for serial number" msgstr "" @@ -4921,7 +4879,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:520 +#: templates/js/translated/bom.js:632 msgid "No supplier pricing available" msgstr "" @@ -5036,7 +4994,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626 msgid "Supplier Cost" msgstr "" @@ -5058,7 +5016,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1788 +#: part/templates/part/prices.html:215 part/views.py:1784 msgid "Add Internal Price Break" msgstr "" @@ -5078,9 +5036,9 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476 -#: templates/js/translated/part.js:436 templates/js/translated/part.js:1056 -#: templates/js/translated/part.js:1243 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588 +#: templates/js/translated/part.js:436 templates/js/translated/part.js:1058 +#: templates/js/translated/part.js:1245 msgid "No Stock" msgstr "" @@ -5154,67 +5112,67 @@ msgstr "" msgid "Match Parts" msgstr "" -#: part/views.py:1196 +#: part/views.py:1195 msgid "Export Bill of Materials" msgstr "" -#: part/views.py:1248 +#: part/views.py:1244 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1255 +#: part/views.py:1251 msgid "Part was deleted" msgstr "" -#: part/views.py:1264 +#: part/views.py:1260 msgid "Part Pricing" msgstr "" -#: part/views.py:1413 +#: part/views.py:1409 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1423 +#: part/views.py:1419 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1430 +#: part/views.py:1426 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1489 templates/js/translated/part.js:313 +#: part/views.py:1485 templates/js/translated/part.js:313 msgid "Edit Part Category" msgstr "Edytuj kategorię części" -#: part/views.py:1527 +#: part/views.py:1523 msgid "Delete Part Category" msgstr "" -#: part/views.py:1533 +#: part/views.py:1529 msgid "Part category was deleted" msgstr "" -#: part/views.py:1542 +#: part/views.py:1538 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1643 +#: part/views.py:1639 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1699 +#: part/views.py:1695 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1721 +#: part/views.py:1717 msgid "Added new price break" msgstr "" -#: part/views.py:1797 +#: part/views.py:1793 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1805 +#: part/views.py:1801 msgid "Delete Internal Price Break" msgstr "" @@ -5388,12 +5346,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:514 stock/templates/stock/item_base.html:149 +#: stock/models.py:517 stock/templates/stock/item_base.html:155 #: templates/js/translated/build.js:238 templates/js/translated/build.js:642 #: templates/js/translated/build.js:1018 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415 msgid "Serial Number" msgstr "Numer Seryjny" @@ -5402,19 +5360,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:1833 +#: stock/models.py:1948 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:1839 +#: stock/models.py:1954 msgid "Result" msgstr "Wynik" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:49 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367 msgid "Date" msgstr "Data" @@ -5432,17 +5390,18 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434 +#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748 +#: templates/js/translated/stock.js:2627 msgid "Serial" msgstr "" -#: stock/api.py:446 +#: stock/api.py:478 msgid "Quantity is required" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571 -#: stock/templates/stock/item_base.html:186 -#: templates/js/translated/stock.js:1522 +#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574 +#: stock/templates/stock/item_base.html:192 +#: templates/js/translated/stock.js:1701 msgid "Expiry Date" msgstr "Data ważności" @@ -5490,12 +5449,12 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:60 stock/models.py:608 -#: stock/templates/stock/item_base.html:417 +#: stock/models.py:60 stock/models.py:611 +#: stock/templates/stock/item_base.html:415 msgid "Owner" msgstr "" -#: stock/models.py:61 stock/models.py:609 +#: stock/models.py:61 stock/models.py:612 msgid "Select Owner" msgstr "" @@ -5528,150 +5487,190 @@ msgstr "" msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:460 +#: stock/models.py:461 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:470 msgid "Base part" msgstr "Część podstawowa" -#: stock/models.py:477 +#: stock/models.py:478 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:482 stock/templates/stock/location.html:12 +#: stock/models.py:484 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:485 +#: stock/models.py:487 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:492 +#: stock/models.py:494 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:497 stock/templates/stock/item_base.html:299 +#: stock/models.py:500 stock/templates/stock/item_base.html:297 msgid "Installed In" msgstr "" -#: stock/models.py:500 +#: stock/models.py:503 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:516 +#: stock/models.py:519 msgid "Serial number for this item" msgstr "" -#: stock/models.py:530 +#: stock/models.py:533 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:534 +#: stock/models.py:537 msgid "Stock Quantity" msgstr "Ilość w magazynie" -#: stock/models.py:543 +#: stock/models.py:546 msgid "Source Build" msgstr "" -#: stock/models.py:545 +#: stock/models.py:548 msgid "Build for this stock item" msgstr "" -#: stock/models.py:556 +#: stock/models.py:559 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:559 +#: stock/models.py:562 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:565 +#: stock/models.py:568 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:572 +#: stock/models.py:575 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete on deplete" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:595 stock/templates/stock/item.html:111 +#: stock/models.py:598 stock/templates/stock/item.html:111 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:604 +#: stock/models.py:607 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1072 +#: stock/models.py:1068 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1078 +#: stock/models.py:1074 msgid "Quantity must be integer" msgstr "Ilość musi być liczbą całkowitą" -#: stock/models.py:1084 +#: stock/models.py:1080 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1087 +#: stock/models.py:1083 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1090 +#: stock/models.py:1086 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1097 +#: stock/models.py:1093 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1255 +#: stock/models.py:1164 +msgid "Stock item has been assigned to a sales order" +msgstr "" + +#: stock/models.py:1167 +msgid "Stock item is installed in another item" +msgstr "" + +#: stock/models.py:1170 +msgid "Stock item contains other items" +msgstr "" + +#: stock/models.py:1173 +msgid "Stock item has been assigned to a customer" +msgstr "" + +#: stock/models.py:1176 +msgid "Stock item is currently in production" +msgstr "" + +#: stock/models.py:1179 +msgid "Serialized stock cannot be merged" +msgstr "" + +#: stock/models.py:1186 stock/serializers.py:773 +msgid "Duplicate stock items" +msgstr "" + +#: stock/models.py:1190 +msgid "Stock items must refer to the same part" +msgstr "" + +#: stock/models.py:1194 +msgid "Stock items must refer to the same supplier part" +msgstr "" + +#: stock/models.py:1198 +msgid "Stock status codes must match" +msgstr "" + +#: stock/models.py:1369 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1753 +#: stock/models.py:1868 msgid "Entry notes" msgstr "" -#: stock/models.py:1810 +#: stock/models.py:1925 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1931 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1834 +#: stock/models.py:1949 msgid "Test name" msgstr "" -#: stock/models.py:1840 templates/js/translated/table_filters.js:271 +#: stock/models.py:1955 templates/js/translated/table_filters.js:271 msgid "Test result" msgstr "" -#: stock/models.py:1846 +#: stock/models.py:1961 msgid "Test output value" msgstr "" -#: stock/models.py:1853 +#: stock/models.py:1968 msgid "Test result attachment" msgstr "" -#: stock/models.py:1859 +#: stock/models.py:1974 msgid "Test notes" msgstr "" @@ -5696,7 +5695,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:814 +#: stock/serializers.py:326 stock/serializers.py:730 stock/serializers.py:971 msgid "Destination stock location" msgstr "" @@ -5708,39 +5707,63 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:573 +#: stock/serializers.py:587 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:577 +#: stock/serializers.py:591 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:581 +#: stock/serializers.py:595 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:611 +#: stock/serializers.py:625 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:617 +#: stock/serializers.py:631 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:639 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:635 stock/serializers.py:722 +#: stock/serializers.py:649 stock/serializers.py:879 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:684 +#: stock/serializers.py:737 +msgid "Stock merging notes" +msgstr "" + +#: stock/serializers.py:742 +msgid "Allow mismatched suppliers" +msgstr "" + +#: stock/serializers.py:743 +msgid "Allow stock items with different supplier parts to be merged" +msgstr "" + +#: stock/serializers.py:748 +msgid "Allow mismatched status" +msgstr "" + +#: stock/serializers.py:749 +msgid "Allow stock items with different status codes to be merged" +msgstr "" + +#: stock/serializers.py:759 +msgid "At least two stock items must be provided" +msgstr "" + +#: stock/serializers.py:841 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:712 +#: stock/serializers.py:869 msgid "Stock transaction notes" msgstr "" @@ -5765,7 +5788,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50 +#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:56 msgid "Test Report" msgstr "" @@ -5797,197 +5820,189 @@ msgstr "" msgid "Delete Test Result" msgstr "" -#: stock/templates/stock/item_base.html:35 +#: stock/templates/stock/item_base.html:41 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:37 +#: stock/templates/stock/item_base.html:43 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24 +#: stock/templates/stock/item_base.html:45 templates/stock_table.html:24 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:46 +#: stock/templates/stock/item_base.html:52 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:71 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:47 templates/stock_table.html:50 +#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/location.html:51 templates/stock_table.html:50 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:78 templates/stock_table.html:48 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49 +#: stock/templates/stock/item_base.html:81 templates/stock_table.html:49 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:84 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:53 +#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/location.html:57 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53 +#: stock/templates/stock/item_base.html:91 templates/stock_table.html:54 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:94 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:108 +#: stock/templates/stock/item_base.html:114 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/item_base.html:117 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:119 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:116 +#: stock/templates/stock/item_base.html:122 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "Termin minął" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/stock.js:1535 +#: stock/templates/stock/item_base.html:205 +#: templates/js/translated/stock.js:1714 msgid "Last Updated" msgstr "Ostatnia aktualizacja" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Last Stocktake" msgstr "Ostatnia inwentaryzacja" -#: stock/templates/stock/item_base.html:208 +#: stock/templates/stock/item_base.html:214 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:226 +#: stock/templates/stock/item_base.html:232 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:239 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:234 +#: stock/templates/stock/item_base.html:240 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:247 +#: stock/templates/stock/item_base.html:253 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:261 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:263 +#: stock/templates/stock/item_base.html:269 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:269 +#: stock/templates/stock/item_base.html:275 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:273 -msgid "This stock item cannot be deleted as it has child items" -msgstr "" - -#: stock/templates/stock/item_base.html:277 -msgid "This stock item will be automatically deleted when all stock is depleted." -msgstr "" - -#: stock/templates/stock/item_base.html:318 +#: stock/templates/stock/item_base.html:316 #: templates/js/translated/build.js:1040 msgid "No location set" msgstr "Lokacje nie są ustawione" -#: stock/templates/stock/item_base.html:325 +#: stock/templates/stock/item_base.html:323 msgid "Barcode Identifier" msgstr "Skaner kodów" -#: stock/templates/stock/item_base.html:367 +#: stock/templates/stock/item_base.html:365 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:385 +#: stock/templates/stock/item_base.html:383 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:410 +#: stock/templates/stock/item_base.html:408 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:500 +#: stock/templates/stock/item_base.html:498 msgid "Edit Stock Status" msgstr "" @@ -6041,59 +6056,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:37 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:65 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:67 msgid "Edit location" msgstr "Edytuj lokację" -#: stock/templates/stock/location.html:65 +#: stock/templates/stock/location.html:69 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:79 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:76 +#: stock/templates/stock/location.html:80 msgid "New Location" msgstr "Nowa lokalizacja" -#: stock/templates/stock/location.html:95 -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:99 +#: stock/templates/stock/location.html:105 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:102 +#: stock/templates/stock/location.html:106 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:119 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:175 +#: stock/templates/stock/location.html:132 +#: stock/templates/stock/location.html:179 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:142 templates/InvenTree/search.html:170 +#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "" -#: stock/templates/stock/location.html:182 templates/stock_table.html:30 +#: stock/templates/stock/location.html:186 templates/stock_table.html:30 msgid "Printing Actions" msgstr "" -#: stock/templates/stock/location.html:186 templates/stock_table.html:34 +#: stock/templates/stock/location.html:190 templates/stock_table.html:34 msgid "Print labels" msgstr "Drukuj etykiety" @@ -6178,7 +6193,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:887 +#: stock/views.py:727 templates/js/translated/stock.js:1066 msgid "Confirm stock adjustment" msgstr "" @@ -6186,7 +6201,7 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:323 +#: stock/views.py:760 templates/js/translated/stock.js:324 msgid "Edit Stock Item" msgstr "" @@ -6198,7 +6213,7 @@ msgstr "Utwórz nową lokalizację magazynową" msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:303 +#: stock/views.py:1153 templates/js/translated/stock.js:304 msgid "Duplicate Stock Item" msgstr "" @@ -6314,10 +6329,6 @@ msgstr "" msgid "Search Results" msgstr "" -#: templates/InvenTree/search.html:22 -msgid "Enter a search query" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6363,7 +6374,7 @@ msgstr "" msgid "Login Settings" msgstr "" -#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5 +#: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5 msgid "Signup" msgstr "" @@ -6648,7 +6659,7 @@ msgstr "" msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:55 +#: templates/InvenTree/settings/user.html:54 msgid "The following email addresses are associated with your account:" msgstr "" @@ -6673,145 +6684,193 @@ msgid "Re-send Verification" msgstr "" #: templates/InvenTree/settings/user.html:87 -#: templates/InvenTree/settings/user.html:154 +#: templates/InvenTree/settings/user.html:149 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:94 +#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:201 msgid "Warning:" msgstr "" -#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:96 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:102 +#: templates/InvenTree/settings/user.html:104 msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:112 -msgid "Enter e-mail address" -msgstr "" - -#: templates/InvenTree/settings/user.html:114 +#: templates/InvenTree/settings/user.html:109 msgid "Add Email" msgstr "" -#: templates/InvenTree/settings/user.html:124 +#: templates/InvenTree/settings/user.html:117 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:129 +#: templates/InvenTree/settings/user.html:122 msgid "You can sign in to your account using any of the following third party accounts:" msgstr "" -#: templates/InvenTree/settings/user.html:163 -msgid "There are no social network accounts connected to your InvenTree account" +#: templates/InvenTree/settings/user.html:157 +msgid "You currently have no social network accounts connected to this account." msgstr "" -#: templates/InvenTree/settings/user.html:168 +#: templates/InvenTree/settings/user.html:162 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:179 -msgid "Active Sessions" +#: templates/InvenTree/settings/user.html:172 +msgid "Multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:185 -msgid "Log out active sessions (except this one)" +#: templates/InvenTree/settings/user.html:177 +msgid "You have these factors available:" msgstr "" -#: templates/InvenTree/settings/user.html:186 -msgid "Log Out Active Sessions" +#: templates/InvenTree/settings/user.html:187 +msgid "TOTP" 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" +#: templates/InvenTree/settings/user.html:193 +msgid "Static" msgstr "" #: templates/InvenTree/settings/user.html:202 -msgid "Last Activity" +msgid "You currently do not have any factors set up." msgstr "" -#: templates/InvenTree/settings/user.html:211 -#, python-format -msgid "%(time)s ago (this session)" +#: templates/InvenTree/settings/user.html:209 +msgid "Change factors" msgstr "" -#: templates/InvenTree/settings/user.html:213 -#, python-format -msgid "%(time)s ago" +#: templates/InvenTree/settings/user.html:210 +msgid "Setup multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:224 -msgid "Do you really want to remove the selected email address?" +#: templates/InvenTree/settings/user.html:212 +msgid "Remove multifactor" msgstr "" +#: templates/InvenTree/settings/user.html:219 #: templates/InvenTree/settings/user_display.html:25 msgid "Theme Settings" msgstr "" +#: templates/InvenTree/settings/user.html:227 #: templates/InvenTree/settings/user_display.html:35 msgid "Select theme" msgstr "" +#: templates/InvenTree/settings/user.html:237 #: templates/InvenTree/settings/user_display.html:46 msgid "Set Theme" msgstr "" +#: templates/InvenTree/settings/user.html:246 #: templates/InvenTree/settings/user_display.html:54 msgid "Language Settings" msgstr "" +#: templates/InvenTree/settings/user.html:254 #: templates/InvenTree/settings/user_display.html:63 msgid "Select language" msgstr "" +#: templates/InvenTree/settings/user.html:270 #: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" +#: templates/InvenTree/settings/user.html:272 #: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" +#: templates/InvenTree/settings/user.html:279 #: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" +#: templates/InvenTree/settings/user.html:281 #: templates/InvenTree/settings/user_display.html:91 msgid "Some languages are not complete" msgstr "" +#: templates/InvenTree/settings/user.html:283 #: 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.html:285 #: templates/InvenTree/settings/user_display.html:95 msgid "Show them too" msgstr "" +#: templates/InvenTree/settings/user.html:292 #: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" +#: templates/InvenTree/settings/user.html:293 +#, python-format +msgid "Native language translation of the\n" +" InvenTree web application is community contributed via crowdin. Contributions are\n" +" welcomed and encouraged." +msgstr "" + +#: templates/InvenTree/settings/user.html:302 +msgid "Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:308 +msgid "Log out active sessions (except this one)" +msgstr "" + +#: templates/InvenTree/settings/user.html:309 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:318 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:319 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:323 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:324 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:325 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:334 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:336 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:348 +msgid "Do you really want to remove the selected email address?" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +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." @@ -6830,7 +6889,7 @@ msgid "InvenTree Version Information" msgstr "" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53 +#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53 #: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662 #: templates/js/translated/modals.js:965 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 @@ -7006,6 +7065,71 @@ msgstr "" msgid "View in administration panel" msgstr "" +#: templates/allauth_2fa/authenticate.html:5 +msgid "Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:12 +msgid "Authenticate" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:6 +msgid "Two-Factor Authentication Backup Tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:17 +msgid "Backup tokens have been generated, but are not revealed here for security reasons. Press the button below to generate new ones." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:20 +msgid "No tokens. Press the button below to generate some." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:27 +msgid "Generate backup tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:31 +#: templates/allauth_2fa/setup.html:40 +msgid "back to settings" +msgstr "" + +#: templates/allauth_2fa/remove.html:6 +msgid "Disable Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/remove.html:9 +msgid "Are you sure?" +msgstr "" + +#: templates/allauth_2fa/remove.html:14 +msgid "Disable Two-Factor" +msgstr "" + +#: templates/allauth_2fa/setup.html:6 +msgid "Setup Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/setup.html:10 +msgid "Step 1" +msgstr "" + +#: templates/allauth_2fa/setup.html:14 +msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." +msgstr "" + +#: templates/allauth_2fa/setup.html:23 +msgid "Step 2" +msgstr "" + +#: templates/allauth_2fa/setup.html:27 +msgid "Input a token generated by the app:" +msgstr "" + +#: templates/allauth_2fa/setup.html:35 +msgid "Verify" +msgstr "" + #: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 msgid "Add Link" msgstr "" @@ -7044,13 +7168,13 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:1103 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134 +#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1134 #: templates/js/translated/build.js:1755 #: templates/js/translated/table_filters.js:178 msgid "Available" @@ -7239,7 +7363,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018 msgid "Remove stock item" msgstr "" @@ -7281,91 +7405,153 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:184 +#: templates/js/translated/bom.js:36 +msgid "Download BOM Template" +msgstr "" + +#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510 +msgid "Format" +msgstr "" + +#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511 +msgid "Select file format" +msgstr "" + +#: templates/js/translated/bom.js:81 +msgid "Cascading" +msgstr "Kaskadowe" + +#: templates/js/translated/bom.js:82 +msgid "Download cascading / multi-level BOM" +msgstr "" + +#: templates/js/translated/bom.js:87 +msgid "Levels" +msgstr "Poziomy" + +#: templates/js/translated/bom.js:88 +msgid "Select maximum number of BOM levels to export (0 = all levels)" +msgstr "" + +#: templates/js/translated/bom.js:94 +msgid "Include Parameter Data" +msgstr "" + +#: templates/js/translated/bom.js:95 +msgid "Include part parameter data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:100 +msgid "Include Stock Data" +msgstr "" + +#: templates/js/translated/bom.js:101 +msgid "Include part stock data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:106 +msgid "Include Manufacturer Data" +msgstr "" + +#: templates/js/translated/bom.js:107 +msgid "Include part manufacturer data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:112 +msgid "Include Supplier Data" +msgstr "" + +#: templates/js/translated/bom.js:113 +msgid "Include part supplier data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:296 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:228 +#: templates/js/translated/bom.js:340 msgid "Select and add a new variant item using the input below" msgstr "" -#: templates/js/translated/bom.js:239 +#: templates/js/translated/bom.js:351 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:245 +#: templates/js/translated/bom.js:357 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:284 +#: templates/js/translated/bom.js:396 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:285 +#: templates/js/translated/bom.js:397 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:404 +#: templates/js/translated/bom.js:516 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116 +#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1116 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:413 +#: templates/js/translated/bom.js:525 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:485 +#: templates/js/translated/bom.js:597 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:500 +#: templates/js/translated/bom.js:612 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:507 +#: templates/js/translated/bom.js:619 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645 +#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:616 +#: templates/js/translated/bom.js:728 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:618 +#: templates/js/translated/bom.js:730 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:620 +#: templates/js/translated/bom.js:732 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796 +#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779 +#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860 +#: templates/js/translated/bom.js:830 templates/js/translated/build.js:860 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:774 +#: templates/js/translated/bom.js:886 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100 +#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1100 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:996 +#: templates/js/translated/bom.js:1108 msgid "Inherited from parent BOM" msgstr "" @@ -7464,7 +7650,7 @@ msgstr "Przydzielono" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1199 templates/stock_table.html:52 +#: templates/js/translated/build.js:1199 templates/stock_table.html:53 msgid "Order stock" msgstr "" @@ -7509,9 +7695,9 @@ msgstr "" msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147 -#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333 -#: templates/js/translated/stock.js:2128 +#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1149 +#: templates/js/translated/part.js:1560 templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:2321 msgid "Select" msgstr "" @@ -7519,7 +7705,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347 +#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2540 msgid "No user information" msgstr "" @@ -7682,20 +7868,20 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1078 templates/modals.html:19 +#: templates/js/translated/forms.js:1080 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1469 +#: templates/js/translated/forms.js:1471 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1673 +#: templates/js/translated/forms.js:1675 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1893 +#: templates/js/translated/forms.js:1895 msgid "Clear input" msgstr "" @@ -7708,7 +7894,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:863 +#: templates/js/translated/stock.js:1042 msgid "Select Stock Items" msgstr "" @@ -7888,14 +8074,6 @@ msgstr "" msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509 -msgid "Format" -msgstr "" - -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510 -msgid "Select file format" -msgstr "" - #: templates/js/translated/order.js:460 msgid "Select Line Items" msgstr "" @@ -7908,7 +8086,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123 msgid "Stock Status" msgstr "" @@ -7957,7 +8135,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163 -#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986 +#: templates/js/translated/part.js:1777 templates/js/translated/part.js:1988 msgid "Unit Price" msgstr "Cena jednostkowa" @@ -8042,7 +8220,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1249 +#: templates/js/translated/stock.js:1428 msgid "Shipped to customer" msgstr "" @@ -8206,92 +8384,92 @@ msgstr "" msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:946 +#: templates/js/translated/part.js:948 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:970 +#: templates/js/translated/part.js:972 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1037 templates/js/translated/part.js:1297 +#: templates/js/translated/part.js:1039 templates/js/translated/part.js:1299 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1207 +#: templates/js/translated/part.js:1209 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1230 +#: templates/js/translated/part.js:1232 #: templates/js/translated/table_filters.js:412 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493 -#: templates/js/translated/stock.js:2089 +#: templates/js/translated/part.js:1323 templates/js/translated/part.js:1495 +#: templates/js/translated/stock.js:2282 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1337 +#: templates/js/translated/part.js:1339 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108 +#: templates/js/translated/part.js:1514 templates/js/translated/stock.js:2301 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1576 +#: templates/js/translated/part.js:1578 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152 +#: templates/js/translated/part.js:1592 templates/js/translated/stock.js:2345 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1634 +#: templates/js/translated/part.js:1636 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055 +#: templates/js/translated/part.js:1687 templates/js/translated/stock.js:1234 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056 +#: templates/js/translated/part.js:1688 templates/js/translated/stock.js:1235 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1692 +#: templates/js/translated/part.js:1694 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1714 +#: templates/js/translated/part.js:1716 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1728 +#: templates/js/translated/part.js:1730 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1753 +#: templates/js/translated/part.js:1755 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1808 +#: templates/js/translated/part.js:1810 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1809 +#: templates/js/translated/part.js:1811 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1910 +#: templates/js/translated/part.js:1912 msgid "Single Price" msgstr "Cena jednostkowa" -#: templates/js/translated/part.js:1929 +#: templates/js/translated/part.js:1931 msgid "Single Price Difference" msgstr "" @@ -8365,316 +8543,340 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:72 +#: templates/js/translated/stock.js:73 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173 msgid "Next available serial number" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174 +#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175 msgid "Latest serial number" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:101 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:109 +#: templates/js/translated/stock.js:110 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:145 +#: templates/js/translated/stock.js:146 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:185 +#: templates/js/translated/stock.js:186 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:224 +#: templates/js/translated/stock.js:225 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:231 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:373 +#: templates/js/translated/stock.js:374 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:386 +#: templates/js/translated/stock.js:387 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:411 +#: templates/js/translated/stock.js:412 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416 +#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:432 +#: templates/js/translated/stock.js:433 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:452 +#: templates/js/translated/stock.js:453 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:506 +#: templates/js/translated/stock.js:507 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:517 +#: templates/js/translated/stock.js:518 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:518 +#: templates/js/translated/stock.js:519 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:627 +#: templates/js/translated/stock.js:628 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:628 +#: templates/js/translated/stock.js:629 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:713 +#: templates/js/translated/stock.js:706 +msgid "Warning: Merge operation cannot be reversed" +msgstr "" + +#: templates/js/translated/stock.js:707 +msgid "Some information will be lost when merging stock items" +msgstr "" + +#: templates/js/translated/stock.js:709 +msgid "Stock transaction history will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:710 +msgid "Supplier part information will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:796 +msgid "Confirm stock item merge" +msgstr "" + +#: templates/js/translated/stock.js:797 +msgid "Merge Stock Items" +msgstr "" + +#: templates/js/translated/stock.js:892 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:893 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:899 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:721 +#: templates/js/translated/stock.js:900 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:725 +#: templates/js/translated/stock.js:904 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:726 +#: templates/js/translated/stock.js:905 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:730 +#: templates/js/translated/stock.js:909 msgid "Add Stock" msgstr "Dodaj stan" -#: templates/js/translated/stock.js:731 users/models.py:202 +#: templates/js/translated/stock.js:910 users/models.py:205 msgid "Add" msgstr "Dodaj" -#: templates/js/translated/stock.js:735 templates/stock_table.html:57 +#: templates/js/translated/stock.js:914 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:864 +#: templates/js/translated/stock.js:1043 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1022 +#: templates/js/translated/stock.js:1201 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1024 +#: templates/js/translated/stock.js:1203 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1029 +#: templates/js/translated/stock.js:1208 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1230 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1077 +#: templates/js/translated/stock.js:1256 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1134 +#: templates/js/translated/stock.js:1313 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1420 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1245 +#: templates/js/translated/stock.js:1424 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1432 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1259 +#: templates/js/translated/stock.js:1438 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1417 +#: templates/js/translated/stock.js:1596 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1422 +#: templates/js/translated/stock.js:1601 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1425 +#: templates/js/translated/stock.js:1604 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1429 +#: templates/js/translated/stock.js:1608 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1431 +#: templates/js/translated/stock.js:1610 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1437 +#: templates/js/translated/stock.js:1616 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1618 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1441 +#: templates/js/translated/stock.js:1620 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1625 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1453 +#: templates/js/translated/stock.js:1632 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1455 +#: templates/js/translated/stock.js:1634 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1457 +#: templates/js/translated/stock.js:1636 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1461 +#: templates/js/translated/stock.js:1640 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1511 +#: templates/js/translated/stock.js:1690 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1584 +#: templates/js/translated/stock.js:1763 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1622 +#: templates/js/translated/stock.js:1801 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691 +#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1731 +#: templates/js/translated/stock.js:1910 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1758 +#: templates/js/translated/stock.js:1937 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1760 +#: templates/js/translated/stock.js:1939 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2138 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1959 +#: templates/js/translated/stock.js:2152 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1960 +#: templates/js/translated/stock.js:2153 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2377 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2206 +#: templates/js/translated/stock.js:2399 msgid "Details" msgstr "Szczegóły" -#: templates/js/translated/stock.js:2231 +#: templates/js/translated/stock.js:2424 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2250 +#: templates/js/translated/stock.js:2443 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2269 +#: templates/js/translated/stock.js:2462 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2480 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2310 +#: templates/js/translated/stock.js:2503 msgid "Added" msgstr "Dodano" -#: templates/js/translated/stock.js:2318 +#: templates/js/translated/stock.js:2511 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2552 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2360 +#: templates/js/translated/stock.js:2553 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2411 +#: templates/js/translated/stock.js:2604 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2462 +#: templates/js/translated/stock.js:2655 msgid "Uninstall Stock Item" msgstr "" @@ -9059,18 +9261,26 @@ msgid "Move stock" msgstr "" #: templates/stock_table.html:52 +msgid "Merge selected stock items" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Merge stock" +msgstr "" + +#: templates/stock_table.html:53 msgid "Order selected items" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change status" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change stock status" msgstr "" -#: templates/stock_table.html:57 +#: templates/stock_table.html:58 msgid "Delete selected items" msgstr "" @@ -9106,35 +9316,35 @@ msgstr "Uprawnienia" msgid "Important dates" msgstr "" -#: users/models.py:189 +#: users/models.py:192 msgid "Permission set" msgstr "Uprawnienia nadane" -#: users/models.py:197 +#: users/models.py:200 msgid "Group" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "View" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "Permission to view items" msgstr "Uprawnienie do wyświetlania przedmiotów" -#: users/models.py:202 +#: users/models.py:205 msgid "Permission to add items" msgstr "Uprawnienie do dodawania przedmiotów" -#: users/models.py:204 +#: users/models.py:207 msgid "Change" msgstr "" -#: users/models.py:204 +#: users/models.py:207 msgid "Permissions to edit items" msgstr "Uprawnienie do edycji przedmiotów" -#: users/models.py:206 +#: users/models.py:209 msgid "Permission to delete items" msgstr "Uprawnienie do usuwania przedmiotów" diff --git a/InvenTree/locale/pt/LC_MESSAGES/django.po b/InvenTree/locale/pt/LC_MESSAGES/django.po index 5b636802e5..900d7cf186 100644 --- a/InvenTree/locale/pt/LC_MESSAGES/django.po +++ b/InvenTree/locale/pt/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-12-08 23:43+0000\n" -"PO-Revision-Date: 2021-12-08 23:47\n" +"POT-Creation-Date: 2021-12-21 02:57+0000\n" +"PO-Revision-Date: 2021-12-21 03:01\n" "Last-Translator: \n" "Language-Team: Portuguese\n" "Language: pt_PT\n" @@ -34,50 +34,50 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93 +#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 build/forms.py:93 #: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: part/forms.py:108 templates/account/email_confirm.html:20 +#: part/forms.py:78 templates/account/email_confirm.html:20 #: templates/js/translated/forms.js:595 msgid "Confirm" msgstr "" -#: InvenTree/forms.py:136 +#: InvenTree/forms.py:142 msgid "Confirm delete" msgstr "" -#: InvenTree/forms.py:137 +#: InvenTree/forms.py:143 msgid "Confirm item deletion" msgstr "" -#: InvenTree/forms.py:168 +#: InvenTree/forms.py:174 msgid "Enter password" msgstr "" -#: InvenTree/forms.py:169 +#: InvenTree/forms.py:175 msgid "Enter new password" msgstr "" -#: InvenTree/forms.py:176 +#: InvenTree/forms.py:182 msgid "Confirm password" msgstr "" -#: InvenTree/forms.py:177 +#: InvenTree/forms.py:183 msgid "Confirm new password" msgstr "" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:215 msgid "Select Category" msgstr "" -#: InvenTree/forms.py:230 +#: InvenTree/forms.py:236 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:234 +#: InvenTree/forms.py:240 msgid "Email address confirmation" msgstr "" -#: InvenTree/forms.py:254 +#: InvenTree/forms.py:260 msgid "You must type the same email each time." msgstr "" @@ -123,7 +123,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:132 stock/models.py:1852 +#: InvenTree/models.py:132 stock/models.py:1967 #: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "" @@ -136,12 +136,12 @@ msgstr "" #: company/models.py:564 order/models.py:124 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:1258 +#: templates/js/translated/company.js:826 templates/js/translated/part.js:1260 msgid "Link" msgstr "" #: InvenTree/models.py:140 build/models.py:330 part/models.py:798 -#: stock/models.py:524 +#: stock/models.py:527 msgid "Link to external URL" msgstr "" @@ -153,10 +153,10 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213 -#: common/models.py:1214 part/models.py:2205 part/models.py:2225 +#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1219 +#: common/models.py:1220 part/models.py:2205 part/models.py:2225 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2341 +#: templates/js/translated/stock.js:2534 msgid "User" msgstr "" @@ -202,8 +202,8 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:268 #: templates/js/translated/company.js:638 templates/js/translated/part.js:506 -#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565 -#: templates/js/translated/stock.js:2134 +#: templates/js/translated/part.js:643 templates/js/translated/part.js:1567 +#: templates/js/translated/stock.js:2327 msgid "Name" msgstr "" @@ -212,23 +212,23 @@ msgstr "" #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70 +#: order/models.py:122 part/models.py:764 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:89 +#: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428 +#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540 #: templates/js/translated/build.js:1627 templates/js/translated/company.js:345 #: templates/js/translated/company.js:548 #: templates/js/translated/company.js:837 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 -#: templates/js/translated/part.js:565 templates/js/translated/part.js:933 -#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188 -#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653 -#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146 -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/part.js:565 templates/js/translated/part.js:935 +#: templates/js/translated/part.js:1020 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1586 templates/js/translated/part.js:1655 +#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339 +#: templates/js/translated/stock.js:2384 msgid "Description" msgstr "" @@ -248,83 +248,83 @@ msgstr "" msgid "Filename" msgstr "" -#: InvenTree/settings.py:689 +#: InvenTree/settings.py:698 msgid "German" msgstr "" -#: InvenTree/settings.py:690 +#: InvenTree/settings.py:699 msgid "Greek" msgstr "" -#: InvenTree/settings.py:691 +#: InvenTree/settings.py:700 msgid "English" msgstr "" -#: InvenTree/settings.py:692 +#: InvenTree/settings.py:701 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:693 +#: InvenTree/settings.py:702 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:694 +#: InvenTree/settings.py:703 msgid "French" msgstr "" -#: InvenTree/settings.py:695 +#: InvenTree/settings.py:704 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:696 +#: InvenTree/settings.py:705 msgid "Italian" msgstr "" -#: InvenTree/settings.py:697 +#: InvenTree/settings.py:706 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:698 +#: InvenTree/settings.py:707 msgid "Korean" msgstr "" -#: InvenTree/settings.py:699 +#: InvenTree/settings.py:708 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:700 +#: InvenTree/settings.py:709 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:701 +#: InvenTree/settings.py:710 msgid "Polish" msgstr "" -#: InvenTree/settings.py:702 +#: InvenTree/settings.py:711 msgid "Portugese" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:712 msgid "Russian" msgstr "" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:713 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:714 msgid "Thai" msgstr "" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:715 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:716 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:717 msgid "Chinese" msgstr "" @@ -341,7 +341,7 @@ msgid "InvenTree system health checks failed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 msgid "Pending" msgstr "" @@ -349,14 +349,14 @@ msgstr "" msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:319 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:313 +#: InvenTree/status_codes.py:318 msgid "Cancelled" msgstr "" @@ -370,7 +370,7 @@ msgstr "" msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:143 order/models.py:939 +#: InvenTree/status_codes.py:143 order/models.py:941 #: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255 msgid "Shipped" msgstr "" @@ -395,83 +395,87 @@ msgstr "" msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:269 +#: InvenTree/status_codes.py:272 msgid "Legacy stock tracking entry" msgstr "" -#: InvenTree/status_codes.py:271 +#: InvenTree/status_codes.py:274 msgid "Stock item created" msgstr "" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Edited stock item" msgstr "" -#: InvenTree/status_codes.py:274 +#: InvenTree/status_codes.py:277 msgid "Assigned serial number" msgstr "" -#: InvenTree/status_codes.py:276 +#: InvenTree/status_codes.py:279 msgid "Stock counted" msgstr "" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Stock manually added" msgstr "" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Stock manually removed" msgstr "" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Location changed" msgstr "" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Installed into assembly" msgstr "" -#: InvenTree/status_codes.py:283 +#: InvenTree/status_codes.py:286 msgid "Removed from assembly" msgstr "" -#: InvenTree/status_codes.py:285 +#: InvenTree/status_codes.py:288 msgid "Installed component item" msgstr "" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Removed component item" msgstr "" -#: InvenTree/status_codes.py:288 +#: InvenTree/status_codes.py:291 msgid "Split from parent item" msgstr "" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064 +msgid "Merged stock items" +msgstr "" + +#: InvenTree/status_codes.py:296 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:297 msgid "Returned from customer" msgstr "" -#: InvenTree/status_codes.py:294 +#: InvenTree/status_codes.py:299 msgid "Build order output created" msgstr "" -#: InvenTree/status_codes.py:295 +#: InvenTree/status_codes.py:300 msgid "Build order output completed" msgstr "" -#: InvenTree/status_codes.py:297 +#: InvenTree/status_codes.py:302 msgid "Received against purchase order" msgstr "" -#: InvenTree/status_codes.py:312 +#: InvenTree/status_codes.py:317 msgid "Production" msgstr "" @@ -575,16 +579,16 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1283 -#: build/templates/build/build_base.html:132 -#: build/templates/build/detail.html:35 common/models.py:1253 +#: build/forms.py:36 build/models.py:1286 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1259 #: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:794 order/models.py:1205 order/serializers.py:810 +#: order/models.py:796 order/models.py:1207 order/serializers.py:810 #: order/templates/order/order_wizard/match_parts.html:30 -#: 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 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:193 +#: part/forms.py:209 part/forms.py:225 part/models.py:2576 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:967 part/templates/part/detail.html:1053 +#: part/templates/part/detail.html:961 part/templates/part/detail.html:1047 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -592,10 +596,10 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:174 -#: stock/templates/stock/item_base.html:255 -#: stock/templates/stock/item_base.html:263 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443 +#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:261 +#: stock/templates/stock/item_base.html:269 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555 #: templates/js/translated/build.js:240 templates/js/translated/build.js:440 #: templates/js/translated/build.js:634 templates/js/translated/build.js:644 #: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367 @@ -604,10 +608,10 @@ msgstr "" #: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 #: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 #: templates/js/translated/order.js:2150 templates/js/translated/part.js:843 -#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919 -#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382 -#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326 -#: templates/js/translated/stock.js:2428 +#: templates/js/translated/part.js:1798 templates/js/translated/part.js:1921 +#: templates/js/translated/part.js:1999 templates/js/translated/stock.js:383 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750 +#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621 msgid "Quantity" msgstr "" @@ -616,8 +620,8 @@ msgid "Enter quantity for build output" msgstr "" #: build/forms.py:41 order/serializers.py:814 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:229 -#: templates/js/translated/stock.js:383 +#: stock/serializers.py:314 templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:384 msgid "Serial Numbers" msgstr "" @@ -661,7 +665,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:145 +#: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" msgstr "" @@ -671,11 +675,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:199 order/models.py:210 order/models.py:536 -#: order/models.py:801 part/models.py:2585 +#: order/models.py:803 part/models.py:2585 #: part/templates/part/bom_upload/match_parts.html:30 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124 +#: templates/js/translated/bom.js:547 templates/js/translated/build.js:1124 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "" @@ -695,7 +699,7 @@ msgstr "" #: build/models.py:225 build/templates/build/build_base.html:77 #: build/templates/build/detail.html:30 company/models.py:705 -#: order/models.py:854 order/models.py:928 +#: order/models.py:856 order/models.py:930 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357 #: part/models.py:2151 part/models.py:2167 part/models.py:2186 #: part/models.py:2203 part/models.py:2305 part/models.py:2427 @@ -706,20 +710,21 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 -#: templates/InvenTree/search.html:86 +#: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214 -#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326 +#: templates/js/translated/bom.js:505 templates/js/translated/build.js:625 #: templates/js/translated/build.js:993 templates/js/translated/build.js:1364 #: templates/js/translated/build.js:1632 templates/js/translated/company.js:489 #: templates/js/translated/company.js:746 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 -#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918 -#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166 -#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747 -#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416 +#: templates/js/translated/order.js:2128 templates/js/translated/part.js:920 +#: templates/js/translated/part.js:1001 templates/js/translated/part.js:1168 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719 +#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:2609 msgid "Part" msgstr "" @@ -776,7 +781,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:285 stock/models.py:528 +#: build/models.py:285 stock/models.py:531 msgid "Batch Code" msgstr "" @@ -830,27 +835,27 @@ msgstr "" #: build/models.py:329 build/templates/build/detail.html:102 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:354 stock/models.py:522 -#: stock/templates/stock/item_base.html:374 +#: part/templates/part/part_base.html:354 stock/models.py:525 +#: stock/templates/stock/item_base.html:372 msgid "External Link" 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:144 order/models.py:803 order/models.py:1049 +#: order/models.py:144 order/models.py:805 order/models.py:1051 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:925 -#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50 +#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594 -#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332 -#: stock/serializers.py:624 stock/serializers.py:711 +#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597 +#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332 +#: stock/serializers.py:638 stock/serializers.py:736 stock/serializers.py:868 #: stock/templates/stock/stock_sidebar.html:21 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711 #: templates/js/translated/company.js:842 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795 msgid "Notes" msgstr "" @@ -883,7 +888,7 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1133 order/models.py:1165 +#: build/models.py:1133 order/models.py:1167 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -891,51 +896,52 @@ msgstr "" msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1193 +#: build/models.py:1196 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1253 stock/templates/stock/item_base.html:346 -#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605 +#: build/models.py:1256 stock/templates/stock/item_base.html:344 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1605 #: templates/navbar.html:35 msgid "Build" msgstr "" -#: build/models.py:1254 +#: build/models.py:1257 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690 -#: order/serializers.py:708 stock/serializers.py:562 +#: build/models.py:1273 build/serializers.py:334 order/serializers.py:690 +#: order/serializers.py:708 stock/serializers.py:576 stock/serializers.py:694 #: stock/templates/stock/item_base.html:8 -#: stock/templates/stock/item_base.html:16 -#: stock/templates/stock/item_base.html:368 +#: stock/templates/stock/item_base.html:22 +#: stock/templates/stock/item_base.html:366 #: templates/js/translated/build.js:413 templates/js/translated/build.js:418 #: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277 +#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:2470 msgid "Stock Item" msgstr "" -#: build/models.py:1271 +#: build/models.py:1274 msgid "Source stock item" msgstr "" -#: build/models.py:1284 +#: build/models.py:1287 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1292 +#: build/models.py:1295 msgid "Install into" msgstr "" -#: build/models.py:1293 +#: build/models.py:1296 msgid "Destination stock item" msgstr "" -#: build/serializers.py:137 build/serializers.py:357 +#: build/serializers.py:137 build/serializers.py:363 msgid "Build Output" msgstr "" @@ -956,16 +962,16 @@ msgid "This build output is not fully allocated" msgstr "" #: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813 -#: stock/templates/stock/item_base.html:314 +#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:729 +#: stock/serializers.py:970 stock/templates/stock/item_base.html:312 #: templates/js/translated/barcode.js:384 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425 #: templates/js/translated/build.js:1032 templates/js/translated/order.js:508 #: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 #: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497 -#: templates/js/translated/stock.js:2218 +#: templates/js/translated/part.js:177 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411 msgid "Location" msgstr "" @@ -975,11 +981,11 @@ msgstr "" #: build/serializers.py:197 build/templates/build/build_base.html:137 #: build/templates/build/detail.html:63 order/models.py:552 -#: order/serializers.py:247 stock/templates/stock/item_base.html:180 +#: order/serializers.py:247 stock/templates/stock/item_base.html:186 #: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661 #: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472 -#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651 +#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637 msgid "Status" msgstr "" @@ -1000,33 +1006,33 @@ msgstr "" msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:319 +#: build/serializers.py:325 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:334 stock/serializers.py:569 +#: build/serializers.py:340 stock/serializers.py:583 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:348 order/models.py:277 order/serializers.py:240 -#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305 +#: build/serializers.py:354 order/models.py:277 order/serializers.py:240 +#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:390 order/serializers.py:741 +#: build/serializers.py:396 order/serializers.py:741 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:396 +#: build/serializers.py:402 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:403 +#: build/serializers.py:409 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:431 order/serializers.py:984 +#: build/serializers.py:437 order/serializers.py:984 msgid "Allocation items must be provided" msgstr "" @@ -1067,33 +1073,33 @@ msgstr "" msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:87 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:96 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:98 +#: build/templates/build/build_base.html:103 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:105 +#: build/templates/build/build_base.html:110 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Stock has not been fully allocated to this Build Order" msgstr "" @@ -1131,12 +1137,12 @@ msgid "Completed" msgstr "" #: build/templates/build/build_base.html:171 -#: build/templates/build/detail.html:95 order/models.py:925 -#: order/models.py:1021 order/templates/order/sales_order_base.html:9 +#: build/templates/build/detail.html:95 order/models.py:927 +#: order/models.py:1023 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:308 +#: stock/templates/stock/item_base.html:306 #: templates/js/translated/order.js:1218 msgid "Sales Order" msgstr "" @@ -1211,7 +1217,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "" @@ -1225,8 +1231,8 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:332 -#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451 +#: stock/templates/stock/item_base.html:330 +#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1278,7 +1284,7 @@ msgstr "" #: build/templates/build/detail.html:185 #: company/templates/company/detail.html:38 #: company/templates/company/detail.html:85 order/views.py:463 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order Parts" msgstr "" @@ -1347,7 +1353,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115 +#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115 #: stock/templates/stock/item.html:205 msgid "Edit Notes" msgstr "" @@ -1489,7 +1495,7 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:340 common/models.py:998 common/models.py:1206 +#: common/models.py:340 common/models.py:1004 common/models.py:1212 msgid "Settings key (must be unique - case insensitive" msgstr "" @@ -1651,7 +1657,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956 +#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:1068 #: templates/js/translated/table_filters.js:168 #: templates/js/translated/table_filters.js:416 msgid "Assembly" @@ -1953,256 +1959,264 @@ msgid "Group to which new users are assigned on registration" msgstr "" #: common/models.py:961 -msgid "Enable URL integration" +msgid "Enforce MFA" msgstr "" #: common/models.py:962 -msgid "Enable plugins to add URL routes" +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:967 +msgid "Enable URL integration" msgstr "" #: common/models.py:968 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:974 msgid "Enable navigation integration" msgstr "" -#: common/models.py:969 +#: common/models.py:975 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:975 +#: common/models.py:981 msgid "Enable global setting integration" msgstr "" -#: common/models.py:976 +#: common/models.py:982 msgid "Enable plugins to integrate into inventree global settings" msgstr "" -#: common/models.py:982 +#: common/models.py:988 msgid "Enable app integration" msgstr "" -#: common/models.py:983 +#: common/models.py:989 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1029 +#: common/models.py:1035 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1030 +#: common/models.py:1036 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1035 +#: common/models.py:1041 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1036 +#: common/models.py:1042 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1041 +#: common/models.py:1047 msgid "Show latest parts" msgstr "" -#: common/models.py:1042 +#: common/models.py:1048 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1047 +#: common/models.py:1053 msgid "Recent Part Count" msgstr "" -#: common/models.py:1048 +#: common/models.py:1054 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1054 +#: common/models.py:1060 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1055 +#: common/models.py:1061 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1060 +#: common/models.py:1066 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1061 +#: common/models.py:1067 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1066 +#: common/models.py:1072 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1067 +#: common/models.py:1073 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1072 +#: common/models.py:1078 msgid "Show low stock" msgstr "" -#: common/models.py:1073 +#: common/models.py:1079 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1078 +#: common/models.py:1084 msgid "Show depleted stock" msgstr "" -#: common/models.py:1079 +#: common/models.py:1085 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1084 +#: common/models.py:1090 msgid "Show needed stock" msgstr "" -#: common/models.py:1085 +#: common/models.py:1091 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1090 +#: common/models.py:1096 msgid "Show expired stock" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1096 +#: common/models.py:1102 msgid "Show stale stock" msgstr "" -#: common/models.py:1097 +#: common/models.py:1103 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1102 +#: common/models.py:1108 msgid "Show pending builds" msgstr "" -#: common/models.py:1103 +#: common/models.py:1109 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1108 +#: common/models.py:1114 msgid "Show overdue builds" msgstr "" -#: common/models.py:1109 +#: common/models.py:1115 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1114 +#: common/models.py:1120 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1115 +#: common/models.py:1121 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1120 +#: common/models.py:1126 msgid "Show overdue POs" msgstr "" -#: common/models.py:1121 +#: common/models.py:1127 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1126 +#: common/models.py:1132 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1127 +#: common/models.py:1133 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1132 +#: common/models.py:1138 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1133 +#: common/models.py:1139 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1139 +#: common/models.py:1145 msgid "Inline label display" msgstr "" -#: common/models.py:1140 +#: common/models.py:1146 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1146 +#: common/models.py:1152 msgid "Inline report display" msgstr "" -#: common/models.py:1147 +#: common/models.py:1153 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "Search Preview Results" msgstr "" -#: common/models.py:1154 +#: common/models.py:1160 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1160 +#: common/models.py:1166 msgid "Search Show Stock" msgstr "" -#: common/models.py:1161 +#: common/models.py:1167 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1167 +#: common/models.py:1173 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1168 +#: common/models.py:1174 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1174 +#: common/models.py:1180 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1175 +#: common/models.py:1181 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1181 +#: common/models.py:1187 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1182 +#: common/models.py:1188 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1188 +#: common/models.py:1194 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1189 +#: common/models.py:1195 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1254 company/forms.py:43 +#: common/models.py:1260 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1261 company/serializers.py:264 +#: common/models.py:1267 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801 +#: templates/js/translated/part.js:852 templates/js/translated/part.js:1803 msgid "Price" msgstr "" -#: common/models.py:1262 +#: common/models.py:1268 msgid "Unit price at specified quantity" msgstr "" @@ -2290,7 +2304,7 @@ msgid "Contact phone number" msgstr "" #: company/models.py:125 company/templates/company/company_base.html:129 -#: templates/InvenTree/settings/user.html:47 +#: templates/InvenTree/settings/user.html:48 msgid "Email" msgstr "" @@ -2347,8 +2361,8 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:320 company/models.py:535 stock/models.py:468 -#: stock/templates/stock/item_base.html:135 +#: company/models.py:320 company/models.py:535 stock/models.py:469 +#: stock/templates/stock/item_base.html:141 msgid "Base Part" msgstr "" @@ -2359,7 +2373,7 @@ msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:381 +#: stock/templates/stock/item_base.html:379 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:514 #: templates/js/translated/company.js:797 templates/js/translated/part.js:232 @@ -2393,7 +2407,7 @@ msgstr "" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:391 +#: stock/templates/stock/item_base.html:389 msgid "Manufacturer Part" msgstr "" @@ -2403,8 +2417,8 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:1845 templates/js/translated/company.js:644 -#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117 +#: stock/models.py:1960 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1296 msgid "Value" msgstr "" @@ -2431,7 +2445,7 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:224 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219 -#: part/bom.py:247 stock/templates/stock/item_base.html:398 +#: part/bom.py:247 stock/templates/stock/item_base.html:396 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:771 templates/js/translated/order.js:823 #: templates/js/translated/part.js:213 templates/js/translated/part.js:800 @@ -2479,8 +2493,8 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:491 stock/templates/stock/item_base.html:339 -#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612 +#: stock/models.py:493 stock/templates/stock/item_base.html:337 +#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1791 msgid "Packaging" msgstr "" @@ -2506,7 +2520,7 @@ msgstr "" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322 +#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322 msgid "Company" msgstr "" @@ -2548,11 +2562,11 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:83 order/models.py:547 -#: order/templates/order/sales_order_base.html:115 stock/models.py:509 -#: stock/models.py:510 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:291 +#: order/templates/order/sales_order_base.html:115 stock/models.py:512 +#: stock/models.py:513 stock/serializers.py:624 +#: stock/templates/stock/item_base.html:289 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2259 +#: templates/js/translated/stock.js:2452 msgid "Customer" msgstr "" @@ -2571,7 +2585,7 @@ msgstr "" #: company/templates/company/detail.html:15 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:124 +#: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" @@ -2590,14 +2604,14 @@ msgstr "" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:167 part/templates/part/detail.html:342 +#: part/templates/part/category.html:171 part/templates/part/detail.html:342 #: part/templates/part/detail.html:370 msgid "Options" msgstr "" #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order parts" msgstr "" @@ -2611,7 +2625,7 @@ msgstr "" msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109 +#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" @@ -2633,8 +2647,8 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203 +#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" @@ -2655,8 +2669,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223 +#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" @@ -2698,7 +2712,7 @@ msgid "Supplier List" msgstr "" #: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184 +#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 #: templates/navbar.html:46 msgid "Manufacturers" msgstr "" @@ -2706,7 +2720,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:67 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76 msgid "Order part" msgstr "" @@ -2728,7 +2742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 #: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:194 templates/navbar.html:45 +#: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "" @@ -2742,7 +2756,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:254 #: part/templates/part/detail.html:344 part/templates/part/detail.html:372 #: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31 -#: users/models.py:206 +#: users/models.py:209 msgid "Delete" msgstr "" @@ -2765,7 +2779,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:867 +#: part/templates/part/detail.html:861 msgid "Add Parameter" msgstr "" @@ -2794,9 +2808,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:476 -#: stock/templates/stock/item_base.html:403 -#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569 +#: company/templates/company/supplier_part.html:24 stock/models.py:477 +#: stock/templates/stock/item_base.html:401 +#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1748 msgid "Supplier Part" msgstr "" @@ -2816,13 +2830,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:20 stock/templates/stock/location.html:162 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:166 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163 -#: templates/js/translated/stock.js:359 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 +#: templates/js/translated/stock.js:360 msgid "New Stock Item" msgstr "" @@ -2832,7 +2846,7 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:68 +#: part/templates/part/detail.html:72 msgid "Order Part" msgstr "" @@ -2843,7 +2857,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:1717 +#: part/templates/part/prices.html:271 part/views.py:1713 msgid "Add Price Break" msgstr "" @@ -2851,11 +2865,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1779 +#: company/templates/company/supplier_part.html:224 part/views.py:1775 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1765 +#: company/templates/company/supplier_part.html:238 part/views.py:1761 msgid "Edit Price Break" msgstr "" @@ -2869,14 +2883,14 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:156 +#: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434 -#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059 -#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:1401 templates/navbar.html:28 +#: templates/js/translated/bom.js:328 templates/js/translated/part.js:434 +#: templates/js/translated/part.js:569 templates/js/translated/part.js:1061 +#: templates/js/translated/part.js:1222 templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:1580 templates/navbar.html:28 msgid "Stock" msgstr "" @@ -2895,11 +2909,11 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:133 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:159 +#: stock/templates/stock/location.html:137 +#: stock/templates/stock/location.html:151 +#: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "" @@ -2912,7 +2926,7 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:61 templates/InvenTree/search.html:214 +#: company/views.py:61 templates/InvenTree/search.html:208 #: templates/navbar.html:57 msgid "Customers" msgstr "" @@ -3121,7 +3135,7 @@ msgstr "" msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:562 order/models.py:1026 +#: order/models.py:562 order/models.py:1028 #: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429 msgid "Shipment Date" msgstr "" @@ -3130,7 +3144,7 @@ msgstr "" msgid "shipped by" msgstr "" -#: order/models.py:634 +#: order/models.py:635 msgid "Order cannot be completed as no parts have been assigned" msgstr "" @@ -3138,172 +3152,172 @@ msgstr "" msgid "Only a pending order can be marked as complete" msgstr "" -#: order/models.py:643 +#: order/models.py:642 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:647 +#: order/models.py:645 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:795 +#: order/models.py:797 msgid "Item quantity" msgstr "" -#: order/models.py:801 +#: order/models.py:803 msgid "Line item reference" msgstr "" -#: order/models.py:803 +#: order/models.py:805 msgid "Line item notes" msgstr "" -#: order/models.py:833 order/models.py:924 order/models.py:1020 +#: order/models.py:835 order/models.py:926 order/models.py:1022 #: templates/js/translated/order.js:1820 msgid "Order" msgstr "" -#: order/models.py:834 order/templates/order/order_base.html:9 +#: order/models.py:836 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:353 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/order.js:801 templates/js/translated/part.js:775 -#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240 +#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433 msgid "Purchase Order" msgstr "" -#: order/models.py:855 +#: order/models.py:857 msgid "Supplier part" msgstr "" -#: order/models.py:862 order/templates/order/order_base.html:163 +#: order/models.py:864 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:847 templates/js/translated/part.js:873 #: templates/js/translated/table_filters.js:317 msgid "Received" msgstr "" -#: order/models.py:863 +#: order/models.py:865 msgid "Number of items received" msgstr "" -#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:360 -#: templates/js/translated/stock.js:1600 +#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:358 +#: templates/js/translated/stock.js:1779 msgid "Purchase Price" msgstr "" -#: order/models.py:871 +#: order/models.py:873 msgid "Unit purchase price" msgstr "" -#: order/models.py:879 +#: order/models.py:881 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:934 part/templates/part/part_pricing.html:112 +#: order/models.py:936 part/templates/part/part_pricing.html:112 #: part/templates/part/prices.html:116 part/templates/part/prices.html:284 msgid "Sale Price" msgstr "" -#: order/models.py:935 +#: order/models.py:937 msgid "Unit sale price" msgstr "" -#: order/models.py:940 +#: order/models.py:942 msgid "Shipped quantity" msgstr "" -#: order/models.py:1027 +#: order/models.py:1029 msgid "Date of shipment" msgstr "" -#: order/models.py:1034 +#: order/models.py:1036 msgid "Checked By" msgstr "" -#: order/models.py:1035 +#: order/models.py:1037 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1043 +#: order/models.py:1045 msgid "Shipment number" msgstr "" -#: order/models.py:1050 +#: order/models.py:1052 msgid "Shipment notes" msgstr "" -#: order/models.py:1057 +#: order/models.py:1059 msgid "Tracking Number" msgstr "" -#: order/models.py:1058 +#: order/models.py:1060 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1068 +#: order/models.py:1070 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1071 +#: order/models.py:1073 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1147 order/models.py:1149 +#: order/models.py:1149 order/models.py:1151 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1153 +#: order/models.py:1155 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1155 +#: order/models.py:1157 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1158 +#: order/models.py:1160 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1162 +#: order/models.py:1164 msgid "StockItem is over-allocated" msgstr "" -#: order/models.py:1168 order/serializers.py:734 +#: order/models.py:1170 order/serializers.py:734 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1171 +#: order/models.py:1173 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1172 +#: order/models.py:1174 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1180 +#: order/models.py:1182 msgid "Line" msgstr "" -#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953 +#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953 #: templates/js/translated/model_renderers.js:251 msgid "Shipment" msgstr "" -#: order/models.py:1189 +#: order/models.py:1191 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1201 +#: order/models.py:1203 msgid "Item" msgstr "" -#: order/models.py:1202 +#: order/models.py:1204 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1205 +#: order/models.py:1207 msgid "Enter stock allocation quantity" msgstr "" @@ -3530,7 +3544,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/build.js:245 templates/js/translated/build.js:1256 #: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:592 +#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761 msgid "Remove row" msgstr "" @@ -3722,7 +3736,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188 +#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1188 msgid "Actions" msgstr "" @@ -3797,24 +3811,24 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:760 +#: part/api.py:777 msgid "Must be greater than zero" msgstr "" -#: part/api.py:764 +#: part/api.py:781 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:779 +#: part/api.py:796 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833 +#: part/api.py:827 part/api.py:831 part/api.py:846 part/api.py:850 msgid "This field is required" msgstr "" #: part/bom.py:125 part/models.py:81 part/models.py:816 -#: part/templates/part/category.html:104 part/templates/part/part_base.html:338 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "" @@ -3822,99 +3836,43 @@ msgstr "" msgid "Available Stock" msgstr "" -#: part/forms.py:63 -msgid "File Format" -msgstr "" - -#: part/forms.py:63 -msgid "Select output file format" -msgstr "" - -#: part/forms.py:65 -msgid "Cascading" -msgstr "" - -#: part/forms.py:65 -msgid "Download cascading / multi-level BOM" -msgstr "" - -#: part/forms.py:67 -msgid "Levels" -msgstr "" - -#: part/forms.py:67 -msgid "Select maximum number of BOM levels to export (0 = all levels)" -msgstr "" - -#: part/forms.py:69 -msgid "Include Parameter Data" -msgstr "" - -#: part/forms.py:69 -msgid "Include part parameters data in exported BOM" -msgstr "" - -#: part/forms.py:71 -msgid "Include Stock Data" -msgstr "" - -#: part/forms.py:71 -msgid "Include part stock data in exported BOM" -msgstr "" - -#: part/forms.py:73 -msgid "Include Manufacturer Data" -msgstr "" - -#: part/forms.py:73 -msgid "Include part manufacturer data in exported BOM" -msgstr "" - -#: part/forms.py:75 -msgid "Include Supplier Data" -msgstr "" - -#: part/forms.py:75 -msgid "Include part supplier data in exported BOM" -msgstr "" - -#: part/forms.py:96 part/models.py:2427 +#: part/forms.py:66 part/models.py:2427 msgid "Parent Part" msgstr "" -#: part/forms.py:97 part/templates/part/bom_duplicate.html:7 +#: part/forms.py:67 part/templates/part/bom_duplicate.html:7 msgid "Select parent part to copy BOM from" msgstr "" -#: part/forms.py:103 +#: part/forms.py:73 msgid "Clear existing BOM items" msgstr "" -#: part/forms.py:109 +#: part/forms.py:79 msgid "Confirm BOM duplication" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "validate" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "Confirm that the BOM is correct" msgstr "" -#: part/forms.py:163 +#: part/forms.py:133 msgid "Select part category" msgstr "" -#: part/forms.py:200 +#: part/forms.py:170 msgid "Add parameter template to same level categories" msgstr "" -#: part/forms.py:204 +#: part/forms.py:174 msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:224 +#: part/forms.py:194 msgid "Input quantity for price calculation" msgstr "" @@ -3930,24 +3888,24 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11 +#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:96 part/templates/part/category.html:124 -#: templates/InvenTree/search.html:101 templates/stats.html:84 +#: part/models.py:96 part/templates/part/category.html:128 +#: templates/InvenTree/search.html:95 templates/stats.html:84 #: users/models.py:40 msgid "Part Categories" msgstr "" #: part/models.py:358 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:13 part/templates/part/category.html:129 -#: part/templates/part/category.html:149 +#: part/templates/part/category.html:17 part/templates/part/category.html:133 +#: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1597 templates/navbar.html:21 +#: templates/js/translated/part.js:1599 templates/navbar.html:21 #: templates/stats.html:80 templates/stats.html:89 users/models.py:41 msgid "Parts" msgstr "" @@ -4001,7 +3959,7 @@ msgstr "" msgid "Part description" msgstr "" -#: part/models.py:770 part/templates/part/category.html:82 +#: part/models.py:770 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "" @@ -4014,7 +3972,7 @@ msgstr "" #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 #: templates/InvenTree/settings/settings.html:172 -#: templates/js/translated/part.js:1202 +#: templates/js/translated/part.js:1204 msgid "Category" msgstr "" @@ -4023,8 +3981,8 @@ msgid "Part category" msgstr "" #: part/models.py:784 part/templates/part/part_base.html:274 -#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155 -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/part.js:557 templates/js/translated/part.js:1157 +#: templates/js/translated/stock.js:1552 msgid "IPN" msgstr "" @@ -4145,8 +4103,8 @@ msgstr "" msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2310 templates/js/translated/part.js:1648 -#: templates/js/translated/stock.js:1097 +#: part/models.py:2310 templates/js/translated/part.js:1650 +#: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "" @@ -4162,7 +4120,7 @@ msgstr "" msgid "Enter description for this test" msgstr "" -#: part/models.py:2322 templates/js/translated/part.js:1657 +#: part/models.py:2322 templates/js/translated/part.js:1659 #: templates/js/translated/table_filters.js:281 msgid "Required" msgstr "" @@ -4171,7 +4129,7 @@ msgstr "" msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2328 templates/js/translated/part.js:1665 +#: part/models.py:2328 templates/js/translated/part.js:1667 msgid "Requires Value" msgstr "" @@ -4179,7 +4137,7 @@ msgstr "" msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2334 templates/js/translated/part.js:1672 +#: part/models.py:2334 templates/js/translated/part.js:1674 msgid "Requires Attachment" msgstr "" @@ -4241,8 +4199,8 @@ msgstr "" msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2578 templates/js/translated/bom.js:454 -#: templates/js/translated/bom.js:528 +#: part/models.py:2578 templates/js/translated/bom.js:566 +#: templates/js/translated/bom.js:640 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" @@ -4275,8 +4233,8 @@ msgstr "" msgid "BOM line checksum" msgstr "" -#: part/models.py:2594 templates/js/translated/bom.js:545 -#: templates/js/translated/bom.js:552 +#: part/models.py:2594 templates/js/translated/bom.js:657 +#: templates/js/translated/bom.js:664 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" @@ -4286,7 +4244,7 @@ msgstr "" msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2600 templates/js/translated/bom.js:537 +#: part/models.py:2600 templates/js/translated/bom.js:649 msgid "Allow Variants" msgstr "" @@ -4406,100 +4364,100 @@ msgstr "" msgid "This will validate each line in the BOM." msgstr "" -#: part/templates/part/category.html:24 part/templates/part/category.html:28 +#: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:32 +#: part/templates/part/category.html:36 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:38 +#: part/templates/part/category.html:42 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:43 +#: part/templates/part/category.html:47 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:44 +#: part/templates/part/category.html:48 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:52 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:53 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:57 +#: part/templates/part/category.html:61 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:58 +#: part/templates/part/category.html:62 msgid "New Category" msgstr "" -#: part/templates/part/category.html:76 part/templates/part/category.html:89 +#: part/templates/part/category.html:80 part/templates/part/category.html:93 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:90 +#: part/templates/part/category.html:94 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:110 part/templates/part/category.html:201 +#: part/templates/part/category.html:114 part/templates/part/category.html:205 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:115 +#: part/templates/part/category.html:119 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:152 +#: part/templates/part/category.html:156 msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:153 part/templates/part/category.html:177 +#: part/templates/part/category.html:157 part/templates/part/category.html:181 msgid "Export" msgstr "" -#: part/templates/part/category.html:156 +#: part/templates/part/category.html:160 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:157 templates/js/translated/bom.js:40 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 msgid "New Part" msgstr "" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set category" msgstr "" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:175 +#: part/templates/part/category.html:179 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:177 +#: part/templates/part/category.html:181 msgid "Export Data" msgstr "" -#: part/templates/part/category.html:191 +#: part/templates/part/category.html:195 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:268 +#: part/templates/part/category.html:288 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:295 +#: part/templates/part/category.html:315 msgid "Create Part" msgstr "" @@ -4566,24 +4524,24 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:17 +#: part/templates/part/detail.html:21 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:29 +#: part/templates/part/detail.html:33 #, python-format msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:39 +#: part/templates/part/detail.html:43 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:44 +#: part/templates/part/detail.html:48 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:101 +#: part/templates/part/detail.html:105 msgid "Sales Order Allocations" msgstr "" @@ -4619,7 +4577,7 @@ msgstr "" msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:242 +#: part/templates/part/detail.html:242 templates/js/translated/bom.js:70 msgid "Export BOM" msgstr "" @@ -4683,38 +4641,38 @@ msgstr "" msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:651 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:659 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:760 +#: part/templates/part/detail.html:754 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:817 +#: part/templates/part/detail.html:811 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:930 +#: part/templates/part/detail.html:924 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:942 +#: part/templates/part/detail.html:936 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:954 +#: part/templates/part/detail.html:948 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1043 +#: part/templates/part/detail.html:1037 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4745,20 +4703,20 @@ msgid "Subscribe to notifications for this part" msgstr "" #: part/templates/part/part_base.html:43 -#: stock/templates/stock/item_base.html:28 -#: stock/templates/stock/location.html:29 +#: stock/templates/stock/item_base.html:34 +#: stock/templates/stock/location.html:33 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:45 -#: stock/templates/stock/item_base.html:32 -#: stock/templates/stock/location.html:31 templates/qr_button.html:1 +#: stock/templates/stock/item_base.html:38 +#: stock/templates/stock/location.html:35 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:48 -#: stock/templates/stock/location.html:32 +#: stock/templates/stock/item_base.html:54 +#: stock/templates/stock/location.html:36 msgid "Print Label" msgstr "" @@ -4767,8 +4725,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:103 -#: stock/templates/stock/location.html:40 +#: stock/templates/stock/item_base.html:109 +#: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "" @@ -4848,7 +4806,7 @@ msgstr "" msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1235 +#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1237 msgid "On Order" msgstr "" @@ -4864,12 +4822,12 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:566 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1066 -#: templates/js/translated/part.js:1239 +#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1068 +#: templates/js/translated/part.js:1241 msgid "Building" msgstr "" @@ -4882,7 +4840,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:159 +#: stock/templates/stock/item_base.html:165 msgid "Search for serial number" msgstr "" @@ -4921,7 +4879,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:520 +#: templates/js/translated/bom.js:632 msgid "No supplier pricing available" msgstr "" @@ -5036,7 +4994,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626 msgid "Supplier Cost" msgstr "" @@ -5058,7 +5016,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1788 +#: part/templates/part/prices.html:215 part/views.py:1784 msgid "Add Internal Price Break" msgstr "" @@ -5078,9 +5036,9 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476 -#: templates/js/translated/part.js:436 templates/js/translated/part.js:1056 -#: templates/js/translated/part.js:1243 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588 +#: templates/js/translated/part.js:436 templates/js/translated/part.js:1058 +#: templates/js/translated/part.js:1245 msgid "No Stock" msgstr "" @@ -5154,67 +5112,67 @@ msgstr "" msgid "Match Parts" msgstr "" -#: part/views.py:1196 +#: part/views.py:1195 msgid "Export Bill of Materials" msgstr "" -#: part/views.py:1248 +#: part/views.py:1244 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1255 +#: part/views.py:1251 msgid "Part was deleted" msgstr "" -#: part/views.py:1264 +#: part/views.py:1260 msgid "Part Pricing" msgstr "" -#: part/views.py:1413 +#: part/views.py:1409 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1423 +#: part/views.py:1419 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1430 +#: part/views.py:1426 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1489 templates/js/translated/part.js:313 +#: part/views.py:1485 templates/js/translated/part.js:313 msgid "Edit Part Category" msgstr "" -#: part/views.py:1527 +#: part/views.py:1523 msgid "Delete Part Category" msgstr "" -#: part/views.py:1533 +#: part/views.py:1529 msgid "Part category was deleted" msgstr "" -#: part/views.py:1542 +#: part/views.py:1538 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1643 +#: part/views.py:1639 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1699 +#: part/views.py:1695 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1721 +#: part/views.py:1717 msgid "Added new price break" msgstr "" -#: part/views.py:1797 +#: part/views.py:1793 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1805 +#: part/views.py:1801 msgid "Delete Internal Price Break" msgstr "" @@ -5388,12 +5346,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:514 stock/templates/stock/item_base.html:149 +#: stock/models.py:517 stock/templates/stock/item_base.html:155 #: templates/js/translated/build.js:238 templates/js/translated/build.js:642 #: templates/js/translated/build.js:1018 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415 msgid "Serial Number" msgstr "" @@ -5402,19 +5360,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:1833 +#: stock/models.py:1948 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:1839 +#: stock/models.py:1954 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:49 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367 msgid "Date" msgstr "" @@ -5432,17 +5390,18 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434 +#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748 +#: templates/js/translated/stock.js:2627 msgid "Serial" msgstr "" -#: stock/api.py:446 +#: stock/api.py:478 msgid "Quantity is required" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571 -#: stock/templates/stock/item_base.html:186 -#: templates/js/translated/stock.js:1522 +#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574 +#: stock/templates/stock/item_base.html:192 +#: templates/js/translated/stock.js:1701 msgid "Expiry Date" msgstr "" @@ -5490,12 +5449,12 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:60 stock/models.py:608 -#: stock/templates/stock/item_base.html:417 +#: stock/models.py:60 stock/models.py:611 +#: stock/templates/stock/item_base.html:415 msgid "Owner" msgstr "" -#: stock/models.py:61 stock/models.py:609 +#: stock/models.py:61 stock/models.py:612 msgid "Select Owner" msgstr "" @@ -5528,150 +5487,190 @@ msgstr "" msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:460 +#: stock/models.py:461 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:470 msgid "Base part" msgstr "" -#: stock/models.py:477 +#: stock/models.py:478 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:482 stock/templates/stock/location.html:12 +#: stock/models.py:484 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:485 +#: stock/models.py:487 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:492 +#: stock/models.py:494 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:497 stock/templates/stock/item_base.html:299 +#: stock/models.py:500 stock/templates/stock/item_base.html:297 msgid "Installed In" msgstr "" -#: stock/models.py:500 +#: stock/models.py:503 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:516 +#: stock/models.py:519 msgid "Serial number for this item" msgstr "" -#: stock/models.py:530 +#: stock/models.py:533 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:534 +#: stock/models.py:537 msgid "Stock Quantity" msgstr "" -#: stock/models.py:543 +#: stock/models.py:546 msgid "Source Build" msgstr "" -#: stock/models.py:545 +#: stock/models.py:548 msgid "Build for this stock item" msgstr "" -#: stock/models.py:556 +#: stock/models.py:559 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:559 +#: stock/models.py:562 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:565 +#: stock/models.py:568 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:572 +#: stock/models.py:575 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete on deplete" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:595 stock/templates/stock/item.html:111 +#: stock/models.py:598 stock/templates/stock/item.html:111 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:604 +#: stock/models.py:607 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1072 +#: stock/models.py:1068 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1078 +#: stock/models.py:1074 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1084 +#: stock/models.py:1080 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1087 +#: stock/models.py:1083 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1090 +#: stock/models.py:1086 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1097 +#: stock/models.py:1093 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1255 +#: stock/models.py:1164 +msgid "Stock item has been assigned to a sales order" +msgstr "" + +#: stock/models.py:1167 +msgid "Stock item is installed in another item" +msgstr "" + +#: stock/models.py:1170 +msgid "Stock item contains other items" +msgstr "" + +#: stock/models.py:1173 +msgid "Stock item has been assigned to a customer" +msgstr "" + +#: stock/models.py:1176 +msgid "Stock item is currently in production" +msgstr "" + +#: stock/models.py:1179 +msgid "Serialized stock cannot be merged" +msgstr "" + +#: stock/models.py:1186 stock/serializers.py:773 +msgid "Duplicate stock items" +msgstr "" + +#: stock/models.py:1190 +msgid "Stock items must refer to the same part" +msgstr "" + +#: stock/models.py:1194 +msgid "Stock items must refer to the same supplier part" +msgstr "" + +#: stock/models.py:1198 +msgid "Stock status codes must match" +msgstr "" + +#: stock/models.py:1369 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1753 +#: stock/models.py:1868 msgid "Entry notes" msgstr "" -#: stock/models.py:1810 +#: stock/models.py:1925 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1931 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1834 +#: stock/models.py:1949 msgid "Test name" msgstr "" -#: stock/models.py:1840 templates/js/translated/table_filters.js:271 +#: stock/models.py:1955 templates/js/translated/table_filters.js:271 msgid "Test result" msgstr "" -#: stock/models.py:1846 +#: stock/models.py:1961 msgid "Test output value" msgstr "" -#: stock/models.py:1853 +#: stock/models.py:1968 msgid "Test result attachment" msgstr "" -#: stock/models.py:1859 +#: stock/models.py:1974 msgid "Test notes" msgstr "" @@ -5696,7 +5695,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:814 +#: stock/serializers.py:326 stock/serializers.py:730 stock/serializers.py:971 msgid "Destination stock location" msgstr "" @@ -5708,39 +5707,63 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:573 +#: stock/serializers.py:587 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:577 +#: stock/serializers.py:591 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:581 +#: stock/serializers.py:595 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:611 +#: stock/serializers.py:625 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:617 +#: stock/serializers.py:631 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:639 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:635 stock/serializers.py:722 +#: stock/serializers.py:649 stock/serializers.py:879 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:684 +#: stock/serializers.py:737 +msgid "Stock merging notes" +msgstr "" + +#: stock/serializers.py:742 +msgid "Allow mismatched suppliers" +msgstr "" + +#: stock/serializers.py:743 +msgid "Allow stock items with different supplier parts to be merged" +msgstr "" + +#: stock/serializers.py:748 +msgid "Allow mismatched status" +msgstr "" + +#: stock/serializers.py:749 +msgid "Allow stock items with different status codes to be merged" +msgstr "" + +#: stock/serializers.py:759 +msgid "At least two stock items must be provided" +msgstr "" + +#: stock/serializers.py:841 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:712 +#: stock/serializers.py:869 msgid "Stock transaction notes" msgstr "" @@ -5765,7 +5788,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50 +#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:56 msgid "Test Report" msgstr "" @@ -5797,197 +5820,189 @@ msgstr "" msgid "Delete Test Result" msgstr "" -#: stock/templates/stock/item_base.html:35 +#: stock/templates/stock/item_base.html:41 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:37 +#: stock/templates/stock/item_base.html:43 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24 +#: stock/templates/stock/item_base.html:45 templates/stock_table.html:24 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:46 +#: stock/templates/stock/item_base.html:52 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:71 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:47 templates/stock_table.html:50 +#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/location.html:51 templates/stock_table.html:50 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:78 templates/stock_table.html:48 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49 +#: stock/templates/stock/item_base.html:81 templates/stock_table.html:49 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:84 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:53 +#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/location.html:57 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53 +#: stock/templates/stock/item_base.html:91 templates/stock_table.html:54 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:94 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:108 +#: stock/templates/stock/item_base.html:114 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/item_base.html:117 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:119 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:116 +#: stock/templates/stock/item_base.html:122 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/stock.js:1535 +#: stock/templates/stock/item_base.html:205 +#: templates/js/translated/stock.js:1714 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:208 +#: stock/templates/stock/item_base.html:214 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:226 +#: stock/templates/stock/item_base.html:232 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:239 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:234 +#: stock/templates/stock/item_base.html:240 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:247 +#: stock/templates/stock/item_base.html:253 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:261 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:263 +#: stock/templates/stock/item_base.html:269 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:269 +#: stock/templates/stock/item_base.html:275 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:273 -msgid "This stock item cannot be deleted as it has child items" -msgstr "" - -#: stock/templates/stock/item_base.html:277 -msgid "This stock item will be automatically deleted when all stock is depleted." -msgstr "" - -#: stock/templates/stock/item_base.html:318 +#: stock/templates/stock/item_base.html:316 #: templates/js/translated/build.js:1040 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:325 +#: stock/templates/stock/item_base.html:323 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:367 +#: stock/templates/stock/item_base.html:365 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:385 +#: stock/templates/stock/item_base.html:383 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:410 +#: stock/templates/stock/item_base.html:408 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:500 +#: stock/templates/stock/item_base.html:498 msgid "Edit Stock Status" msgstr "" @@ -6041,59 +6056,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:37 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:65 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:67 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:65 +#: stock/templates/stock/location.html:69 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:79 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:76 +#: stock/templates/stock/location.html:80 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:95 -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:99 +#: stock/templates/stock/location.html:105 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:102 +#: stock/templates/stock/location.html:106 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:119 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:175 +#: stock/templates/stock/location.html:132 +#: stock/templates/stock/location.html:179 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:142 templates/InvenTree/search.html:170 +#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "" -#: stock/templates/stock/location.html:182 templates/stock_table.html:30 +#: stock/templates/stock/location.html:186 templates/stock_table.html:30 msgid "Printing Actions" msgstr "" -#: stock/templates/stock/location.html:186 templates/stock_table.html:34 +#: stock/templates/stock/location.html:190 templates/stock_table.html:34 msgid "Print labels" msgstr "" @@ -6178,7 +6193,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:887 +#: stock/views.py:727 templates/js/translated/stock.js:1066 msgid "Confirm stock adjustment" msgstr "" @@ -6186,7 +6201,7 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:323 +#: stock/views.py:760 templates/js/translated/stock.js:324 msgid "Edit Stock Item" msgstr "" @@ -6198,7 +6213,7 @@ msgstr "" msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:303 +#: stock/views.py:1153 templates/js/translated/stock.js:304 msgid "Duplicate Stock Item" msgstr "" @@ -6314,10 +6329,6 @@ msgstr "" msgid "Search Results" msgstr "" -#: templates/InvenTree/search.html:22 -msgid "Enter a search query" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6363,7 +6374,7 @@ msgstr "" msgid "Login Settings" msgstr "" -#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5 +#: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5 msgid "Signup" msgstr "" @@ -6648,7 +6659,7 @@ msgstr "" msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:55 +#: templates/InvenTree/settings/user.html:54 msgid "The following email addresses are associated with your account:" msgstr "" @@ -6673,145 +6684,193 @@ msgid "Re-send Verification" msgstr "" #: templates/InvenTree/settings/user.html:87 -#: templates/InvenTree/settings/user.html:154 +#: templates/InvenTree/settings/user.html:149 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:94 +#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:201 msgid "Warning:" msgstr "" -#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:96 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:102 +#: templates/InvenTree/settings/user.html:104 msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:112 -msgid "Enter e-mail address" -msgstr "" - -#: templates/InvenTree/settings/user.html:114 +#: templates/InvenTree/settings/user.html:109 msgid "Add Email" msgstr "" -#: templates/InvenTree/settings/user.html:124 +#: templates/InvenTree/settings/user.html:117 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:129 +#: templates/InvenTree/settings/user.html:122 msgid "You can sign in to your account using any of the following third party accounts:" msgstr "" -#: templates/InvenTree/settings/user.html:163 -msgid "There are no social network accounts connected to your InvenTree account" +#: templates/InvenTree/settings/user.html:157 +msgid "You currently have no social network accounts connected to this account." msgstr "" -#: templates/InvenTree/settings/user.html:168 +#: templates/InvenTree/settings/user.html:162 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:179 -msgid "Active Sessions" +#: templates/InvenTree/settings/user.html:172 +msgid "Multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:185 -msgid "Log out active sessions (except this one)" +#: templates/InvenTree/settings/user.html:177 +msgid "You have these factors available:" msgstr "" -#: templates/InvenTree/settings/user.html:186 -msgid "Log Out Active Sessions" +#: templates/InvenTree/settings/user.html:187 +msgid "TOTP" 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" +#: templates/InvenTree/settings/user.html:193 +msgid "Static" msgstr "" #: templates/InvenTree/settings/user.html:202 -msgid "Last Activity" +msgid "You currently do not have any factors set up." msgstr "" -#: templates/InvenTree/settings/user.html:211 -#, python-format -msgid "%(time)s ago (this session)" +#: templates/InvenTree/settings/user.html:209 +msgid "Change factors" msgstr "" -#: templates/InvenTree/settings/user.html:213 -#, python-format -msgid "%(time)s ago" +#: templates/InvenTree/settings/user.html:210 +msgid "Setup multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:224 -msgid "Do you really want to remove the selected email address?" +#: templates/InvenTree/settings/user.html:212 +msgid "Remove multifactor" msgstr "" +#: templates/InvenTree/settings/user.html:219 #: templates/InvenTree/settings/user_display.html:25 msgid "Theme Settings" msgstr "" +#: templates/InvenTree/settings/user.html:227 #: templates/InvenTree/settings/user_display.html:35 msgid "Select theme" msgstr "" +#: templates/InvenTree/settings/user.html:237 #: templates/InvenTree/settings/user_display.html:46 msgid "Set Theme" msgstr "" +#: templates/InvenTree/settings/user.html:246 #: templates/InvenTree/settings/user_display.html:54 msgid "Language Settings" msgstr "" +#: templates/InvenTree/settings/user.html:254 #: templates/InvenTree/settings/user_display.html:63 msgid "Select language" msgstr "" +#: templates/InvenTree/settings/user.html:270 #: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" +#: templates/InvenTree/settings/user.html:272 #: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" +#: templates/InvenTree/settings/user.html:279 #: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" +#: templates/InvenTree/settings/user.html:281 #: templates/InvenTree/settings/user_display.html:91 msgid "Some languages are not complete" msgstr "" +#: templates/InvenTree/settings/user.html:283 #: 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.html:285 #: templates/InvenTree/settings/user_display.html:95 msgid "Show them too" msgstr "" +#: templates/InvenTree/settings/user.html:292 #: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" +#: templates/InvenTree/settings/user.html:293 +#, python-format +msgid "Native language translation of the\n" +" InvenTree web application is community contributed via crowdin. Contributions are\n" +" welcomed and encouraged." +msgstr "" + +#: templates/InvenTree/settings/user.html:302 +msgid "Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:308 +msgid "Log out active sessions (except this one)" +msgstr "" + +#: templates/InvenTree/settings/user.html:309 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:318 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:319 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:323 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:324 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:325 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:334 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:336 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:348 +msgid "Do you really want to remove the selected email address?" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +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." @@ -6830,7 +6889,7 @@ msgid "InvenTree Version Information" msgstr "" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53 +#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53 #: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662 #: templates/js/translated/modals.js:965 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 @@ -7006,6 +7065,71 @@ msgstr "" msgid "View in administration panel" msgstr "" +#: templates/allauth_2fa/authenticate.html:5 +msgid "Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:12 +msgid "Authenticate" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:6 +msgid "Two-Factor Authentication Backup Tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:17 +msgid "Backup tokens have been generated, but are not revealed here for security reasons. Press the button below to generate new ones." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:20 +msgid "No tokens. Press the button below to generate some." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:27 +msgid "Generate backup tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:31 +#: templates/allauth_2fa/setup.html:40 +msgid "back to settings" +msgstr "" + +#: templates/allauth_2fa/remove.html:6 +msgid "Disable Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/remove.html:9 +msgid "Are you sure?" +msgstr "" + +#: templates/allauth_2fa/remove.html:14 +msgid "Disable Two-Factor" +msgstr "" + +#: templates/allauth_2fa/setup.html:6 +msgid "Setup Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/setup.html:10 +msgid "Step 1" +msgstr "" + +#: templates/allauth_2fa/setup.html:14 +msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." +msgstr "" + +#: templates/allauth_2fa/setup.html:23 +msgid "Step 2" +msgstr "" + +#: templates/allauth_2fa/setup.html:27 +msgid "Input a token generated by the app:" +msgstr "" + +#: templates/allauth_2fa/setup.html:35 +msgid "Verify" +msgstr "" + #: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 msgid "Add Link" msgstr "" @@ -7044,13 +7168,13 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:1103 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134 +#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1134 #: templates/js/translated/build.js:1755 #: templates/js/translated/table_filters.js:178 msgid "Available" @@ -7239,7 +7363,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018 msgid "Remove stock item" msgstr "" @@ -7281,91 +7405,153 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:184 +#: templates/js/translated/bom.js:36 +msgid "Download BOM Template" +msgstr "" + +#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510 +msgid "Format" +msgstr "" + +#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511 +msgid "Select file format" +msgstr "" + +#: templates/js/translated/bom.js:81 +msgid "Cascading" +msgstr "" + +#: templates/js/translated/bom.js:82 +msgid "Download cascading / multi-level BOM" +msgstr "" + +#: templates/js/translated/bom.js:87 +msgid "Levels" +msgstr "" + +#: templates/js/translated/bom.js:88 +msgid "Select maximum number of BOM levels to export (0 = all levels)" +msgstr "" + +#: templates/js/translated/bom.js:94 +msgid "Include Parameter Data" +msgstr "" + +#: templates/js/translated/bom.js:95 +msgid "Include part parameter data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:100 +msgid "Include Stock Data" +msgstr "" + +#: templates/js/translated/bom.js:101 +msgid "Include part stock data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:106 +msgid "Include Manufacturer Data" +msgstr "" + +#: templates/js/translated/bom.js:107 +msgid "Include part manufacturer data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:112 +msgid "Include Supplier Data" +msgstr "" + +#: templates/js/translated/bom.js:113 +msgid "Include part supplier data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:296 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:228 +#: templates/js/translated/bom.js:340 msgid "Select and add a new variant item using the input below" msgstr "" -#: templates/js/translated/bom.js:239 +#: templates/js/translated/bom.js:351 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:245 +#: templates/js/translated/bom.js:357 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:284 +#: templates/js/translated/bom.js:396 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:285 +#: templates/js/translated/bom.js:397 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:404 +#: templates/js/translated/bom.js:516 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116 +#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1116 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:413 +#: templates/js/translated/bom.js:525 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:485 +#: templates/js/translated/bom.js:597 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:500 +#: templates/js/translated/bom.js:612 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:507 +#: templates/js/translated/bom.js:619 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645 +#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:616 +#: templates/js/translated/bom.js:728 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:618 +#: templates/js/translated/bom.js:730 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:620 +#: templates/js/translated/bom.js:732 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796 +#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779 +#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860 +#: templates/js/translated/bom.js:830 templates/js/translated/build.js:860 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:774 +#: templates/js/translated/bom.js:886 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100 +#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1100 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:996 +#: templates/js/translated/bom.js:1108 msgid "Inherited from parent BOM" msgstr "" @@ -7464,7 +7650,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1199 templates/stock_table.html:52 +#: templates/js/translated/build.js:1199 templates/stock_table.html:53 msgid "Order stock" msgstr "" @@ -7509,9 +7695,9 @@ msgstr "" msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147 -#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333 -#: templates/js/translated/stock.js:2128 +#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1149 +#: templates/js/translated/part.js:1560 templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:2321 msgid "Select" msgstr "" @@ -7519,7 +7705,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347 +#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2540 msgid "No user information" msgstr "" @@ -7682,20 +7868,20 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1078 templates/modals.html:19 +#: templates/js/translated/forms.js:1080 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1469 +#: templates/js/translated/forms.js:1471 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1673 +#: templates/js/translated/forms.js:1675 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1893 +#: templates/js/translated/forms.js:1895 msgid "Clear input" msgstr "" @@ -7708,7 +7894,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:863 +#: templates/js/translated/stock.js:1042 msgid "Select Stock Items" msgstr "" @@ -7888,14 +8074,6 @@ msgstr "" msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509 -msgid "Format" -msgstr "" - -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510 -msgid "Select file format" -msgstr "" - #: templates/js/translated/order.js:460 msgid "Select Line Items" msgstr "" @@ -7908,7 +8086,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123 msgid "Stock Status" msgstr "" @@ -7957,7 +8135,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163 -#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986 +#: templates/js/translated/part.js:1777 templates/js/translated/part.js:1988 msgid "Unit Price" msgstr "" @@ -8042,7 +8220,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1249 +#: templates/js/translated/stock.js:1428 msgid "Shipped to customer" msgstr "" @@ -8206,92 +8384,92 @@ msgstr "" msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:946 +#: templates/js/translated/part.js:948 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:970 +#: templates/js/translated/part.js:972 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1037 templates/js/translated/part.js:1297 +#: templates/js/translated/part.js:1039 templates/js/translated/part.js:1299 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1207 +#: templates/js/translated/part.js:1209 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1230 +#: templates/js/translated/part.js:1232 #: templates/js/translated/table_filters.js:412 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493 -#: templates/js/translated/stock.js:2089 +#: templates/js/translated/part.js:1323 templates/js/translated/part.js:1495 +#: templates/js/translated/stock.js:2282 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1337 +#: templates/js/translated/part.js:1339 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108 +#: templates/js/translated/part.js:1514 templates/js/translated/stock.js:2301 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1576 +#: templates/js/translated/part.js:1578 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152 +#: templates/js/translated/part.js:1592 templates/js/translated/stock.js:2345 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1634 +#: templates/js/translated/part.js:1636 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055 +#: templates/js/translated/part.js:1687 templates/js/translated/stock.js:1234 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056 +#: templates/js/translated/part.js:1688 templates/js/translated/stock.js:1235 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1692 +#: templates/js/translated/part.js:1694 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1714 +#: templates/js/translated/part.js:1716 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1728 +#: templates/js/translated/part.js:1730 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1753 +#: templates/js/translated/part.js:1755 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1808 +#: templates/js/translated/part.js:1810 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1809 +#: templates/js/translated/part.js:1811 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1910 +#: templates/js/translated/part.js:1912 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1929 +#: templates/js/translated/part.js:1931 msgid "Single Price Difference" msgstr "" @@ -8365,316 +8543,340 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:72 +#: templates/js/translated/stock.js:73 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173 msgid "Next available serial number" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174 +#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175 msgid "Latest serial number" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:101 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:109 +#: templates/js/translated/stock.js:110 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:145 +#: templates/js/translated/stock.js:146 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:185 +#: templates/js/translated/stock.js:186 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:224 +#: templates/js/translated/stock.js:225 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:231 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:373 +#: templates/js/translated/stock.js:374 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:386 +#: templates/js/translated/stock.js:387 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:411 +#: templates/js/translated/stock.js:412 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416 +#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:432 +#: templates/js/translated/stock.js:433 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:452 +#: templates/js/translated/stock.js:453 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:506 +#: templates/js/translated/stock.js:507 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:517 +#: templates/js/translated/stock.js:518 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:518 +#: templates/js/translated/stock.js:519 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:627 +#: templates/js/translated/stock.js:628 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:628 +#: templates/js/translated/stock.js:629 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:713 +#: templates/js/translated/stock.js:706 +msgid "Warning: Merge operation cannot be reversed" +msgstr "" + +#: templates/js/translated/stock.js:707 +msgid "Some information will be lost when merging stock items" +msgstr "" + +#: templates/js/translated/stock.js:709 +msgid "Stock transaction history will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:710 +msgid "Supplier part information will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:796 +msgid "Confirm stock item merge" +msgstr "" + +#: templates/js/translated/stock.js:797 +msgid "Merge Stock Items" +msgstr "" + +#: templates/js/translated/stock.js:892 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:893 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:899 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:721 +#: templates/js/translated/stock.js:900 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:725 +#: templates/js/translated/stock.js:904 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:726 +#: templates/js/translated/stock.js:905 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:730 +#: templates/js/translated/stock.js:909 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:731 users/models.py:202 +#: templates/js/translated/stock.js:910 users/models.py:205 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:735 templates/stock_table.html:57 +#: templates/js/translated/stock.js:914 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:864 +#: templates/js/translated/stock.js:1043 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1022 +#: templates/js/translated/stock.js:1201 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1024 +#: templates/js/translated/stock.js:1203 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1029 +#: templates/js/translated/stock.js:1208 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1230 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1077 +#: templates/js/translated/stock.js:1256 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1134 +#: templates/js/translated/stock.js:1313 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1420 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1245 +#: templates/js/translated/stock.js:1424 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1432 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1259 +#: templates/js/translated/stock.js:1438 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1417 +#: templates/js/translated/stock.js:1596 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1422 +#: templates/js/translated/stock.js:1601 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1425 +#: templates/js/translated/stock.js:1604 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1429 +#: templates/js/translated/stock.js:1608 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1431 +#: templates/js/translated/stock.js:1610 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1437 +#: templates/js/translated/stock.js:1616 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1618 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1441 +#: templates/js/translated/stock.js:1620 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1625 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1453 +#: templates/js/translated/stock.js:1632 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1455 +#: templates/js/translated/stock.js:1634 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1457 +#: templates/js/translated/stock.js:1636 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1461 +#: templates/js/translated/stock.js:1640 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1511 +#: templates/js/translated/stock.js:1690 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1584 +#: templates/js/translated/stock.js:1763 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1622 +#: templates/js/translated/stock.js:1801 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691 +#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1731 +#: templates/js/translated/stock.js:1910 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1758 +#: templates/js/translated/stock.js:1937 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1760 +#: templates/js/translated/stock.js:1939 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2138 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1959 +#: templates/js/translated/stock.js:2152 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1960 +#: templates/js/translated/stock.js:2153 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2377 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2206 +#: templates/js/translated/stock.js:2399 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2231 +#: templates/js/translated/stock.js:2424 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2250 +#: templates/js/translated/stock.js:2443 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2269 +#: templates/js/translated/stock.js:2462 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2480 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2310 +#: templates/js/translated/stock.js:2503 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2318 +#: templates/js/translated/stock.js:2511 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2552 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2360 +#: templates/js/translated/stock.js:2553 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2411 +#: templates/js/translated/stock.js:2604 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2462 +#: templates/js/translated/stock.js:2655 msgid "Uninstall Stock Item" msgstr "" @@ -9059,18 +9261,26 @@ msgid "Move stock" msgstr "" #: templates/stock_table.html:52 +msgid "Merge selected stock items" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Merge stock" +msgstr "" + +#: templates/stock_table.html:53 msgid "Order selected items" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change status" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change stock status" msgstr "" -#: templates/stock_table.html:57 +#: templates/stock_table.html:58 msgid "Delete selected items" msgstr "" @@ -9106,35 +9316,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:189 +#: users/models.py:192 msgid "Permission set" msgstr "" -#: users/models.py:197 +#: users/models.py:200 msgid "Group" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "View" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "Permission to view items" msgstr "" -#: users/models.py:202 +#: users/models.py:205 msgid "Permission to add items" msgstr "" -#: users/models.py:204 +#: users/models.py:207 msgid "Change" msgstr "" -#: users/models.py:204 +#: users/models.py:207 msgid "Permissions to edit items" msgstr "" -#: users/models.py:206 +#: users/models.py:209 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po index 1882f12d21..34c9d0d725 100644 --- a/InvenTree/locale/ru/LC_MESSAGES/django.po +++ b/InvenTree/locale/ru/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-12-08 23:43+0000\n" -"PO-Revision-Date: 2021-12-08 23:47\n" +"POT-Creation-Date: 2021-12-21 02:57+0000\n" +"PO-Revision-Date: 2021-12-21 03:01\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -34,50 +34,50 @@ msgstr "Соответствующее действие не найдено" msgid "Enter date" msgstr "Введите дату" -#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93 +#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 build/forms.py:93 #: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: part/forms.py:108 templates/account/email_confirm.html:20 +#: part/forms.py:78 templates/account/email_confirm.html:20 #: templates/js/translated/forms.js:595 msgid "Confirm" msgstr "Подтвердить" -#: InvenTree/forms.py:136 +#: InvenTree/forms.py:142 msgid "Confirm delete" msgstr "Подтвердите удаление" -#: InvenTree/forms.py:137 +#: InvenTree/forms.py:143 msgid "Confirm item deletion" msgstr "Подтвердите удаление элемента" -#: InvenTree/forms.py:168 +#: InvenTree/forms.py:174 msgid "Enter password" msgstr "Введите пароль" -#: InvenTree/forms.py:169 +#: InvenTree/forms.py:175 msgid "Enter new password" msgstr "Введите новый пароль" -#: InvenTree/forms.py:176 +#: InvenTree/forms.py:182 msgid "Confirm password" msgstr "Подтвердить пароль" -#: InvenTree/forms.py:177 +#: InvenTree/forms.py:183 msgid "Confirm new password" msgstr "Подтвердите новый пароль" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:215 msgid "Select Category" msgstr "Выбрать категорию" -#: InvenTree/forms.py:230 +#: InvenTree/forms.py:236 msgid "Email (again)" msgstr "Email (еще раз)" -#: InvenTree/forms.py:234 +#: InvenTree/forms.py:240 msgid "Email address confirmation" msgstr "Подтверждение адреса электронной почты" -#: InvenTree/forms.py:254 +#: InvenTree/forms.py:260 msgid "You must type the same email each time." msgstr "Вы должны вводить один и тот же адрес электронной почты." @@ -123,7 +123,7 @@ msgstr "Файл не найден" msgid "Missing external link" msgstr "Отсутствует внешняя ссылка" -#: InvenTree/models.py:132 stock/models.py:1852 +#: InvenTree/models.py:132 stock/models.py:1967 #: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "Вложения" @@ -136,12 +136,12 @@ msgstr "Выберите файл для вложения" #: company/models.py:564 order/models.py:124 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:1258 +#: templates/js/translated/company.js:826 templates/js/translated/part.js:1260 msgid "Link" msgstr "Ссылка" #: InvenTree/models.py:140 build/models.py:330 part/models.py:798 -#: stock/models.py:524 +#: stock/models.py:527 msgid "Link to external URL" msgstr "Ссылка на внешний URL" @@ -153,10 +153,10 @@ msgstr "Комментарий" msgid "File comment" msgstr "Комментарий к файлу" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213 -#: common/models.py:1214 part/models.py:2205 part/models.py:2225 +#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1219 +#: common/models.py:1220 part/models.py:2205 part/models.py:2225 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2341 +#: templates/js/translated/stock.js:2534 msgid "User" msgstr "Пользователь" @@ -202,8 +202,8 @@ msgstr "Неверный выбор" #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:268 #: templates/js/translated/company.js:638 templates/js/translated/part.js:506 -#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565 -#: templates/js/translated/stock.js:2134 +#: templates/js/translated/part.js:643 templates/js/translated/part.js:1567 +#: templates/js/translated/stock.js:2327 msgid "Name" msgstr "Название" @@ -212,23 +212,23 @@ msgstr "Название" #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70 +#: order/models.py:122 part/models.py:764 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:89 +#: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428 +#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540 #: templates/js/translated/build.js:1627 templates/js/translated/company.js:345 #: templates/js/translated/company.js:548 #: templates/js/translated/company.js:837 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 -#: templates/js/translated/part.js:565 templates/js/translated/part.js:933 -#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188 -#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653 -#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146 -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/part.js:565 templates/js/translated/part.js:935 +#: templates/js/translated/part.js:1020 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1586 templates/js/translated/part.js:1655 +#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339 +#: templates/js/translated/stock.js:2384 msgid "Description" msgstr "Описание" @@ -248,83 +248,83 @@ msgstr "Должно быть действительным номером" msgid "Filename" msgstr "Имя файла" -#: InvenTree/settings.py:689 +#: InvenTree/settings.py:698 msgid "German" msgstr "Немецкий" -#: InvenTree/settings.py:690 +#: InvenTree/settings.py:699 msgid "Greek" msgstr "Греческий" -#: InvenTree/settings.py:691 +#: InvenTree/settings.py:700 msgid "English" msgstr "Английский" -#: InvenTree/settings.py:692 +#: InvenTree/settings.py:701 msgid "Spanish" msgstr "Испанский" -#: InvenTree/settings.py:693 +#: InvenTree/settings.py:702 msgid "Spanish (Mexican)" msgstr "Испанский (Мексика)" -#: InvenTree/settings.py:694 +#: InvenTree/settings.py:703 msgid "French" msgstr "Французский" -#: InvenTree/settings.py:695 +#: InvenTree/settings.py:704 msgid "Hebrew" msgstr "Иврит" -#: InvenTree/settings.py:696 +#: InvenTree/settings.py:705 msgid "Italian" msgstr "Итальянский" -#: InvenTree/settings.py:697 +#: InvenTree/settings.py:706 msgid "Japanese" msgstr "Японский" -#: InvenTree/settings.py:698 +#: InvenTree/settings.py:707 msgid "Korean" msgstr "Корейский" -#: InvenTree/settings.py:699 +#: InvenTree/settings.py:708 msgid "Dutch" msgstr "Голландский" -#: InvenTree/settings.py:700 +#: InvenTree/settings.py:709 msgid "Norwegian" msgstr "Норвежский" -#: InvenTree/settings.py:701 +#: InvenTree/settings.py:710 msgid "Polish" msgstr "Польский" -#: InvenTree/settings.py:702 +#: InvenTree/settings.py:711 msgid "Portugese" msgstr "Португальский" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:712 msgid "Russian" msgstr "Русский" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:713 msgid "Swedish" msgstr "Шведский" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:714 msgid "Thai" msgstr "Тайский" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:715 msgid "Turkish" msgstr "Турецкий" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:716 msgid "Vietnamese" msgstr "Вьетнамский" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:717 msgid "Chinese" msgstr "Китайский" @@ -341,7 +341,7 @@ msgid "InvenTree system health checks failed" msgstr "Ошибка проверки состояния системы InvenTree" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 msgid "Pending" msgstr "Ожидаемый" @@ -349,14 +349,14 @@ msgstr "Ожидаемый" msgid "Placed" msgstr "Размещены" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:319 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "Готово" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:313 +#: InvenTree/status_codes.py:318 msgid "Cancelled" msgstr "Отменено" @@ -370,7 +370,7 @@ msgstr "Потерян" msgid "Returned" msgstr "Возвращено" -#: InvenTree/status_codes.py:143 order/models.py:939 +#: InvenTree/status_codes.py:143 order/models.py:941 #: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255 msgid "Shipped" msgstr "Доставлено" @@ -395,83 +395,87 @@ msgstr "Разрушено" msgid "Rejected" msgstr "Отклоненный" -#: InvenTree/status_codes.py:269 +#: InvenTree/status_codes.py:272 msgid "Legacy stock tracking entry" msgstr "Отслеживание устаревших запасов" -#: InvenTree/status_codes.py:271 +#: InvenTree/status_codes.py:274 msgid "Stock item created" msgstr "Товар создан" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Edited stock item" msgstr "Отредактированный товар" -#: InvenTree/status_codes.py:274 +#: InvenTree/status_codes.py:277 msgid "Assigned serial number" msgstr "Присвоенный серийный номер" -#: InvenTree/status_codes.py:276 +#: InvenTree/status_codes.py:279 msgid "Stock counted" msgstr "Склад подсчитан" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Stock manually added" msgstr "Добавлен вручную" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Stock manually removed" msgstr "Удалено вручную" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Location changed" msgstr "Расположение изменено" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Installed into assembly" msgstr "Укомплектовано" -#: InvenTree/status_codes.py:283 +#: InvenTree/status_codes.py:286 msgid "Removed from assembly" msgstr "Удалено из сборки" -#: InvenTree/status_codes.py:285 +#: InvenTree/status_codes.py:288 msgid "Installed component item" msgstr "Установленный элемент компонента" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Removed component item" msgstr "Удален элемент компонента" -#: InvenTree/status_codes.py:288 +#: InvenTree/status_codes.py:291 msgid "Split from parent item" msgstr "Отделить от родительского элемента" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Split child item" msgstr "Разбить дочерний элемент" -#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064 +msgid "Merged stock items" +msgstr "" + +#: InvenTree/status_codes.py:296 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "Отправлено клиенту" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:297 msgid "Returned from customer" msgstr "Возвращено от клиента" -#: InvenTree/status_codes.py:294 +#: InvenTree/status_codes.py:299 msgid "Build order output created" msgstr "Создан вывод заказа сборки" -#: InvenTree/status_codes.py:295 +#: InvenTree/status_codes.py:300 msgid "Build order output completed" msgstr "Вывод заказа сборки завершён" -#: InvenTree/status_codes.py:297 +#: InvenTree/status_codes.py:302 msgid "Received against purchase order" msgstr "Получено по заказу на покупку" -#: InvenTree/status_codes.py:312 +#: InvenTree/status_codes.py:317 msgid "Production" msgstr "Продукция" @@ -565,7 +569,7 @@ msgstr "" #: barcodes/api.py:199 msgid "Barcode already matches Part" -msgstr "" +msgstr "Штрих-код уже совпадает с Компонентом" #: barcodes/api.py:205 barcodes/api.py:217 msgid "Barcode hash already matches Stock Item" @@ -575,16 +579,16 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1283 -#: build/templates/build/build_base.html:132 -#: build/templates/build/detail.html:35 common/models.py:1253 +#: build/forms.py:36 build/models.py:1286 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1259 #: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:794 order/models.py:1205 order/serializers.py:810 +#: order/models.py:796 order/models.py:1207 order/serializers.py:810 #: order/templates/order/order_wizard/match_parts.html:30 -#: 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 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:193 +#: part/forms.py:209 part/forms.py:225 part/models.py:2576 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:967 part/templates/part/detail.html:1053 +#: part/templates/part/detail.html:961 part/templates/part/detail.html:1047 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -592,10 +596,10 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:174 -#: stock/templates/stock/item_base.html:255 -#: stock/templates/stock/item_base.html:263 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443 +#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:261 +#: stock/templates/stock/item_base.html:269 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555 #: templates/js/translated/build.js:240 templates/js/translated/build.js:440 #: templates/js/translated/build.js:634 templates/js/translated/build.js:644 #: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367 @@ -604,10 +608,10 @@ msgstr "" #: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 #: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 #: templates/js/translated/order.js:2150 templates/js/translated/part.js:843 -#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919 -#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382 -#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326 -#: templates/js/translated/stock.js:2428 +#: templates/js/translated/part.js:1798 templates/js/translated/part.js:1921 +#: templates/js/translated/part.js:1999 templates/js/translated/stock.js:383 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750 +#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621 msgid "Quantity" msgstr "Количество" @@ -616,8 +620,8 @@ msgid "Enter quantity for build output" msgstr "Введите количество для вывода сборки" #: build/forms.py:41 order/serializers.py:814 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:229 -#: templates/js/translated/stock.js:383 +#: stock/serializers.py:314 templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:384 msgid "Serial Numbers" msgstr "Серийные номера" @@ -661,7 +665,7 @@ msgstr "Порядок сборки" #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:145 +#: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" msgstr "Порядок сборки" @@ -671,11 +675,11 @@ msgid "Build Order Reference" msgstr "Ссылка на заказ" #: build/models.py:199 order/models.py:210 order/models.py:536 -#: order/models.py:801 part/models.py:2585 +#: order/models.py:803 part/models.py:2585 #: part/templates/part/bom_upload/match_parts.html:30 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124 +#: templates/js/translated/bom.js:547 templates/js/translated/build.js:1124 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "Отсылка" @@ -695,7 +699,7 @@ msgstr "" #: build/models.py:225 build/templates/build/build_base.html:77 #: build/templates/build/detail.html:30 company/models.py:705 -#: order/models.py:854 order/models.py:928 +#: order/models.py:856 order/models.py:930 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357 #: part/models.py:2151 part/models.py:2167 part/models.py:2186 #: part/models.py:2203 part/models.py:2305 part/models.py:2427 @@ -706,20 +710,21 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 -#: templates/InvenTree/search.html:86 +#: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214 -#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326 +#: templates/js/translated/bom.js:505 templates/js/translated/build.js:625 #: templates/js/translated/build.js:993 templates/js/translated/build.js:1364 #: templates/js/translated/build.js:1632 templates/js/translated/company.js:489 #: templates/js/translated/company.js:746 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 -#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918 -#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166 -#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747 -#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416 +#: templates/js/translated/order.js:2128 templates/js/translated/part.js:920 +#: templates/js/translated/part.js:1001 templates/js/translated/part.js:1168 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719 +#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:2609 msgid "Part" msgstr "Детали" @@ -776,7 +781,7 @@ msgstr "Статус сборки" msgid "Build status code" msgstr "Код статуса сборки" -#: build/models.py:285 stock/models.py:528 +#: build/models.py:285 stock/models.py:531 msgid "Batch Code" msgstr "Штрих код" @@ -830,27 +835,27 @@ msgstr "Пользователь ответственный за этот зак #: build/models.py:329 build/templates/build/detail.html:102 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:354 stock/models.py:522 -#: stock/templates/stock/item_base.html:374 +#: part/templates/part/part_base.html:354 stock/models.py:525 +#: stock/templates/stock/item_base.html:372 msgid "External Link" 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:144 order/models.py:803 order/models.py:1049 +#: order/models.py:144 order/models.py:805 order/models.py:1051 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:925 -#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50 +#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594 -#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332 -#: stock/serializers.py:624 stock/serializers.py:711 +#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597 +#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332 +#: stock/serializers.py:638 stock/serializers.py:736 stock/serializers.py:868 #: stock/templates/stock/stock_sidebar.html:21 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711 #: templates/js/translated/company.js:842 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795 msgid "Notes" msgstr "Заметки" @@ -883,7 +888,7 @@ msgstr "Выделенное количество ({q}) не должно пре msgid "Stock item is over-allocated" msgstr "Предмет на складе перераспределен" -#: build/models.py:1133 order/models.py:1165 +#: build/models.py:1133 order/models.py:1167 msgid "Allocation quantity must be greater than zero" msgstr "Выделенное количество должно быть больше нуля" @@ -891,51 +896,52 @@ msgstr "Выделенное количество должно быть боль msgid "Quantity must be 1 for serialized stock" msgstr "Количество должно быть 1 для сериализованных запасов" -#: build/models.py:1193 +#: build/models.py:1196 msgid "Selected stock item not found in BOM" msgstr "Выбранный предмет со складом не найден в BOM" -#: build/models.py:1253 stock/templates/stock/item_base.html:346 -#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605 +#: build/models.py:1256 stock/templates/stock/item_base.html:344 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1605 #: templates/navbar.html:35 msgid "Build" msgstr "Сборка" -#: build/models.py:1254 +#: build/models.py:1257 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690 -#: order/serializers.py:708 stock/serializers.py:562 +#: build/models.py:1273 build/serializers.py:334 order/serializers.py:690 +#: order/serializers.py:708 stock/serializers.py:576 stock/serializers.py:694 #: stock/templates/stock/item_base.html:8 -#: stock/templates/stock/item_base.html:16 -#: stock/templates/stock/item_base.html:368 +#: stock/templates/stock/item_base.html:22 +#: stock/templates/stock/item_base.html:366 #: templates/js/translated/build.js:413 templates/js/translated/build.js:418 #: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277 +#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:2470 msgid "Stock Item" msgstr "Предметы на складе" -#: build/models.py:1271 +#: build/models.py:1274 msgid "Source stock item" msgstr "Исходный складской предмет" -#: build/models.py:1284 +#: build/models.py:1287 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1292 +#: build/models.py:1295 msgid "Install into" msgstr "" -#: build/models.py:1293 +#: build/models.py:1296 msgid "Destination stock item" msgstr "" -#: build/serializers.py:137 build/serializers.py:357 +#: build/serializers.py:137 build/serializers.py:363 msgid "Build Output" msgstr "" @@ -956,16 +962,16 @@ msgid "This build output is not fully allocated" msgstr "" #: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813 -#: stock/templates/stock/item_base.html:314 +#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:729 +#: stock/serializers.py:970 stock/templates/stock/item_base.html:312 #: templates/js/translated/barcode.js:384 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425 #: templates/js/translated/build.js:1032 templates/js/translated/order.js:508 #: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 #: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497 -#: templates/js/translated/stock.js:2218 +#: templates/js/translated/part.js:177 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411 msgid "Location" msgstr "Расположение" @@ -975,11 +981,11 @@ msgstr "" #: build/serializers.py:197 build/templates/build/build_base.html:137 #: build/templates/build/detail.html:63 order/models.py:552 -#: order/serializers.py:247 stock/templates/stock/item_base.html:180 +#: order/serializers.py:247 stock/templates/stock/item_base.html:186 #: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661 #: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472 -#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651 +#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637 msgid "Status" msgstr "Статус" @@ -1000,33 +1006,33 @@ msgstr "" msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:319 +#: build/serializers.py:325 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:334 stock/serializers.py:569 +#: build/serializers.py:340 stock/serializers.py:583 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:348 order/models.py:277 order/serializers.py:240 -#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305 +#: build/serializers.py:354 order/models.py:277 order/serializers.py:240 +#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:390 order/serializers.py:741 +#: build/serializers.py:396 order/serializers.py:741 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:396 +#: build/serializers.py:402 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:403 +#: build/serializers.py:409 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:431 order/serializers.py:984 +#: build/serializers.py:437 order/serializers.py:984 msgid "Allocation items must be provided" msgstr "" @@ -1067,33 +1073,33 @@ msgstr "" msgid "Complete Build" msgstr "Завершить сборку" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:87 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:96 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:98 +#: build/templates/build/build_base.html:103 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:105 +#: build/templates/build/build_base.html:110 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Stock has not been fully allocated to this Build Order" msgstr "" @@ -1128,18 +1134,18 @@ msgstr "Просрочено" #: templates/js/translated/build.js:1647 #: templates/js/translated/table_filters.js:370 msgid "Completed" -msgstr "" +msgstr "Завершённые" #: build/templates/build/build_base.html:171 -#: build/templates/build/detail.html:95 order/models.py:925 -#: order/models.py:1021 order/templates/order/sales_order_base.html:9 +#: build/templates/build/detail.html:95 order/models.py:927 +#: order/models.py:1023 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:308 +#: stock/templates/stock/item_base.html:306 #: templates/js/translated/order.js:1218 msgid "Sales Order" -msgstr "" +msgstr "Заказ покупателя" #: build/templates/build/build_base.html:178 #: build/templates/build/detail.html:109 @@ -1211,7 +1217,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "" @@ -1225,8 +1231,8 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:332 -#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451 +#: stock/templates/stock/item_base.html:330 +#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1278,7 +1284,7 @@ msgstr "" #: build/templates/build/detail.html:185 #: company/templates/company/detail.html:38 #: company/templates/company/detail.html:85 order/views.py:463 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order Parts" msgstr "Заказать детали" @@ -1347,7 +1353,7 @@ msgstr "Заметки сборки" #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115 +#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115 #: stock/templates/stock/item.html:205 msgid "Edit Notes" msgstr "" @@ -1489,7 +1495,7 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:340 common/models.py:998 common/models.py:1206 +#: common/models.py:340 common/models.py:1004 common/models.py:1212 msgid "Settings key (must be unique - case insensitive" msgstr "" @@ -1651,7 +1657,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956 +#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:1068 #: templates/js/translated/table_filters.js:168 #: templates/js/translated/table_filters.js:416 msgid "Assembly" @@ -1953,256 +1959,264 @@ msgid "Group to which new users are assigned on registration" msgstr "" #: common/models.py:961 -msgid "Enable URL integration" +msgid "Enforce MFA" msgstr "" #: common/models.py:962 -msgid "Enable plugins to add URL routes" +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:967 +msgid "Enable URL integration" msgstr "" #: common/models.py:968 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:974 msgid "Enable navigation integration" msgstr "" -#: common/models.py:969 +#: common/models.py:975 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:975 +#: common/models.py:981 msgid "Enable global setting integration" msgstr "" -#: common/models.py:976 +#: common/models.py:982 msgid "Enable plugins to integrate into inventree global settings" msgstr "" -#: common/models.py:982 +#: common/models.py:988 msgid "Enable app integration" msgstr "" -#: common/models.py:983 +#: common/models.py:989 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1029 +#: common/models.py:1035 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1030 +#: common/models.py:1036 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1035 +#: common/models.py:1041 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1036 +#: common/models.py:1042 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1041 +#: common/models.py:1047 msgid "Show latest parts" msgstr "" -#: common/models.py:1042 +#: common/models.py:1048 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1047 +#: common/models.py:1053 msgid "Recent Part Count" msgstr "" -#: common/models.py:1048 +#: common/models.py:1054 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1054 +#: common/models.py:1060 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1055 +#: common/models.py:1061 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1060 +#: common/models.py:1066 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1061 +#: common/models.py:1067 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1066 +#: common/models.py:1072 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1067 +#: common/models.py:1073 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1072 +#: common/models.py:1078 msgid "Show low stock" msgstr "" -#: common/models.py:1073 +#: common/models.py:1079 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1078 +#: common/models.py:1084 msgid "Show depleted stock" msgstr "" -#: common/models.py:1079 +#: common/models.py:1085 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1084 +#: common/models.py:1090 msgid "Show needed stock" msgstr "" -#: common/models.py:1085 +#: common/models.py:1091 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1090 +#: common/models.py:1096 msgid "Show expired stock" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1096 +#: common/models.py:1102 msgid "Show stale stock" msgstr "" -#: common/models.py:1097 +#: common/models.py:1103 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1102 +#: common/models.py:1108 msgid "Show pending builds" msgstr "" -#: common/models.py:1103 +#: common/models.py:1109 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1108 +#: common/models.py:1114 msgid "Show overdue builds" msgstr "" -#: common/models.py:1109 +#: common/models.py:1115 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1114 +#: common/models.py:1120 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1115 +#: common/models.py:1121 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1120 +#: common/models.py:1126 msgid "Show overdue POs" msgstr "" -#: common/models.py:1121 +#: common/models.py:1127 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1126 +#: common/models.py:1132 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1127 +#: common/models.py:1133 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1132 +#: common/models.py:1138 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1133 +#: common/models.py:1139 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1139 +#: common/models.py:1145 msgid "Inline label display" msgstr "" -#: common/models.py:1140 +#: common/models.py:1146 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1146 +#: common/models.py:1152 msgid "Inline report display" msgstr "" -#: common/models.py:1147 +#: common/models.py:1153 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "Search Preview Results" msgstr "" -#: common/models.py:1154 +#: common/models.py:1160 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1160 +#: common/models.py:1166 msgid "Search Show Stock" msgstr "" -#: common/models.py:1161 +#: common/models.py:1167 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1167 +#: common/models.py:1173 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1168 +#: common/models.py:1174 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1174 +#: common/models.py:1180 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1175 +#: common/models.py:1181 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1181 +#: common/models.py:1187 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1182 +#: common/models.py:1188 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1188 +#: common/models.py:1194 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1189 +#: common/models.py:1195 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1254 company/forms.py:43 +#: common/models.py:1260 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1261 company/serializers.py:264 +#: common/models.py:1267 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801 +#: templates/js/translated/part.js:852 templates/js/translated/part.js:1803 msgid "Price" msgstr "" -#: common/models.py:1262 +#: common/models.py:1268 msgid "Unit price at specified quantity" msgstr "" @@ -2290,7 +2304,7 @@ msgid "Contact phone number" msgstr "" #: company/models.py:125 company/templates/company/company_base.html:129 -#: templates/InvenTree/settings/user.html:47 +#: templates/InvenTree/settings/user.html:48 msgid "Email" msgstr "" @@ -2347,8 +2361,8 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:320 company/models.py:535 stock/models.py:468 -#: stock/templates/stock/item_base.html:135 +#: company/models.py:320 company/models.py:535 stock/models.py:469 +#: stock/templates/stock/item_base.html:141 msgid "Base Part" msgstr "" @@ -2359,7 +2373,7 @@ msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:381 +#: stock/templates/stock/item_base.html:379 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:514 #: templates/js/translated/company.js:797 templates/js/translated/part.js:232 @@ -2393,7 +2407,7 @@ msgstr "" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:391 +#: stock/templates/stock/item_base.html:389 msgid "Manufacturer Part" msgstr "" @@ -2403,8 +2417,8 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:1845 templates/js/translated/company.js:644 -#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117 +#: stock/models.py:1960 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1296 msgid "Value" msgstr "" @@ -2431,7 +2445,7 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:224 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219 -#: part/bom.py:247 stock/templates/stock/item_base.html:398 +#: part/bom.py:247 stock/templates/stock/item_base.html:396 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:771 templates/js/translated/order.js:823 #: templates/js/translated/part.js:213 templates/js/translated/part.js:800 @@ -2479,8 +2493,8 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:491 stock/templates/stock/item_base.html:339 -#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612 +#: stock/models.py:493 stock/templates/stock/item_base.html:337 +#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1791 msgid "Packaging" msgstr "" @@ -2506,7 +2520,7 @@ msgstr "" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322 +#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322 msgid "Company" msgstr "" @@ -2548,11 +2562,11 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:83 order/models.py:547 -#: order/templates/order/sales_order_base.html:115 stock/models.py:509 -#: stock/models.py:510 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:291 +#: order/templates/order/sales_order_base.html:115 stock/models.py:512 +#: stock/models.py:513 stock/serializers.py:624 +#: stock/templates/stock/item_base.html:289 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2259 +#: templates/js/translated/stock.js:2452 msgid "Customer" msgstr "" @@ -2571,7 +2585,7 @@ msgstr "" #: company/templates/company/detail.html:15 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:124 +#: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" @@ -2590,14 +2604,14 @@ msgstr "" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:167 part/templates/part/detail.html:342 +#: part/templates/part/category.html:171 part/templates/part/detail.html:342 #: part/templates/part/detail.html:370 msgid "Options" msgstr "" #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order parts" msgstr "" @@ -2611,7 +2625,7 @@ msgstr "" msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109 +#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" @@ -2633,8 +2647,8 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203 +#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" @@ -2655,8 +2669,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223 +#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" @@ -2698,7 +2712,7 @@ msgid "Supplier List" msgstr "" #: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184 +#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 #: templates/navbar.html:46 msgid "Manufacturers" msgstr "" @@ -2706,7 +2720,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:67 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76 msgid "Order part" msgstr "" @@ -2728,7 +2742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 #: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:194 templates/navbar.html:45 +#: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "" @@ -2742,7 +2756,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:254 #: part/templates/part/detail.html:344 part/templates/part/detail.html:372 #: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31 -#: users/models.py:206 +#: users/models.py:209 msgid "Delete" msgstr "" @@ -2765,7 +2779,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:867 +#: part/templates/part/detail.html:861 msgid "Add Parameter" msgstr "" @@ -2794,9 +2808,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:476 -#: stock/templates/stock/item_base.html:403 -#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569 +#: company/templates/company/supplier_part.html:24 stock/models.py:477 +#: stock/templates/stock/item_base.html:401 +#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1748 msgid "Supplier Part" msgstr "" @@ -2816,13 +2830,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:20 stock/templates/stock/location.html:162 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:166 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163 -#: templates/js/translated/stock.js:359 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 +#: templates/js/translated/stock.js:360 msgid "New Stock Item" msgstr "" @@ -2832,7 +2846,7 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:68 +#: part/templates/part/detail.html:72 msgid "Order Part" msgstr "" @@ -2843,7 +2857,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:1717 +#: part/templates/part/prices.html:271 part/views.py:1713 msgid "Add Price Break" msgstr "" @@ -2851,11 +2865,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1779 +#: company/templates/company/supplier_part.html:224 part/views.py:1775 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1765 +#: company/templates/company/supplier_part.html:238 part/views.py:1761 msgid "Edit Price Break" msgstr "" @@ -2869,14 +2883,14 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:156 +#: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434 -#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059 -#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:1401 templates/navbar.html:28 +#: templates/js/translated/bom.js:328 templates/js/translated/part.js:434 +#: templates/js/translated/part.js:569 templates/js/translated/part.js:1061 +#: templates/js/translated/part.js:1222 templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:1580 templates/navbar.html:28 msgid "Stock" msgstr "" @@ -2895,11 +2909,11 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:133 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:159 +#: stock/templates/stock/location.html:137 +#: stock/templates/stock/location.html:151 +#: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "" @@ -2912,7 +2926,7 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:61 templates/InvenTree/search.html:214 +#: company/views.py:61 templates/InvenTree/search.html:208 #: templates/navbar.html:57 msgid "Customers" msgstr "" @@ -3121,7 +3135,7 @@ msgstr "" msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:562 order/models.py:1026 +#: order/models.py:562 order/models.py:1028 #: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429 msgid "Shipment Date" msgstr "" @@ -3130,7 +3144,7 @@ msgstr "" msgid "shipped by" msgstr "" -#: order/models.py:634 +#: order/models.py:635 msgid "Order cannot be completed as no parts have been assigned" msgstr "" @@ -3138,172 +3152,172 @@ msgstr "" msgid "Only a pending order can be marked as complete" msgstr "" -#: order/models.py:643 +#: order/models.py:642 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:647 +#: order/models.py:645 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:795 +#: order/models.py:797 msgid "Item quantity" msgstr "" -#: order/models.py:801 +#: order/models.py:803 msgid "Line item reference" msgstr "" -#: order/models.py:803 +#: order/models.py:805 msgid "Line item notes" msgstr "" -#: order/models.py:833 order/models.py:924 order/models.py:1020 +#: order/models.py:835 order/models.py:926 order/models.py:1022 #: templates/js/translated/order.js:1820 msgid "Order" msgstr "" -#: order/models.py:834 order/templates/order/order_base.html:9 +#: order/models.py:836 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:353 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/order.js:801 templates/js/translated/part.js:775 -#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240 +#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433 msgid "Purchase Order" msgstr "" -#: order/models.py:855 +#: order/models.py:857 msgid "Supplier part" msgstr "" -#: order/models.py:862 order/templates/order/order_base.html:163 +#: order/models.py:864 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:847 templates/js/translated/part.js:873 #: templates/js/translated/table_filters.js:317 msgid "Received" msgstr "" -#: order/models.py:863 +#: order/models.py:865 msgid "Number of items received" msgstr "" -#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:360 -#: templates/js/translated/stock.js:1600 +#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:358 +#: templates/js/translated/stock.js:1779 msgid "Purchase Price" msgstr "" -#: order/models.py:871 +#: order/models.py:873 msgid "Unit purchase price" msgstr "" -#: order/models.py:879 +#: order/models.py:881 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:934 part/templates/part/part_pricing.html:112 +#: order/models.py:936 part/templates/part/part_pricing.html:112 #: part/templates/part/prices.html:116 part/templates/part/prices.html:284 msgid "Sale Price" msgstr "" -#: order/models.py:935 +#: order/models.py:937 msgid "Unit sale price" msgstr "" -#: order/models.py:940 +#: order/models.py:942 msgid "Shipped quantity" msgstr "" -#: order/models.py:1027 +#: order/models.py:1029 msgid "Date of shipment" msgstr "" -#: order/models.py:1034 +#: order/models.py:1036 msgid "Checked By" msgstr "" -#: order/models.py:1035 +#: order/models.py:1037 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1043 +#: order/models.py:1045 msgid "Shipment number" msgstr "" -#: order/models.py:1050 +#: order/models.py:1052 msgid "Shipment notes" msgstr "" -#: order/models.py:1057 +#: order/models.py:1059 msgid "Tracking Number" msgstr "" -#: order/models.py:1058 +#: order/models.py:1060 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1068 +#: order/models.py:1070 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1071 +#: order/models.py:1073 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1147 order/models.py:1149 +#: order/models.py:1149 order/models.py:1151 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1153 +#: order/models.py:1155 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1155 +#: order/models.py:1157 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1158 +#: order/models.py:1160 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1162 +#: order/models.py:1164 msgid "StockItem is over-allocated" msgstr "" -#: order/models.py:1168 order/serializers.py:734 +#: order/models.py:1170 order/serializers.py:734 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1171 +#: order/models.py:1173 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1172 +#: order/models.py:1174 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1180 +#: order/models.py:1182 msgid "Line" msgstr "" -#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953 +#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953 #: templates/js/translated/model_renderers.js:251 msgid "Shipment" msgstr "" -#: order/models.py:1189 +#: order/models.py:1191 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1201 +#: order/models.py:1203 msgid "Item" msgstr "" -#: order/models.py:1202 +#: order/models.py:1204 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1205 +#: order/models.py:1207 msgid "Enter stock allocation quantity" msgstr "" @@ -3530,7 +3544,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/build.js:245 templates/js/translated/build.js:1256 #: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:592 +#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761 msgid "Remove row" msgstr "" @@ -3722,7 +3736,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188 +#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1188 msgid "Actions" msgstr "" @@ -3797,24 +3811,24 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:760 +#: part/api.py:777 msgid "Must be greater than zero" msgstr "" -#: part/api.py:764 +#: part/api.py:781 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:779 +#: part/api.py:796 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833 +#: part/api.py:827 part/api.py:831 part/api.py:846 part/api.py:850 msgid "This field is required" msgstr "" #: part/bom.py:125 part/models.py:81 part/models.py:816 -#: part/templates/part/category.html:104 part/templates/part/part_base.html:338 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "" @@ -3822,99 +3836,43 @@ msgstr "" msgid "Available Stock" msgstr "" -#: part/forms.py:63 -msgid "File Format" -msgstr "" - -#: part/forms.py:63 -msgid "Select output file format" -msgstr "" - -#: part/forms.py:65 -msgid "Cascading" -msgstr "" - -#: part/forms.py:65 -msgid "Download cascading / multi-level BOM" -msgstr "" - -#: part/forms.py:67 -msgid "Levels" -msgstr "" - -#: part/forms.py:67 -msgid "Select maximum number of BOM levels to export (0 = all levels)" -msgstr "" - -#: part/forms.py:69 -msgid "Include Parameter Data" -msgstr "" - -#: part/forms.py:69 -msgid "Include part parameters data in exported BOM" -msgstr "" - -#: part/forms.py:71 -msgid "Include Stock Data" -msgstr "" - -#: part/forms.py:71 -msgid "Include part stock data in exported BOM" -msgstr "" - -#: part/forms.py:73 -msgid "Include Manufacturer Data" -msgstr "" - -#: part/forms.py:73 -msgid "Include part manufacturer data in exported BOM" -msgstr "" - -#: part/forms.py:75 -msgid "Include Supplier Data" -msgstr "" - -#: part/forms.py:75 -msgid "Include part supplier data in exported BOM" -msgstr "" - -#: part/forms.py:96 part/models.py:2427 +#: part/forms.py:66 part/models.py:2427 msgid "Parent Part" msgstr "" -#: part/forms.py:97 part/templates/part/bom_duplicate.html:7 +#: part/forms.py:67 part/templates/part/bom_duplicate.html:7 msgid "Select parent part to copy BOM from" msgstr "" -#: part/forms.py:103 +#: part/forms.py:73 msgid "Clear existing BOM items" msgstr "" -#: part/forms.py:109 +#: part/forms.py:79 msgid "Confirm BOM duplication" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "validate" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "Confirm that the BOM is correct" msgstr "" -#: part/forms.py:163 +#: part/forms.py:133 msgid "Select part category" msgstr "" -#: part/forms.py:200 +#: part/forms.py:170 msgid "Add parameter template to same level categories" msgstr "" -#: part/forms.py:204 +#: part/forms.py:174 msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:224 +#: part/forms.py:194 msgid "Input quantity for price calculation" msgstr "" @@ -3930,24 +3888,24 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11 +#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:96 part/templates/part/category.html:124 -#: templates/InvenTree/search.html:101 templates/stats.html:84 +#: part/models.py:96 part/templates/part/category.html:128 +#: templates/InvenTree/search.html:95 templates/stats.html:84 #: users/models.py:40 msgid "Part Categories" msgstr "" #: part/models.py:358 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:13 part/templates/part/category.html:129 -#: part/templates/part/category.html:149 +#: part/templates/part/category.html:17 part/templates/part/category.html:133 +#: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1597 templates/navbar.html:21 +#: templates/js/translated/part.js:1599 templates/navbar.html:21 #: templates/stats.html:80 templates/stats.html:89 users/models.py:41 msgid "Parts" msgstr "" @@ -4001,7 +3959,7 @@ msgstr "" msgid "Part description" msgstr "" -#: part/models.py:770 part/templates/part/category.html:82 +#: part/models.py:770 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "" @@ -4014,7 +3972,7 @@ msgstr "" #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 #: templates/InvenTree/settings/settings.html:172 -#: templates/js/translated/part.js:1202 +#: templates/js/translated/part.js:1204 msgid "Category" msgstr "" @@ -4023,8 +3981,8 @@ msgid "Part category" msgstr "" #: part/models.py:784 part/templates/part/part_base.html:274 -#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155 -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/part.js:557 templates/js/translated/part.js:1157 +#: templates/js/translated/stock.js:1552 msgid "IPN" msgstr "" @@ -4145,8 +4103,8 @@ msgstr "" msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2310 templates/js/translated/part.js:1648 -#: templates/js/translated/stock.js:1097 +#: part/models.py:2310 templates/js/translated/part.js:1650 +#: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "" @@ -4162,7 +4120,7 @@ msgstr "" msgid "Enter description for this test" msgstr "" -#: part/models.py:2322 templates/js/translated/part.js:1657 +#: part/models.py:2322 templates/js/translated/part.js:1659 #: templates/js/translated/table_filters.js:281 msgid "Required" msgstr "" @@ -4171,7 +4129,7 @@ msgstr "" msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2328 templates/js/translated/part.js:1665 +#: part/models.py:2328 templates/js/translated/part.js:1667 msgid "Requires Value" msgstr "" @@ -4179,7 +4137,7 @@ msgstr "" msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2334 templates/js/translated/part.js:1672 +#: part/models.py:2334 templates/js/translated/part.js:1674 msgid "Requires Attachment" msgstr "" @@ -4241,8 +4199,8 @@ msgstr "" msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2578 templates/js/translated/bom.js:454 -#: templates/js/translated/bom.js:528 +#: part/models.py:2578 templates/js/translated/bom.js:566 +#: templates/js/translated/bom.js:640 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" @@ -4275,8 +4233,8 @@ msgstr "" msgid "BOM line checksum" msgstr "" -#: part/models.py:2594 templates/js/translated/bom.js:545 -#: templates/js/translated/bom.js:552 +#: part/models.py:2594 templates/js/translated/bom.js:657 +#: templates/js/translated/bom.js:664 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" @@ -4286,7 +4244,7 @@ msgstr "" msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2600 templates/js/translated/bom.js:537 +#: part/models.py:2600 templates/js/translated/bom.js:649 msgid "Allow Variants" msgstr "" @@ -4406,100 +4364,100 @@ msgstr "" msgid "This will validate each line in the BOM." msgstr "" -#: part/templates/part/category.html:24 part/templates/part/category.html:28 +#: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:32 +#: part/templates/part/category.html:36 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:38 +#: part/templates/part/category.html:42 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:43 +#: part/templates/part/category.html:47 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:44 +#: part/templates/part/category.html:48 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:52 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:53 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:57 +#: part/templates/part/category.html:61 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:58 +#: part/templates/part/category.html:62 msgid "New Category" msgstr "" -#: part/templates/part/category.html:76 part/templates/part/category.html:89 +#: part/templates/part/category.html:80 part/templates/part/category.html:93 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:90 +#: part/templates/part/category.html:94 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:110 part/templates/part/category.html:201 +#: part/templates/part/category.html:114 part/templates/part/category.html:205 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:115 +#: part/templates/part/category.html:119 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:152 +#: part/templates/part/category.html:156 msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:153 part/templates/part/category.html:177 +#: part/templates/part/category.html:157 part/templates/part/category.html:181 msgid "Export" msgstr "" -#: part/templates/part/category.html:156 +#: part/templates/part/category.html:160 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:157 templates/js/translated/bom.js:40 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 msgid "New Part" msgstr "" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set category" msgstr "" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:175 +#: part/templates/part/category.html:179 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:177 +#: part/templates/part/category.html:181 msgid "Export Data" msgstr "" -#: part/templates/part/category.html:191 +#: part/templates/part/category.html:195 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:268 +#: part/templates/part/category.html:288 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:295 +#: part/templates/part/category.html:315 msgid "Create Part" msgstr "" @@ -4566,24 +4524,24 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:17 +#: part/templates/part/detail.html:21 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:29 +#: part/templates/part/detail.html:33 #, python-format msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:39 +#: part/templates/part/detail.html:43 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:44 +#: part/templates/part/detail.html:48 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:101 +#: part/templates/part/detail.html:105 msgid "Sales Order Allocations" msgstr "" @@ -4619,7 +4577,7 @@ msgstr "" msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:242 +#: part/templates/part/detail.html:242 templates/js/translated/bom.js:70 msgid "Export BOM" msgstr "" @@ -4683,38 +4641,38 @@ msgstr "" msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:651 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:659 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:760 +#: part/templates/part/detail.html:754 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:817 +#: part/templates/part/detail.html:811 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:930 +#: part/templates/part/detail.html:924 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:942 +#: part/templates/part/detail.html:936 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:954 +#: part/templates/part/detail.html:948 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1043 +#: part/templates/part/detail.html:1037 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4745,20 +4703,20 @@ msgid "Subscribe to notifications for this part" msgstr "" #: part/templates/part/part_base.html:43 -#: stock/templates/stock/item_base.html:28 -#: stock/templates/stock/location.html:29 +#: stock/templates/stock/item_base.html:34 +#: stock/templates/stock/location.html:33 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:45 -#: stock/templates/stock/item_base.html:32 -#: stock/templates/stock/location.html:31 templates/qr_button.html:1 +#: stock/templates/stock/item_base.html:38 +#: stock/templates/stock/location.html:35 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:48 -#: stock/templates/stock/location.html:32 +#: stock/templates/stock/item_base.html:54 +#: stock/templates/stock/location.html:36 msgid "Print Label" msgstr "" @@ -4767,8 +4725,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:103 -#: stock/templates/stock/location.html:40 +#: stock/templates/stock/item_base.html:109 +#: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "" @@ -4848,7 +4806,7 @@ msgstr "" msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1235 +#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1237 msgid "On Order" msgstr "" @@ -4864,12 +4822,12 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:566 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1066 -#: templates/js/translated/part.js:1239 +#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1068 +#: templates/js/translated/part.js:1241 msgid "Building" msgstr "" @@ -4882,7 +4840,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:159 +#: stock/templates/stock/item_base.html:165 msgid "Search for serial number" msgstr "" @@ -4921,7 +4879,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:520 +#: templates/js/translated/bom.js:632 msgid "No supplier pricing available" msgstr "" @@ -5036,7 +4994,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626 msgid "Supplier Cost" msgstr "" @@ -5058,7 +5016,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1788 +#: part/templates/part/prices.html:215 part/views.py:1784 msgid "Add Internal Price Break" msgstr "" @@ -5078,9 +5036,9 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476 -#: templates/js/translated/part.js:436 templates/js/translated/part.js:1056 -#: templates/js/translated/part.js:1243 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588 +#: templates/js/translated/part.js:436 templates/js/translated/part.js:1058 +#: templates/js/translated/part.js:1245 msgid "No Stock" msgstr "" @@ -5154,67 +5112,67 @@ msgstr "" msgid "Match Parts" msgstr "" -#: part/views.py:1196 +#: part/views.py:1195 msgid "Export Bill of Materials" msgstr "" -#: part/views.py:1248 +#: part/views.py:1244 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1255 +#: part/views.py:1251 msgid "Part was deleted" msgstr "" -#: part/views.py:1264 +#: part/views.py:1260 msgid "Part Pricing" msgstr "" -#: part/views.py:1413 +#: part/views.py:1409 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1423 +#: part/views.py:1419 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1430 +#: part/views.py:1426 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1489 templates/js/translated/part.js:313 +#: part/views.py:1485 templates/js/translated/part.js:313 msgid "Edit Part Category" msgstr "" -#: part/views.py:1527 +#: part/views.py:1523 msgid "Delete Part Category" msgstr "" -#: part/views.py:1533 +#: part/views.py:1529 msgid "Part category was deleted" msgstr "" -#: part/views.py:1542 +#: part/views.py:1538 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1643 +#: part/views.py:1639 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1699 +#: part/views.py:1695 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1721 +#: part/views.py:1717 msgid "Added new price break" msgstr "" -#: part/views.py:1797 +#: part/views.py:1793 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1805 +#: part/views.py:1801 msgid "Delete Internal Price Break" msgstr "" @@ -5388,12 +5346,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:514 stock/templates/stock/item_base.html:149 +#: stock/models.py:517 stock/templates/stock/item_base.html:155 #: templates/js/translated/build.js:238 templates/js/translated/build.js:642 #: templates/js/translated/build.js:1018 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415 msgid "Serial Number" msgstr "" @@ -5402,19 +5360,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:1833 +#: stock/models.py:1948 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:1839 +#: stock/models.py:1954 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:49 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367 msgid "Date" msgstr "" @@ -5432,17 +5390,18 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434 +#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748 +#: templates/js/translated/stock.js:2627 msgid "Serial" msgstr "" -#: stock/api.py:446 +#: stock/api.py:478 msgid "Quantity is required" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571 -#: stock/templates/stock/item_base.html:186 -#: templates/js/translated/stock.js:1522 +#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574 +#: stock/templates/stock/item_base.html:192 +#: templates/js/translated/stock.js:1701 msgid "Expiry Date" msgstr "" @@ -5490,12 +5449,12 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:60 stock/models.py:608 -#: stock/templates/stock/item_base.html:417 +#: stock/models.py:60 stock/models.py:611 +#: stock/templates/stock/item_base.html:415 msgid "Owner" msgstr "" -#: stock/models.py:61 stock/models.py:609 +#: stock/models.py:61 stock/models.py:612 msgid "Select Owner" msgstr "" @@ -5528,150 +5487,190 @@ msgstr "" msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:460 +#: stock/models.py:461 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:470 msgid "Base part" msgstr "" -#: stock/models.py:477 +#: stock/models.py:478 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:482 stock/templates/stock/location.html:12 +#: stock/models.py:484 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:485 +#: stock/models.py:487 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:492 +#: stock/models.py:494 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:497 stock/templates/stock/item_base.html:299 +#: stock/models.py:500 stock/templates/stock/item_base.html:297 msgid "Installed In" msgstr "" -#: stock/models.py:500 +#: stock/models.py:503 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:516 +#: stock/models.py:519 msgid "Serial number for this item" msgstr "" -#: stock/models.py:530 +#: stock/models.py:533 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:534 +#: stock/models.py:537 msgid "Stock Quantity" msgstr "" -#: stock/models.py:543 +#: stock/models.py:546 msgid "Source Build" msgstr "" -#: stock/models.py:545 +#: stock/models.py:548 msgid "Build for this stock item" msgstr "" -#: stock/models.py:556 +#: stock/models.py:559 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:559 +#: stock/models.py:562 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:565 +#: stock/models.py:568 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:572 +#: stock/models.py:575 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete on deplete" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:595 stock/templates/stock/item.html:111 +#: stock/models.py:598 stock/templates/stock/item.html:111 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:604 +#: stock/models.py:607 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1072 +#: stock/models.py:1068 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1078 +#: stock/models.py:1074 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1084 +#: stock/models.py:1080 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1087 +#: stock/models.py:1083 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1090 +#: stock/models.py:1086 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1097 +#: stock/models.py:1093 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1255 +#: stock/models.py:1164 +msgid "Stock item has been assigned to a sales order" +msgstr "" + +#: stock/models.py:1167 +msgid "Stock item is installed in another item" +msgstr "" + +#: stock/models.py:1170 +msgid "Stock item contains other items" +msgstr "" + +#: stock/models.py:1173 +msgid "Stock item has been assigned to a customer" +msgstr "" + +#: stock/models.py:1176 +msgid "Stock item is currently in production" +msgstr "" + +#: stock/models.py:1179 +msgid "Serialized stock cannot be merged" +msgstr "" + +#: stock/models.py:1186 stock/serializers.py:773 +msgid "Duplicate stock items" +msgstr "" + +#: stock/models.py:1190 +msgid "Stock items must refer to the same part" +msgstr "" + +#: stock/models.py:1194 +msgid "Stock items must refer to the same supplier part" +msgstr "" + +#: stock/models.py:1198 +msgid "Stock status codes must match" +msgstr "" + +#: stock/models.py:1369 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1753 +#: stock/models.py:1868 msgid "Entry notes" msgstr "" -#: stock/models.py:1810 +#: stock/models.py:1925 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1931 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1834 +#: stock/models.py:1949 msgid "Test name" msgstr "" -#: stock/models.py:1840 templates/js/translated/table_filters.js:271 +#: stock/models.py:1955 templates/js/translated/table_filters.js:271 msgid "Test result" msgstr "" -#: stock/models.py:1846 +#: stock/models.py:1961 msgid "Test output value" msgstr "" -#: stock/models.py:1853 +#: stock/models.py:1968 msgid "Test result attachment" msgstr "" -#: stock/models.py:1859 +#: stock/models.py:1974 msgid "Test notes" msgstr "" @@ -5696,7 +5695,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:814 +#: stock/serializers.py:326 stock/serializers.py:730 stock/serializers.py:971 msgid "Destination stock location" msgstr "" @@ -5708,39 +5707,63 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:573 +#: stock/serializers.py:587 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:577 +#: stock/serializers.py:591 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:581 +#: stock/serializers.py:595 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:611 +#: stock/serializers.py:625 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:617 +#: stock/serializers.py:631 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:639 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:635 stock/serializers.py:722 +#: stock/serializers.py:649 stock/serializers.py:879 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:684 +#: stock/serializers.py:737 +msgid "Stock merging notes" +msgstr "" + +#: stock/serializers.py:742 +msgid "Allow mismatched suppliers" +msgstr "" + +#: stock/serializers.py:743 +msgid "Allow stock items with different supplier parts to be merged" +msgstr "" + +#: stock/serializers.py:748 +msgid "Allow mismatched status" +msgstr "" + +#: stock/serializers.py:749 +msgid "Allow stock items with different status codes to be merged" +msgstr "" + +#: stock/serializers.py:759 +msgid "At least two stock items must be provided" +msgstr "" + +#: stock/serializers.py:841 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:712 +#: stock/serializers.py:869 msgid "Stock transaction notes" msgstr "" @@ -5765,7 +5788,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50 +#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:56 msgid "Test Report" msgstr "" @@ -5797,197 +5820,189 @@ msgstr "" msgid "Delete Test Result" msgstr "" -#: stock/templates/stock/item_base.html:35 +#: stock/templates/stock/item_base.html:41 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:37 +#: stock/templates/stock/item_base.html:43 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24 +#: stock/templates/stock/item_base.html:45 templates/stock_table.html:24 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:46 +#: stock/templates/stock/item_base.html:52 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:71 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:47 templates/stock_table.html:50 +#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/location.html:51 templates/stock_table.html:50 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:78 templates/stock_table.html:48 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49 +#: stock/templates/stock/item_base.html:81 templates/stock_table.html:49 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:84 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:53 +#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/location.html:57 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53 +#: stock/templates/stock/item_base.html:91 templates/stock_table.html:54 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:94 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:108 +#: stock/templates/stock/item_base.html:114 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/item_base.html:117 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:119 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:116 +#: stock/templates/stock/item_base.html:122 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/stock.js:1535 +#: stock/templates/stock/item_base.html:205 +#: templates/js/translated/stock.js:1714 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:208 +#: stock/templates/stock/item_base.html:214 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:226 +#: stock/templates/stock/item_base.html:232 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:239 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:234 +#: stock/templates/stock/item_base.html:240 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:247 +#: stock/templates/stock/item_base.html:253 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:261 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:263 +#: stock/templates/stock/item_base.html:269 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:269 +#: stock/templates/stock/item_base.html:275 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:273 -msgid "This stock item cannot be deleted as it has child items" -msgstr "" - -#: stock/templates/stock/item_base.html:277 -msgid "This stock item will be automatically deleted when all stock is depleted." -msgstr "" - -#: stock/templates/stock/item_base.html:318 +#: stock/templates/stock/item_base.html:316 #: templates/js/translated/build.js:1040 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:325 +#: stock/templates/stock/item_base.html:323 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:367 +#: stock/templates/stock/item_base.html:365 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:385 +#: stock/templates/stock/item_base.html:383 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:410 +#: stock/templates/stock/item_base.html:408 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:500 +#: stock/templates/stock/item_base.html:498 msgid "Edit Stock Status" msgstr "" @@ -6041,59 +6056,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:37 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:65 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:67 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:65 +#: stock/templates/stock/location.html:69 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:79 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:76 +#: stock/templates/stock/location.html:80 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:95 -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:99 +#: stock/templates/stock/location.html:105 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:102 +#: stock/templates/stock/location.html:106 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:119 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:175 +#: stock/templates/stock/location.html:132 +#: stock/templates/stock/location.html:179 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:142 templates/InvenTree/search.html:170 +#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "" -#: stock/templates/stock/location.html:182 templates/stock_table.html:30 +#: stock/templates/stock/location.html:186 templates/stock_table.html:30 msgid "Printing Actions" msgstr "" -#: stock/templates/stock/location.html:186 templates/stock_table.html:34 +#: stock/templates/stock/location.html:190 templates/stock_table.html:34 msgid "Print labels" msgstr "" @@ -6178,7 +6193,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:887 +#: stock/views.py:727 templates/js/translated/stock.js:1066 msgid "Confirm stock adjustment" msgstr "" @@ -6186,7 +6201,7 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:323 +#: stock/views.py:760 templates/js/translated/stock.js:324 msgid "Edit Stock Item" msgstr "" @@ -6198,7 +6213,7 @@ msgstr "" msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:303 +#: stock/views.py:1153 templates/js/translated/stock.js:304 msgid "Duplicate Stock Item" msgstr "" @@ -6314,10 +6329,6 @@ msgstr "" msgid "Search Results" msgstr "" -#: templates/InvenTree/search.html:22 -msgid "Enter a search query" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6363,7 +6374,7 @@ msgstr "" msgid "Login Settings" msgstr "" -#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5 +#: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5 msgid "Signup" msgstr "" @@ -6648,7 +6659,7 @@ msgstr "" msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:55 +#: templates/InvenTree/settings/user.html:54 msgid "The following email addresses are associated with your account:" msgstr "" @@ -6673,145 +6684,193 @@ msgid "Re-send Verification" msgstr "" #: templates/InvenTree/settings/user.html:87 -#: templates/InvenTree/settings/user.html:154 +#: templates/InvenTree/settings/user.html:149 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:94 +#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:201 msgid "Warning:" msgstr "" -#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:96 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:102 +#: templates/InvenTree/settings/user.html:104 msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:112 -msgid "Enter e-mail address" -msgstr "" - -#: templates/InvenTree/settings/user.html:114 +#: templates/InvenTree/settings/user.html:109 msgid "Add Email" msgstr "" -#: templates/InvenTree/settings/user.html:124 +#: templates/InvenTree/settings/user.html:117 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:129 +#: templates/InvenTree/settings/user.html:122 msgid "You can sign in to your account using any of the following third party accounts:" msgstr "" -#: templates/InvenTree/settings/user.html:163 -msgid "There are no social network accounts connected to your InvenTree account" +#: templates/InvenTree/settings/user.html:157 +msgid "You currently have no social network accounts connected to this account." msgstr "" -#: templates/InvenTree/settings/user.html:168 +#: templates/InvenTree/settings/user.html:162 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:179 -msgid "Active Sessions" +#: templates/InvenTree/settings/user.html:172 +msgid "Multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:185 -msgid "Log out active sessions (except this one)" +#: templates/InvenTree/settings/user.html:177 +msgid "You have these factors available:" msgstr "" -#: templates/InvenTree/settings/user.html:186 -msgid "Log Out Active Sessions" +#: templates/InvenTree/settings/user.html:187 +msgid "TOTP" 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" +#: templates/InvenTree/settings/user.html:193 +msgid "Static" msgstr "" #: templates/InvenTree/settings/user.html:202 -msgid "Last Activity" +msgid "You currently do not have any factors set up." msgstr "" -#: templates/InvenTree/settings/user.html:211 -#, python-format -msgid "%(time)s ago (this session)" +#: templates/InvenTree/settings/user.html:209 +msgid "Change factors" msgstr "" -#: templates/InvenTree/settings/user.html:213 -#, python-format -msgid "%(time)s ago" +#: templates/InvenTree/settings/user.html:210 +msgid "Setup multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:224 -msgid "Do you really want to remove the selected email address?" +#: templates/InvenTree/settings/user.html:212 +msgid "Remove multifactor" msgstr "" +#: templates/InvenTree/settings/user.html:219 #: templates/InvenTree/settings/user_display.html:25 msgid "Theme Settings" msgstr "" +#: templates/InvenTree/settings/user.html:227 #: templates/InvenTree/settings/user_display.html:35 msgid "Select theme" msgstr "" +#: templates/InvenTree/settings/user.html:237 #: templates/InvenTree/settings/user_display.html:46 msgid "Set Theme" msgstr "" +#: templates/InvenTree/settings/user.html:246 #: templates/InvenTree/settings/user_display.html:54 msgid "Language Settings" msgstr "" +#: templates/InvenTree/settings/user.html:254 #: templates/InvenTree/settings/user_display.html:63 msgid "Select language" msgstr "" +#: templates/InvenTree/settings/user.html:270 #: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" +#: templates/InvenTree/settings/user.html:272 #: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" +#: templates/InvenTree/settings/user.html:279 #: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" +#: templates/InvenTree/settings/user.html:281 #: templates/InvenTree/settings/user_display.html:91 msgid "Some languages are not complete" msgstr "" +#: templates/InvenTree/settings/user.html:283 #: 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.html:285 #: templates/InvenTree/settings/user_display.html:95 msgid "Show them too" msgstr "" +#: templates/InvenTree/settings/user.html:292 #: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" +#: templates/InvenTree/settings/user.html:293 +#, python-format +msgid "Native language translation of the\n" +" InvenTree web application is community contributed via crowdin. Contributions are\n" +" welcomed and encouraged." +msgstr "" + +#: templates/InvenTree/settings/user.html:302 +msgid "Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:308 +msgid "Log out active sessions (except this one)" +msgstr "" + +#: templates/InvenTree/settings/user.html:309 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:318 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:319 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:323 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:324 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:325 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:334 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:336 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:348 +msgid "Do you really want to remove the selected email address?" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +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." @@ -6830,7 +6889,7 @@ msgid "InvenTree Version Information" msgstr "" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53 +#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53 #: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662 #: templates/js/translated/modals.js:965 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 @@ -7006,6 +7065,71 @@ msgstr "" msgid "View in administration panel" msgstr "" +#: templates/allauth_2fa/authenticate.html:5 +msgid "Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:12 +msgid "Authenticate" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:6 +msgid "Two-Factor Authentication Backup Tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:17 +msgid "Backup tokens have been generated, but are not revealed here for security reasons. Press the button below to generate new ones." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:20 +msgid "No tokens. Press the button below to generate some." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:27 +msgid "Generate backup tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:31 +#: templates/allauth_2fa/setup.html:40 +msgid "back to settings" +msgstr "" + +#: templates/allauth_2fa/remove.html:6 +msgid "Disable Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/remove.html:9 +msgid "Are you sure?" +msgstr "" + +#: templates/allauth_2fa/remove.html:14 +msgid "Disable Two-Factor" +msgstr "" + +#: templates/allauth_2fa/setup.html:6 +msgid "Setup Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/setup.html:10 +msgid "Step 1" +msgstr "" + +#: templates/allauth_2fa/setup.html:14 +msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." +msgstr "" + +#: templates/allauth_2fa/setup.html:23 +msgid "Step 2" +msgstr "" + +#: templates/allauth_2fa/setup.html:27 +msgid "Input a token generated by the app:" +msgstr "" + +#: templates/allauth_2fa/setup.html:35 +msgid "Verify" +msgstr "" + #: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 msgid "Add Link" msgstr "" @@ -7044,13 +7168,13 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:1103 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134 +#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1134 #: templates/js/translated/build.js:1755 #: templates/js/translated/table_filters.js:178 msgid "Available" @@ -7239,7 +7363,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018 msgid "Remove stock item" msgstr "" @@ -7281,91 +7405,153 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:184 +#: templates/js/translated/bom.js:36 +msgid "Download BOM Template" +msgstr "" + +#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510 +msgid "Format" +msgstr "" + +#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511 +msgid "Select file format" +msgstr "" + +#: templates/js/translated/bom.js:81 +msgid "Cascading" +msgstr "" + +#: templates/js/translated/bom.js:82 +msgid "Download cascading / multi-level BOM" +msgstr "" + +#: templates/js/translated/bom.js:87 +msgid "Levels" +msgstr "" + +#: templates/js/translated/bom.js:88 +msgid "Select maximum number of BOM levels to export (0 = all levels)" +msgstr "" + +#: templates/js/translated/bom.js:94 +msgid "Include Parameter Data" +msgstr "" + +#: templates/js/translated/bom.js:95 +msgid "Include part parameter data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:100 +msgid "Include Stock Data" +msgstr "" + +#: templates/js/translated/bom.js:101 +msgid "Include part stock data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:106 +msgid "Include Manufacturer Data" +msgstr "" + +#: templates/js/translated/bom.js:107 +msgid "Include part manufacturer data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:112 +msgid "Include Supplier Data" +msgstr "" + +#: templates/js/translated/bom.js:113 +msgid "Include part supplier data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:296 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:228 +#: templates/js/translated/bom.js:340 msgid "Select and add a new variant item using the input below" msgstr "" -#: templates/js/translated/bom.js:239 +#: templates/js/translated/bom.js:351 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:245 +#: templates/js/translated/bom.js:357 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:284 +#: templates/js/translated/bom.js:396 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:285 +#: templates/js/translated/bom.js:397 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:404 +#: templates/js/translated/bom.js:516 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116 +#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1116 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:413 +#: templates/js/translated/bom.js:525 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:485 +#: templates/js/translated/bom.js:597 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:500 +#: templates/js/translated/bom.js:612 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:507 +#: templates/js/translated/bom.js:619 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645 +#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:616 +#: templates/js/translated/bom.js:728 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:618 +#: templates/js/translated/bom.js:730 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:620 +#: templates/js/translated/bom.js:732 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796 +#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779 +#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860 +#: templates/js/translated/bom.js:830 templates/js/translated/build.js:860 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:774 +#: templates/js/translated/bom.js:886 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100 +#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1100 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:996 +#: templates/js/translated/bom.js:1108 msgid "Inherited from parent BOM" msgstr "" @@ -7464,7 +7650,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1199 templates/stock_table.html:52 +#: templates/js/translated/build.js:1199 templates/stock_table.html:53 msgid "Order stock" msgstr "" @@ -7509,9 +7695,9 @@ msgstr "" msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147 -#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333 -#: templates/js/translated/stock.js:2128 +#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1149 +#: templates/js/translated/part.js:1560 templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:2321 msgid "Select" msgstr "" @@ -7519,7 +7705,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347 +#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2540 msgid "No user information" msgstr "" @@ -7682,20 +7868,20 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1078 templates/modals.html:19 +#: templates/js/translated/forms.js:1080 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1469 +#: templates/js/translated/forms.js:1471 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1673 +#: templates/js/translated/forms.js:1675 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1893 +#: templates/js/translated/forms.js:1895 msgid "Clear input" msgstr "" @@ -7708,7 +7894,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:863 +#: templates/js/translated/stock.js:1042 msgid "Select Stock Items" msgstr "" @@ -7888,14 +8074,6 @@ msgstr "" msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509 -msgid "Format" -msgstr "" - -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510 -msgid "Select file format" -msgstr "" - #: templates/js/translated/order.js:460 msgid "Select Line Items" msgstr "" @@ -7908,7 +8086,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123 msgid "Stock Status" msgstr "" @@ -7957,7 +8135,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163 -#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986 +#: templates/js/translated/part.js:1777 templates/js/translated/part.js:1988 msgid "Unit Price" msgstr "" @@ -8042,7 +8220,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1249 +#: templates/js/translated/stock.js:1428 msgid "Shipped to customer" msgstr "" @@ -8206,92 +8384,92 @@ msgstr "" msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:946 +#: templates/js/translated/part.js:948 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:970 +#: templates/js/translated/part.js:972 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1037 templates/js/translated/part.js:1297 +#: templates/js/translated/part.js:1039 templates/js/translated/part.js:1299 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1207 +#: templates/js/translated/part.js:1209 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1230 +#: templates/js/translated/part.js:1232 #: templates/js/translated/table_filters.js:412 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493 -#: templates/js/translated/stock.js:2089 +#: templates/js/translated/part.js:1323 templates/js/translated/part.js:1495 +#: templates/js/translated/stock.js:2282 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1337 +#: templates/js/translated/part.js:1339 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108 +#: templates/js/translated/part.js:1514 templates/js/translated/stock.js:2301 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1576 +#: templates/js/translated/part.js:1578 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152 +#: templates/js/translated/part.js:1592 templates/js/translated/stock.js:2345 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1634 +#: templates/js/translated/part.js:1636 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055 +#: templates/js/translated/part.js:1687 templates/js/translated/stock.js:1234 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056 +#: templates/js/translated/part.js:1688 templates/js/translated/stock.js:1235 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1692 +#: templates/js/translated/part.js:1694 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1714 +#: templates/js/translated/part.js:1716 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1728 +#: templates/js/translated/part.js:1730 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1753 +#: templates/js/translated/part.js:1755 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1808 +#: templates/js/translated/part.js:1810 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1809 +#: templates/js/translated/part.js:1811 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1910 +#: templates/js/translated/part.js:1912 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1929 +#: templates/js/translated/part.js:1931 msgid "Single Price Difference" msgstr "" @@ -8365,316 +8543,340 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:72 +#: templates/js/translated/stock.js:73 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173 msgid "Next available serial number" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174 +#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175 msgid "Latest serial number" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:101 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:109 +#: templates/js/translated/stock.js:110 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:145 +#: templates/js/translated/stock.js:146 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:185 +#: templates/js/translated/stock.js:186 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:224 +#: templates/js/translated/stock.js:225 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:231 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:373 +#: templates/js/translated/stock.js:374 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:386 +#: templates/js/translated/stock.js:387 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:411 +#: templates/js/translated/stock.js:412 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416 +#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:432 +#: templates/js/translated/stock.js:433 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:452 +#: templates/js/translated/stock.js:453 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:506 +#: templates/js/translated/stock.js:507 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:517 +#: templates/js/translated/stock.js:518 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:518 +#: templates/js/translated/stock.js:519 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:627 +#: templates/js/translated/stock.js:628 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:628 +#: templates/js/translated/stock.js:629 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:713 +#: templates/js/translated/stock.js:706 +msgid "Warning: Merge operation cannot be reversed" +msgstr "" + +#: templates/js/translated/stock.js:707 +msgid "Some information will be lost when merging stock items" +msgstr "" + +#: templates/js/translated/stock.js:709 +msgid "Stock transaction history will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:710 +msgid "Supplier part information will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:796 +msgid "Confirm stock item merge" +msgstr "" + +#: templates/js/translated/stock.js:797 +msgid "Merge Stock Items" +msgstr "" + +#: templates/js/translated/stock.js:892 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:893 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:899 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:721 +#: templates/js/translated/stock.js:900 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:725 +#: templates/js/translated/stock.js:904 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:726 +#: templates/js/translated/stock.js:905 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:730 +#: templates/js/translated/stock.js:909 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:731 users/models.py:202 +#: templates/js/translated/stock.js:910 users/models.py:205 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:735 templates/stock_table.html:57 +#: templates/js/translated/stock.js:914 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:864 +#: templates/js/translated/stock.js:1043 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1022 +#: templates/js/translated/stock.js:1201 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1024 +#: templates/js/translated/stock.js:1203 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1029 +#: templates/js/translated/stock.js:1208 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1230 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1077 +#: templates/js/translated/stock.js:1256 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1134 +#: templates/js/translated/stock.js:1313 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1420 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1245 +#: templates/js/translated/stock.js:1424 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1432 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1259 +#: templates/js/translated/stock.js:1438 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1417 +#: templates/js/translated/stock.js:1596 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1422 +#: templates/js/translated/stock.js:1601 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1425 +#: templates/js/translated/stock.js:1604 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1429 +#: templates/js/translated/stock.js:1608 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1431 +#: templates/js/translated/stock.js:1610 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1437 +#: templates/js/translated/stock.js:1616 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1618 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1441 +#: templates/js/translated/stock.js:1620 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1625 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1453 +#: templates/js/translated/stock.js:1632 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1455 +#: templates/js/translated/stock.js:1634 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1457 +#: templates/js/translated/stock.js:1636 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1461 +#: templates/js/translated/stock.js:1640 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1511 +#: templates/js/translated/stock.js:1690 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1584 +#: templates/js/translated/stock.js:1763 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1622 +#: templates/js/translated/stock.js:1801 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691 +#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1731 +#: templates/js/translated/stock.js:1910 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1758 +#: templates/js/translated/stock.js:1937 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1760 +#: templates/js/translated/stock.js:1939 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2138 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1959 +#: templates/js/translated/stock.js:2152 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1960 +#: templates/js/translated/stock.js:2153 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2377 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2206 +#: templates/js/translated/stock.js:2399 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2231 +#: templates/js/translated/stock.js:2424 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2250 +#: templates/js/translated/stock.js:2443 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2269 +#: templates/js/translated/stock.js:2462 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2480 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2310 +#: templates/js/translated/stock.js:2503 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2318 +#: templates/js/translated/stock.js:2511 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2552 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2360 +#: templates/js/translated/stock.js:2553 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2411 +#: templates/js/translated/stock.js:2604 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2462 +#: templates/js/translated/stock.js:2655 msgid "Uninstall Stock Item" msgstr "" @@ -9059,18 +9261,26 @@ msgid "Move stock" msgstr "" #: templates/stock_table.html:52 +msgid "Merge selected stock items" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Merge stock" +msgstr "" + +#: templates/stock_table.html:53 msgid "Order selected items" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change status" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change stock status" msgstr "" -#: templates/stock_table.html:57 +#: templates/stock_table.html:58 msgid "Delete selected items" msgstr "" @@ -9106,35 +9316,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:189 +#: users/models.py:192 msgid "Permission set" msgstr "" -#: users/models.py:197 +#: users/models.py:200 msgid "Group" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "View" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "Permission to view items" msgstr "" -#: users/models.py:202 +#: users/models.py:205 msgid "Permission to add items" msgstr "" -#: users/models.py:204 +#: users/models.py:207 msgid "Change" msgstr "" -#: users/models.py:204 +#: users/models.py:207 msgid "Permissions to edit items" msgstr "" -#: users/models.py:206 +#: users/models.py:209 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po index f30c4284d8..8f0b0f1fbd 100644 --- a/InvenTree/locale/sv/LC_MESSAGES/django.po +++ b/InvenTree/locale/sv/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-12-08 23:43+0000\n" -"PO-Revision-Date: 2021-12-08 23:47\n" +"POT-Creation-Date: 2021-12-21 02:57+0000\n" +"PO-Revision-Date: 2021-12-21 03:01\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Language: sv_SE\n" @@ -34,50 +34,50 @@ msgstr "Ingen matchande åtgärd hittades" msgid "Enter date" msgstr "Ange datum" -#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93 +#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 build/forms.py:93 #: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: part/forms.py:108 templates/account/email_confirm.html:20 +#: part/forms.py:78 templates/account/email_confirm.html:20 #: templates/js/translated/forms.js:595 msgid "Confirm" msgstr "Bekräfta" -#: InvenTree/forms.py:136 +#: InvenTree/forms.py:142 msgid "Confirm delete" msgstr "Bekräfta borttagning" -#: InvenTree/forms.py:137 +#: InvenTree/forms.py:143 msgid "Confirm item deletion" msgstr "Bekräfta borttagning av artikel" -#: InvenTree/forms.py:168 +#: InvenTree/forms.py:174 msgid "Enter password" msgstr "Ange lösenord" -#: InvenTree/forms.py:169 +#: InvenTree/forms.py:175 msgid "Enter new password" msgstr "Ange nytt lösenord" -#: InvenTree/forms.py:176 +#: InvenTree/forms.py:182 msgid "Confirm password" msgstr "Bekräfta lösenord" -#: InvenTree/forms.py:177 +#: InvenTree/forms.py:183 msgid "Confirm new password" msgstr "Bekräfta nytt lösenord" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:215 msgid "Select Category" msgstr "Välj Kategori" -#: InvenTree/forms.py:230 +#: InvenTree/forms.py:236 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:234 +#: InvenTree/forms.py:240 msgid "Email address confirmation" msgstr "" -#: InvenTree/forms.py:254 +#: InvenTree/forms.py:260 msgid "You must type the same email each time." msgstr "" @@ -123,7 +123,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:132 stock/models.py:1852 +#: InvenTree/models.py:132 stock/models.py:1967 #: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "Bilaga" @@ -136,12 +136,12 @@ msgstr "Välj fil att bifoga" #: company/models.py:564 order/models.py:124 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:1258 +#: templates/js/translated/company.js:826 templates/js/translated/part.js:1260 msgid "Link" msgstr "" #: InvenTree/models.py:140 build/models.py:330 part/models.py:798 -#: stock/models.py:524 +#: stock/models.py:527 msgid "Link to external URL" msgstr "" @@ -153,10 +153,10 @@ msgstr "Kommentar" msgid "File comment" msgstr "Fil kommentar" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213 -#: common/models.py:1214 part/models.py:2205 part/models.py:2225 +#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1219 +#: common/models.py:1220 part/models.py:2205 part/models.py:2225 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2341 +#: templates/js/translated/stock.js:2534 msgid "User" msgstr "Användare" @@ -202,8 +202,8 @@ msgstr "Ogiltigt val" #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:268 #: templates/js/translated/company.js:638 templates/js/translated/part.js:506 -#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565 -#: templates/js/translated/stock.js:2134 +#: templates/js/translated/part.js:643 templates/js/translated/part.js:1567 +#: templates/js/translated/stock.js:2327 msgid "Name" msgstr "Namn" @@ -212,23 +212,23 @@ msgstr "Namn" #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70 +#: order/models.py:122 part/models.py:764 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:89 +#: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428 +#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540 #: templates/js/translated/build.js:1627 templates/js/translated/company.js:345 #: templates/js/translated/company.js:548 #: templates/js/translated/company.js:837 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 -#: templates/js/translated/part.js:565 templates/js/translated/part.js:933 -#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188 -#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653 -#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146 -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/part.js:565 templates/js/translated/part.js:935 +#: templates/js/translated/part.js:1020 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1586 templates/js/translated/part.js:1655 +#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339 +#: templates/js/translated/stock.js:2384 msgid "Description" msgstr "Beskrivning" @@ -248,83 +248,83 @@ msgstr "Måste vara ett giltigt nummer" msgid "Filename" msgstr "Filnamn" -#: InvenTree/settings.py:689 +#: InvenTree/settings.py:698 msgid "German" msgstr "Tyska" -#: InvenTree/settings.py:690 +#: InvenTree/settings.py:699 msgid "Greek" msgstr "Grekiska" -#: InvenTree/settings.py:691 +#: InvenTree/settings.py:700 msgid "English" msgstr "Engelska" -#: InvenTree/settings.py:692 +#: InvenTree/settings.py:701 msgid "Spanish" msgstr "Spanska" -#: InvenTree/settings.py:693 +#: InvenTree/settings.py:702 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:694 +#: InvenTree/settings.py:703 msgid "French" msgstr "Franska" -#: InvenTree/settings.py:695 +#: InvenTree/settings.py:704 msgid "Hebrew" msgstr "Hebreiska" -#: InvenTree/settings.py:696 +#: InvenTree/settings.py:705 msgid "Italian" msgstr "Italienska" -#: InvenTree/settings.py:697 +#: InvenTree/settings.py:706 msgid "Japanese" msgstr "Japanska" -#: InvenTree/settings.py:698 +#: InvenTree/settings.py:707 msgid "Korean" msgstr "Koreanska" -#: InvenTree/settings.py:699 +#: InvenTree/settings.py:708 msgid "Dutch" msgstr "Nederländska" -#: InvenTree/settings.py:700 +#: InvenTree/settings.py:709 msgid "Norwegian" msgstr "Norska" -#: InvenTree/settings.py:701 +#: InvenTree/settings.py:710 msgid "Polish" msgstr "Polska" -#: InvenTree/settings.py:702 +#: InvenTree/settings.py:711 msgid "Portugese" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:712 msgid "Russian" msgstr "Ryska" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:713 msgid "Swedish" msgstr "Svenska" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:714 msgid "Thai" msgstr "Thailändska" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:715 msgid "Turkish" msgstr "Turkiska" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:716 msgid "Vietnamese" msgstr "Vietnamesiska" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:717 msgid "Chinese" msgstr "Kinesiska" @@ -341,7 +341,7 @@ msgid "InvenTree system health checks failed" msgstr "InvenTree systemhälsokontroll misslyckades" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 msgid "Pending" msgstr "Väntar" @@ -349,14 +349,14 @@ msgstr "Väntar" msgid "Placed" msgstr "Placerad" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:319 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "Slutför" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:313 +#: InvenTree/status_codes.py:318 msgid "Cancelled" msgstr "Avbruten" @@ -370,7 +370,7 @@ msgstr "Förlorad" msgid "Returned" msgstr "Återlämnad" -#: InvenTree/status_codes.py:143 order/models.py:939 +#: InvenTree/status_codes.py:143 order/models.py:941 #: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255 msgid "Shipped" msgstr "Skickad" @@ -395,83 +395,87 @@ msgstr "Förstörd" msgid "Rejected" msgstr "Avvisad" -#: InvenTree/status_codes.py:269 +#: InvenTree/status_codes.py:272 msgid "Legacy stock tracking entry" msgstr "" -#: InvenTree/status_codes.py:271 +#: InvenTree/status_codes.py:274 msgid "Stock item created" msgstr "" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Edited stock item" msgstr "" -#: InvenTree/status_codes.py:274 +#: InvenTree/status_codes.py:277 msgid "Assigned serial number" msgstr "" -#: InvenTree/status_codes.py:276 +#: InvenTree/status_codes.py:279 msgid "Stock counted" msgstr "" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Stock manually added" msgstr "" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Stock manually removed" msgstr "" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Location changed" msgstr "" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Installed into assembly" msgstr "" -#: InvenTree/status_codes.py:283 +#: InvenTree/status_codes.py:286 msgid "Removed from assembly" msgstr "" -#: InvenTree/status_codes.py:285 +#: InvenTree/status_codes.py:288 msgid "Installed component item" msgstr "" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Removed component item" msgstr "" -#: InvenTree/status_codes.py:288 +#: InvenTree/status_codes.py:291 msgid "Split from parent item" msgstr "" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064 +msgid "Merged stock items" +msgstr "" + +#: InvenTree/status_codes.py:296 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:297 msgid "Returned from customer" msgstr "" -#: InvenTree/status_codes.py:294 +#: InvenTree/status_codes.py:299 msgid "Build order output created" msgstr "" -#: InvenTree/status_codes.py:295 +#: InvenTree/status_codes.py:300 msgid "Build order output completed" msgstr "" -#: InvenTree/status_codes.py:297 +#: InvenTree/status_codes.py:302 msgid "Received against purchase order" msgstr "" -#: InvenTree/status_codes.py:312 +#: InvenTree/status_codes.py:317 msgid "Production" msgstr "" @@ -575,16 +579,16 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1283 -#: build/templates/build/build_base.html:132 -#: build/templates/build/detail.html:35 common/models.py:1253 +#: build/forms.py:36 build/models.py:1286 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1259 #: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:794 order/models.py:1205 order/serializers.py:810 +#: order/models.py:796 order/models.py:1207 order/serializers.py:810 #: order/templates/order/order_wizard/match_parts.html:30 -#: 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 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:193 +#: part/forms.py:209 part/forms.py:225 part/models.py:2576 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:967 part/templates/part/detail.html:1053 +#: part/templates/part/detail.html:961 part/templates/part/detail.html:1047 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -592,10 +596,10 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:174 -#: stock/templates/stock/item_base.html:255 -#: stock/templates/stock/item_base.html:263 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443 +#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:261 +#: stock/templates/stock/item_base.html:269 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555 #: templates/js/translated/build.js:240 templates/js/translated/build.js:440 #: templates/js/translated/build.js:634 templates/js/translated/build.js:644 #: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367 @@ -604,10 +608,10 @@ msgstr "" #: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 #: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 #: templates/js/translated/order.js:2150 templates/js/translated/part.js:843 -#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919 -#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382 -#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326 -#: templates/js/translated/stock.js:2428 +#: templates/js/translated/part.js:1798 templates/js/translated/part.js:1921 +#: templates/js/translated/part.js:1999 templates/js/translated/stock.js:383 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750 +#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621 msgid "Quantity" msgstr "" @@ -616,8 +620,8 @@ msgid "Enter quantity for build output" msgstr "" #: build/forms.py:41 order/serializers.py:814 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:229 -#: templates/js/translated/stock.js:383 +#: stock/serializers.py:314 templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:384 msgid "Serial Numbers" msgstr "" @@ -661,7 +665,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:145 +#: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" msgstr "" @@ -671,11 +675,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:199 order/models.py:210 order/models.py:536 -#: order/models.py:801 part/models.py:2585 +#: order/models.py:803 part/models.py:2585 #: part/templates/part/bom_upload/match_parts.html:30 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124 +#: templates/js/translated/bom.js:547 templates/js/translated/build.js:1124 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "" @@ -695,7 +699,7 @@ msgstr "" #: build/models.py:225 build/templates/build/build_base.html:77 #: build/templates/build/detail.html:30 company/models.py:705 -#: order/models.py:854 order/models.py:928 +#: order/models.py:856 order/models.py:930 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357 #: part/models.py:2151 part/models.py:2167 part/models.py:2186 #: part/models.py:2203 part/models.py:2305 part/models.py:2427 @@ -706,20 +710,21 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 -#: templates/InvenTree/search.html:86 +#: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214 -#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326 +#: templates/js/translated/bom.js:505 templates/js/translated/build.js:625 #: templates/js/translated/build.js:993 templates/js/translated/build.js:1364 #: templates/js/translated/build.js:1632 templates/js/translated/company.js:489 #: templates/js/translated/company.js:746 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 -#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918 -#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166 -#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747 -#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416 +#: templates/js/translated/order.js:2128 templates/js/translated/part.js:920 +#: templates/js/translated/part.js:1001 templates/js/translated/part.js:1168 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719 +#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:2609 msgid "Part" msgstr "" @@ -776,7 +781,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:285 stock/models.py:528 +#: build/models.py:285 stock/models.py:531 msgid "Batch Code" msgstr "" @@ -830,27 +835,27 @@ msgstr "" #: build/models.py:329 build/templates/build/detail.html:102 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:354 stock/models.py:522 -#: stock/templates/stock/item_base.html:374 +#: part/templates/part/part_base.html:354 stock/models.py:525 +#: stock/templates/stock/item_base.html:372 msgid "External Link" 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:144 order/models.py:803 order/models.py:1049 +#: order/models.py:144 order/models.py:805 order/models.py:1051 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:925 -#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50 +#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594 -#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332 -#: stock/serializers.py:624 stock/serializers.py:711 +#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597 +#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332 +#: stock/serializers.py:638 stock/serializers.py:736 stock/serializers.py:868 #: stock/templates/stock/stock_sidebar.html:21 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711 #: templates/js/translated/company.js:842 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795 msgid "Notes" msgstr "" @@ -883,7 +888,7 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1133 order/models.py:1165 +#: build/models.py:1133 order/models.py:1167 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -891,51 +896,52 @@ msgstr "" msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1193 +#: build/models.py:1196 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1253 stock/templates/stock/item_base.html:346 -#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605 +#: build/models.py:1256 stock/templates/stock/item_base.html:344 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1605 #: templates/navbar.html:35 msgid "Build" msgstr "" -#: build/models.py:1254 +#: build/models.py:1257 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690 -#: order/serializers.py:708 stock/serializers.py:562 +#: build/models.py:1273 build/serializers.py:334 order/serializers.py:690 +#: order/serializers.py:708 stock/serializers.py:576 stock/serializers.py:694 #: stock/templates/stock/item_base.html:8 -#: stock/templates/stock/item_base.html:16 -#: stock/templates/stock/item_base.html:368 +#: stock/templates/stock/item_base.html:22 +#: stock/templates/stock/item_base.html:366 #: templates/js/translated/build.js:413 templates/js/translated/build.js:418 #: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277 +#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:2470 msgid "Stock Item" msgstr "" -#: build/models.py:1271 +#: build/models.py:1274 msgid "Source stock item" msgstr "" -#: build/models.py:1284 +#: build/models.py:1287 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1292 +#: build/models.py:1295 msgid "Install into" msgstr "" -#: build/models.py:1293 +#: build/models.py:1296 msgid "Destination stock item" msgstr "" -#: build/serializers.py:137 build/serializers.py:357 +#: build/serializers.py:137 build/serializers.py:363 msgid "Build Output" msgstr "" @@ -956,16 +962,16 @@ msgid "This build output is not fully allocated" msgstr "" #: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813 -#: stock/templates/stock/item_base.html:314 +#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:729 +#: stock/serializers.py:970 stock/templates/stock/item_base.html:312 #: templates/js/translated/barcode.js:384 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425 #: templates/js/translated/build.js:1032 templates/js/translated/order.js:508 #: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 #: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497 -#: templates/js/translated/stock.js:2218 +#: templates/js/translated/part.js:177 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411 msgid "Location" msgstr "" @@ -975,11 +981,11 @@ msgstr "" #: build/serializers.py:197 build/templates/build/build_base.html:137 #: build/templates/build/detail.html:63 order/models.py:552 -#: order/serializers.py:247 stock/templates/stock/item_base.html:180 +#: order/serializers.py:247 stock/templates/stock/item_base.html:186 #: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661 #: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472 -#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651 +#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637 msgid "Status" msgstr "" @@ -1000,33 +1006,33 @@ msgstr "" msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:319 +#: build/serializers.py:325 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:334 stock/serializers.py:569 +#: build/serializers.py:340 stock/serializers.py:583 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:348 order/models.py:277 order/serializers.py:240 -#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305 +#: build/serializers.py:354 order/models.py:277 order/serializers.py:240 +#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:390 order/serializers.py:741 +#: build/serializers.py:396 order/serializers.py:741 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:396 +#: build/serializers.py:402 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:403 +#: build/serializers.py:409 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:431 order/serializers.py:984 +#: build/serializers.py:437 order/serializers.py:984 msgid "Allocation items must be provided" msgstr "" @@ -1067,33 +1073,33 @@ msgstr "" msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:87 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:96 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:98 +#: build/templates/build/build_base.html:103 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:105 +#: build/templates/build/build_base.html:110 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Stock has not been fully allocated to this Build Order" msgstr "" @@ -1131,12 +1137,12 @@ msgid "Completed" msgstr "" #: build/templates/build/build_base.html:171 -#: build/templates/build/detail.html:95 order/models.py:925 -#: order/models.py:1021 order/templates/order/sales_order_base.html:9 +#: build/templates/build/detail.html:95 order/models.py:927 +#: order/models.py:1023 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:308 +#: stock/templates/stock/item_base.html:306 #: templates/js/translated/order.js:1218 msgid "Sales Order" msgstr "" @@ -1211,7 +1217,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "" @@ -1225,8 +1231,8 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:332 -#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451 +#: stock/templates/stock/item_base.html:330 +#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1278,7 +1284,7 @@ msgstr "" #: build/templates/build/detail.html:185 #: company/templates/company/detail.html:38 #: company/templates/company/detail.html:85 order/views.py:463 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order Parts" msgstr "" @@ -1347,7 +1353,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115 +#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115 #: stock/templates/stock/item.html:205 msgid "Edit Notes" msgstr "" @@ -1489,7 +1495,7 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:340 common/models.py:998 common/models.py:1206 +#: common/models.py:340 common/models.py:1004 common/models.py:1212 msgid "Settings key (must be unique - case insensitive" msgstr "" @@ -1651,7 +1657,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956 +#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:1068 #: templates/js/translated/table_filters.js:168 #: templates/js/translated/table_filters.js:416 msgid "Assembly" @@ -1953,256 +1959,264 @@ msgid "Group to which new users are assigned on registration" msgstr "" #: common/models.py:961 -msgid "Enable URL integration" +msgid "Enforce MFA" msgstr "" #: common/models.py:962 -msgid "Enable plugins to add URL routes" +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:967 +msgid "Enable URL integration" msgstr "" #: common/models.py:968 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:974 msgid "Enable navigation integration" msgstr "" -#: common/models.py:969 +#: common/models.py:975 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:975 +#: common/models.py:981 msgid "Enable global setting integration" msgstr "" -#: common/models.py:976 +#: common/models.py:982 msgid "Enable plugins to integrate into inventree global settings" msgstr "" -#: common/models.py:982 +#: common/models.py:988 msgid "Enable app integration" msgstr "" -#: common/models.py:983 +#: common/models.py:989 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1029 +#: common/models.py:1035 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1030 +#: common/models.py:1036 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1035 +#: common/models.py:1041 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1036 +#: common/models.py:1042 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1041 +#: common/models.py:1047 msgid "Show latest parts" msgstr "" -#: common/models.py:1042 +#: common/models.py:1048 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1047 +#: common/models.py:1053 msgid "Recent Part Count" msgstr "" -#: common/models.py:1048 +#: common/models.py:1054 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1054 +#: common/models.py:1060 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1055 +#: common/models.py:1061 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1060 +#: common/models.py:1066 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1061 +#: common/models.py:1067 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1066 +#: common/models.py:1072 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1067 +#: common/models.py:1073 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1072 +#: common/models.py:1078 msgid "Show low stock" msgstr "" -#: common/models.py:1073 +#: common/models.py:1079 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1078 +#: common/models.py:1084 msgid "Show depleted stock" msgstr "" -#: common/models.py:1079 +#: common/models.py:1085 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1084 +#: common/models.py:1090 msgid "Show needed stock" msgstr "" -#: common/models.py:1085 +#: common/models.py:1091 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1090 +#: common/models.py:1096 msgid "Show expired stock" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1096 +#: common/models.py:1102 msgid "Show stale stock" msgstr "" -#: common/models.py:1097 +#: common/models.py:1103 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1102 +#: common/models.py:1108 msgid "Show pending builds" msgstr "" -#: common/models.py:1103 +#: common/models.py:1109 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1108 +#: common/models.py:1114 msgid "Show overdue builds" msgstr "" -#: common/models.py:1109 +#: common/models.py:1115 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1114 +#: common/models.py:1120 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1115 +#: common/models.py:1121 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1120 +#: common/models.py:1126 msgid "Show overdue POs" msgstr "" -#: common/models.py:1121 +#: common/models.py:1127 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1126 +#: common/models.py:1132 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1127 +#: common/models.py:1133 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1132 +#: common/models.py:1138 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1133 +#: common/models.py:1139 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1139 +#: common/models.py:1145 msgid "Inline label display" msgstr "" -#: common/models.py:1140 +#: common/models.py:1146 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1146 +#: common/models.py:1152 msgid "Inline report display" msgstr "" -#: common/models.py:1147 +#: common/models.py:1153 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "Search Preview Results" msgstr "" -#: common/models.py:1154 +#: common/models.py:1160 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1160 +#: common/models.py:1166 msgid "Search Show Stock" msgstr "" -#: common/models.py:1161 +#: common/models.py:1167 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1167 +#: common/models.py:1173 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1168 +#: common/models.py:1174 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1174 +#: common/models.py:1180 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1175 +#: common/models.py:1181 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1181 +#: common/models.py:1187 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1182 +#: common/models.py:1188 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1188 +#: common/models.py:1194 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1189 +#: common/models.py:1195 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1254 company/forms.py:43 +#: common/models.py:1260 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1261 company/serializers.py:264 +#: common/models.py:1267 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801 +#: templates/js/translated/part.js:852 templates/js/translated/part.js:1803 msgid "Price" msgstr "" -#: common/models.py:1262 +#: common/models.py:1268 msgid "Unit price at specified quantity" msgstr "" @@ -2290,7 +2304,7 @@ msgid "Contact phone number" msgstr "" #: company/models.py:125 company/templates/company/company_base.html:129 -#: templates/InvenTree/settings/user.html:47 +#: templates/InvenTree/settings/user.html:48 msgid "Email" msgstr "" @@ -2347,8 +2361,8 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:320 company/models.py:535 stock/models.py:468 -#: stock/templates/stock/item_base.html:135 +#: company/models.py:320 company/models.py:535 stock/models.py:469 +#: stock/templates/stock/item_base.html:141 msgid "Base Part" msgstr "" @@ -2359,7 +2373,7 @@ msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:381 +#: stock/templates/stock/item_base.html:379 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:514 #: templates/js/translated/company.js:797 templates/js/translated/part.js:232 @@ -2393,7 +2407,7 @@ msgstr "" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:391 +#: stock/templates/stock/item_base.html:389 msgid "Manufacturer Part" msgstr "" @@ -2403,8 +2417,8 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:1845 templates/js/translated/company.js:644 -#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117 +#: stock/models.py:1960 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1296 msgid "Value" msgstr "" @@ -2431,7 +2445,7 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:224 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219 -#: part/bom.py:247 stock/templates/stock/item_base.html:398 +#: part/bom.py:247 stock/templates/stock/item_base.html:396 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:771 templates/js/translated/order.js:823 #: templates/js/translated/part.js:213 templates/js/translated/part.js:800 @@ -2479,8 +2493,8 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:491 stock/templates/stock/item_base.html:339 -#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612 +#: stock/models.py:493 stock/templates/stock/item_base.html:337 +#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1791 msgid "Packaging" msgstr "" @@ -2506,7 +2520,7 @@ msgstr "" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322 +#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322 msgid "Company" msgstr "" @@ -2548,11 +2562,11 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:83 order/models.py:547 -#: order/templates/order/sales_order_base.html:115 stock/models.py:509 -#: stock/models.py:510 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:291 +#: order/templates/order/sales_order_base.html:115 stock/models.py:512 +#: stock/models.py:513 stock/serializers.py:624 +#: stock/templates/stock/item_base.html:289 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2259 +#: templates/js/translated/stock.js:2452 msgid "Customer" msgstr "" @@ -2571,7 +2585,7 @@ msgstr "" #: company/templates/company/detail.html:15 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:124 +#: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" @@ -2590,14 +2604,14 @@ msgstr "" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:167 part/templates/part/detail.html:342 +#: part/templates/part/category.html:171 part/templates/part/detail.html:342 #: part/templates/part/detail.html:370 msgid "Options" msgstr "" #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order parts" msgstr "" @@ -2611,7 +2625,7 @@ msgstr "" msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109 +#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" @@ -2633,8 +2647,8 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203 +#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" @@ -2655,8 +2669,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223 +#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" @@ -2698,7 +2712,7 @@ msgid "Supplier List" msgstr "" #: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184 +#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 #: templates/navbar.html:46 msgid "Manufacturers" msgstr "" @@ -2706,7 +2720,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:67 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76 msgid "Order part" msgstr "" @@ -2728,7 +2742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 #: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:194 templates/navbar.html:45 +#: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "" @@ -2742,7 +2756,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:254 #: part/templates/part/detail.html:344 part/templates/part/detail.html:372 #: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31 -#: users/models.py:206 +#: users/models.py:209 msgid "Delete" msgstr "" @@ -2765,7 +2779,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:867 +#: part/templates/part/detail.html:861 msgid "Add Parameter" msgstr "" @@ -2794,9 +2808,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:476 -#: stock/templates/stock/item_base.html:403 -#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569 +#: company/templates/company/supplier_part.html:24 stock/models.py:477 +#: stock/templates/stock/item_base.html:401 +#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1748 msgid "Supplier Part" msgstr "" @@ -2816,13 +2830,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:20 stock/templates/stock/location.html:162 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:166 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163 -#: templates/js/translated/stock.js:359 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 +#: templates/js/translated/stock.js:360 msgid "New Stock Item" msgstr "" @@ -2832,7 +2846,7 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:68 +#: part/templates/part/detail.html:72 msgid "Order Part" msgstr "" @@ -2843,7 +2857,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:1717 +#: part/templates/part/prices.html:271 part/views.py:1713 msgid "Add Price Break" msgstr "" @@ -2851,11 +2865,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1779 +#: company/templates/company/supplier_part.html:224 part/views.py:1775 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1765 +#: company/templates/company/supplier_part.html:238 part/views.py:1761 msgid "Edit Price Break" msgstr "" @@ -2869,14 +2883,14 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:156 +#: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434 -#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059 -#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:1401 templates/navbar.html:28 +#: templates/js/translated/bom.js:328 templates/js/translated/part.js:434 +#: templates/js/translated/part.js:569 templates/js/translated/part.js:1061 +#: templates/js/translated/part.js:1222 templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:1580 templates/navbar.html:28 msgid "Stock" msgstr "" @@ -2895,11 +2909,11 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:133 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:159 +#: stock/templates/stock/location.html:137 +#: stock/templates/stock/location.html:151 +#: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "" @@ -2912,7 +2926,7 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:61 templates/InvenTree/search.html:214 +#: company/views.py:61 templates/InvenTree/search.html:208 #: templates/navbar.html:57 msgid "Customers" msgstr "" @@ -3121,7 +3135,7 @@ msgstr "" msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:562 order/models.py:1026 +#: order/models.py:562 order/models.py:1028 #: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429 msgid "Shipment Date" msgstr "" @@ -3130,7 +3144,7 @@ msgstr "" msgid "shipped by" msgstr "" -#: order/models.py:634 +#: order/models.py:635 msgid "Order cannot be completed as no parts have been assigned" msgstr "" @@ -3138,172 +3152,172 @@ msgstr "" msgid "Only a pending order can be marked as complete" msgstr "" -#: order/models.py:643 +#: order/models.py:642 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:647 +#: order/models.py:645 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:795 +#: order/models.py:797 msgid "Item quantity" msgstr "" -#: order/models.py:801 +#: order/models.py:803 msgid "Line item reference" msgstr "" -#: order/models.py:803 +#: order/models.py:805 msgid "Line item notes" msgstr "" -#: order/models.py:833 order/models.py:924 order/models.py:1020 +#: order/models.py:835 order/models.py:926 order/models.py:1022 #: templates/js/translated/order.js:1820 msgid "Order" msgstr "" -#: order/models.py:834 order/templates/order/order_base.html:9 +#: order/models.py:836 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:353 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/order.js:801 templates/js/translated/part.js:775 -#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240 +#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433 msgid "Purchase Order" msgstr "" -#: order/models.py:855 +#: order/models.py:857 msgid "Supplier part" msgstr "" -#: order/models.py:862 order/templates/order/order_base.html:163 +#: order/models.py:864 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:847 templates/js/translated/part.js:873 #: templates/js/translated/table_filters.js:317 msgid "Received" msgstr "" -#: order/models.py:863 +#: order/models.py:865 msgid "Number of items received" msgstr "" -#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:360 -#: templates/js/translated/stock.js:1600 +#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:358 +#: templates/js/translated/stock.js:1779 msgid "Purchase Price" msgstr "" -#: order/models.py:871 +#: order/models.py:873 msgid "Unit purchase price" msgstr "" -#: order/models.py:879 +#: order/models.py:881 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:934 part/templates/part/part_pricing.html:112 +#: order/models.py:936 part/templates/part/part_pricing.html:112 #: part/templates/part/prices.html:116 part/templates/part/prices.html:284 msgid "Sale Price" msgstr "" -#: order/models.py:935 +#: order/models.py:937 msgid "Unit sale price" msgstr "" -#: order/models.py:940 +#: order/models.py:942 msgid "Shipped quantity" msgstr "" -#: order/models.py:1027 +#: order/models.py:1029 msgid "Date of shipment" msgstr "" -#: order/models.py:1034 +#: order/models.py:1036 msgid "Checked By" msgstr "" -#: order/models.py:1035 +#: order/models.py:1037 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1043 +#: order/models.py:1045 msgid "Shipment number" msgstr "" -#: order/models.py:1050 +#: order/models.py:1052 msgid "Shipment notes" msgstr "" -#: order/models.py:1057 +#: order/models.py:1059 msgid "Tracking Number" msgstr "" -#: order/models.py:1058 +#: order/models.py:1060 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1068 +#: order/models.py:1070 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1071 +#: order/models.py:1073 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1147 order/models.py:1149 +#: order/models.py:1149 order/models.py:1151 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1153 +#: order/models.py:1155 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1155 +#: order/models.py:1157 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1158 +#: order/models.py:1160 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1162 +#: order/models.py:1164 msgid "StockItem is over-allocated" msgstr "" -#: order/models.py:1168 order/serializers.py:734 +#: order/models.py:1170 order/serializers.py:734 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1171 +#: order/models.py:1173 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1172 +#: order/models.py:1174 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1180 +#: order/models.py:1182 msgid "Line" msgstr "" -#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953 +#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953 #: templates/js/translated/model_renderers.js:251 msgid "Shipment" msgstr "" -#: order/models.py:1189 +#: order/models.py:1191 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1201 +#: order/models.py:1203 msgid "Item" msgstr "" -#: order/models.py:1202 +#: order/models.py:1204 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1205 +#: order/models.py:1207 msgid "Enter stock allocation quantity" msgstr "" @@ -3530,7 +3544,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/build.js:245 templates/js/translated/build.js:1256 #: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:592 +#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761 msgid "Remove row" msgstr "" @@ -3722,7 +3736,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188 +#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1188 msgid "Actions" msgstr "" @@ -3797,24 +3811,24 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:760 +#: part/api.py:777 msgid "Must be greater than zero" msgstr "" -#: part/api.py:764 +#: part/api.py:781 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:779 +#: part/api.py:796 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833 +#: part/api.py:827 part/api.py:831 part/api.py:846 part/api.py:850 msgid "This field is required" msgstr "" #: part/bom.py:125 part/models.py:81 part/models.py:816 -#: part/templates/part/category.html:104 part/templates/part/part_base.html:338 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "" @@ -3822,99 +3836,43 @@ msgstr "" msgid "Available Stock" msgstr "" -#: part/forms.py:63 -msgid "File Format" -msgstr "" - -#: part/forms.py:63 -msgid "Select output file format" -msgstr "" - -#: part/forms.py:65 -msgid "Cascading" -msgstr "" - -#: part/forms.py:65 -msgid "Download cascading / multi-level BOM" -msgstr "" - -#: part/forms.py:67 -msgid "Levels" -msgstr "" - -#: part/forms.py:67 -msgid "Select maximum number of BOM levels to export (0 = all levels)" -msgstr "" - -#: part/forms.py:69 -msgid "Include Parameter Data" -msgstr "" - -#: part/forms.py:69 -msgid "Include part parameters data in exported BOM" -msgstr "" - -#: part/forms.py:71 -msgid "Include Stock Data" -msgstr "" - -#: part/forms.py:71 -msgid "Include part stock data in exported BOM" -msgstr "" - -#: part/forms.py:73 -msgid "Include Manufacturer Data" -msgstr "" - -#: part/forms.py:73 -msgid "Include part manufacturer data in exported BOM" -msgstr "" - -#: part/forms.py:75 -msgid "Include Supplier Data" -msgstr "" - -#: part/forms.py:75 -msgid "Include part supplier data in exported BOM" -msgstr "" - -#: part/forms.py:96 part/models.py:2427 +#: part/forms.py:66 part/models.py:2427 msgid "Parent Part" msgstr "" -#: part/forms.py:97 part/templates/part/bom_duplicate.html:7 +#: part/forms.py:67 part/templates/part/bom_duplicate.html:7 msgid "Select parent part to copy BOM from" msgstr "" -#: part/forms.py:103 +#: part/forms.py:73 msgid "Clear existing BOM items" msgstr "" -#: part/forms.py:109 +#: part/forms.py:79 msgid "Confirm BOM duplication" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "validate" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "Confirm that the BOM is correct" msgstr "" -#: part/forms.py:163 +#: part/forms.py:133 msgid "Select part category" msgstr "" -#: part/forms.py:200 +#: part/forms.py:170 msgid "Add parameter template to same level categories" msgstr "" -#: part/forms.py:204 +#: part/forms.py:174 msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:224 +#: part/forms.py:194 msgid "Input quantity for price calculation" msgstr "" @@ -3930,24 +3888,24 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11 +#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:96 part/templates/part/category.html:124 -#: templates/InvenTree/search.html:101 templates/stats.html:84 +#: part/models.py:96 part/templates/part/category.html:128 +#: templates/InvenTree/search.html:95 templates/stats.html:84 #: users/models.py:40 msgid "Part Categories" msgstr "" #: part/models.py:358 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:13 part/templates/part/category.html:129 -#: part/templates/part/category.html:149 +#: part/templates/part/category.html:17 part/templates/part/category.html:133 +#: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1597 templates/navbar.html:21 +#: templates/js/translated/part.js:1599 templates/navbar.html:21 #: templates/stats.html:80 templates/stats.html:89 users/models.py:41 msgid "Parts" msgstr "" @@ -4001,7 +3959,7 @@ msgstr "" msgid "Part description" msgstr "" -#: part/models.py:770 part/templates/part/category.html:82 +#: part/models.py:770 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "" @@ -4014,7 +3972,7 @@ msgstr "" #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 #: templates/InvenTree/settings/settings.html:172 -#: templates/js/translated/part.js:1202 +#: templates/js/translated/part.js:1204 msgid "Category" msgstr "" @@ -4023,8 +3981,8 @@ msgid "Part category" msgstr "" #: part/models.py:784 part/templates/part/part_base.html:274 -#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155 -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/part.js:557 templates/js/translated/part.js:1157 +#: templates/js/translated/stock.js:1552 msgid "IPN" msgstr "" @@ -4145,8 +4103,8 @@ msgstr "" msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2310 templates/js/translated/part.js:1648 -#: templates/js/translated/stock.js:1097 +#: part/models.py:2310 templates/js/translated/part.js:1650 +#: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "" @@ -4162,7 +4120,7 @@ msgstr "" msgid "Enter description for this test" msgstr "" -#: part/models.py:2322 templates/js/translated/part.js:1657 +#: part/models.py:2322 templates/js/translated/part.js:1659 #: templates/js/translated/table_filters.js:281 msgid "Required" msgstr "" @@ -4171,7 +4129,7 @@ msgstr "" msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2328 templates/js/translated/part.js:1665 +#: part/models.py:2328 templates/js/translated/part.js:1667 msgid "Requires Value" msgstr "" @@ -4179,7 +4137,7 @@ msgstr "" msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2334 templates/js/translated/part.js:1672 +#: part/models.py:2334 templates/js/translated/part.js:1674 msgid "Requires Attachment" msgstr "" @@ -4241,8 +4199,8 @@ msgstr "" msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2578 templates/js/translated/bom.js:454 -#: templates/js/translated/bom.js:528 +#: part/models.py:2578 templates/js/translated/bom.js:566 +#: templates/js/translated/bom.js:640 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" @@ -4275,8 +4233,8 @@ msgstr "" msgid "BOM line checksum" msgstr "" -#: part/models.py:2594 templates/js/translated/bom.js:545 -#: templates/js/translated/bom.js:552 +#: part/models.py:2594 templates/js/translated/bom.js:657 +#: templates/js/translated/bom.js:664 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" @@ -4286,7 +4244,7 @@ msgstr "" msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2600 templates/js/translated/bom.js:537 +#: part/models.py:2600 templates/js/translated/bom.js:649 msgid "Allow Variants" msgstr "" @@ -4406,100 +4364,100 @@ msgstr "" msgid "This will validate each line in the BOM." msgstr "" -#: part/templates/part/category.html:24 part/templates/part/category.html:28 +#: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:32 +#: part/templates/part/category.html:36 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:38 +#: part/templates/part/category.html:42 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:43 +#: part/templates/part/category.html:47 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:44 +#: part/templates/part/category.html:48 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:52 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:53 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:57 +#: part/templates/part/category.html:61 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:58 +#: part/templates/part/category.html:62 msgid "New Category" msgstr "" -#: part/templates/part/category.html:76 part/templates/part/category.html:89 +#: part/templates/part/category.html:80 part/templates/part/category.html:93 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:90 +#: part/templates/part/category.html:94 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:110 part/templates/part/category.html:201 +#: part/templates/part/category.html:114 part/templates/part/category.html:205 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:115 +#: part/templates/part/category.html:119 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:152 +#: part/templates/part/category.html:156 msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:153 part/templates/part/category.html:177 +#: part/templates/part/category.html:157 part/templates/part/category.html:181 msgid "Export" msgstr "" -#: part/templates/part/category.html:156 +#: part/templates/part/category.html:160 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:157 templates/js/translated/bom.js:40 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 msgid "New Part" msgstr "" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set category" msgstr "" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:175 +#: part/templates/part/category.html:179 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:177 +#: part/templates/part/category.html:181 msgid "Export Data" msgstr "" -#: part/templates/part/category.html:191 +#: part/templates/part/category.html:195 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:268 +#: part/templates/part/category.html:288 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:295 +#: part/templates/part/category.html:315 msgid "Create Part" msgstr "" @@ -4566,24 +4524,24 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:17 +#: part/templates/part/detail.html:21 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:29 +#: part/templates/part/detail.html:33 #, python-format msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:39 +#: part/templates/part/detail.html:43 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:44 +#: part/templates/part/detail.html:48 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:101 +#: part/templates/part/detail.html:105 msgid "Sales Order Allocations" msgstr "" @@ -4619,7 +4577,7 @@ msgstr "" msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:242 +#: part/templates/part/detail.html:242 templates/js/translated/bom.js:70 msgid "Export BOM" msgstr "" @@ -4683,38 +4641,38 @@ msgstr "" msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:651 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:659 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:760 +#: part/templates/part/detail.html:754 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:817 +#: part/templates/part/detail.html:811 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:930 +#: part/templates/part/detail.html:924 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:942 +#: part/templates/part/detail.html:936 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:954 +#: part/templates/part/detail.html:948 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1043 +#: part/templates/part/detail.html:1037 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4745,20 +4703,20 @@ msgid "Subscribe to notifications for this part" msgstr "" #: part/templates/part/part_base.html:43 -#: stock/templates/stock/item_base.html:28 -#: stock/templates/stock/location.html:29 +#: stock/templates/stock/item_base.html:34 +#: stock/templates/stock/location.html:33 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:45 -#: stock/templates/stock/item_base.html:32 -#: stock/templates/stock/location.html:31 templates/qr_button.html:1 +#: stock/templates/stock/item_base.html:38 +#: stock/templates/stock/location.html:35 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:48 -#: stock/templates/stock/location.html:32 +#: stock/templates/stock/item_base.html:54 +#: stock/templates/stock/location.html:36 msgid "Print Label" msgstr "" @@ -4767,8 +4725,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:103 -#: stock/templates/stock/location.html:40 +#: stock/templates/stock/item_base.html:109 +#: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "" @@ -4848,7 +4806,7 @@ msgstr "" msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1235 +#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1237 msgid "On Order" msgstr "" @@ -4864,12 +4822,12 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:566 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1066 -#: templates/js/translated/part.js:1239 +#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1068 +#: templates/js/translated/part.js:1241 msgid "Building" msgstr "" @@ -4882,7 +4840,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:159 +#: stock/templates/stock/item_base.html:165 msgid "Search for serial number" msgstr "" @@ -4921,7 +4879,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:520 +#: templates/js/translated/bom.js:632 msgid "No supplier pricing available" msgstr "" @@ -5036,7 +4994,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626 msgid "Supplier Cost" msgstr "" @@ -5058,7 +5016,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1788 +#: part/templates/part/prices.html:215 part/views.py:1784 msgid "Add Internal Price Break" msgstr "" @@ -5078,9 +5036,9 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476 -#: templates/js/translated/part.js:436 templates/js/translated/part.js:1056 -#: templates/js/translated/part.js:1243 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588 +#: templates/js/translated/part.js:436 templates/js/translated/part.js:1058 +#: templates/js/translated/part.js:1245 msgid "No Stock" msgstr "" @@ -5154,67 +5112,67 @@ msgstr "" msgid "Match Parts" msgstr "" -#: part/views.py:1196 +#: part/views.py:1195 msgid "Export Bill of Materials" msgstr "" -#: part/views.py:1248 +#: part/views.py:1244 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1255 +#: part/views.py:1251 msgid "Part was deleted" msgstr "" -#: part/views.py:1264 +#: part/views.py:1260 msgid "Part Pricing" msgstr "" -#: part/views.py:1413 +#: part/views.py:1409 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1423 +#: part/views.py:1419 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1430 +#: part/views.py:1426 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1489 templates/js/translated/part.js:313 +#: part/views.py:1485 templates/js/translated/part.js:313 msgid "Edit Part Category" msgstr "" -#: part/views.py:1527 +#: part/views.py:1523 msgid "Delete Part Category" msgstr "" -#: part/views.py:1533 +#: part/views.py:1529 msgid "Part category was deleted" msgstr "" -#: part/views.py:1542 +#: part/views.py:1538 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1643 +#: part/views.py:1639 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1699 +#: part/views.py:1695 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1721 +#: part/views.py:1717 msgid "Added new price break" msgstr "" -#: part/views.py:1797 +#: part/views.py:1793 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1805 +#: part/views.py:1801 msgid "Delete Internal Price Break" msgstr "" @@ -5388,12 +5346,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:514 stock/templates/stock/item_base.html:149 +#: stock/models.py:517 stock/templates/stock/item_base.html:155 #: templates/js/translated/build.js:238 templates/js/translated/build.js:642 #: templates/js/translated/build.js:1018 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415 msgid "Serial Number" msgstr "" @@ -5402,19 +5360,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:1833 +#: stock/models.py:1948 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:1839 +#: stock/models.py:1954 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:49 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367 msgid "Date" msgstr "" @@ -5432,17 +5390,18 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434 +#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748 +#: templates/js/translated/stock.js:2627 msgid "Serial" msgstr "" -#: stock/api.py:446 +#: stock/api.py:478 msgid "Quantity is required" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571 -#: stock/templates/stock/item_base.html:186 -#: templates/js/translated/stock.js:1522 +#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574 +#: stock/templates/stock/item_base.html:192 +#: templates/js/translated/stock.js:1701 msgid "Expiry Date" msgstr "" @@ -5490,12 +5449,12 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:60 stock/models.py:608 -#: stock/templates/stock/item_base.html:417 +#: stock/models.py:60 stock/models.py:611 +#: stock/templates/stock/item_base.html:415 msgid "Owner" msgstr "" -#: stock/models.py:61 stock/models.py:609 +#: stock/models.py:61 stock/models.py:612 msgid "Select Owner" msgstr "" @@ -5528,150 +5487,190 @@ msgstr "" msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:460 +#: stock/models.py:461 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:470 msgid "Base part" msgstr "" -#: stock/models.py:477 +#: stock/models.py:478 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:482 stock/templates/stock/location.html:12 +#: stock/models.py:484 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:485 +#: stock/models.py:487 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:492 +#: stock/models.py:494 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:497 stock/templates/stock/item_base.html:299 +#: stock/models.py:500 stock/templates/stock/item_base.html:297 msgid "Installed In" msgstr "" -#: stock/models.py:500 +#: stock/models.py:503 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:516 +#: stock/models.py:519 msgid "Serial number for this item" msgstr "" -#: stock/models.py:530 +#: stock/models.py:533 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:534 +#: stock/models.py:537 msgid "Stock Quantity" msgstr "" -#: stock/models.py:543 +#: stock/models.py:546 msgid "Source Build" msgstr "" -#: stock/models.py:545 +#: stock/models.py:548 msgid "Build for this stock item" msgstr "" -#: stock/models.py:556 +#: stock/models.py:559 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:559 +#: stock/models.py:562 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:565 +#: stock/models.py:568 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:572 +#: stock/models.py:575 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete on deplete" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:595 stock/templates/stock/item.html:111 +#: stock/models.py:598 stock/templates/stock/item.html:111 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:604 +#: stock/models.py:607 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1072 +#: stock/models.py:1068 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1078 +#: stock/models.py:1074 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1084 +#: stock/models.py:1080 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1087 +#: stock/models.py:1083 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1090 +#: stock/models.py:1086 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1097 +#: stock/models.py:1093 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1255 +#: stock/models.py:1164 +msgid "Stock item has been assigned to a sales order" +msgstr "" + +#: stock/models.py:1167 +msgid "Stock item is installed in another item" +msgstr "" + +#: stock/models.py:1170 +msgid "Stock item contains other items" +msgstr "" + +#: stock/models.py:1173 +msgid "Stock item has been assigned to a customer" +msgstr "" + +#: stock/models.py:1176 +msgid "Stock item is currently in production" +msgstr "" + +#: stock/models.py:1179 +msgid "Serialized stock cannot be merged" +msgstr "" + +#: stock/models.py:1186 stock/serializers.py:773 +msgid "Duplicate stock items" +msgstr "" + +#: stock/models.py:1190 +msgid "Stock items must refer to the same part" +msgstr "" + +#: stock/models.py:1194 +msgid "Stock items must refer to the same supplier part" +msgstr "" + +#: stock/models.py:1198 +msgid "Stock status codes must match" +msgstr "" + +#: stock/models.py:1369 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1753 +#: stock/models.py:1868 msgid "Entry notes" msgstr "" -#: stock/models.py:1810 +#: stock/models.py:1925 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1931 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1834 +#: stock/models.py:1949 msgid "Test name" msgstr "" -#: stock/models.py:1840 templates/js/translated/table_filters.js:271 +#: stock/models.py:1955 templates/js/translated/table_filters.js:271 msgid "Test result" msgstr "" -#: stock/models.py:1846 +#: stock/models.py:1961 msgid "Test output value" msgstr "" -#: stock/models.py:1853 +#: stock/models.py:1968 msgid "Test result attachment" msgstr "" -#: stock/models.py:1859 +#: stock/models.py:1974 msgid "Test notes" msgstr "" @@ -5696,7 +5695,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:814 +#: stock/serializers.py:326 stock/serializers.py:730 stock/serializers.py:971 msgid "Destination stock location" msgstr "" @@ -5708,39 +5707,63 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:573 +#: stock/serializers.py:587 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:577 +#: stock/serializers.py:591 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:581 +#: stock/serializers.py:595 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:611 +#: stock/serializers.py:625 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:617 +#: stock/serializers.py:631 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:639 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:635 stock/serializers.py:722 +#: stock/serializers.py:649 stock/serializers.py:879 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:684 +#: stock/serializers.py:737 +msgid "Stock merging notes" +msgstr "" + +#: stock/serializers.py:742 +msgid "Allow mismatched suppliers" +msgstr "" + +#: stock/serializers.py:743 +msgid "Allow stock items with different supplier parts to be merged" +msgstr "" + +#: stock/serializers.py:748 +msgid "Allow mismatched status" +msgstr "" + +#: stock/serializers.py:749 +msgid "Allow stock items with different status codes to be merged" +msgstr "" + +#: stock/serializers.py:759 +msgid "At least two stock items must be provided" +msgstr "" + +#: stock/serializers.py:841 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:712 +#: stock/serializers.py:869 msgid "Stock transaction notes" msgstr "" @@ -5765,7 +5788,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50 +#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:56 msgid "Test Report" msgstr "" @@ -5797,197 +5820,189 @@ msgstr "" msgid "Delete Test Result" msgstr "" -#: stock/templates/stock/item_base.html:35 +#: stock/templates/stock/item_base.html:41 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:37 +#: stock/templates/stock/item_base.html:43 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24 +#: stock/templates/stock/item_base.html:45 templates/stock_table.html:24 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:46 +#: stock/templates/stock/item_base.html:52 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:71 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:47 templates/stock_table.html:50 +#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/location.html:51 templates/stock_table.html:50 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:78 templates/stock_table.html:48 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49 +#: stock/templates/stock/item_base.html:81 templates/stock_table.html:49 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:84 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:53 +#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/location.html:57 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53 +#: stock/templates/stock/item_base.html:91 templates/stock_table.html:54 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:94 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:108 +#: stock/templates/stock/item_base.html:114 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/item_base.html:117 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:119 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:116 +#: stock/templates/stock/item_base.html:122 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/stock.js:1535 +#: stock/templates/stock/item_base.html:205 +#: templates/js/translated/stock.js:1714 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:208 +#: stock/templates/stock/item_base.html:214 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:226 +#: stock/templates/stock/item_base.html:232 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:239 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:234 +#: stock/templates/stock/item_base.html:240 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:247 +#: stock/templates/stock/item_base.html:253 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:261 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:263 +#: stock/templates/stock/item_base.html:269 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:269 +#: stock/templates/stock/item_base.html:275 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:273 -msgid "This stock item cannot be deleted as it has child items" -msgstr "" - -#: stock/templates/stock/item_base.html:277 -msgid "This stock item will be automatically deleted when all stock is depleted." -msgstr "" - -#: stock/templates/stock/item_base.html:318 +#: stock/templates/stock/item_base.html:316 #: templates/js/translated/build.js:1040 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:325 +#: stock/templates/stock/item_base.html:323 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:367 +#: stock/templates/stock/item_base.html:365 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:385 +#: stock/templates/stock/item_base.html:383 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:410 +#: stock/templates/stock/item_base.html:408 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:500 +#: stock/templates/stock/item_base.html:498 msgid "Edit Stock Status" msgstr "" @@ -6041,59 +6056,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:37 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:65 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:67 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:65 +#: stock/templates/stock/location.html:69 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:79 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:76 +#: stock/templates/stock/location.html:80 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:95 -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:99 +#: stock/templates/stock/location.html:105 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:102 +#: stock/templates/stock/location.html:106 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:119 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:175 +#: stock/templates/stock/location.html:132 +#: stock/templates/stock/location.html:179 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:142 templates/InvenTree/search.html:170 +#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "" -#: stock/templates/stock/location.html:182 templates/stock_table.html:30 +#: stock/templates/stock/location.html:186 templates/stock_table.html:30 msgid "Printing Actions" msgstr "" -#: stock/templates/stock/location.html:186 templates/stock_table.html:34 +#: stock/templates/stock/location.html:190 templates/stock_table.html:34 msgid "Print labels" msgstr "" @@ -6178,7 +6193,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:887 +#: stock/views.py:727 templates/js/translated/stock.js:1066 msgid "Confirm stock adjustment" msgstr "" @@ -6186,7 +6201,7 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:323 +#: stock/views.py:760 templates/js/translated/stock.js:324 msgid "Edit Stock Item" msgstr "" @@ -6198,7 +6213,7 @@ msgstr "" msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:303 +#: stock/views.py:1153 templates/js/translated/stock.js:304 msgid "Duplicate Stock Item" msgstr "" @@ -6314,10 +6329,6 @@ msgstr "" msgid "Search Results" msgstr "" -#: templates/InvenTree/search.html:22 -msgid "Enter a search query" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6363,7 +6374,7 @@ msgstr "" msgid "Login Settings" msgstr "" -#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5 +#: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5 msgid "Signup" msgstr "" @@ -6648,7 +6659,7 @@ msgstr "" msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:55 +#: templates/InvenTree/settings/user.html:54 msgid "The following email addresses are associated with your account:" msgstr "" @@ -6673,145 +6684,193 @@ msgid "Re-send Verification" msgstr "" #: templates/InvenTree/settings/user.html:87 -#: templates/InvenTree/settings/user.html:154 +#: templates/InvenTree/settings/user.html:149 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:94 +#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:201 msgid "Warning:" msgstr "" -#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:96 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:102 +#: templates/InvenTree/settings/user.html:104 msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:112 -msgid "Enter e-mail address" -msgstr "" - -#: templates/InvenTree/settings/user.html:114 +#: templates/InvenTree/settings/user.html:109 msgid "Add Email" msgstr "" -#: templates/InvenTree/settings/user.html:124 +#: templates/InvenTree/settings/user.html:117 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:129 +#: templates/InvenTree/settings/user.html:122 msgid "You can sign in to your account using any of the following third party accounts:" msgstr "" -#: templates/InvenTree/settings/user.html:163 -msgid "There are no social network accounts connected to your InvenTree account" +#: templates/InvenTree/settings/user.html:157 +msgid "You currently have no social network accounts connected to this account." msgstr "" -#: templates/InvenTree/settings/user.html:168 +#: templates/InvenTree/settings/user.html:162 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:179 -msgid "Active Sessions" +#: templates/InvenTree/settings/user.html:172 +msgid "Multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:185 -msgid "Log out active sessions (except this one)" +#: templates/InvenTree/settings/user.html:177 +msgid "You have these factors available:" msgstr "" -#: templates/InvenTree/settings/user.html:186 -msgid "Log Out Active Sessions" +#: templates/InvenTree/settings/user.html:187 +msgid "TOTP" 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" +#: templates/InvenTree/settings/user.html:193 +msgid "Static" msgstr "" #: templates/InvenTree/settings/user.html:202 -msgid "Last Activity" +msgid "You currently do not have any factors set up." msgstr "" -#: templates/InvenTree/settings/user.html:211 -#, python-format -msgid "%(time)s ago (this session)" +#: templates/InvenTree/settings/user.html:209 +msgid "Change factors" msgstr "" -#: templates/InvenTree/settings/user.html:213 -#, python-format -msgid "%(time)s ago" +#: templates/InvenTree/settings/user.html:210 +msgid "Setup multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:224 -msgid "Do you really want to remove the selected email address?" +#: templates/InvenTree/settings/user.html:212 +msgid "Remove multifactor" msgstr "" +#: templates/InvenTree/settings/user.html:219 #: templates/InvenTree/settings/user_display.html:25 msgid "Theme Settings" msgstr "" +#: templates/InvenTree/settings/user.html:227 #: templates/InvenTree/settings/user_display.html:35 msgid "Select theme" msgstr "" +#: templates/InvenTree/settings/user.html:237 #: templates/InvenTree/settings/user_display.html:46 msgid "Set Theme" msgstr "" +#: templates/InvenTree/settings/user.html:246 #: templates/InvenTree/settings/user_display.html:54 msgid "Language Settings" msgstr "" +#: templates/InvenTree/settings/user.html:254 #: templates/InvenTree/settings/user_display.html:63 msgid "Select language" msgstr "" +#: templates/InvenTree/settings/user.html:270 #: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" +#: templates/InvenTree/settings/user.html:272 #: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" +#: templates/InvenTree/settings/user.html:279 #: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" +#: templates/InvenTree/settings/user.html:281 #: templates/InvenTree/settings/user_display.html:91 msgid "Some languages are not complete" msgstr "" +#: templates/InvenTree/settings/user.html:283 #: 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.html:285 #: templates/InvenTree/settings/user_display.html:95 msgid "Show them too" msgstr "" +#: templates/InvenTree/settings/user.html:292 #: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" +#: templates/InvenTree/settings/user.html:293 +#, python-format +msgid "Native language translation of the\n" +" InvenTree web application is community contributed via crowdin. Contributions are\n" +" welcomed and encouraged." +msgstr "" + +#: templates/InvenTree/settings/user.html:302 +msgid "Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:308 +msgid "Log out active sessions (except this one)" +msgstr "" + +#: templates/InvenTree/settings/user.html:309 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:318 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:319 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:323 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:324 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:325 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:334 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:336 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:348 +msgid "Do you really want to remove the selected email address?" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +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." @@ -6830,7 +6889,7 @@ msgid "InvenTree Version Information" msgstr "" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53 +#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53 #: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662 #: templates/js/translated/modals.js:965 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 @@ -7006,6 +7065,71 @@ msgstr "" msgid "View in administration panel" msgstr "" +#: templates/allauth_2fa/authenticate.html:5 +msgid "Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:12 +msgid "Authenticate" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:6 +msgid "Two-Factor Authentication Backup Tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:17 +msgid "Backup tokens have been generated, but are not revealed here for security reasons. Press the button below to generate new ones." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:20 +msgid "No tokens. Press the button below to generate some." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:27 +msgid "Generate backup tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:31 +#: templates/allauth_2fa/setup.html:40 +msgid "back to settings" +msgstr "" + +#: templates/allauth_2fa/remove.html:6 +msgid "Disable Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/remove.html:9 +msgid "Are you sure?" +msgstr "" + +#: templates/allauth_2fa/remove.html:14 +msgid "Disable Two-Factor" +msgstr "" + +#: templates/allauth_2fa/setup.html:6 +msgid "Setup Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/setup.html:10 +msgid "Step 1" +msgstr "" + +#: templates/allauth_2fa/setup.html:14 +msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." +msgstr "" + +#: templates/allauth_2fa/setup.html:23 +msgid "Step 2" +msgstr "" + +#: templates/allauth_2fa/setup.html:27 +msgid "Input a token generated by the app:" +msgstr "" + +#: templates/allauth_2fa/setup.html:35 +msgid "Verify" +msgstr "" + #: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 msgid "Add Link" msgstr "" @@ -7044,13 +7168,13 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:1103 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134 +#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1134 #: templates/js/translated/build.js:1755 #: templates/js/translated/table_filters.js:178 msgid "Available" @@ -7239,7 +7363,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018 msgid "Remove stock item" msgstr "" @@ -7281,91 +7405,153 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:184 +#: templates/js/translated/bom.js:36 +msgid "Download BOM Template" +msgstr "" + +#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510 +msgid "Format" +msgstr "" + +#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511 +msgid "Select file format" +msgstr "" + +#: templates/js/translated/bom.js:81 +msgid "Cascading" +msgstr "" + +#: templates/js/translated/bom.js:82 +msgid "Download cascading / multi-level BOM" +msgstr "" + +#: templates/js/translated/bom.js:87 +msgid "Levels" +msgstr "" + +#: templates/js/translated/bom.js:88 +msgid "Select maximum number of BOM levels to export (0 = all levels)" +msgstr "" + +#: templates/js/translated/bom.js:94 +msgid "Include Parameter Data" +msgstr "" + +#: templates/js/translated/bom.js:95 +msgid "Include part parameter data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:100 +msgid "Include Stock Data" +msgstr "" + +#: templates/js/translated/bom.js:101 +msgid "Include part stock data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:106 +msgid "Include Manufacturer Data" +msgstr "" + +#: templates/js/translated/bom.js:107 +msgid "Include part manufacturer data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:112 +msgid "Include Supplier Data" +msgstr "" + +#: templates/js/translated/bom.js:113 +msgid "Include part supplier data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:296 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:228 +#: templates/js/translated/bom.js:340 msgid "Select and add a new variant item using the input below" msgstr "" -#: templates/js/translated/bom.js:239 +#: templates/js/translated/bom.js:351 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:245 +#: templates/js/translated/bom.js:357 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:284 +#: templates/js/translated/bom.js:396 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:285 +#: templates/js/translated/bom.js:397 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:404 +#: templates/js/translated/bom.js:516 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116 +#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1116 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:413 +#: templates/js/translated/bom.js:525 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:485 +#: templates/js/translated/bom.js:597 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:500 +#: templates/js/translated/bom.js:612 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:507 +#: templates/js/translated/bom.js:619 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645 +#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:616 +#: templates/js/translated/bom.js:728 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:618 +#: templates/js/translated/bom.js:730 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:620 +#: templates/js/translated/bom.js:732 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796 +#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779 +#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860 +#: templates/js/translated/bom.js:830 templates/js/translated/build.js:860 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:774 +#: templates/js/translated/bom.js:886 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100 +#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1100 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:996 +#: templates/js/translated/bom.js:1108 msgid "Inherited from parent BOM" msgstr "" @@ -7464,7 +7650,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1199 templates/stock_table.html:52 +#: templates/js/translated/build.js:1199 templates/stock_table.html:53 msgid "Order stock" msgstr "" @@ -7509,9 +7695,9 @@ msgstr "" msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147 -#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333 -#: templates/js/translated/stock.js:2128 +#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1149 +#: templates/js/translated/part.js:1560 templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:2321 msgid "Select" msgstr "" @@ -7519,7 +7705,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347 +#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2540 msgid "No user information" msgstr "" @@ -7682,20 +7868,20 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1078 templates/modals.html:19 +#: templates/js/translated/forms.js:1080 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1469 +#: templates/js/translated/forms.js:1471 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1673 +#: templates/js/translated/forms.js:1675 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1893 +#: templates/js/translated/forms.js:1895 msgid "Clear input" msgstr "" @@ -7708,7 +7894,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:863 +#: templates/js/translated/stock.js:1042 msgid "Select Stock Items" msgstr "" @@ -7888,14 +8074,6 @@ msgstr "" msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509 -msgid "Format" -msgstr "" - -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510 -msgid "Select file format" -msgstr "" - #: templates/js/translated/order.js:460 msgid "Select Line Items" msgstr "" @@ -7908,7 +8086,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123 msgid "Stock Status" msgstr "" @@ -7957,7 +8135,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163 -#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986 +#: templates/js/translated/part.js:1777 templates/js/translated/part.js:1988 msgid "Unit Price" msgstr "" @@ -8042,7 +8220,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1249 +#: templates/js/translated/stock.js:1428 msgid "Shipped to customer" msgstr "" @@ -8206,92 +8384,92 @@ msgstr "" msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:946 +#: templates/js/translated/part.js:948 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:970 +#: templates/js/translated/part.js:972 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1037 templates/js/translated/part.js:1297 +#: templates/js/translated/part.js:1039 templates/js/translated/part.js:1299 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1207 +#: templates/js/translated/part.js:1209 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1230 +#: templates/js/translated/part.js:1232 #: templates/js/translated/table_filters.js:412 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493 -#: templates/js/translated/stock.js:2089 +#: templates/js/translated/part.js:1323 templates/js/translated/part.js:1495 +#: templates/js/translated/stock.js:2282 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1337 +#: templates/js/translated/part.js:1339 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108 +#: templates/js/translated/part.js:1514 templates/js/translated/stock.js:2301 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1576 +#: templates/js/translated/part.js:1578 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152 +#: templates/js/translated/part.js:1592 templates/js/translated/stock.js:2345 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1634 +#: templates/js/translated/part.js:1636 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055 +#: templates/js/translated/part.js:1687 templates/js/translated/stock.js:1234 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056 +#: templates/js/translated/part.js:1688 templates/js/translated/stock.js:1235 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1692 +#: templates/js/translated/part.js:1694 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1714 +#: templates/js/translated/part.js:1716 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1728 +#: templates/js/translated/part.js:1730 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1753 +#: templates/js/translated/part.js:1755 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1808 +#: templates/js/translated/part.js:1810 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1809 +#: templates/js/translated/part.js:1811 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1910 +#: templates/js/translated/part.js:1912 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1929 +#: templates/js/translated/part.js:1931 msgid "Single Price Difference" msgstr "" @@ -8365,316 +8543,340 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:72 +#: templates/js/translated/stock.js:73 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173 msgid "Next available serial number" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174 +#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175 msgid "Latest serial number" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:101 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:109 +#: templates/js/translated/stock.js:110 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:145 +#: templates/js/translated/stock.js:146 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:185 +#: templates/js/translated/stock.js:186 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:224 +#: templates/js/translated/stock.js:225 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:231 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:373 +#: templates/js/translated/stock.js:374 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:386 +#: templates/js/translated/stock.js:387 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:411 +#: templates/js/translated/stock.js:412 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416 +#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:432 +#: templates/js/translated/stock.js:433 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:452 +#: templates/js/translated/stock.js:453 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:506 +#: templates/js/translated/stock.js:507 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:517 +#: templates/js/translated/stock.js:518 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:518 +#: templates/js/translated/stock.js:519 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:627 +#: templates/js/translated/stock.js:628 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:628 +#: templates/js/translated/stock.js:629 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:713 +#: templates/js/translated/stock.js:706 +msgid "Warning: Merge operation cannot be reversed" +msgstr "" + +#: templates/js/translated/stock.js:707 +msgid "Some information will be lost when merging stock items" +msgstr "" + +#: templates/js/translated/stock.js:709 +msgid "Stock transaction history will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:710 +msgid "Supplier part information will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:796 +msgid "Confirm stock item merge" +msgstr "" + +#: templates/js/translated/stock.js:797 +msgid "Merge Stock Items" +msgstr "" + +#: templates/js/translated/stock.js:892 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:893 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:899 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:721 +#: templates/js/translated/stock.js:900 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:725 +#: templates/js/translated/stock.js:904 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:726 +#: templates/js/translated/stock.js:905 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:730 +#: templates/js/translated/stock.js:909 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:731 users/models.py:202 +#: templates/js/translated/stock.js:910 users/models.py:205 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:735 templates/stock_table.html:57 +#: templates/js/translated/stock.js:914 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:864 +#: templates/js/translated/stock.js:1043 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1022 +#: templates/js/translated/stock.js:1201 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1024 +#: templates/js/translated/stock.js:1203 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1029 +#: templates/js/translated/stock.js:1208 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1230 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1077 +#: templates/js/translated/stock.js:1256 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1134 +#: templates/js/translated/stock.js:1313 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1420 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1245 +#: templates/js/translated/stock.js:1424 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1432 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1259 +#: templates/js/translated/stock.js:1438 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1417 +#: templates/js/translated/stock.js:1596 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1422 +#: templates/js/translated/stock.js:1601 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1425 +#: templates/js/translated/stock.js:1604 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1429 +#: templates/js/translated/stock.js:1608 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1431 +#: templates/js/translated/stock.js:1610 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1437 +#: templates/js/translated/stock.js:1616 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1618 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1441 +#: templates/js/translated/stock.js:1620 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1625 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1453 +#: templates/js/translated/stock.js:1632 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1455 +#: templates/js/translated/stock.js:1634 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1457 +#: templates/js/translated/stock.js:1636 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1461 +#: templates/js/translated/stock.js:1640 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1511 +#: templates/js/translated/stock.js:1690 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1584 +#: templates/js/translated/stock.js:1763 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1622 +#: templates/js/translated/stock.js:1801 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691 +#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1731 +#: templates/js/translated/stock.js:1910 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1758 +#: templates/js/translated/stock.js:1937 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1760 +#: templates/js/translated/stock.js:1939 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2138 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1959 +#: templates/js/translated/stock.js:2152 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1960 +#: templates/js/translated/stock.js:2153 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2377 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2206 +#: templates/js/translated/stock.js:2399 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2231 +#: templates/js/translated/stock.js:2424 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2250 +#: templates/js/translated/stock.js:2443 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2269 +#: templates/js/translated/stock.js:2462 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2480 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2310 +#: templates/js/translated/stock.js:2503 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2318 +#: templates/js/translated/stock.js:2511 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2552 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2360 +#: templates/js/translated/stock.js:2553 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2411 +#: templates/js/translated/stock.js:2604 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2462 +#: templates/js/translated/stock.js:2655 msgid "Uninstall Stock Item" msgstr "" @@ -9059,18 +9261,26 @@ msgid "Move stock" msgstr "" #: templates/stock_table.html:52 +msgid "Merge selected stock items" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Merge stock" +msgstr "" + +#: templates/stock_table.html:53 msgid "Order selected items" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change status" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change stock status" msgstr "" -#: templates/stock_table.html:57 +#: templates/stock_table.html:58 msgid "Delete selected items" msgstr "" @@ -9106,35 +9316,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:189 +#: users/models.py:192 msgid "Permission set" msgstr "" -#: users/models.py:197 +#: users/models.py:200 msgid "Group" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "View" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "Permission to view items" msgstr "" -#: users/models.py:202 +#: users/models.py:205 msgid "Permission to add items" msgstr "" -#: users/models.py:204 +#: users/models.py:207 msgid "Change" msgstr "" -#: users/models.py:204 +#: users/models.py:207 msgid "Permissions to edit items" msgstr "" -#: users/models.py:206 +#: users/models.py:209 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po index 33d8b3334a..862aeeae7a 100644 --- a/InvenTree/locale/th/LC_MESSAGES/django.po +++ b/InvenTree/locale/th/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-12-08 23:43+0000\n" -"PO-Revision-Date: 2021-12-08 23:47\n" +"POT-Creation-Date: 2021-12-21 02:57+0000\n" +"PO-Revision-Date: 2021-12-21 03:01\n" "Last-Translator: \n" "Language-Team: Thai\n" "Language: th_TH\n" @@ -34,50 +34,50 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93 +#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 build/forms.py:93 #: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: part/forms.py:108 templates/account/email_confirm.html:20 +#: part/forms.py:78 templates/account/email_confirm.html:20 #: templates/js/translated/forms.js:595 msgid "Confirm" msgstr "" -#: InvenTree/forms.py:136 +#: InvenTree/forms.py:142 msgid "Confirm delete" msgstr "" -#: InvenTree/forms.py:137 +#: InvenTree/forms.py:143 msgid "Confirm item deletion" msgstr "" -#: InvenTree/forms.py:168 +#: InvenTree/forms.py:174 msgid "Enter password" msgstr "" -#: InvenTree/forms.py:169 +#: InvenTree/forms.py:175 msgid "Enter new password" msgstr "" -#: InvenTree/forms.py:176 +#: InvenTree/forms.py:182 msgid "Confirm password" msgstr "" -#: InvenTree/forms.py:177 +#: InvenTree/forms.py:183 msgid "Confirm new password" msgstr "" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:215 msgid "Select Category" msgstr "" -#: InvenTree/forms.py:230 +#: InvenTree/forms.py:236 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:234 +#: InvenTree/forms.py:240 msgid "Email address confirmation" msgstr "" -#: InvenTree/forms.py:254 +#: InvenTree/forms.py:260 msgid "You must type the same email each time." msgstr "" @@ -123,7 +123,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:132 stock/models.py:1852 +#: InvenTree/models.py:132 stock/models.py:1967 #: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "" @@ -136,12 +136,12 @@ msgstr "" #: company/models.py:564 order/models.py:124 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:1258 +#: templates/js/translated/company.js:826 templates/js/translated/part.js:1260 msgid "Link" msgstr "" #: InvenTree/models.py:140 build/models.py:330 part/models.py:798 -#: stock/models.py:524 +#: stock/models.py:527 msgid "Link to external URL" msgstr "" @@ -153,10 +153,10 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213 -#: common/models.py:1214 part/models.py:2205 part/models.py:2225 +#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1219 +#: common/models.py:1220 part/models.py:2205 part/models.py:2225 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2341 +#: templates/js/translated/stock.js:2534 msgid "User" msgstr "" @@ -202,8 +202,8 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:268 #: templates/js/translated/company.js:638 templates/js/translated/part.js:506 -#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565 -#: templates/js/translated/stock.js:2134 +#: templates/js/translated/part.js:643 templates/js/translated/part.js:1567 +#: templates/js/translated/stock.js:2327 msgid "Name" msgstr "" @@ -212,23 +212,23 @@ msgstr "" #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70 +#: order/models.py:122 part/models.py:764 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:89 +#: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428 +#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540 #: templates/js/translated/build.js:1627 templates/js/translated/company.js:345 #: templates/js/translated/company.js:548 #: templates/js/translated/company.js:837 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 -#: templates/js/translated/part.js:565 templates/js/translated/part.js:933 -#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188 -#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653 -#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146 -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/part.js:565 templates/js/translated/part.js:935 +#: templates/js/translated/part.js:1020 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1586 templates/js/translated/part.js:1655 +#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339 +#: templates/js/translated/stock.js:2384 msgid "Description" msgstr "" @@ -248,83 +248,83 @@ msgstr "" msgid "Filename" msgstr "" -#: InvenTree/settings.py:689 +#: InvenTree/settings.py:698 msgid "German" msgstr "" -#: InvenTree/settings.py:690 +#: InvenTree/settings.py:699 msgid "Greek" msgstr "" -#: InvenTree/settings.py:691 +#: InvenTree/settings.py:700 msgid "English" msgstr "" -#: InvenTree/settings.py:692 +#: InvenTree/settings.py:701 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:693 +#: InvenTree/settings.py:702 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:694 +#: InvenTree/settings.py:703 msgid "French" msgstr "" -#: InvenTree/settings.py:695 +#: InvenTree/settings.py:704 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:696 +#: InvenTree/settings.py:705 msgid "Italian" msgstr "" -#: InvenTree/settings.py:697 +#: InvenTree/settings.py:706 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:698 +#: InvenTree/settings.py:707 msgid "Korean" msgstr "" -#: InvenTree/settings.py:699 +#: InvenTree/settings.py:708 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:700 +#: InvenTree/settings.py:709 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:701 +#: InvenTree/settings.py:710 msgid "Polish" msgstr "" -#: InvenTree/settings.py:702 +#: InvenTree/settings.py:711 msgid "Portugese" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:712 msgid "Russian" msgstr "" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:713 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:714 msgid "Thai" msgstr "" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:715 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:716 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:717 msgid "Chinese" msgstr "" @@ -341,7 +341,7 @@ msgid "InvenTree system health checks failed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 msgid "Pending" msgstr "" @@ -349,14 +349,14 @@ msgstr "" msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:319 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:313 +#: InvenTree/status_codes.py:318 msgid "Cancelled" msgstr "" @@ -370,7 +370,7 @@ msgstr "" msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:143 order/models.py:939 +#: InvenTree/status_codes.py:143 order/models.py:941 #: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255 msgid "Shipped" msgstr "" @@ -395,83 +395,87 @@ msgstr "" msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:269 +#: InvenTree/status_codes.py:272 msgid "Legacy stock tracking entry" msgstr "" -#: InvenTree/status_codes.py:271 +#: InvenTree/status_codes.py:274 msgid "Stock item created" msgstr "" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Edited stock item" msgstr "" -#: InvenTree/status_codes.py:274 +#: InvenTree/status_codes.py:277 msgid "Assigned serial number" msgstr "" -#: InvenTree/status_codes.py:276 +#: InvenTree/status_codes.py:279 msgid "Stock counted" msgstr "" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Stock manually added" msgstr "" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Stock manually removed" msgstr "" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Location changed" msgstr "" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Installed into assembly" msgstr "" -#: InvenTree/status_codes.py:283 +#: InvenTree/status_codes.py:286 msgid "Removed from assembly" msgstr "" -#: InvenTree/status_codes.py:285 +#: InvenTree/status_codes.py:288 msgid "Installed component item" msgstr "" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Removed component item" msgstr "" -#: InvenTree/status_codes.py:288 +#: InvenTree/status_codes.py:291 msgid "Split from parent item" msgstr "" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064 +msgid "Merged stock items" +msgstr "" + +#: InvenTree/status_codes.py:296 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:297 msgid "Returned from customer" msgstr "" -#: InvenTree/status_codes.py:294 +#: InvenTree/status_codes.py:299 msgid "Build order output created" msgstr "" -#: InvenTree/status_codes.py:295 +#: InvenTree/status_codes.py:300 msgid "Build order output completed" msgstr "" -#: InvenTree/status_codes.py:297 +#: InvenTree/status_codes.py:302 msgid "Received against purchase order" msgstr "" -#: InvenTree/status_codes.py:312 +#: InvenTree/status_codes.py:317 msgid "Production" msgstr "" @@ -575,16 +579,16 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1283 -#: build/templates/build/build_base.html:132 -#: build/templates/build/detail.html:35 common/models.py:1253 +#: build/forms.py:36 build/models.py:1286 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1259 #: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:794 order/models.py:1205 order/serializers.py:810 +#: order/models.py:796 order/models.py:1207 order/serializers.py:810 #: order/templates/order/order_wizard/match_parts.html:30 -#: 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 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:193 +#: part/forms.py:209 part/forms.py:225 part/models.py:2576 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:967 part/templates/part/detail.html:1053 +#: part/templates/part/detail.html:961 part/templates/part/detail.html:1047 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -592,10 +596,10 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:174 -#: stock/templates/stock/item_base.html:255 -#: stock/templates/stock/item_base.html:263 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443 +#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:261 +#: stock/templates/stock/item_base.html:269 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555 #: templates/js/translated/build.js:240 templates/js/translated/build.js:440 #: templates/js/translated/build.js:634 templates/js/translated/build.js:644 #: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367 @@ -604,10 +608,10 @@ msgstr "" #: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 #: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 #: templates/js/translated/order.js:2150 templates/js/translated/part.js:843 -#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919 -#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382 -#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326 -#: templates/js/translated/stock.js:2428 +#: templates/js/translated/part.js:1798 templates/js/translated/part.js:1921 +#: templates/js/translated/part.js:1999 templates/js/translated/stock.js:383 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750 +#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621 msgid "Quantity" msgstr "" @@ -616,8 +620,8 @@ msgid "Enter quantity for build output" msgstr "" #: build/forms.py:41 order/serializers.py:814 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:229 -#: templates/js/translated/stock.js:383 +#: stock/serializers.py:314 templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:384 msgid "Serial Numbers" msgstr "" @@ -661,7 +665,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:145 +#: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" msgstr "" @@ -671,11 +675,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:199 order/models.py:210 order/models.py:536 -#: order/models.py:801 part/models.py:2585 +#: order/models.py:803 part/models.py:2585 #: part/templates/part/bom_upload/match_parts.html:30 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124 +#: templates/js/translated/bom.js:547 templates/js/translated/build.js:1124 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "" @@ -695,7 +699,7 @@ msgstr "" #: build/models.py:225 build/templates/build/build_base.html:77 #: build/templates/build/detail.html:30 company/models.py:705 -#: order/models.py:854 order/models.py:928 +#: order/models.py:856 order/models.py:930 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357 #: part/models.py:2151 part/models.py:2167 part/models.py:2186 #: part/models.py:2203 part/models.py:2305 part/models.py:2427 @@ -706,20 +710,21 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 -#: templates/InvenTree/search.html:86 +#: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214 -#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326 +#: templates/js/translated/bom.js:505 templates/js/translated/build.js:625 #: templates/js/translated/build.js:993 templates/js/translated/build.js:1364 #: templates/js/translated/build.js:1632 templates/js/translated/company.js:489 #: templates/js/translated/company.js:746 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 -#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918 -#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166 -#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747 -#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416 +#: templates/js/translated/order.js:2128 templates/js/translated/part.js:920 +#: templates/js/translated/part.js:1001 templates/js/translated/part.js:1168 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719 +#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:2609 msgid "Part" msgstr "" @@ -776,7 +781,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:285 stock/models.py:528 +#: build/models.py:285 stock/models.py:531 msgid "Batch Code" msgstr "" @@ -830,27 +835,27 @@ msgstr "" #: build/models.py:329 build/templates/build/detail.html:102 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:354 stock/models.py:522 -#: stock/templates/stock/item_base.html:374 +#: part/templates/part/part_base.html:354 stock/models.py:525 +#: stock/templates/stock/item_base.html:372 msgid "External Link" 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:144 order/models.py:803 order/models.py:1049 +#: order/models.py:144 order/models.py:805 order/models.py:1051 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:925 -#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50 +#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594 -#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332 -#: stock/serializers.py:624 stock/serializers.py:711 +#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597 +#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332 +#: stock/serializers.py:638 stock/serializers.py:736 stock/serializers.py:868 #: stock/templates/stock/stock_sidebar.html:21 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711 #: templates/js/translated/company.js:842 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795 msgid "Notes" msgstr "" @@ -883,7 +888,7 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1133 order/models.py:1165 +#: build/models.py:1133 order/models.py:1167 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -891,51 +896,52 @@ msgstr "" msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1193 +#: build/models.py:1196 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1253 stock/templates/stock/item_base.html:346 -#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605 +#: build/models.py:1256 stock/templates/stock/item_base.html:344 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1605 #: templates/navbar.html:35 msgid "Build" msgstr "" -#: build/models.py:1254 +#: build/models.py:1257 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690 -#: order/serializers.py:708 stock/serializers.py:562 +#: build/models.py:1273 build/serializers.py:334 order/serializers.py:690 +#: order/serializers.py:708 stock/serializers.py:576 stock/serializers.py:694 #: stock/templates/stock/item_base.html:8 -#: stock/templates/stock/item_base.html:16 -#: stock/templates/stock/item_base.html:368 +#: stock/templates/stock/item_base.html:22 +#: stock/templates/stock/item_base.html:366 #: templates/js/translated/build.js:413 templates/js/translated/build.js:418 #: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277 +#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:2470 msgid "Stock Item" msgstr "" -#: build/models.py:1271 +#: build/models.py:1274 msgid "Source stock item" msgstr "" -#: build/models.py:1284 +#: build/models.py:1287 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1292 +#: build/models.py:1295 msgid "Install into" msgstr "" -#: build/models.py:1293 +#: build/models.py:1296 msgid "Destination stock item" msgstr "" -#: build/serializers.py:137 build/serializers.py:357 +#: build/serializers.py:137 build/serializers.py:363 msgid "Build Output" msgstr "" @@ -956,16 +962,16 @@ msgid "This build output is not fully allocated" msgstr "" #: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813 -#: stock/templates/stock/item_base.html:314 +#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:729 +#: stock/serializers.py:970 stock/templates/stock/item_base.html:312 #: templates/js/translated/barcode.js:384 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425 #: templates/js/translated/build.js:1032 templates/js/translated/order.js:508 #: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 #: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497 -#: templates/js/translated/stock.js:2218 +#: templates/js/translated/part.js:177 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411 msgid "Location" msgstr "" @@ -975,11 +981,11 @@ msgstr "" #: build/serializers.py:197 build/templates/build/build_base.html:137 #: build/templates/build/detail.html:63 order/models.py:552 -#: order/serializers.py:247 stock/templates/stock/item_base.html:180 +#: order/serializers.py:247 stock/templates/stock/item_base.html:186 #: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661 #: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472 -#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651 +#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637 msgid "Status" msgstr "" @@ -1000,33 +1006,33 @@ msgstr "" msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:319 +#: build/serializers.py:325 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:334 stock/serializers.py:569 +#: build/serializers.py:340 stock/serializers.py:583 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:348 order/models.py:277 order/serializers.py:240 -#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305 +#: build/serializers.py:354 order/models.py:277 order/serializers.py:240 +#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:390 order/serializers.py:741 +#: build/serializers.py:396 order/serializers.py:741 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:396 +#: build/serializers.py:402 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:403 +#: build/serializers.py:409 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:431 order/serializers.py:984 +#: build/serializers.py:437 order/serializers.py:984 msgid "Allocation items must be provided" msgstr "" @@ -1067,33 +1073,33 @@ msgstr "" msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:87 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:96 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:98 +#: build/templates/build/build_base.html:103 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:105 +#: build/templates/build/build_base.html:110 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Stock has not been fully allocated to this Build Order" msgstr "" @@ -1131,12 +1137,12 @@ msgid "Completed" msgstr "" #: build/templates/build/build_base.html:171 -#: build/templates/build/detail.html:95 order/models.py:925 -#: order/models.py:1021 order/templates/order/sales_order_base.html:9 +#: build/templates/build/detail.html:95 order/models.py:927 +#: order/models.py:1023 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:308 +#: stock/templates/stock/item_base.html:306 #: templates/js/translated/order.js:1218 msgid "Sales Order" msgstr "" @@ -1211,7 +1217,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "" @@ -1225,8 +1231,8 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:332 -#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451 +#: stock/templates/stock/item_base.html:330 +#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1278,7 +1284,7 @@ msgstr "" #: build/templates/build/detail.html:185 #: company/templates/company/detail.html:38 #: company/templates/company/detail.html:85 order/views.py:463 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order Parts" msgstr "" @@ -1347,7 +1353,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115 +#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115 #: stock/templates/stock/item.html:205 msgid "Edit Notes" msgstr "" @@ -1489,7 +1495,7 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:340 common/models.py:998 common/models.py:1206 +#: common/models.py:340 common/models.py:1004 common/models.py:1212 msgid "Settings key (must be unique - case insensitive" msgstr "" @@ -1651,7 +1657,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956 +#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:1068 #: templates/js/translated/table_filters.js:168 #: templates/js/translated/table_filters.js:416 msgid "Assembly" @@ -1953,256 +1959,264 @@ msgid "Group to which new users are assigned on registration" msgstr "" #: common/models.py:961 -msgid "Enable URL integration" +msgid "Enforce MFA" msgstr "" #: common/models.py:962 -msgid "Enable plugins to add URL routes" +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:967 +msgid "Enable URL integration" msgstr "" #: common/models.py:968 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:974 msgid "Enable navigation integration" msgstr "" -#: common/models.py:969 +#: common/models.py:975 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:975 +#: common/models.py:981 msgid "Enable global setting integration" msgstr "" -#: common/models.py:976 +#: common/models.py:982 msgid "Enable plugins to integrate into inventree global settings" msgstr "" -#: common/models.py:982 +#: common/models.py:988 msgid "Enable app integration" msgstr "" -#: common/models.py:983 +#: common/models.py:989 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1029 +#: common/models.py:1035 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1030 +#: common/models.py:1036 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1035 +#: common/models.py:1041 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1036 +#: common/models.py:1042 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1041 +#: common/models.py:1047 msgid "Show latest parts" msgstr "" -#: common/models.py:1042 +#: common/models.py:1048 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1047 +#: common/models.py:1053 msgid "Recent Part Count" msgstr "" -#: common/models.py:1048 +#: common/models.py:1054 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1054 +#: common/models.py:1060 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1055 +#: common/models.py:1061 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1060 +#: common/models.py:1066 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1061 +#: common/models.py:1067 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1066 +#: common/models.py:1072 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1067 +#: common/models.py:1073 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1072 +#: common/models.py:1078 msgid "Show low stock" msgstr "" -#: common/models.py:1073 +#: common/models.py:1079 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1078 +#: common/models.py:1084 msgid "Show depleted stock" msgstr "" -#: common/models.py:1079 +#: common/models.py:1085 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1084 +#: common/models.py:1090 msgid "Show needed stock" msgstr "" -#: common/models.py:1085 +#: common/models.py:1091 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1090 +#: common/models.py:1096 msgid "Show expired stock" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1096 +#: common/models.py:1102 msgid "Show stale stock" msgstr "" -#: common/models.py:1097 +#: common/models.py:1103 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1102 +#: common/models.py:1108 msgid "Show pending builds" msgstr "" -#: common/models.py:1103 +#: common/models.py:1109 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1108 +#: common/models.py:1114 msgid "Show overdue builds" msgstr "" -#: common/models.py:1109 +#: common/models.py:1115 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1114 +#: common/models.py:1120 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1115 +#: common/models.py:1121 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1120 +#: common/models.py:1126 msgid "Show overdue POs" msgstr "" -#: common/models.py:1121 +#: common/models.py:1127 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1126 +#: common/models.py:1132 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1127 +#: common/models.py:1133 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1132 +#: common/models.py:1138 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1133 +#: common/models.py:1139 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1139 +#: common/models.py:1145 msgid "Inline label display" msgstr "" -#: common/models.py:1140 +#: common/models.py:1146 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1146 +#: common/models.py:1152 msgid "Inline report display" msgstr "" -#: common/models.py:1147 +#: common/models.py:1153 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "Search Preview Results" msgstr "" -#: common/models.py:1154 +#: common/models.py:1160 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1160 +#: common/models.py:1166 msgid "Search Show Stock" msgstr "" -#: common/models.py:1161 +#: common/models.py:1167 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1167 +#: common/models.py:1173 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1168 +#: common/models.py:1174 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1174 +#: common/models.py:1180 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1175 +#: common/models.py:1181 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1181 +#: common/models.py:1187 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1182 +#: common/models.py:1188 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1188 +#: common/models.py:1194 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1189 +#: common/models.py:1195 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1254 company/forms.py:43 +#: common/models.py:1260 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1261 company/serializers.py:264 +#: common/models.py:1267 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801 +#: templates/js/translated/part.js:852 templates/js/translated/part.js:1803 msgid "Price" msgstr "" -#: common/models.py:1262 +#: common/models.py:1268 msgid "Unit price at specified quantity" msgstr "" @@ -2290,7 +2304,7 @@ msgid "Contact phone number" msgstr "" #: company/models.py:125 company/templates/company/company_base.html:129 -#: templates/InvenTree/settings/user.html:47 +#: templates/InvenTree/settings/user.html:48 msgid "Email" msgstr "" @@ -2347,8 +2361,8 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:320 company/models.py:535 stock/models.py:468 -#: stock/templates/stock/item_base.html:135 +#: company/models.py:320 company/models.py:535 stock/models.py:469 +#: stock/templates/stock/item_base.html:141 msgid "Base Part" msgstr "" @@ -2359,7 +2373,7 @@ msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:381 +#: stock/templates/stock/item_base.html:379 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:514 #: templates/js/translated/company.js:797 templates/js/translated/part.js:232 @@ -2393,7 +2407,7 @@ msgstr "" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:391 +#: stock/templates/stock/item_base.html:389 msgid "Manufacturer Part" msgstr "" @@ -2403,8 +2417,8 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:1845 templates/js/translated/company.js:644 -#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117 +#: stock/models.py:1960 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1296 msgid "Value" msgstr "" @@ -2431,7 +2445,7 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:224 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219 -#: part/bom.py:247 stock/templates/stock/item_base.html:398 +#: part/bom.py:247 stock/templates/stock/item_base.html:396 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:771 templates/js/translated/order.js:823 #: templates/js/translated/part.js:213 templates/js/translated/part.js:800 @@ -2479,8 +2493,8 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:491 stock/templates/stock/item_base.html:339 -#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612 +#: stock/models.py:493 stock/templates/stock/item_base.html:337 +#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1791 msgid "Packaging" msgstr "" @@ -2506,7 +2520,7 @@ msgstr "" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322 +#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322 msgid "Company" msgstr "" @@ -2548,11 +2562,11 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:83 order/models.py:547 -#: order/templates/order/sales_order_base.html:115 stock/models.py:509 -#: stock/models.py:510 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:291 +#: order/templates/order/sales_order_base.html:115 stock/models.py:512 +#: stock/models.py:513 stock/serializers.py:624 +#: stock/templates/stock/item_base.html:289 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2259 +#: templates/js/translated/stock.js:2452 msgid "Customer" msgstr "" @@ -2571,7 +2585,7 @@ msgstr "" #: company/templates/company/detail.html:15 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:124 +#: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" @@ -2590,14 +2604,14 @@ msgstr "" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:167 part/templates/part/detail.html:342 +#: part/templates/part/category.html:171 part/templates/part/detail.html:342 #: part/templates/part/detail.html:370 msgid "Options" msgstr "" #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order parts" msgstr "" @@ -2611,7 +2625,7 @@ msgstr "" msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109 +#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" @@ -2633,8 +2647,8 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203 +#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" @@ -2655,8 +2669,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223 +#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" @@ -2698,7 +2712,7 @@ msgid "Supplier List" msgstr "" #: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184 +#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 #: templates/navbar.html:46 msgid "Manufacturers" msgstr "" @@ -2706,7 +2720,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:67 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76 msgid "Order part" msgstr "" @@ -2728,7 +2742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 #: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:194 templates/navbar.html:45 +#: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "" @@ -2742,7 +2756,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:254 #: part/templates/part/detail.html:344 part/templates/part/detail.html:372 #: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31 -#: users/models.py:206 +#: users/models.py:209 msgid "Delete" msgstr "" @@ -2765,7 +2779,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:867 +#: part/templates/part/detail.html:861 msgid "Add Parameter" msgstr "" @@ -2794,9 +2808,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:476 -#: stock/templates/stock/item_base.html:403 -#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569 +#: company/templates/company/supplier_part.html:24 stock/models.py:477 +#: stock/templates/stock/item_base.html:401 +#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1748 msgid "Supplier Part" msgstr "" @@ -2816,13 +2830,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:20 stock/templates/stock/location.html:162 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:166 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163 -#: templates/js/translated/stock.js:359 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 +#: templates/js/translated/stock.js:360 msgid "New Stock Item" msgstr "" @@ -2832,7 +2846,7 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:68 +#: part/templates/part/detail.html:72 msgid "Order Part" msgstr "" @@ -2843,7 +2857,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:1717 +#: part/templates/part/prices.html:271 part/views.py:1713 msgid "Add Price Break" msgstr "" @@ -2851,11 +2865,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1779 +#: company/templates/company/supplier_part.html:224 part/views.py:1775 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1765 +#: company/templates/company/supplier_part.html:238 part/views.py:1761 msgid "Edit Price Break" msgstr "" @@ -2869,14 +2883,14 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:156 +#: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434 -#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059 -#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:1401 templates/navbar.html:28 +#: templates/js/translated/bom.js:328 templates/js/translated/part.js:434 +#: templates/js/translated/part.js:569 templates/js/translated/part.js:1061 +#: templates/js/translated/part.js:1222 templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:1580 templates/navbar.html:28 msgid "Stock" msgstr "" @@ -2895,11 +2909,11 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:133 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:159 +#: stock/templates/stock/location.html:137 +#: stock/templates/stock/location.html:151 +#: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "" @@ -2912,7 +2926,7 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:61 templates/InvenTree/search.html:214 +#: company/views.py:61 templates/InvenTree/search.html:208 #: templates/navbar.html:57 msgid "Customers" msgstr "" @@ -3121,7 +3135,7 @@ msgstr "" msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:562 order/models.py:1026 +#: order/models.py:562 order/models.py:1028 #: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429 msgid "Shipment Date" msgstr "" @@ -3130,7 +3144,7 @@ msgstr "" msgid "shipped by" msgstr "" -#: order/models.py:634 +#: order/models.py:635 msgid "Order cannot be completed as no parts have been assigned" msgstr "" @@ -3138,172 +3152,172 @@ msgstr "" msgid "Only a pending order can be marked as complete" msgstr "" -#: order/models.py:643 +#: order/models.py:642 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:647 +#: order/models.py:645 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:795 +#: order/models.py:797 msgid "Item quantity" msgstr "" -#: order/models.py:801 +#: order/models.py:803 msgid "Line item reference" msgstr "" -#: order/models.py:803 +#: order/models.py:805 msgid "Line item notes" msgstr "" -#: order/models.py:833 order/models.py:924 order/models.py:1020 +#: order/models.py:835 order/models.py:926 order/models.py:1022 #: templates/js/translated/order.js:1820 msgid "Order" msgstr "" -#: order/models.py:834 order/templates/order/order_base.html:9 +#: order/models.py:836 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:353 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/order.js:801 templates/js/translated/part.js:775 -#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240 +#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433 msgid "Purchase Order" msgstr "" -#: order/models.py:855 +#: order/models.py:857 msgid "Supplier part" msgstr "" -#: order/models.py:862 order/templates/order/order_base.html:163 +#: order/models.py:864 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:847 templates/js/translated/part.js:873 #: templates/js/translated/table_filters.js:317 msgid "Received" msgstr "" -#: order/models.py:863 +#: order/models.py:865 msgid "Number of items received" msgstr "" -#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:360 -#: templates/js/translated/stock.js:1600 +#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:358 +#: templates/js/translated/stock.js:1779 msgid "Purchase Price" msgstr "" -#: order/models.py:871 +#: order/models.py:873 msgid "Unit purchase price" msgstr "" -#: order/models.py:879 +#: order/models.py:881 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:934 part/templates/part/part_pricing.html:112 +#: order/models.py:936 part/templates/part/part_pricing.html:112 #: part/templates/part/prices.html:116 part/templates/part/prices.html:284 msgid "Sale Price" msgstr "" -#: order/models.py:935 +#: order/models.py:937 msgid "Unit sale price" msgstr "" -#: order/models.py:940 +#: order/models.py:942 msgid "Shipped quantity" msgstr "" -#: order/models.py:1027 +#: order/models.py:1029 msgid "Date of shipment" msgstr "" -#: order/models.py:1034 +#: order/models.py:1036 msgid "Checked By" msgstr "" -#: order/models.py:1035 +#: order/models.py:1037 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1043 +#: order/models.py:1045 msgid "Shipment number" msgstr "" -#: order/models.py:1050 +#: order/models.py:1052 msgid "Shipment notes" msgstr "" -#: order/models.py:1057 +#: order/models.py:1059 msgid "Tracking Number" msgstr "" -#: order/models.py:1058 +#: order/models.py:1060 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1068 +#: order/models.py:1070 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1071 +#: order/models.py:1073 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1147 order/models.py:1149 +#: order/models.py:1149 order/models.py:1151 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1153 +#: order/models.py:1155 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1155 +#: order/models.py:1157 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1158 +#: order/models.py:1160 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1162 +#: order/models.py:1164 msgid "StockItem is over-allocated" msgstr "" -#: order/models.py:1168 order/serializers.py:734 +#: order/models.py:1170 order/serializers.py:734 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1171 +#: order/models.py:1173 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1172 +#: order/models.py:1174 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1180 +#: order/models.py:1182 msgid "Line" msgstr "" -#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953 +#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953 #: templates/js/translated/model_renderers.js:251 msgid "Shipment" msgstr "" -#: order/models.py:1189 +#: order/models.py:1191 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1201 +#: order/models.py:1203 msgid "Item" msgstr "" -#: order/models.py:1202 +#: order/models.py:1204 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1205 +#: order/models.py:1207 msgid "Enter stock allocation quantity" msgstr "" @@ -3530,7 +3544,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/build.js:245 templates/js/translated/build.js:1256 #: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:592 +#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761 msgid "Remove row" msgstr "" @@ -3722,7 +3736,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188 +#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1188 msgid "Actions" msgstr "" @@ -3797,24 +3811,24 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:760 +#: part/api.py:777 msgid "Must be greater than zero" msgstr "" -#: part/api.py:764 +#: part/api.py:781 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:779 +#: part/api.py:796 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833 +#: part/api.py:827 part/api.py:831 part/api.py:846 part/api.py:850 msgid "This field is required" msgstr "" #: part/bom.py:125 part/models.py:81 part/models.py:816 -#: part/templates/part/category.html:104 part/templates/part/part_base.html:338 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "" @@ -3822,99 +3836,43 @@ msgstr "" msgid "Available Stock" msgstr "" -#: part/forms.py:63 -msgid "File Format" -msgstr "" - -#: part/forms.py:63 -msgid "Select output file format" -msgstr "" - -#: part/forms.py:65 -msgid "Cascading" -msgstr "" - -#: part/forms.py:65 -msgid "Download cascading / multi-level BOM" -msgstr "" - -#: part/forms.py:67 -msgid "Levels" -msgstr "" - -#: part/forms.py:67 -msgid "Select maximum number of BOM levels to export (0 = all levels)" -msgstr "" - -#: part/forms.py:69 -msgid "Include Parameter Data" -msgstr "" - -#: part/forms.py:69 -msgid "Include part parameters data in exported BOM" -msgstr "" - -#: part/forms.py:71 -msgid "Include Stock Data" -msgstr "" - -#: part/forms.py:71 -msgid "Include part stock data in exported BOM" -msgstr "" - -#: part/forms.py:73 -msgid "Include Manufacturer Data" -msgstr "" - -#: part/forms.py:73 -msgid "Include part manufacturer data in exported BOM" -msgstr "" - -#: part/forms.py:75 -msgid "Include Supplier Data" -msgstr "" - -#: part/forms.py:75 -msgid "Include part supplier data in exported BOM" -msgstr "" - -#: part/forms.py:96 part/models.py:2427 +#: part/forms.py:66 part/models.py:2427 msgid "Parent Part" msgstr "" -#: part/forms.py:97 part/templates/part/bom_duplicate.html:7 +#: part/forms.py:67 part/templates/part/bom_duplicate.html:7 msgid "Select parent part to copy BOM from" msgstr "" -#: part/forms.py:103 +#: part/forms.py:73 msgid "Clear existing BOM items" msgstr "" -#: part/forms.py:109 +#: part/forms.py:79 msgid "Confirm BOM duplication" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "validate" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "Confirm that the BOM is correct" msgstr "" -#: part/forms.py:163 +#: part/forms.py:133 msgid "Select part category" msgstr "" -#: part/forms.py:200 +#: part/forms.py:170 msgid "Add parameter template to same level categories" msgstr "" -#: part/forms.py:204 +#: part/forms.py:174 msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:224 +#: part/forms.py:194 msgid "Input quantity for price calculation" msgstr "" @@ -3930,24 +3888,24 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11 +#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:96 part/templates/part/category.html:124 -#: templates/InvenTree/search.html:101 templates/stats.html:84 +#: part/models.py:96 part/templates/part/category.html:128 +#: templates/InvenTree/search.html:95 templates/stats.html:84 #: users/models.py:40 msgid "Part Categories" msgstr "" #: part/models.py:358 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:13 part/templates/part/category.html:129 -#: part/templates/part/category.html:149 +#: part/templates/part/category.html:17 part/templates/part/category.html:133 +#: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1597 templates/navbar.html:21 +#: templates/js/translated/part.js:1599 templates/navbar.html:21 #: templates/stats.html:80 templates/stats.html:89 users/models.py:41 msgid "Parts" msgstr "" @@ -4001,7 +3959,7 @@ msgstr "" msgid "Part description" msgstr "" -#: part/models.py:770 part/templates/part/category.html:82 +#: part/models.py:770 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "" @@ -4014,7 +3972,7 @@ msgstr "" #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 #: templates/InvenTree/settings/settings.html:172 -#: templates/js/translated/part.js:1202 +#: templates/js/translated/part.js:1204 msgid "Category" msgstr "" @@ -4023,8 +3981,8 @@ msgid "Part category" msgstr "" #: part/models.py:784 part/templates/part/part_base.html:274 -#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155 -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/part.js:557 templates/js/translated/part.js:1157 +#: templates/js/translated/stock.js:1552 msgid "IPN" msgstr "" @@ -4145,8 +4103,8 @@ msgstr "" msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2310 templates/js/translated/part.js:1648 -#: templates/js/translated/stock.js:1097 +#: part/models.py:2310 templates/js/translated/part.js:1650 +#: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "" @@ -4162,7 +4120,7 @@ msgstr "" msgid "Enter description for this test" msgstr "" -#: part/models.py:2322 templates/js/translated/part.js:1657 +#: part/models.py:2322 templates/js/translated/part.js:1659 #: templates/js/translated/table_filters.js:281 msgid "Required" msgstr "" @@ -4171,7 +4129,7 @@ msgstr "" msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2328 templates/js/translated/part.js:1665 +#: part/models.py:2328 templates/js/translated/part.js:1667 msgid "Requires Value" msgstr "" @@ -4179,7 +4137,7 @@ msgstr "" msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2334 templates/js/translated/part.js:1672 +#: part/models.py:2334 templates/js/translated/part.js:1674 msgid "Requires Attachment" msgstr "" @@ -4241,8 +4199,8 @@ msgstr "" msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2578 templates/js/translated/bom.js:454 -#: templates/js/translated/bom.js:528 +#: part/models.py:2578 templates/js/translated/bom.js:566 +#: templates/js/translated/bom.js:640 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" @@ -4275,8 +4233,8 @@ msgstr "" msgid "BOM line checksum" msgstr "" -#: part/models.py:2594 templates/js/translated/bom.js:545 -#: templates/js/translated/bom.js:552 +#: part/models.py:2594 templates/js/translated/bom.js:657 +#: templates/js/translated/bom.js:664 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" @@ -4286,7 +4244,7 @@ msgstr "" msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2600 templates/js/translated/bom.js:537 +#: part/models.py:2600 templates/js/translated/bom.js:649 msgid "Allow Variants" msgstr "" @@ -4406,100 +4364,100 @@ msgstr "" msgid "This will validate each line in the BOM." msgstr "" -#: part/templates/part/category.html:24 part/templates/part/category.html:28 +#: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:32 +#: part/templates/part/category.html:36 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:38 +#: part/templates/part/category.html:42 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:43 +#: part/templates/part/category.html:47 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:44 +#: part/templates/part/category.html:48 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:52 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:53 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:57 +#: part/templates/part/category.html:61 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:58 +#: part/templates/part/category.html:62 msgid "New Category" msgstr "" -#: part/templates/part/category.html:76 part/templates/part/category.html:89 +#: part/templates/part/category.html:80 part/templates/part/category.html:93 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:90 +#: part/templates/part/category.html:94 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:110 part/templates/part/category.html:201 +#: part/templates/part/category.html:114 part/templates/part/category.html:205 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:115 +#: part/templates/part/category.html:119 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:152 +#: part/templates/part/category.html:156 msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:153 part/templates/part/category.html:177 +#: part/templates/part/category.html:157 part/templates/part/category.html:181 msgid "Export" msgstr "" -#: part/templates/part/category.html:156 +#: part/templates/part/category.html:160 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:157 templates/js/translated/bom.js:40 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 msgid "New Part" msgstr "" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set category" msgstr "" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:175 +#: part/templates/part/category.html:179 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:177 +#: part/templates/part/category.html:181 msgid "Export Data" msgstr "" -#: part/templates/part/category.html:191 +#: part/templates/part/category.html:195 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:268 +#: part/templates/part/category.html:288 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:295 +#: part/templates/part/category.html:315 msgid "Create Part" msgstr "" @@ -4566,24 +4524,24 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:17 +#: part/templates/part/detail.html:21 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:29 +#: part/templates/part/detail.html:33 #, python-format msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:39 +#: part/templates/part/detail.html:43 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:44 +#: part/templates/part/detail.html:48 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:101 +#: part/templates/part/detail.html:105 msgid "Sales Order Allocations" msgstr "" @@ -4619,7 +4577,7 @@ msgstr "" msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:242 +#: part/templates/part/detail.html:242 templates/js/translated/bom.js:70 msgid "Export BOM" msgstr "" @@ -4683,38 +4641,38 @@ msgstr "" msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:651 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:659 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:760 +#: part/templates/part/detail.html:754 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:817 +#: part/templates/part/detail.html:811 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:930 +#: part/templates/part/detail.html:924 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:942 +#: part/templates/part/detail.html:936 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:954 +#: part/templates/part/detail.html:948 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1043 +#: part/templates/part/detail.html:1037 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4745,20 +4703,20 @@ msgid "Subscribe to notifications for this part" msgstr "" #: part/templates/part/part_base.html:43 -#: stock/templates/stock/item_base.html:28 -#: stock/templates/stock/location.html:29 +#: stock/templates/stock/item_base.html:34 +#: stock/templates/stock/location.html:33 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:45 -#: stock/templates/stock/item_base.html:32 -#: stock/templates/stock/location.html:31 templates/qr_button.html:1 +#: stock/templates/stock/item_base.html:38 +#: stock/templates/stock/location.html:35 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:48 -#: stock/templates/stock/location.html:32 +#: stock/templates/stock/item_base.html:54 +#: stock/templates/stock/location.html:36 msgid "Print Label" msgstr "" @@ -4767,8 +4725,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:103 -#: stock/templates/stock/location.html:40 +#: stock/templates/stock/item_base.html:109 +#: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "" @@ -4848,7 +4806,7 @@ msgstr "" msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1235 +#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1237 msgid "On Order" msgstr "" @@ -4864,12 +4822,12 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:566 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1066 -#: templates/js/translated/part.js:1239 +#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1068 +#: templates/js/translated/part.js:1241 msgid "Building" msgstr "" @@ -4882,7 +4840,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:159 +#: stock/templates/stock/item_base.html:165 msgid "Search for serial number" msgstr "" @@ -4921,7 +4879,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:520 +#: templates/js/translated/bom.js:632 msgid "No supplier pricing available" msgstr "" @@ -5036,7 +4994,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626 msgid "Supplier Cost" msgstr "" @@ -5058,7 +5016,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1788 +#: part/templates/part/prices.html:215 part/views.py:1784 msgid "Add Internal Price Break" msgstr "" @@ -5078,9 +5036,9 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476 -#: templates/js/translated/part.js:436 templates/js/translated/part.js:1056 -#: templates/js/translated/part.js:1243 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588 +#: templates/js/translated/part.js:436 templates/js/translated/part.js:1058 +#: templates/js/translated/part.js:1245 msgid "No Stock" msgstr "" @@ -5154,67 +5112,67 @@ msgstr "" msgid "Match Parts" msgstr "" -#: part/views.py:1196 +#: part/views.py:1195 msgid "Export Bill of Materials" msgstr "" -#: part/views.py:1248 +#: part/views.py:1244 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1255 +#: part/views.py:1251 msgid "Part was deleted" msgstr "" -#: part/views.py:1264 +#: part/views.py:1260 msgid "Part Pricing" msgstr "" -#: part/views.py:1413 +#: part/views.py:1409 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1423 +#: part/views.py:1419 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1430 +#: part/views.py:1426 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1489 templates/js/translated/part.js:313 +#: part/views.py:1485 templates/js/translated/part.js:313 msgid "Edit Part Category" msgstr "" -#: part/views.py:1527 +#: part/views.py:1523 msgid "Delete Part Category" msgstr "" -#: part/views.py:1533 +#: part/views.py:1529 msgid "Part category was deleted" msgstr "" -#: part/views.py:1542 +#: part/views.py:1538 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1643 +#: part/views.py:1639 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1699 +#: part/views.py:1695 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1721 +#: part/views.py:1717 msgid "Added new price break" msgstr "" -#: part/views.py:1797 +#: part/views.py:1793 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1805 +#: part/views.py:1801 msgid "Delete Internal Price Break" msgstr "" @@ -5388,12 +5346,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:514 stock/templates/stock/item_base.html:149 +#: stock/models.py:517 stock/templates/stock/item_base.html:155 #: templates/js/translated/build.js:238 templates/js/translated/build.js:642 #: templates/js/translated/build.js:1018 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415 msgid "Serial Number" msgstr "" @@ -5402,19 +5360,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:1833 +#: stock/models.py:1948 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:1839 +#: stock/models.py:1954 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:49 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367 msgid "Date" msgstr "" @@ -5432,17 +5390,18 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434 +#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748 +#: templates/js/translated/stock.js:2627 msgid "Serial" msgstr "" -#: stock/api.py:446 +#: stock/api.py:478 msgid "Quantity is required" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571 -#: stock/templates/stock/item_base.html:186 -#: templates/js/translated/stock.js:1522 +#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574 +#: stock/templates/stock/item_base.html:192 +#: templates/js/translated/stock.js:1701 msgid "Expiry Date" msgstr "" @@ -5490,12 +5449,12 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:60 stock/models.py:608 -#: stock/templates/stock/item_base.html:417 +#: stock/models.py:60 stock/models.py:611 +#: stock/templates/stock/item_base.html:415 msgid "Owner" msgstr "" -#: stock/models.py:61 stock/models.py:609 +#: stock/models.py:61 stock/models.py:612 msgid "Select Owner" msgstr "" @@ -5528,150 +5487,190 @@ msgstr "" msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:460 +#: stock/models.py:461 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:470 msgid "Base part" msgstr "" -#: stock/models.py:477 +#: stock/models.py:478 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:482 stock/templates/stock/location.html:12 +#: stock/models.py:484 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:485 +#: stock/models.py:487 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:492 +#: stock/models.py:494 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:497 stock/templates/stock/item_base.html:299 +#: stock/models.py:500 stock/templates/stock/item_base.html:297 msgid "Installed In" msgstr "" -#: stock/models.py:500 +#: stock/models.py:503 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:516 +#: stock/models.py:519 msgid "Serial number for this item" msgstr "" -#: stock/models.py:530 +#: stock/models.py:533 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:534 +#: stock/models.py:537 msgid "Stock Quantity" msgstr "" -#: stock/models.py:543 +#: stock/models.py:546 msgid "Source Build" msgstr "" -#: stock/models.py:545 +#: stock/models.py:548 msgid "Build for this stock item" msgstr "" -#: stock/models.py:556 +#: stock/models.py:559 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:559 +#: stock/models.py:562 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:565 +#: stock/models.py:568 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:572 +#: stock/models.py:575 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete on deplete" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:595 stock/templates/stock/item.html:111 +#: stock/models.py:598 stock/templates/stock/item.html:111 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:604 +#: stock/models.py:607 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1072 +#: stock/models.py:1068 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1078 +#: stock/models.py:1074 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1084 +#: stock/models.py:1080 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1087 +#: stock/models.py:1083 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1090 +#: stock/models.py:1086 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1097 +#: stock/models.py:1093 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1255 +#: stock/models.py:1164 +msgid "Stock item has been assigned to a sales order" +msgstr "" + +#: stock/models.py:1167 +msgid "Stock item is installed in another item" +msgstr "" + +#: stock/models.py:1170 +msgid "Stock item contains other items" +msgstr "" + +#: stock/models.py:1173 +msgid "Stock item has been assigned to a customer" +msgstr "" + +#: stock/models.py:1176 +msgid "Stock item is currently in production" +msgstr "" + +#: stock/models.py:1179 +msgid "Serialized stock cannot be merged" +msgstr "" + +#: stock/models.py:1186 stock/serializers.py:773 +msgid "Duplicate stock items" +msgstr "" + +#: stock/models.py:1190 +msgid "Stock items must refer to the same part" +msgstr "" + +#: stock/models.py:1194 +msgid "Stock items must refer to the same supplier part" +msgstr "" + +#: stock/models.py:1198 +msgid "Stock status codes must match" +msgstr "" + +#: stock/models.py:1369 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1753 +#: stock/models.py:1868 msgid "Entry notes" msgstr "" -#: stock/models.py:1810 +#: stock/models.py:1925 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1931 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1834 +#: stock/models.py:1949 msgid "Test name" msgstr "" -#: stock/models.py:1840 templates/js/translated/table_filters.js:271 +#: stock/models.py:1955 templates/js/translated/table_filters.js:271 msgid "Test result" msgstr "" -#: stock/models.py:1846 +#: stock/models.py:1961 msgid "Test output value" msgstr "" -#: stock/models.py:1853 +#: stock/models.py:1968 msgid "Test result attachment" msgstr "" -#: stock/models.py:1859 +#: stock/models.py:1974 msgid "Test notes" msgstr "" @@ -5696,7 +5695,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:814 +#: stock/serializers.py:326 stock/serializers.py:730 stock/serializers.py:971 msgid "Destination stock location" msgstr "" @@ -5708,39 +5707,63 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:573 +#: stock/serializers.py:587 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:577 +#: stock/serializers.py:591 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:581 +#: stock/serializers.py:595 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:611 +#: stock/serializers.py:625 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:617 +#: stock/serializers.py:631 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:639 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:635 stock/serializers.py:722 +#: stock/serializers.py:649 stock/serializers.py:879 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:684 +#: stock/serializers.py:737 +msgid "Stock merging notes" +msgstr "" + +#: stock/serializers.py:742 +msgid "Allow mismatched suppliers" +msgstr "" + +#: stock/serializers.py:743 +msgid "Allow stock items with different supplier parts to be merged" +msgstr "" + +#: stock/serializers.py:748 +msgid "Allow mismatched status" +msgstr "" + +#: stock/serializers.py:749 +msgid "Allow stock items with different status codes to be merged" +msgstr "" + +#: stock/serializers.py:759 +msgid "At least two stock items must be provided" +msgstr "" + +#: stock/serializers.py:841 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:712 +#: stock/serializers.py:869 msgid "Stock transaction notes" msgstr "" @@ -5765,7 +5788,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50 +#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:56 msgid "Test Report" msgstr "" @@ -5797,197 +5820,189 @@ msgstr "" msgid "Delete Test Result" msgstr "" -#: stock/templates/stock/item_base.html:35 +#: stock/templates/stock/item_base.html:41 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:37 +#: stock/templates/stock/item_base.html:43 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24 +#: stock/templates/stock/item_base.html:45 templates/stock_table.html:24 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:46 +#: stock/templates/stock/item_base.html:52 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:71 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:47 templates/stock_table.html:50 +#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/location.html:51 templates/stock_table.html:50 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:78 templates/stock_table.html:48 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49 +#: stock/templates/stock/item_base.html:81 templates/stock_table.html:49 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:84 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:53 +#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/location.html:57 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53 +#: stock/templates/stock/item_base.html:91 templates/stock_table.html:54 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:94 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:108 +#: stock/templates/stock/item_base.html:114 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/item_base.html:117 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:119 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:116 +#: stock/templates/stock/item_base.html:122 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/stock.js:1535 +#: stock/templates/stock/item_base.html:205 +#: templates/js/translated/stock.js:1714 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:208 +#: stock/templates/stock/item_base.html:214 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:226 +#: stock/templates/stock/item_base.html:232 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:239 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:234 +#: stock/templates/stock/item_base.html:240 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:247 +#: stock/templates/stock/item_base.html:253 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:261 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:263 +#: stock/templates/stock/item_base.html:269 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:269 +#: stock/templates/stock/item_base.html:275 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:273 -msgid "This stock item cannot be deleted as it has child items" -msgstr "" - -#: stock/templates/stock/item_base.html:277 -msgid "This stock item will be automatically deleted when all stock is depleted." -msgstr "" - -#: stock/templates/stock/item_base.html:318 +#: stock/templates/stock/item_base.html:316 #: templates/js/translated/build.js:1040 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:325 +#: stock/templates/stock/item_base.html:323 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:367 +#: stock/templates/stock/item_base.html:365 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:385 +#: stock/templates/stock/item_base.html:383 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:410 +#: stock/templates/stock/item_base.html:408 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:500 +#: stock/templates/stock/item_base.html:498 msgid "Edit Stock Status" msgstr "" @@ -6041,59 +6056,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:37 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:65 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:67 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:65 +#: stock/templates/stock/location.html:69 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:79 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:76 +#: stock/templates/stock/location.html:80 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:95 -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:99 +#: stock/templates/stock/location.html:105 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:102 +#: stock/templates/stock/location.html:106 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:119 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:175 +#: stock/templates/stock/location.html:132 +#: stock/templates/stock/location.html:179 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:142 templates/InvenTree/search.html:170 +#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "" -#: stock/templates/stock/location.html:182 templates/stock_table.html:30 +#: stock/templates/stock/location.html:186 templates/stock_table.html:30 msgid "Printing Actions" msgstr "" -#: stock/templates/stock/location.html:186 templates/stock_table.html:34 +#: stock/templates/stock/location.html:190 templates/stock_table.html:34 msgid "Print labels" msgstr "" @@ -6178,7 +6193,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:887 +#: stock/views.py:727 templates/js/translated/stock.js:1066 msgid "Confirm stock adjustment" msgstr "" @@ -6186,7 +6201,7 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:323 +#: stock/views.py:760 templates/js/translated/stock.js:324 msgid "Edit Stock Item" msgstr "" @@ -6198,7 +6213,7 @@ msgstr "" msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:303 +#: stock/views.py:1153 templates/js/translated/stock.js:304 msgid "Duplicate Stock Item" msgstr "" @@ -6314,10 +6329,6 @@ msgstr "" msgid "Search Results" msgstr "" -#: templates/InvenTree/search.html:22 -msgid "Enter a search query" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6363,7 +6374,7 @@ msgstr "" msgid "Login Settings" msgstr "" -#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5 +#: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5 msgid "Signup" msgstr "" @@ -6648,7 +6659,7 @@ msgstr "" msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:55 +#: templates/InvenTree/settings/user.html:54 msgid "The following email addresses are associated with your account:" msgstr "" @@ -6673,145 +6684,193 @@ msgid "Re-send Verification" msgstr "" #: templates/InvenTree/settings/user.html:87 -#: templates/InvenTree/settings/user.html:154 +#: templates/InvenTree/settings/user.html:149 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:94 +#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:201 msgid "Warning:" msgstr "" -#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:96 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:102 +#: templates/InvenTree/settings/user.html:104 msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:112 -msgid "Enter e-mail address" -msgstr "" - -#: templates/InvenTree/settings/user.html:114 +#: templates/InvenTree/settings/user.html:109 msgid "Add Email" msgstr "" -#: templates/InvenTree/settings/user.html:124 +#: templates/InvenTree/settings/user.html:117 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:129 +#: templates/InvenTree/settings/user.html:122 msgid "You can sign in to your account using any of the following third party accounts:" msgstr "" -#: templates/InvenTree/settings/user.html:163 -msgid "There are no social network accounts connected to your InvenTree account" +#: templates/InvenTree/settings/user.html:157 +msgid "You currently have no social network accounts connected to this account." msgstr "" -#: templates/InvenTree/settings/user.html:168 +#: templates/InvenTree/settings/user.html:162 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:179 -msgid "Active Sessions" +#: templates/InvenTree/settings/user.html:172 +msgid "Multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:185 -msgid "Log out active sessions (except this one)" +#: templates/InvenTree/settings/user.html:177 +msgid "You have these factors available:" msgstr "" -#: templates/InvenTree/settings/user.html:186 -msgid "Log Out Active Sessions" +#: templates/InvenTree/settings/user.html:187 +msgid "TOTP" 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" +#: templates/InvenTree/settings/user.html:193 +msgid "Static" msgstr "" #: templates/InvenTree/settings/user.html:202 -msgid "Last Activity" +msgid "You currently do not have any factors set up." msgstr "" -#: templates/InvenTree/settings/user.html:211 -#, python-format -msgid "%(time)s ago (this session)" +#: templates/InvenTree/settings/user.html:209 +msgid "Change factors" msgstr "" -#: templates/InvenTree/settings/user.html:213 -#, python-format -msgid "%(time)s ago" +#: templates/InvenTree/settings/user.html:210 +msgid "Setup multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:224 -msgid "Do you really want to remove the selected email address?" +#: templates/InvenTree/settings/user.html:212 +msgid "Remove multifactor" msgstr "" +#: templates/InvenTree/settings/user.html:219 #: templates/InvenTree/settings/user_display.html:25 msgid "Theme Settings" msgstr "" +#: templates/InvenTree/settings/user.html:227 #: templates/InvenTree/settings/user_display.html:35 msgid "Select theme" msgstr "" +#: templates/InvenTree/settings/user.html:237 #: templates/InvenTree/settings/user_display.html:46 msgid "Set Theme" msgstr "" +#: templates/InvenTree/settings/user.html:246 #: templates/InvenTree/settings/user_display.html:54 msgid "Language Settings" msgstr "" +#: templates/InvenTree/settings/user.html:254 #: templates/InvenTree/settings/user_display.html:63 msgid "Select language" msgstr "" +#: templates/InvenTree/settings/user.html:270 #: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" +#: templates/InvenTree/settings/user.html:272 #: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" +#: templates/InvenTree/settings/user.html:279 #: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" +#: templates/InvenTree/settings/user.html:281 #: templates/InvenTree/settings/user_display.html:91 msgid "Some languages are not complete" msgstr "" +#: templates/InvenTree/settings/user.html:283 #: 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.html:285 #: templates/InvenTree/settings/user_display.html:95 msgid "Show them too" msgstr "" +#: templates/InvenTree/settings/user.html:292 #: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" +#: templates/InvenTree/settings/user.html:293 +#, python-format +msgid "Native language translation of the\n" +" InvenTree web application is community contributed via crowdin. Contributions are\n" +" welcomed and encouraged." +msgstr "" + +#: templates/InvenTree/settings/user.html:302 +msgid "Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:308 +msgid "Log out active sessions (except this one)" +msgstr "" + +#: templates/InvenTree/settings/user.html:309 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:318 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:319 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:323 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:324 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:325 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:334 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:336 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:348 +msgid "Do you really want to remove the selected email address?" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +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." @@ -6830,7 +6889,7 @@ msgid "InvenTree Version Information" msgstr "" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53 +#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53 #: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662 #: templates/js/translated/modals.js:965 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 @@ -7006,6 +7065,71 @@ msgstr "" msgid "View in administration panel" msgstr "" +#: templates/allauth_2fa/authenticate.html:5 +msgid "Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:12 +msgid "Authenticate" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:6 +msgid "Two-Factor Authentication Backup Tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:17 +msgid "Backup tokens have been generated, but are not revealed here for security reasons. Press the button below to generate new ones." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:20 +msgid "No tokens. Press the button below to generate some." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:27 +msgid "Generate backup tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:31 +#: templates/allauth_2fa/setup.html:40 +msgid "back to settings" +msgstr "" + +#: templates/allauth_2fa/remove.html:6 +msgid "Disable Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/remove.html:9 +msgid "Are you sure?" +msgstr "" + +#: templates/allauth_2fa/remove.html:14 +msgid "Disable Two-Factor" +msgstr "" + +#: templates/allauth_2fa/setup.html:6 +msgid "Setup Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/setup.html:10 +msgid "Step 1" +msgstr "" + +#: templates/allauth_2fa/setup.html:14 +msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." +msgstr "" + +#: templates/allauth_2fa/setup.html:23 +msgid "Step 2" +msgstr "" + +#: templates/allauth_2fa/setup.html:27 +msgid "Input a token generated by the app:" +msgstr "" + +#: templates/allauth_2fa/setup.html:35 +msgid "Verify" +msgstr "" + #: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 msgid "Add Link" msgstr "" @@ -7044,13 +7168,13 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:1103 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134 +#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1134 #: templates/js/translated/build.js:1755 #: templates/js/translated/table_filters.js:178 msgid "Available" @@ -7239,7 +7363,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018 msgid "Remove stock item" msgstr "" @@ -7281,91 +7405,153 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:184 +#: templates/js/translated/bom.js:36 +msgid "Download BOM Template" +msgstr "" + +#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510 +msgid "Format" +msgstr "" + +#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511 +msgid "Select file format" +msgstr "" + +#: templates/js/translated/bom.js:81 +msgid "Cascading" +msgstr "" + +#: templates/js/translated/bom.js:82 +msgid "Download cascading / multi-level BOM" +msgstr "" + +#: templates/js/translated/bom.js:87 +msgid "Levels" +msgstr "" + +#: templates/js/translated/bom.js:88 +msgid "Select maximum number of BOM levels to export (0 = all levels)" +msgstr "" + +#: templates/js/translated/bom.js:94 +msgid "Include Parameter Data" +msgstr "" + +#: templates/js/translated/bom.js:95 +msgid "Include part parameter data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:100 +msgid "Include Stock Data" +msgstr "" + +#: templates/js/translated/bom.js:101 +msgid "Include part stock data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:106 +msgid "Include Manufacturer Data" +msgstr "" + +#: templates/js/translated/bom.js:107 +msgid "Include part manufacturer data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:112 +msgid "Include Supplier Data" +msgstr "" + +#: templates/js/translated/bom.js:113 +msgid "Include part supplier data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:296 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:228 +#: templates/js/translated/bom.js:340 msgid "Select and add a new variant item using the input below" msgstr "" -#: templates/js/translated/bom.js:239 +#: templates/js/translated/bom.js:351 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:245 +#: templates/js/translated/bom.js:357 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:284 +#: templates/js/translated/bom.js:396 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:285 +#: templates/js/translated/bom.js:397 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:404 +#: templates/js/translated/bom.js:516 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116 +#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1116 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:413 +#: templates/js/translated/bom.js:525 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:485 +#: templates/js/translated/bom.js:597 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:500 +#: templates/js/translated/bom.js:612 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:507 +#: templates/js/translated/bom.js:619 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645 +#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:616 +#: templates/js/translated/bom.js:728 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:618 +#: templates/js/translated/bom.js:730 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:620 +#: templates/js/translated/bom.js:732 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796 +#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779 +#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860 +#: templates/js/translated/bom.js:830 templates/js/translated/build.js:860 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:774 +#: templates/js/translated/bom.js:886 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100 +#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1100 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:996 +#: templates/js/translated/bom.js:1108 msgid "Inherited from parent BOM" msgstr "" @@ -7464,7 +7650,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1199 templates/stock_table.html:52 +#: templates/js/translated/build.js:1199 templates/stock_table.html:53 msgid "Order stock" msgstr "" @@ -7509,9 +7695,9 @@ msgstr "" msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147 -#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333 -#: templates/js/translated/stock.js:2128 +#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1149 +#: templates/js/translated/part.js:1560 templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:2321 msgid "Select" msgstr "" @@ -7519,7 +7705,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347 +#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2540 msgid "No user information" msgstr "" @@ -7682,20 +7868,20 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1078 templates/modals.html:19 +#: templates/js/translated/forms.js:1080 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1469 +#: templates/js/translated/forms.js:1471 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1673 +#: templates/js/translated/forms.js:1675 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1893 +#: templates/js/translated/forms.js:1895 msgid "Clear input" msgstr "" @@ -7708,7 +7894,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:863 +#: templates/js/translated/stock.js:1042 msgid "Select Stock Items" msgstr "" @@ -7888,14 +8074,6 @@ msgstr "" msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509 -msgid "Format" -msgstr "" - -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510 -msgid "Select file format" -msgstr "" - #: templates/js/translated/order.js:460 msgid "Select Line Items" msgstr "" @@ -7908,7 +8086,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123 msgid "Stock Status" msgstr "" @@ -7957,7 +8135,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163 -#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986 +#: templates/js/translated/part.js:1777 templates/js/translated/part.js:1988 msgid "Unit Price" msgstr "" @@ -8042,7 +8220,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1249 +#: templates/js/translated/stock.js:1428 msgid "Shipped to customer" msgstr "" @@ -8206,92 +8384,92 @@ msgstr "" msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:946 +#: templates/js/translated/part.js:948 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:970 +#: templates/js/translated/part.js:972 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1037 templates/js/translated/part.js:1297 +#: templates/js/translated/part.js:1039 templates/js/translated/part.js:1299 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1207 +#: templates/js/translated/part.js:1209 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1230 +#: templates/js/translated/part.js:1232 #: templates/js/translated/table_filters.js:412 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493 -#: templates/js/translated/stock.js:2089 +#: templates/js/translated/part.js:1323 templates/js/translated/part.js:1495 +#: templates/js/translated/stock.js:2282 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1337 +#: templates/js/translated/part.js:1339 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108 +#: templates/js/translated/part.js:1514 templates/js/translated/stock.js:2301 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1576 +#: templates/js/translated/part.js:1578 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152 +#: templates/js/translated/part.js:1592 templates/js/translated/stock.js:2345 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1634 +#: templates/js/translated/part.js:1636 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055 +#: templates/js/translated/part.js:1687 templates/js/translated/stock.js:1234 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056 +#: templates/js/translated/part.js:1688 templates/js/translated/stock.js:1235 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1692 +#: templates/js/translated/part.js:1694 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1714 +#: templates/js/translated/part.js:1716 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1728 +#: templates/js/translated/part.js:1730 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1753 +#: templates/js/translated/part.js:1755 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1808 +#: templates/js/translated/part.js:1810 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1809 +#: templates/js/translated/part.js:1811 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1910 +#: templates/js/translated/part.js:1912 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1929 +#: templates/js/translated/part.js:1931 msgid "Single Price Difference" msgstr "" @@ -8365,316 +8543,340 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:72 +#: templates/js/translated/stock.js:73 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173 msgid "Next available serial number" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174 +#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175 msgid "Latest serial number" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:101 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:109 +#: templates/js/translated/stock.js:110 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:145 +#: templates/js/translated/stock.js:146 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:185 +#: templates/js/translated/stock.js:186 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:224 +#: templates/js/translated/stock.js:225 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:231 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:373 +#: templates/js/translated/stock.js:374 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:386 +#: templates/js/translated/stock.js:387 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:411 +#: templates/js/translated/stock.js:412 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416 +#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:432 +#: templates/js/translated/stock.js:433 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:452 +#: templates/js/translated/stock.js:453 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:506 +#: templates/js/translated/stock.js:507 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:517 +#: templates/js/translated/stock.js:518 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:518 +#: templates/js/translated/stock.js:519 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:627 +#: templates/js/translated/stock.js:628 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:628 +#: templates/js/translated/stock.js:629 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:713 +#: templates/js/translated/stock.js:706 +msgid "Warning: Merge operation cannot be reversed" +msgstr "" + +#: templates/js/translated/stock.js:707 +msgid "Some information will be lost when merging stock items" +msgstr "" + +#: templates/js/translated/stock.js:709 +msgid "Stock transaction history will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:710 +msgid "Supplier part information will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:796 +msgid "Confirm stock item merge" +msgstr "" + +#: templates/js/translated/stock.js:797 +msgid "Merge Stock Items" +msgstr "" + +#: templates/js/translated/stock.js:892 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:893 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:899 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:721 +#: templates/js/translated/stock.js:900 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:725 +#: templates/js/translated/stock.js:904 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:726 +#: templates/js/translated/stock.js:905 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:730 +#: templates/js/translated/stock.js:909 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:731 users/models.py:202 +#: templates/js/translated/stock.js:910 users/models.py:205 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:735 templates/stock_table.html:57 +#: templates/js/translated/stock.js:914 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:864 +#: templates/js/translated/stock.js:1043 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1022 +#: templates/js/translated/stock.js:1201 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1024 +#: templates/js/translated/stock.js:1203 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1029 +#: templates/js/translated/stock.js:1208 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1230 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1077 +#: templates/js/translated/stock.js:1256 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1134 +#: templates/js/translated/stock.js:1313 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1420 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1245 +#: templates/js/translated/stock.js:1424 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1432 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1259 +#: templates/js/translated/stock.js:1438 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1417 +#: templates/js/translated/stock.js:1596 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1422 +#: templates/js/translated/stock.js:1601 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1425 +#: templates/js/translated/stock.js:1604 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1429 +#: templates/js/translated/stock.js:1608 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1431 +#: templates/js/translated/stock.js:1610 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1437 +#: templates/js/translated/stock.js:1616 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1618 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1441 +#: templates/js/translated/stock.js:1620 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1625 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1453 +#: templates/js/translated/stock.js:1632 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1455 +#: templates/js/translated/stock.js:1634 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1457 +#: templates/js/translated/stock.js:1636 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1461 +#: templates/js/translated/stock.js:1640 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1511 +#: templates/js/translated/stock.js:1690 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1584 +#: templates/js/translated/stock.js:1763 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1622 +#: templates/js/translated/stock.js:1801 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691 +#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1731 +#: templates/js/translated/stock.js:1910 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1758 +#: templates/js/translated/stock.js:1937 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1760 +#: templates/js/translated/stock.js:1939 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2138 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1959 +#: templates/js/translated/stock.js:2152 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1960 +#: templates/js/translated/stock.js:2153 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2377 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2206 +#: templates/js/translated/stock.js:2399 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2231 +#: templates/js/translated/stock.js:2424 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2250 +#: templates/js/translated/stock.js:2443 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2269 +#: templates/js/translated/stock.js:2462 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2480 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2310 +#: templates/js/translated/stock.js:2503 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2318 +#: templates/js/translated/stock.js:2511 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2552 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2360 +#: templates/js/translated/stock.js:2553 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2411 +#: templates/js/translated/stock.js:2604 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2462 +#: templates/js/translated/stock.js:2655 msgid "Uninstall Stock Item" msgstr "" @@ -9059,18 +9261,26 @@ msgid "Move stock" msgstr "" #: templates/stock_table.html:52 +msgid "Merge selected stock items" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Merge stock" +msgstr "" + +#: templates/stock_table.html:53 msgid "Order selected items" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change status" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change stock status" msgstr "" -#: templates/stock_table.html:57 +#: templates/stock_table.html:58 msgid "Delete selected items" msgstr "" @@ -9106,35 +9316,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:189 +#: users/models.py:192 msgid "Permission set" msgstr "" -#: users/models.py:197 +#: users/models.py:200 msgid "Group" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "View" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "Permission to view items" msgstr "" -#: users/models.py:202 +#: users/models.py:205 msgid "Permission to add items" msgstr "" -#: users/models.py:204 +#: users/models.py:207 msgid "Change" msgstr "" -#: users/models.py:204 +#: users/models.py:207 msgid "Permissions to edit items" msgstr "" -#: users/models.py:206 +#: users/models.py:209 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po index 032934132c..23999feeb4 100644 --- a/InvenTree/locale/tr/LC_MESSAGES/django.po +++ b/InvenTree/locale/tr/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-12-08 23:43+0000\n" -"PO-Revision-Date: 2021-12-08 23:47\n" +"POT-Creation-Date: 2021-12-21 02:57+0000\n" +"PO-Revision-Date: 2021-12-21 03:01\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Language: tr_TR\n" @@ -34,50 +34,50 @@ msgstr "Eşleşen eylem bulunamadı" msgid "Enter date" msgstr "Tarih giriniz" -#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93 +#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 build/forms.py:93 #: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: part/forms.py:108 templates/account/email_confirm.html:20 +#: part/forms.py:78 templates/account/email_confirm.html:20 #: templates/js/translated/forms.js:595 msgid "Confirm" msgstr "Onay" -#: InvenTree/forms.py:136 +#: InvenTree/forms.py:142 msgid "Confirm delete" msgstr "Silmeyi Onayla" -#: InvenTree/forms.py:137 +#: InvenTree/forms.py:143 msgid "Confirm item deletion" msgstr "Silmeyi onayla" -#: InvenTree/forms.py:168 +#: InvenTree/forms.py:174 msgid "Enter password" msgstr "Şifrenizi girin" -#: InvenTree/forms.py:169 +#: InvenTree/forms.py:175 msgid "Enter new password" msgstr "Lütfen Yeni Parolayı Girin" -#: InvenTree/forms.py:176 +#: InvenTree/forms.py:182 msgid "Confirm password" msgstr "Parolayı doğrulayın" -#: InvenTree/forms.py:177 +#: InvenTree/forms.py:183 msgid "Confirm new password" msgstr "Yeni parolayı doğrulayın" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:215 msgid "Select Category" msgstr "Kategori Seçin" -#: InvenTree/forms.py:230 +#: InvenTree/forms.py:236 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:234 +#: InvenTree/forms.py:240 msgid "Email address confirmation" msgstr "" -#: InvenTree/forms.py:254 +#: InvenTree/forms.py:260 msgid "You must type the same email each time." msgstr "" @@ -123,7 +123,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:132 stock/models.py:1852 +#: InvenTree/models.py:132 stock/models.py:1967 #: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "Ek" @@ -136,12 +136,12 @@ msgstr "Eklenecek dosyayı seç" #: company/models.py:564 order/models.py:124 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:1258 +#: templates/js/translated/company.js:826 templates/js/translated/part.js:1260 msgid "Link" msgstr "Bağlantı" #: InvenTree/models.py:140 build/models.py:330 part/models.py:798 -#: stock/models.py:524 +#: stock/models.py:527 msgid "Link to external URL" msgstr "Harici URL'ye bağlantı" @@ -153,10 +153,10 @@ msgstr "Yorum" msgid "File comment" msgstr "Dosya yorumu" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213 -#: common/models.py:1214 part/models.py:2205 part/models.py:2225 +#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1219 +#: common/models.py:1220 part/models.py:2205 part/models.py:2225 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2341 +#: templates/js/translated/stock.js:2534 msgid "User" msgstr "Kullanıcı" @@ -202,8 +202,8 @@ msgstr "Geçersiz seçim" #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:268 #: templates/js/translated/company.js:638 templates/js/translated/part.js:506 -#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565 -#: templates/js/translated/stock.js:2134 +#: templates/js/translated/part.js:643 templates/js/translated/part.js:1567 +#: templates/js/translated/stock.js:2327 msgid "Name" msgstr "Adı" @@ -212,23 +212,23 @@ msgstr "Adı" #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70 +#: order/models.py:122 part/models.py:764 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:89 +#: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428 +#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540 #: templates/js/translated/build.js:1627 templates/js/translated/company.js:345 #: templates/js/translated/company.js:548 #: templates/js/translated/company.js:837 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 -#: templates/js/translated/part.js:565 templates/js/translated/part.js:933 -#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188 -#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653 -#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146 -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/part.js:565 templates/js/translated/part.js:935 +#: templates/js/translated/part.js:1020 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1586 templates/js/translated/part.js:1655 +#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339 +#: templates/js/translated/stock.js:2384 msgid "Description" msgstr "Açıklama" @@ -248,83 +248,83 @@ msgstr "Geçerli bir numara olmalı" msgid "Filename" msgstr "" -#: InvenTree/settings.py:689 +#: InvenTree/settings.py:698 msgid "German" msgstr "Almanca" -#: InvenTree/settings.py:690 +#: InvenTree/settings.py:699 msgid "Greek" msgstr "Yunanca" -#: InvenTree/settings.py:691 +#: InvenTree/settings.py:700 msgid "English" msgstr "İngilizce" -#: InvenTree/settings.py:692 +#: InvenTree/settings.py:701 msgid "Spanish" msgstr "İspanyolca" -#: InvenTree/settings.py:693 +#: InvenTree/settings.py:702 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:694 +#: InvenTree/settings.py:703 msgid "French" msgstr "Fransızca" -#: InvenTree/settings.py:695 +#: InvenTree/settings.py:704 msgid "Hebrew" msgstr "İbranice" -#: InvenTree/settings.py:696 +#: InvenTree/settings.py:705 msgid "Italian" msgstr "İtalyanca" -#: InvenTree/settings.py:697 +#: InvenTree/settings.py:706 msgid "Japanese" msgstr "Japonca" -#: InvenTree/settings.py:698 +#: InvenTree/settings.py:707 msgid "Korean" msgstr "Korece" -#: InvenTree/settings.py:699 +#: InvenTree/settings.py:708 msgid "Dutch" msgstr "Flemenkçe" -#: InvenTree/settings.py:700 +#: InvenTree/settings.py:709 msgid "Norwegian" msgstr "Norveççe" -#: InvenTree/settings.py:701 +#: InvenTree/settings.py:710 msgid "Polish" msgstr "Polonyaca" -#: InvenTree/settings.py:702 +#: InvenTree/settings.py:711 msgid "Portugese" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:712 msgid "Russian" msgstr "Rusça" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:713 msgid "Swedish" msgstr "İsveççe" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:714 msgid "Thai" msgstr "Tay dili" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:715 msgid "Turkish" msgstr "Türkçe" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:716 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:717 msgid "Chinese" msgstr "Çince" @@ -341,7 +341,7 @@ msgid "InvenTree system health checks failed" msgstr "InvenTree sistem sağlık kontrolü başarısız" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 msgid "Pending" msgstr "Bekliyor" @@ -349,14 +349,14 @@ msgstr "Bekliyor" msgid "Placed" msgstr "Sipariş verildi" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:319 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "Tamamlandı" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:313 +#: InvenTree/status_codes.py:318 msgid "Cancelled" msgstr "İptal edildi" @@ -370,7 +370,7 @@ msgstr "Kayıp" msgid "Returned" msgstr "İade" -#: InvenTree/status_codes.py:143 order/models.py:939 +#: InvenTree/status_codes.py:143 order/models.py:941 #: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255 msgid "Shipped" msgstr "Sevk edildi" @@ -395,83 +395,87 @@ msgstr "Kullanılamaz durumda" msgid "Rejected" msgstr "Reddedildi" -#: InvenTree/status_codes.py:269 +#: InvenTree/status_codes.py:272 msgid "Legacy stock tracking entry" msgstr "Eski stok izleme girişi" -#: InvenTree/status_codes.py:271 +#: InvenTree/status_codes.py:274 msgid "Stock item created" msgstr "Stok kalemi oluşturuldu" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Edited stock item" msgstr "Düzenlenen stok kalemi" -#: InvenTree/status_codes.py:274 +#: InvenTree/status_codes.py:277 msgid "Assigned serial number" msgstr "Atanan seri numarası" -#: InvenTree/status_codes.py:276 +#: InvenTree/status_codes.py:279 msgid "Stock counted" msgstr "Stok sayıldı" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Stock manually added" msgstr "Stok manuel olarak eklendi" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Stock manually removed" msgstr "Stok manuel olarak çıkarıldı" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Location changed" msgstr "Konum değişti" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Installed into assembly" msgstr "Montajda kullanıldı" -#: InvenTree/status_codes.py:283 +#: InvenTree/status_codes.py:286 msgid "Removed from assembly" msgstr "Montajdan çıkarıldı" -#: InvenTree/status_codes.py:285 +#: InvenTree/status_codes.py:288 msgid "Installed component item" msgstr "Bileşen ögesinde kullanıldı" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Removed component item" msgstr "Bileşen ögesinden çıkarıldı" -#: InvenTree/status_codes.py:288 +#: InvenTree/status_codes.py:291 msgid "Split from parent item" msgstr "Üst ögeden ayır" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Split child item" msgstr "Alt ögeyi ayır" -#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064 +msgid "Merged stock items" +msgstr "" + +#: InvenTree/status_codes.py:296 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "Müşteriye gönderildi" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:297 msgid "Returned from customer" msgstr "Müşteriden geri döndü" -#: InvenTree/status_codes.py:294 +#: InvenTree/status_codes.py:299 msgid "Build order output created" msgstr "Yapım emri çıktısı oluşturuldu" -#: InvenTree/status_codes.py:295 +#: InvenTree/status_codes.py:300 msgid "Build order output completed" msgstr "Yapım emri çıktısı tamamlandı" -#: InvenTree/status_codes.py:297 +#: InvenTree/status_codes.py:302 msgid "Received against purchase order" msgstr "Satın alma emri karşılığında alındı" -#: InvenTree/status_codes.py:312 +#: InvenTree/status_codes.py:317 msgid "Production" msgstr "Üretim" @@ -575,16 +579,16 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1283 -#: build/templates/build/build_base.html:132 -#: build/templates/build/detail.html:35 common/models.py:1253 +#: build/forms.py:36 build/models.py:1286 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1259 #: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:794 order/models.py:1205 order/serializers.py:810 +#: order/models.py:796 order/models.py:1207 order/serializers.py:810 #: order/templates/order/order_wizard/match_parts.html:30 -#: 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 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:193 +#: part/forms.py:209 part/forms.py:225 part/models.py:2576 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:967 part/templates/part/detail.html:1053 +#: part/templates/part/detail.html:961 part/templates/part/detail.html:1047 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -592,10 +596,10 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:174 -#: stock/templates/stock/item_base.html:255 -#: stock/templates/stock/item_base.html:263 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443 +#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:261 +#: stock/templates/stock/item_base.html:269 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555 #: templates/js/translated/build.js:240 templates/js/translated/build.js:440 #: templates/js/translated/build.js:634 templates/js/translated/build.js:644 #: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367 @@ -604,10 +608,10 @@ msgstr "" #: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 #: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 #: templates/js/translated/order.js:2150 templates/js/translated/part.js:843 -#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919 -#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382 -#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326 -#: templates/js/translated/stock.js:2428 +#: templates/js/translated/part.js:1798 templates/js/translated/part.js:1921 +#: templates/js/translated/part.js:1999 templates/js/translated/stock.js:383 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750 +#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621 msgid "Quantity" msgstr "Miktar" @@ -616,8 +620,8 @@ msgid "Enter quantity for build output" msgstr "Yapım işi çıktısı için miktarını girin" #: build/forms.py:41 order/serializers.py:814 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:229 -#: templates/js/translated/stock.js:383 +#: stock/serializers.py:314 templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:384 msgid "Serial Numbers" msgstr "Seri Numaraları" @@ -661,7 +665,7 @@ msgstr "Yapım İşi Emri" #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:145 +#: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" msgstr "Yapım İşi Emirleri" @@ -671,11 +675,11 @@ msgid "Build Order Reference" msgstr "Yapım İşi Emri Referansı" #: build/models.py:199 order/models.py:210 order/models.py:536 -#: order/models.py:801 part/models.py:2585 +#: order/models.py:803 part/models.py:2585 #: part/templates/part/bom_upload/match_parts.html:30 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124 +#: templates/js/translated/bom.js:547 templates/js/translated/build.js:1124 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "Referans" @@ -695,7 +699,7 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri" #: build/models.py:225 build/templates/build/build_base.html:77 #: build/templates/build/detail.html:30 company/models.py:705 -#: order/models.py:854 order/models.py:928 +#: order/models.py:856 order/models.py:930 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357 #: part/models.py:2151 part/models.py:2167 part/models.py:2186 #: part/models.py:2203 part/models.py:2305 part/models.py:2427 @@ -706,20 +710,21 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri" #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 -#: templates/InvenTree/search.html:86 +#: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214 -#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326 +#: templates/js/translated/bom.js:505 templates/js/translated/build.js:625 #: templates/js/translated/build.js:993 templates/js/translated/build.js:1364 #: templates/js/translated/build.js:1632 templates/js/translated/company.js:489 #: templates/js/translated/company.js:746 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 -#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918 -#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166 -#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747 -#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416 +#: templates/js/translated/order.js:2128 templates/js/translated/part.js:920 +#: templates/js/translated/part.js:1001 templates/js/translated/part.js:1168 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719 +#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:2609 msgid "Part" msgstr "Parça" @@ -776,7 +781,7 @@ msgstr "Yapım İşi Durumu" msgid "Build status code" msgstr "Yapım işi durum kodu" -#: build/models.py:285 stock/models.py:528 +#: build/models.py:285 stock/models.py:531 msgid "Batch Code" msgstr "Sıra numarası" @@ -830,27 +835,27 @@ msgstr "Bu yapım işi emrinden sorumlu kullanıcı" #: build/models.py:329 build/templates/build/detail.html:102 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:354 stock/models.py:522 -#: stock/templates/stock/item_base.html:374 +#: part/templates/part/part_base.html:354 stock/models.py:525 +#: stock/templates/stock/item_base.html:372 msgid "External Link" msgstr "Harici 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:144 order/models.py:803 order/models.py:1049 +#: order/models.py:144 order/models.py:805 order/models.py:1051 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:925 -#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50 +#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594 -#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332 -#: stock/serializers.py:624 stock/serializers.py:711 +#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597 +#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332 +#: stock/serializers.py:638 stock/serializers.py:736 stock/serializers.py:868 #: stock/templates/stock/stock_sidebar.html:21 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711 #: templates/js/translated/company.js:842 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795 msgid "Notes" msgstr "Notlar" @@ -883,7 +888,7 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "Stok kalemi fazladan tahsis edilmiş" -#: build/models.py:1133 order/models.py:1165 +#: build/models.py:1133 order/models.py:1167 msgid "Allocation quantity must be greater than zero" msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır" @@ -891,51 +896,52 @@ msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır" msgid "Quantity must be 1 for serialized stock" msgstr "Seri numaralı stok için miktar bir olmalı" -#: build/models.py:1193 +#: build/models.py:1196 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1253 stock/templates/stock/item_base.html:346 -#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605 +#: build/models.py:1256 stock/templates/stock/item_base.html:344 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1605 #: templates/navbar.html:35 msgid "Build" msgstr "Yapım İşi" -#: build/models.py:1254 +#: build/models.py:1257 msgid "Build to allocate parts" msgstr "Yapım işi için tahsis edilen parçalar" -#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690 -#: order/serializers.py:708 stock/serializers.py:562 +#: build/models.py:1273 build/serializers.py:334 order/serializers.py:690 +#: order/serializers.py:708 stock/serializers.py:576 stock/serializers.py:694 #: stock/templates/stock/item_base.html:8 -#: stock/templates/stock/item_base.html:16 -#: stock/templates/stock/item_base.html:368 +#: stock/templates/stock/item_base.html:22 +#: stock/templates/stock/item_base.html:366 #: templates/js/translated/build.js:413 templates/js/translated/build.js:418 #: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277 +#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:2470 msgid "Stock Item" msgstr "Stok Kalemi" -#: build/models.py:1271 +#: build/models.py:1274 msgid "Source stock item" msgstr "Kaynak stok kalemi" -#: build/models.py:1284 +#: build/models.py:1287 msgid "Stock quantity to allocate to build" msgstr "Yapım işi için tahsis edilen stok miktarı" -#: build/models.py:1292 +#: build/models.py:1295 msgid "Install into" msgstr "Kurulduğu yer" -#: build/models.py:1293 +#: build/models.py:1296 msgid "Destination stock item" msgstr "Hedef stok kalemi" -#: build/serializers.py:137 build/serializers.py:357 +#: build/serializers.py:137 build/serializers.py:363 msgid "Build Output" msgstr "" @@ -956,16 +962,16 @@ msgid "This build output is not fully allocated" msgstr "" #: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813 -#: stock/templates/stock/item_base.html:314 +#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:729 +#: stock/serializers.py:970 stock/templates/stock/item_base.html:312 #: templates/js/translated/barcode.js:384 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425 #: templates/js/translated/build.js:1032 templates/js/translated/order.js:508 #: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 #: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497 -#: templates/js/translated/stock.js:2218 +#: templates/js/translated/part.js:177 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411 msgid "Location" msgstr "Konum" @@ -975,11 +981,11 @@ msgstr "" #: build/serializers.py:197 build/templates/build/build_base.html:137 #: build/templates/build/detail.html:63 order/models.py:552 -#: order/serializers.py:247 stock/templates/stock/item_base.html:180 +#: order/serializers.py:247 stock/templates/stock/item_base.html:186 #: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661 #: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472 -#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651 +#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637 msgid "Status" msgstr "Durum" @@ -1000,33 +1006,33 @@ msgstr "" msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:319 +#: build/serializers.py:325 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:334 stock/serializers.py:569 +#: build/serializers.py:340 stock/serializers.py:583 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:348 order/models.py:277 order/serializers.py:240 -#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305 +#: build/serializers.py:354 order/models.py:277 order/serializers.py:240 +#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:390 order/serializers.py:741 +#: build/serializers.py:396 order/serializers.py:741 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:396 +#: build/serializers.py:402 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:403 +#: build/serializers.py:409 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:431 order/serializers.py:984 +#: build/serializers.py:437 order/serializers.py:984 msgid "Allocation items must be provided" msgstr "" @@ -1067,33 +1073,33 @@ msgstr "" msgid "Complete Build" msgstr "Tamamlanmış Yapım İşi" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:87 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:96 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "Bu yapım işi emri, %(link)s sipariş emrine tahsis edilmiştir" -#: build/templates/build/build_base.html:98 +#: build/templates/build/build_base.html:103 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "Bu yapım işi emri, %(link)s yapım iş emrinin altıdır" -#: build/templates/build/build_base.html:105 +#: build/templates/build/build_base.html:110 msgid "Build Order is ready to mark as completed" msgstr "Yapım işi tamamlandı olarak işaretlenmeye hazır" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "Bekleyen çıktılar kaldığı için yapım işi emri tamamlanamıyor" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Required build quantity has not yet been completed" msgstr "Gerekli yapım işi miktarı henüz tamamlanmadı" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Stock has not been fully allocated to this Build Order" msgstr "Stok, yapım işi emri için tamamen tahsis edilemedi" @@ -1131,12 +1137,12 @@ msgid "Completed" msgstr "Tamamlandı" #: build/templates/build/build_base.html:171 -#: build/templates/build/detail.html:95 order/models.py:925 -#: order/models.py:1021 order/templates/order/sales_order_base.html:9 +#: build/templates/build/detail.html:95 order/models.py:927 +#: order/models.py:1023 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:308 +#: stock/templates/stock/item_base.html:306 #: templates/js/translated/order.js:1218 msgid "Sales Order" msgstr "Sipariş Emri" @@ -1211,7 +1217,7 @@ msgstr "Stok Kaynağı" 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:876 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "Hedef" @@ -1225,8 +1231,8 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:332 -#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451 +#: stock/templates/stock/item_base.html:330 +#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1278,7 +1284,7 @@ msgstr "Gerekli parçaları sipariş edin" #: build/templates/build/detail.html:185 #: company/templates/company/detail.html:38 #: company/templates/company/detail.html:85 order/views.py:463 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order Parts" msgstr "Parça Siparişi" @@ -1347,7 +1353,7 @@ msgstr "Yapım İşi Notları" #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115 +#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115 #: stock/templates/stock/item.html:205 msgid "Edit Notes" msgstr "Notları Düzenle" @@ -1489,7 +1495,7 @@ msgstr "{name.title()} Dosya" msgid "Select {name} file to upload" msgstr "{name} dosyasını yüklemek için seçin" -#: common/models.py:340 common/models.py:998 common/models.py:1206 +#: common/models.py:340 common/models.py:1004 common/models.py:1212 msgid "Settings key (must be unique - case insensitive" msgstr "" @@ -1651,7 +1657,7 @@ msgstr "Şablon" msgid "Parts are templates by default" msgstr "Parçaları varsayılan olan şablondur" -#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956 +#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:1068 #: templates/js/translated/table_filters.js:168 #: templates/js/translated/table_filters.js:416 msgid "Assembly" @@ -1953,256 +1959,264 @@ msgid "Group to which new users are assigned on registration" msgstr "" #: common/models.py:961 -msgid "Enable URL integration" +msgid "Enforce MFA" msgstr "" #: common/models.py:962 -msgid "Enable plugins to add URL routes" +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:967 +msgid "Enable URL integration" msgstr "" #: common/models.py:968 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:974 msgid "Enable navigation integration" msgstr "" -#: common/models.py:969 +#: common/models.py:975 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:975 +#: common/models.py:981 msgid "Enable global setting integration" msgstr "" -#: common/models.py:976 +#: common/models.py:982 msgid "Enable plugins to integrate into inventree global settings" msgstr "" -#: common/models.py:982 +#: common/models.py:988 msgid "Enable app integration" msgstr "" -#: common/models.py:983 +#: common/models.py:989 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1029 +#: common/models.py:1035 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1030 +#: common/models.py:1036 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1035 +#: common/models.py:1041 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1036 +#: common/models.py:1042 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1041 +#: common/models.py:1047 msgid "Show latest parts" msgstr "" -#: common/models.py:1042 +#: common/models.py:1048 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1047 +#: common/models.py:1053 msgid "Recent Part Count" msgstr "" -#: common/models.py:1048 +#: common/models.py:1054 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1054 +#: common/models.py:1060 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1055 +#: common/models.py:1061 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1060 +#: common/models.py:1066 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1061 +#: common/models.py:1067 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1066 +#: common/models.py:1072 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1067 +#: common/models.py:1073 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1072 +#: common/models.py:1078 msgid "Show low stock" msgstr "" -#: common/models.py:1073 +#: common/models.py:1079 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1078 +#: common/models.py:1084 msgid "Show depleted stock" msgstr "" -#: common/models.py:1079 +#: common/models.py:1085 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1084 +#: common/models.py:1090 msgid "Show needed stock" msgstr "" -#: common/models.py:1085 +#: common/models.py:1091 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1090 +#: common/models.py:1096 msgid "Show expired stock" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1096 +#: common/models.py:1102 msgid "Show stale stock" msgstr "" -#: common/models.py:1097 +#: common/models.py:1103 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1102 +#: common/models.py:1108 msgid "Show pending builds" msgstr "" -#: common/models.py:1103 +#: common/models.py:1109 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1108 +#: common/models.py:1114 msgid "Show overdue builds" msgstr "" -#: common/models.py:1109 +#: common/models.py:1115 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1114 +#: common/models.py:1120 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1115 +#: common/models.py:1121 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1120 +#: common/models.py:1126 msgid "Show overdue POs" msgstr "" -#: common/models.py:1121 +#: common/models.py:1127 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1126 +#: common/models.py:1132 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1127 +#: common/models.py:1133 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1132 +#: common/models.py:1138 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1133 +#: common/models.py:1139 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1139 +#: common/models.py:1145 msgid "Inline label display" msgstr "" -#: common/models.py:1140 +#: common/models.py:1146 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1146 +#: common/models.py:1152 msgid "Inline report display" msgstr "" -#: common/models.py:1147 +#: common/models.py:1153 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "Search Preview Results" msgstr "" -#: common/models.py:1154 +#: common/models.py:1160 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1160 +#: common/models.py:1166 msgid "Search Show Stock" msgstr "" -#: common/models.py:1161 +#: common/models.py:1167 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1167 +#: common/models.py:1173 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1168 +#: common/models.py:1174 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1174 +#: common/models.py:1180 msgid "Show Quantity in Forms" msgstr "Formlarda Miktarı Göster" -#: common/models.py:1175 +#: common/models.py:1181 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1181 +#: common/models.py:1187 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1182 +#: common/models.py:1188 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1188 +#: common/models.py:1194 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1189 +#: common/models.py:1195 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1254 company/forms.py:43 +#: common/models.py:1260 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1261 company/serializers.py:264 +#: common/models.py:1267 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801 +#: templates/js/translated/part.js:852 templates/js/translated/part.js:1803 msgid "Price" msgstr "Fiyat" -#: common/models.py:1262 +#: common/models.py:1268 msgid "Unit price at specified quantity" msgstr "" @@ -2290,7 +2304,7 @@ msgid "Contact phone number" msgstr "İletişim telefon numarası" #: company/models.py:125 company/templates/company/company_base.html:129 -#: templates/InvenTree/settings/user.html:47 +#: templates/InvenTree/settings/user.html:48 msgid "Email" msgstr "E-posta" @@ -2347,8 +2361,8 @@ msgstr "Para birimi" msgid "Default currency used for this company" msgstr "Bu şirket için varsayılan para birimi" -#: company/models.py:320 company/models.py:535 stock/models.py:468 -#: stock/templates/stock/item_base.html:135 +#: company/models.py:320 company/models.py:535 stock/models.py:469 +#: stock/templates/stock/item_base.html:141 msgid "Base Part" msgstr "Temel Parça" @@ -2359,7 +2373,7 @@ msgstr "Parça seçin" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:381 +#: stock/templates/stock/item_base.html:379 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:514 #: templates/js/translated/company.js:797 templates/js/translated/part.js:232 @@ -2393,7 +2407,7 @@ msgstr "" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:391 +#: stock/templates/stock/item_base.html:389 msgid "Manufacturer Part" msgstr "" @@ -2403,8 +2417,8 @@ msgstr "Parametre adı" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:1845 templates/js/translated/company.js:644 -#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117 +#: stock/models.py:1960 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1296 msgid "Value" msgstr "Değer" @@ -2431,7 +2445,7 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:224 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219 -#: part/bom.py:247 stock/templates/stock/item_base.html:398 +#: part/bom.py:247 stock/templates/stock/item_base.html:396 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:771 templates/js/translated/order.js:823 #: templates/js/translated/part.js:213 templates/js/translated/part.js:800 @@ -2479,8 +2493,8 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:491 stock/templates/stock/item_base.html:339 -#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612 +#: stock/models.py:493 stock/templates/stock/item_base.html:337 +#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1791 msgid "Packaging" msgstr "Paketleme" @@ -2506,7 +2520,7 @@ msgstr "Para Birimi Kodu" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322 +#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322 msgid "Company" msgstr "" @@ -2548,11 +2562,11 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:83 order/models.py:547 -#: order/templates/order/sales_order_base.html:115 stock/models.py:509 -#: stock/models.py:510 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:291 +#: order/templates/order/sales_order_base.html:115 stock/models.py:512 +#: stock/models.py:513 stock/serializers.py:624 +#: stock/templates/stock/item_base.html:289 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2259 +#: templates/js/translated/stock.js:2452 msgid "Customer" msgstr "Müşteri" @@ -2571,7 +2585,7 @@ msgstr "" #: company/templates/company/detail.html:15 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:124 +#: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "Tedarikçi Parçaları" @@ -2590,14 +2604,14 @@ msgstr "Yeni Tedarikçi Parçası" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:167 part/templates/part/detail.html:342 +#: part/templates/part/category.html:171 part/templates/part/detail.html:342 #: part/templates/part/detail.html:370 msgid "Options" msgstr "" #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order parts" msgstr "" @@ -2611,7 +2625,7 @@ msgstr "Parçaları sil" msgid "Delete Parts" msgstr "Parçaları Sil" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109 +#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" @@ -2633,8 +2647,8 @@ msgstr "Tedarikçi Stoku" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203 +#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" @@ -2655,8 +2669,8 @@ msgstr "Yeni Satın Alma Emri" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223 +#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" @@ -2698,7 +2712,7 @@ msgid "Supplier List" msgstr "" #: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184 +#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 #: templates/navbar.html:46 msgid "Manufacturers" msgstr "Üreticiler" @@ -2706,7 +2720,7 @@ msgstr "Üreticiler" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:67 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76 msgid "Order part" msgstr "Parça siparişi" @@ -2728,7 +2742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 #: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:194 templates/navbar.html:45 +#: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "" @@ -2742,7 +2756,7 @@ msgstr "Tedarikçi parçalarını sil" #: company/templates/company/manufacturer_part.html:254 #: part/templates/part/detail.html:344 part/templates/part/detail.html:372 #: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31 -#: users/models.py:206 +#: users/models.py:209 msgid "Delete" msgstr "" @@ -2765,7 +2779,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:867 +#: part/templates/part/detail.html:861 msgid "Add Parameter" msgstr "" @@ -2794,9 +2808,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:476 -#: stock/templates/stock/item_base.html:403 -#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569 +#: company/templates/company/supplier_part.html:24 stock/models.py:477 +#: stock/templates/stock/item_base.html:401 +#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1748 msgid "Supplier Part" msgstr "Tedarikçi Parçası" @@ -2816,13 +2830,13 @@ msgid "Supplier Part Stock" msgstr "Tedarikçi Parça Stoku" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:20 stock/templates/stock/location.html:162 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:166 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163 -#: templates/js/translated/stock.js:359 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 +#: templates/js/translated/stock.js:360 msgid "New Stock Item" msgstr "" @@ -2832,7 +2846,7 @@ msgid "Supplier Part Orders" msgstr "Tedarikçi Parçası Emirleri" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:68 +#: part/templates/part/detail.html:72 msgid "Order Part" msgstr "" @@ -2843,7 +2857,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:1717 +#: part/templates/part/prices.html:271 part/views.py:1713 msgid "Add Price Break" msgstr "" @@ -2851,11 +2865,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1779 +#: company/templates/company/supplier_part.html:224 part/views.py:1775 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1765 +#: company/templates/company/supplier_part.html:238 part/views.py:1761 msgid "Edit Price Break" msgstr "" @@ -2869,14 +2883,14 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:156 +#: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434 -#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059 -#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:1401 templates/navbar.html:28 +#: templates/js/translated/bom.js:328 templates/js/translated/part.js:434 +#: templates/js/translated/part.js:569 templates/js/translated/part.js:1061 +#: templates/js/translated/part.js:1222 templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:1580 templates/navbar.html:28 msgid "Stock" msgstr "Stok" @@ -2895,11 +2909,11 @@ msgid "Pricing" msgstr "Fiyatlandırma" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:133 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:159 +#: stock/templates/stock/location.html:137 +#: stock/templates/stock/location.html:151 +#: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "Stok Kalemleri" @@ -2912,7 +2926,7 @@ msgstr "Yeni Tedarikçi" msgid "New Manufacturer" msgstr "Yeni Üretici" -#: company/views.py:61 templates/InvenTree/search.html:214 +#: company/views.py:61 templates/InvenTree/search.html:208 #: templates/navbar.html:57 msgid "Customers" msgstr "Müşteriler" @@ -3121,7 +3135,7 @@ msgstr "" msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:562 order/models.py:1026 +#: order/models.py:562 order/models.py:1028 #: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429 msgid "Shipment Date" msgstr "" @@ -3130,7 +3144,7 @@ msgstr "" msgid "shipped by" msgstr "" -#: order/models.py:634 +#: order/models.py:635 msgid "Order cannot be completed as no parts have been assigned" msgstr "" @@ -3138,172 +3152,172 @@ msgstr "" msgid "Only a pending order can be marked as complete" msgstr "" -#: order/models.py:643 +#: order/models.py:642 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:647 +#: order/models.py:645 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:795 +#: order/models.py:797 msgid "Item quantity" msgstr "" -#: order/models.py:801 +#: order/models.py:803 msgid "Line item reference" msgstr "" -#: order/models.py:803 +#: order/models.py:805 msgid "Line item notes" msgstr "" -#: order/models.py:833 order/models.py:924 order/models.py:1020 +#: order/models.py:835 order/models.py:926 order/models.py:1022 #: templates/js/translated/order.js:1820 msgid "Order" msgstr "" -#: order/models.py:834 order/templates/order/order_base.html:9 +#: order/models.py:836 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:353 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/order.js:801 templates/js/translated/part.js:775 -#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240 +#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433 msgid "Purchase Order" msgstr "" -#: order/models.py:855 +#: order/models.py:857 msgid "Supplier part" msgstr "" -#: order/models.py:862 order/templates/order/order_base.html:163 +#: order/models.py:864 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:847 templates/js/translated/part.js:873 #: templates/js/translated/table_filters.js:317 msgid "Received" msgstr "" -#: order/models.py:863 +#: order/models.py:865 msgid "Number of items received" msgstr "" -#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:360 -#: templates/js/translated/stock.js:1600 +#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:358 +#: templates/js/translated/stock.js:1779 msgid "Purchase Price" msgstr "" -#: order/models.py:871 +#: order/models.py:873 msgid "Unit purchase price" msgstr "" -#: order/models.py:879 +#: order/models.py:881 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:934 part/templates/part/part_pricing.html:112 +#: order/models.py:936 part/templates/part/part_pricing.html:112 #: part/templates/part/prices.html:116 part/templates/part/prices.html:284 msgid "Sale Price" msgstr "" -#: order/models.py:935 +#: order/models.py:937 msgid "Unit sale price" msgstr "" -#: order/models.py:940 +#: order/models.py:942 msgid "Shipped quantity" msgstr "" -#: order/models.py:1027 +#: order/models.py:1029 msgid "Date of shipment" msgstr "" -#: order/models.py:1034 +#: order/models.py:1036 msgid "Checked By" msgstr "" -#: order/models.py:1035 +#: order/models.py:1037 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1043 +#: order/models.py:1045 msgid "Shipment number" msgstr "" -#: order/models.py:1050 +#: order/models.py:1052 msgid "Shipment notes" msgstr "" -#: order/models.py:1057 +#: order/models.py:1059 msgid "Tracking Number" msgstr "" -#: order/models.py:1058 +#: order/models.py:1060 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1068 +#: order/models.py:1070 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1071 +#: order/models.py:1073 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1147 order/models.py:1149 +#: order/models.py:1149 order/models.py:1151 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1153 +#: order/models.py:1155 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1155 +#: order/models.py:1157 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1158 +#: order/models.py:1160 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Tahsis miktarı stok miktarını aşamaz" -#: order/models.py:1162 +#: order/models.py:1164 msgid "StockItem is over-allocated" msgstr "Stok kalemi fazladan tahsis edilmiş" -#: order/models.py:1168 order/serializers.py:734 +#: order/models.py:1170 order/serializers.py:734 msgid "Quantity must be 1 for serialized stock item" msgstr "Seri numaralı stok kalemi için miktar bir olmalı" -#: order/models.py:1171 +#: order/models.py:1173 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1172 +#: order/models.py:1174 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1180 +#: order/models.py:1182 msgid "Line" msgstr "" -#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953 +#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953 #: templates/js/translated/model_renderers.js:251 msgid "Shipment" msgstr "" -#: order/models.py:1189 +#: order/models.py:1191 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1201 +#: order/models.py:1203 msgid "Item" msgstr "" -#: order/models.py:1202 +#: order/models.py:1204 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1205 +#: order/models.py:1207 msgid "Enter stock allocation quantity" msgstr "Stok tahsis miktarını girin" @@ -3530,7 +3544,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/build.js:245 templates/js/translated/build.js:1256 #: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:592 +#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761 msgid "Remove row" msgstr "" @@ -3722,7 +3736,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188 +#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1188 msgid "Actions" msgstr "İşlemler" @@ -3797,24 +3811,24 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:760 +#: part/api.py:777 msgid "Must be greater than zero" msgstr "" -#: part/api.py:764 +#: part/api.py:781 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:779 +#: part/api.py:796 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833 +#: part/api.py:827 part/api.py:831 part/api.py:846 part/api.py:850 msgid "This field is required" msgstr "" #: part/bom.py:125 part/models.py:81 part/models.py:816 -#: part/templates/part/category.html:104 part/templates/part/part_base.html:338 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "Varsayılan Konum" @@ -3822,99 +3836,43 @@ msgstr "Varsayılan Konum" msgid "Available Stock" msgstr "" -#: part/forms.py:63 -msgid "File Format" -msgstr "Dosya Biçimi" - -#: part/forms.py:63 -msgid "Select output file format" -msgstr "Çıktı dosyası biçimi seçin" - -#: part/forms.py:65 -msgid "Cascading" -msgstr "" - -#: part/forms.py:65 -msgid "Download cascading / multi-level BOM" -msgstr "" - -#: part/forms.py:67 -msgid "Levels" -msgstr "Seviyeler" - -#: part/forms.py:67 -msgid "Select maximum number of BOM levels to export (0 = all levels)" -msgstr "" - -#: part/forms.py:69 -msgid "Include Parameter Data" -msgstr "" - -#: part/forms.py:69 -msgid "Include part parameters data in exported BOM" -msgstr "" - -#: part/forms.py:71 -msgid "Include Stock Data" -msgstr "" - -#: part/forms.py:71 -msgid "Include part stock data in exported BOM" -msgstr "" - -#: part/forms.py:73 -msgid "Include Manufacturer Data" -msgstr "" - -#: part/forms.py:73 -msgid "Include part manufacturer data in exported BOM" -msgstr "" - -#: part/forms.py:75 -msgid "Include Supplier Data" -msgstr "" - -#: part/forms.py:75 -msgid "Include part supplier data in exported BOM" -msgstr "Dışa aktarılan malzeme listesine parça tedarikçisi verilerini dahil edin" - -#: part/forms.py:96 part/models.py:2427 +#: part/forms.py:66 part/models.py:2427 msgid "Parent Part" msgstr "" -#: part/forms.py:97 part/templates/part/bom_duplicate.html:7 +#: part/forms.py:67 part/templates/part/bom_duplicate.html:7 msgid "Select parent part to copy BOM from" msgstr "" -#: part/forms.py:103 +#: part/forms.py:73 msgid "Clear existing BOM items" msgstr "" -#: part/forms.py:109 +#: part/forms.py:79 msgid "Confirm BOM duplication" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "validate" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "Confirm that the BOM is correct" msgstr "" -#: part/forms.py:163 +#: part/forms.py:133 msgid "Select part category" msgstr "" -#: part/forms.py:200 +#: part/forms.py:170 msgid "Add parameter template to same level categories" msgstr "Parametre şablonunu aynı seviyedeki kategorilere ekle" -#: part/forms.py:204 +#: part/forms.py:174 msgid "Add parameter template to all categories" msgstr "Parametre şablonunu tüm kategorilere ekle" -#: part/forms.py:224 +#: part/forms.py:194 msgid "Input quantity for price calculation" msgstr "" @@ -3930,24 +3888,24 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11 +#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:96 part/templates/part/category.html:124 -#: templates/InvenTree/search.html:101 templates/stats.html:84 +#: part/models.py:96 part/templates/part/category.html:128 +#: templates/InvenTree/search.html:95 templates/stats.html:84 #: users/models.py:40 msgid "Part Categories" msgstr "Parça Kategorileri" #: part/models.py:358 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:13 part/templates/part/category.html:129 -#: part/templates/part/category.html:149 +#: part/templates/part/category.html:17 part/templates/part/category.html:133 +#: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1597 templates/navbar.html:21 +#: templates/js/translated/part.js:1599 templates/navbar.html:21 #: templates/stats.html:80 templates/stats.html:89 users/models.py:41 msgid "Parts" msgstr "Parçalar" @@ -4001,7 +3959,7 @@ msgstr "Çeşidi" msgid "Part description" msgstr "Parça açıklaması" -#: part/models.py:770 part/templates/part/category.html:82 +#: part/models.py:770 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "Anahtar kelimeler" @@ -4014,7 +3972,7 @@ msgstr "" #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 #: templates/InvenTree/settings/settings.html:172 -#: templates/js/translated/part.js:1202 +#: templates/js/translated/part.js:1204 msgid "Category" msgstr "" @@ -4023,8 +3981,8 @@ msgid "Part category" msgstr "" #: part/models.py:784 part/templates/part/part_base.html:274 -#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155 -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/part.js:557 templates/js/translated/part.js:1157 +#: templates/js/translated/stock.js:1552 msgid "IPN" msgstr "DPN" @@ -4145,8 +4103,8 @@ msgstr "Test şablonları sadece takip edilebilir paçalar için oluşturulabili msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2310 templates/js/translated/part.js:1648 -#: templates/js/translated/stock.js:1097 +#: part/models.py:2310 templates/js/translated/part.js:1650 +#: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "Test Adı" @@ -4162,7 +4120,7 @@ msgstr "Test Açıklaması" msgid "Enter description for this test" msgstr "" -#: part/models.py:2322 templates/js/translated/part.js:1657 +#: part/models.py:2322 templates/js/translated/part.js:1659 #: templates/js/translated/table_filters.js:281 msgid "Required" msgstr "Gerekli" @@ -4171,7 +4129,7 @@ msgstr "Gerekli" msgid "Is this test required to pass?" msgstr "Testi geçmesi için bu gerekli mi?" -#: part/models.py:2328 templates/js/translated/part.js:1665 +#: part/models.py:2328 templates/js/translated/part.js:1667 msgid "Requires Value" msgstr "" @@ -4179,7 +4137,7 @@ msgstr "" msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2334 templates/js/translated/part.js:1672 +#: part/models.py:2334 templates/js/translated/part.js:1674 msgid "Requires Attachment" msgstr "" @@ -4241,8 +4199,8 @@ msgstr "" msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2578 templates/js/translated/bom.js:454 -#: templates/js/translated/bom.js:528 +#: part/models.py:2578 templates/js/translated/bom.js:566 +#: templates/js/translated/bom.js:640 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" @@ -4275,8 +4233,8 @@ msgstr "" msgid "BOM line checksum" msgstr "" -#: part/models.py:2594 templates/js/translated/bom.js:545 -#: templates/js/translated/bom.js:552 +#: part/models.py:2594 templates/js/translated/bom.js:657 +#: templates/js/translated/bom.js:664 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" @@ -4286,7 +4244,7 @@ msgstr "" msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Bu malzeme listesi, çeşit parçalar listesini kalıtsalıdır" -#: part/models.py:2600 templates/js/translated/bom.js:537 +#: part/models.py:2600 templates/js/translated/bom.js:649 msgid "Allow Variants" msgstr "Çeşide İzin Ver" @@ -4406,100 +4364,100 @@ msgstr "" msgid "This will validate each line in the BOM." msgstr "" -#: part/templates/part/category.html:24 part/templates/part/category.html:28 +#: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:32 +#: part/templates/part/category.html:36 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:38 +#: part/templates/part/category.html:42 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:43 +#: part/templates/part/category.html:47 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:44 +#: part/templates/part/category.html:48 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:52 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:53 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:57 +#: part/templates/part/category.html:61 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:58 +#: part/templates/part/category.html:62 msgid "New Category" msgstr "" -#: part/templates/part/category.html:76 part/templates/part/category.html:89 +#: part/templates/part/category.html:80 part/templates/part/category.html:93 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:90 +#: part/templates/part/category.html:94 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:110 part/templates/part/category.html:201 +#: part/templates/part/category.html:114 part/templates/part/category.html:205 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Alt kategoriler" -#: part/templates/part/category.html:115 +#: part/templates/part/category.html:119 msgid "Parts (Including subcategories)" msgstr "Parçalar (Alt kategoriler dahil)" -#: part/templates/part/category.html:152 +#: part/templates/part/category.html:156 msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:153 part/templates/part/category.html:177 +#: part/templates/part/category.html:157 part/templates/part/category.html:181 msgid "Export" msgstr "" -#: part/templates/part/category.html:156 +#: part/templates/part/category.html:160 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:157 templates/js/translated/bom.js:40 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 msgid "New Part" msgstr "" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set category" msgstr "Kategori ayarla" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set Category" msgstr "Kategori Ayarla" -#: part/templates/part/category.html:175 +#: part/templates/part/category.html:179 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:177 +#: part/templates/part/category.html:181 msgid "Export Data" msgstr "" -#: part/templates/part/category.html:191 +#: part/templates/part/category.html:195 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:268 +#: part/templates/part/category.html:288 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:295 +#: part/templates/part/category.html:315 msgid "Create Part" msgstr "" @@ -4566,24 +4524,24 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:17 +#: part/templates/part/detail.html:21 msgid "Part Stock" msgstr "Parça Stoku" -#: part/templates/part/detail.html:29 +#: part/templates/part/detail.html:33 #, python-format msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:39 +#: part/templates/part/detail.html:43 msgid "Part Test Templates" msgstr "Parça Test Şablonları" -#: part/templates/part/detail.html:44 +#: part/templates/part/detail.html:48 msgid "Add Test Template" msgstr "Test Şablonu Ekle" -#: part/templates/part/detail.html:101 +#: part/templates/part/detail.html:105 msgid "Sales Order Allocations" msgstr "" @@ -4619,7 +4577,7 @@ msgstr "" msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:242 +#: part/templates/part/detail.html:242 templates/js/translated/bom.js:70 msgid "Export BOM" msgstr "" @@ -4683,38 +4641,38 @@ msgstr "" msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:651 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:659 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:760 +#: part/templates/part/detail.html:754 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:817 +#: part/templates/part/detail.html:811 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:930 +#: part/templates/part/detail.html:924 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:942 +#: part/templates/part/detail.html:936 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:954 +#: part/templates/part/detail.html:948 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1043 +#: part/templates/part/detail.html:1037 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4745,20 +4703,20 @@ msgid "Subscribe to notifications for this part" msgstr "" #: part/templates/part/part_base.html:43 -#: stock/templates/stock/item_base.html:28 -#: stock/templates/stock/location.html:29 +#: stock/templates/stock/item_base.html:34 +#: stock/templates/stock/location.html:33 msgid "Barcode actions" msgstr "Barkod işlemleri" #: part/templates/part/part_base.html:45 -#: stock/templates/stock/item_base.html:32 -#: stock/templates/stock/location.html:31 templates/qr_button.html:1 +#: stock/templates/stock/item_base.html:38 +#: stock/templates/stock/location.html:35 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:48 -#: stock/templates/stock/location.html:32 +#: stock/templates/stock/item_base.html:54 +#: stock/templates/stock/location.html:36 msgid "Print Label" msgstr "Etiket Yazdır" @@ -4767,8 +4725,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:103 -#: stock/templates/stock/location.html:40 +#: stock/templates/stock/item_base.html:109 +#: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "Stok işlemleri" @@ -4848,7 +4806,7 @@ msgstr "Bu parça %(link)s parçasının bir çeşididir" msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1235 +#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1237 msgid "On Order" msgstr "" @@ -4864,12 +4822,12 @@ msgstr "Satış Emirleri için Gerekli" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:566 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1066 -#: templates/js/translated/part.js:1239 +#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1068 +#: templates/js/translated/part.js:1241 msgid "Building" msgstr "" @@ -4882,7 +4840,7 @@ msgid "Latest Serial Number" msgstr "Son Seri Numarası" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:159 +#: stock/templates/stock/item_base.html:165 msgid "Search for serial number" msgstr "" @@ -4921,7 +4879,7 @@ msgid "Total Cost" msgstr "Toplam Maliyet" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:520 +#: templates/js/translated/bom.js:632 msgid "No supplier pricing available" msgstr "" @@ -5036,7 +4994,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626 msgid "Supplier Cost" msgstr "" @@ -5058,7 +5016,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1788 +#: part/templates/part/prices.html:215 part/views.py:1784 msgid "Add Internal Price Break" msgstr "" @@ -5078,9 +5036,9 @@ msgstr "" msgid "Set category for the following parts" msgstr "Aşağıdaki parçalara kategori ayarla" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476 -#: templates/js/translated/part.js:436 templates/js/translated/part.js:1056 -#: templates/js/translated/part.js:1243 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588 +#: templates/js/translated/part.js:436 templates/js/translated/part.js:1058 +#: templates/js/translated/part.js:1245 msgid "No Stock" msgstr "Stok Yok" @@ -5154,67 +5112,67 @@ msgstr "" msgid "Match Parts" msgstr "" -#: part/views.py:1196 +#: part/views.py:1195 msgid "Export Bill of Materials" msgstr "" -#: part/views.py:1248 +#: part/views.py:1244 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1255 +#: part/views.py:1251 msgid "Part was deleted" msgstr "" -#: part/views.py:1264 +#: part/views.py:1260 msgid "Part Pricing" msgstr "" -#: part/views.py:1413 +#: part/views.py:1409 msgid "Create Part Parameter Template" msgstr "Parça Parametre Şablonu Oluştur" -#: part/views.py:1423 +#: part/views.py:1419 msgid "Edit Part Parameter Template" msgstr "Parça Parametre Şablonu Düzenle" -#: part/views.py:1430 +#: part/views.py:1426 msgid "Delete Part Parameter Template" msgstr "Parça Parametre Şablonu Sil" -#: part/views.py:1489 templates/js/translated/part.js:313 +#: part/views.py:1485 templates/js/translated/part.js:313 msgid "Edit Part Category" msgstr "" -#: part/views.py:1527 +#: part/views.py:1523 msgid "Delete Part Category" msgstr "" -#: part/views.py:1533 +#: part/views.py:1529 msgid "Part category was deleted" msgstr "" -#: part/views.py:1542 +#: part/views.py:1538 msgid "Create Category Parameter Template" msgstr "Kategori Parametre Şablonu Oluştur" -#: part/views.py:1643 +#: part/views.py:1639 msgid "Edit Category Parameter Template" msgstr "Kategori Parametre Şablonu Düzenle" -#: part/views.py:1699 +#: part/views.py:1695 msgid "Delete Category Parameter Template" msgstr "Kategori Parametre Şablonu Sil" -#: part/views.py:1721 +#: part/views.py:1717 msgid "Added new price break" msgstr "" -#: part/views.py:1797 +#: part/views.py:1793 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1805 +#: part/views.py:1801 msgid "Delete Internal Price Break" msgstr "" @@ -5388,12 +5346,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:514 stock/templates/stock/item_base.html:149 +#: stock/models.py:517 stock/templates/stock/item_base.html:155 #: templates/js/translated/build.js:238 templates/js/translated/build.js:642 #: templates/js/translated/build.js:1018 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415 msgid "Serial Number" msgstr "Seri Numara" @@ -5402,19 +5360,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:1833 +#: stock/models.py:1948 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:1839 +#: stock/models.py:1954 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:49 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367 msgid "Date" msgstr "" @@ -5432,17 +5390,18 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434 +#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748 +#: templates/js/translated/stock.js:2627 msgid "Serial" msgstr "Seri No" -#: stock/api.py:446 +#: stock/api.py:478 msgid "Quantity is required" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571 -#: stock/templates/stock/item_base.html:186 -#: templates/js/translated/stock.js:1522 +#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574 +#: stock/templates/stock/item_base.html:192 +#: templates/js/translated/stock.js:1701 msgid "Expiry Date" msgstr "" @@ -5490,12 +5449,12 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "Kurulu stok kalemlerinin kaldırılmasını onayla" -#: stock/models.py:60 stock/models.py:608 -#: stock/templates/stock/item_base.html:417 +#: stock/models.py:60 stock/models.py:611 +#: stock/templates/stock/item_base.html:415 msgid "Owner" msgstr "" -#: stock/models.py:61 stock/models.py:609 +#: stock/models.py:61 stock/models.py:612 msgid "Select Owner" msgstr "" @@ -5528,150 +5487,190 @@ msgstr "" msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:460 +#: stock/models.py:461 msgid "Parent Stock Item" msgstr "Üst Stok Kalemi" -#: stock/models.py:469 +#: stock/models.py:470 msgid "Base part" msgstr "" -#: stock/models.py:477 +#: stock/models.py:478 msgid "Select a matching supplier part for this stock item" msgstr "Bu stok kalemi için tedarikçi parçası seçin" -#: stock/models.py:482 stock/templates/stock/location.html:12 +#: stock/models.py:484 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Stok Konumu" -#: stock/models.py:485 +#: stock/models.py:487 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:492 +#: stock/models.py:494 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:497 stock/templates/stock/item_base.html:299 +#: stock/models.py:500 stock/templates/stock/item_base.html:297 msgid "Installed In" msgstr "" -#: stock/models.py:500 +#: stock/models.py:503 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:516 +#: stock/models.py:519 msgid "Serial number for this item" msgstr "Bu öge için seri numarası" -#: stock/models.py:530 +#: stock/models.py:533 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:534 +#: stock/models.py:537 msgid "Stock Quantity" msgstr "" -#: stock/models.py:543 +#: stock/models.py:546 msgid "Source Build" msgstr "" -#: stock/models.py:545 +#: stock/models.py:548 msgid "Build for this stock item" msgstr "" -#: stock/models.py:556 +#: stock/models.py:559 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:559 +#: stock/models.py:562 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:565 +#: stock/models.py:568 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:572 +#: stock/models.py:575 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete on deplete" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:595 stock/templates/stock/item.html:111 +#: stock/models.py:598 stock/templates/stock/item.html:111 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:604 +#: stock/models.py:607 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1072 +#: stock/models.py:1068 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1078 +#: stock/models.py:1074 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1084 +#: stock/models.py:1080 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1087 +#: stock/models.py:1083 msgid "Serial numbers must be a list of integers" msgstr "Seri numaraları tam sayı listesi olmalı" -#: stock/models.py:1090 +#: stock/models.py:1086 msgid "Quantity does not match serial numbers" msgstr "Miktar seri numaları ile eşleşmiyor" -#: stock/models.py:1097 +#: stock/models.py:1093 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "Seri numaraları zaten mevcut: {exists}" -#: stock/models.py:1255 +#: stock/models.py:1164 +msgid "Stock item has been assigned to a sales order" +msgstr "" + +#: stock/models.py:1167 +msgid "Stock item is installed in another item" +msgstr "" + +#: stock/models.py:1170 +msgid "Stock item contains other items" +msgstr "" + +#: stock/models.py:1173 +msgid "Stock item has been assigned to a customer" +msgstr "" + +#: stock/models.py:1176 +msgid "Stock item is currently in production" +msgstr "" + +#: stock/models.py:1179 +msgid "Serialized stock cannot be merged" +msgstr "" + +#: stock/models.py:1186 stock/serializers.py:773 +msgid "Duplicate stock items" +msgstr "" + +#: stock/models.py:1190 +msgid "Stock items must refer to the same part" +msgstr "" + +#: stock/models.py:1194 +msgid "Stock items must refer to the same supplier part" +msgstr "" + +#: stock/models.py:1198 +msgid "Stock status codes must match" +msgstr "" + +#: stock/models.py:1369 msgid "StockItem cannot be moved as it is not in stock" msgstr "Stok kalemi stokta olmadığı için taşınamaz" -#: stock/models.py:1753 +#: stock/models.py:1868 msgid "Entry notes" msgstr "" -#: stock/models.py:1810 +#: stock/models.py:1925 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1931 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1834 +#: stock/models.py:1949 msgid "Test name" msgstr "" -#: stock/models.py:1840 templates/js/translated/table_filters.js:271 +#: stock/models.py:1955 templates/js/translated/table_filters.js:271 msgid "Test result" msgstr "" -#: stock/models.py:1846 +#: stock/models.py:1961 msgid "Test output value" msgstr "" -#: stock/models.py:1853 +#: stock/models.py:1968 msgid "Test result attachment" msgstr "" -#: stock/models.py:1859 +#: stock/models.py:1974 msgid "Test notes" msgstr "" @@ -5696,7 +5695,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:814 +#: stock/serializers.py:326 stock/serializers.py:730 stock/serializers.py:971 msgid "Destination stock location" msgstr "" @@ -5708,39 +5707,63 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:573 +#: stock/serializers.py:587 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:577 +#: stock/serializers.py:591 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:581 +#: stock/serializers.py:595 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:611 +#: stock/serializers.py:625 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:617 +#: stock/serializers.py:631 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:639 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:635 stock/serializers.py:722 +#: stock/serializers.py:649 stock/serializers.py:879 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:684 +#: stock/serializers.py:737 +msgid "Stock merging notes" +msgstr "" + +#: stock/serializers.py:742 +msgid "Allow mismatched suppliers" +msgstr "" + +#: stock/serializers.py:743 +msgid "Allow stock items with different supplier parts to be merged" +msgstr "" + +#: stock/serializers.py:748 +msgid "Allow mismatched status" +msgstr "" + +#: stock/serializers.py:749 +msgid "Allow stock items with different status codes to be merged" +msgstr "" + +#: stock/serializers.py:759 +msgid "At least two stock items must be provided" +msgstr "" + +#: stock/serializers.py:841 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:712 +#: stock/serializers.py:869 msgid "Stock transaction notes" msgstr "" @@ -5765,7 +5788,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50 +#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:56 msgid "Test Report" msgstr "" @@ -5797,197 +5820,189 @@ msgstr "" msgid "Delete Test Result" msgstr "" -#: stock/templates/stock/item_base.html:35 +#: stock/templates/stock/item_base.html:41 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:37 +#: stock/templates/stock/item_base.html:43 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24 +#: stock/templates/stock/item_base.html:45 templates/stock_table.html:24 msgid "Scan to Location" msgstr "Konuma Tara" -#: stock/templates/stock/item_base.html:46 +#: stock/templates/stock/item_base.html:52 msgid "Printing actions" msgstr "Yazdırma işlemleri" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:71 msgid "Stock adjustment actions" msgstr "Stok ayarlama işlemleri" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:47 templates/stock_table.html:50 +#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/location.html:51 templates/stock_table.html:50 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:78 templates/stock_table.html:48 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49 +#: stock/templates/stock/item_base.html:81 templates/stock_table.html:49 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:84 msgid "Serialize stock" msgstr "Stoku seri numarala" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:53 +#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/location.html:57 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53 +#: stock/templates/stock/item_base.html:91 templates/stock_table.html:54 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:94 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:108 +#: stock/templates/stock/item_base.html:114 msgid "Convert to variant" msgstr "Çeşide çevir" -#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/item_base.html:117 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:119 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:116 +#: stock/templates/stock/item_base.html:122 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Bu stok kaleminin süresi %(item.expiry_date)s tarihinde sona erdi" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #, python-format 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:192 +#: stock/templates/stock/item_base.html:198 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/stock.js:1535 +#: stock/templates/stock/item_base.html:205 +#: templates/js/translated/stock.js:1714 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:208 +#: stock/templates/stock/item_base.html:214 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:226 +#: stock/templates/stock/item_base.html:232 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:239 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:234 +#: stock/templates/stock/item_base.html:240 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:247 +#: stock/templates/stock/item_base.html:253 msgid "This stock item has not passed all required tests" msgstr "Stok kalemi tüm gerekli testleri geçmedi" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:261 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:263 +#: stock/templates/stock/item_base.html:269 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:269 +#: stock/templates/stock/item_base.html:275 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "Bu stok kalemi seri numaları - Benzersiz bir seri numarasına sahip ve miktarı ayarlanamaz." -#: stock/templates/stock/item_base.html:273 -msgid "This stock item cannot be deleted as it has child items" -msgstr "" - -#: stock/templates/stock/item_base.html:277 -msgid "This stock item will be automatically deleted when all stock is depleted." -msgstr "" - -#: stock/templates/stock/item_base.html:318 +#: stock/templates/stock/item_base.html:316 #: templates/js/translated/build.js:1040 msgid "No location set" msgstr "Konum ayarlanmadı" -#: stock/templates/stock/item_base.html:325 +#: stock/templates/stock/item_base.html:323 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:367 +#: stock/templates/stock/item_base.html:365 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:385 +#: stock/templates/stock/item_base.html:383 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:410 +#: stock/templates/stock/item_base.html:408 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:500 +#: stock/templates/stock/item_base.html:498 msgid "Edit Stock Status" msgstr "" @@ -6041,59 +6056,59 @@ msgstr "Bu stok kalemi için seri numaralandırılmış ögeler oluştur." msgid "Select quantity to serialize, and unique serial numbers." msgstr "Seri numaralandırılacak miktarı ve benzersiz seri numaralarını seçin." -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:37 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:65 msgid "Location actions" msgstr "Konum işlemleri" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:67 msgid "Edit location" msgstr "Konumu düzenle" -#: stock/templates/stock/location.html:65 +#: stock/templates/stock/location.html:69 msgid "Delete location" msgstr "Konumu sil" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:79 msgid "Create new stock location" msgstr "Yeni stok konumu oluştur" -#: stock/templates/stock/location.html:76 +#: stock/templates/stock/location.html:80 msgid "New Location" msgstr "Yeni Konum" -#: stock/templates/stock/location.html:95 -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:99 +#: stock/templates/stock/location.html:105 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:102 +#: stock/templates/stock/location.html:106 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:119 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "Bu konumun sahipleri listesinde değilsiniz. Bu stok konumu düzenlenemez." -#: stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:175 +#: stock/templates/stock/location.html:132 +#: stock/templates/stock/location.html:179 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Alt konumlar" -#: stock/templates/stock/location.html:142 templates/InvenTree/search.html:170 +#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "Stok Konumları" -#: stock/templates/stock/location.html:182 templates/stock_table.html:30 +#: stock/templates/stock/location.html:186 templates/stock_table.html:30 msgid "Printing Actions" msgstr "Yazdırma İşlemleri" -#: stock/templates/stock/location.html:186 templates/stock_table.html:34 +#: stock/templates/stock/location.html:190 templates/stock_table.html:34 msgid "Print labels" msgstr "Etiketleri yazdır" @@ -6178,7 +6193,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:887 +#: stock/views.py:727 templates/js/translated/stock.js:1066 msgid "Confirm stock adjustment" msgstr "Stok ayarlamasını onayla" @@ -6186,7 +6201,7 @@ msgstr "Stok ayarlamasını onayla" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:323 +#: stock/views.py:760 templates/js/translated/stock.js:324 msgid "Edit Stock Item" msgstr "" @@ -6198,7 +6213,7 @@ msgstr "Yeni Stok konumu oluştur" msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:303 +#: stock/views.py:1153 templates/js/translated/stock.js:304 msgid "Duplicate Stock Item" msgstr "" @@ -6314,10 +6329,6 @@ msgstr "" msgid "Search Results" msgstr "" -#: templates/InvenTree/search.html:22 -msgid "Enter a search query" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6363,7 +6374,7 @@ msgstr "" msgid "Login Settings" msgstr "" -#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5 +#: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5 msgid "Signup" msgstr "" @@ -6648,7 +6659,7 @@ msgstr "" msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:55 +#: templates/InvenTree/settings/user.html:54 msgid "The following email addresses are associated with your account:" msgstr "" @@ -6673,145 +6684,193 @@ msgid "Re-send Verification" msgstr "" #: templates/InvenTree/settings/user.html:87 -#: templates/InvenTree/settings/user.html:154 +#: templates/InvenTree/settings/user.html:149 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:94 +#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:201 msgid "Warning:" msgstr "" -#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:96 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:102 +#: templates/InvenTree/settings/user.html:104 msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:112 -msgid "Enter e-mail address" -msgstr "" - -#: templates/InvenTree/settings/user.html:114 +#: templates/InvenTree/settings/user.html:109 msgid "Add Email" msgstr "" -#: templates/InvenTree/settings/user.html:124 +#: templates/InvenTree/settings/user.html:117 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:129 +#: templates/InvenTree/settings/user.html:122 msgid "You can sign in to your account using any of the following third party accounts:" msgstr "" -#: templates/InvenTree/settings/user.html:163 -msgid "There are no social network accounts connected to your InvenTree account" +#: templates/InvenTree/settings/user.html:157 +msgid "You currently have no social network accounts connected to this account." msgstr "" -#: templates/InvenTree/settings/user.html:168 +#: templates/InvenTree/settings/user.html:162 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:179 -msgid "Active Sessions" +#: templates/InvenTree/settings/user.html:172 +msgid "Multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:185 -msgid "Log out active sessions (except this one)" +#: templates/InvenTree/settings/user.html:177 +msgid "You have these factors available:" msgstr "" -#: templates/InvenTree/settings/user.html:186 -msgid "Log Out Active Sessions" +#: templates/InvenTree/settings/user.html:187 +msgid "TOTP" 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" +#: templates/InvenTree/settings/user.html:193 +msgid "Static" msgstr "" #: templates/InvenTree/settings/user.html:202 -msgid "Last Activity" +msgid "You currently do not have any factors set up." msgstr "" -#: templates/InvenTree/settings/user.html:211 -#, python-format -msgid "%(time)s ago (this session)" +#: templates/InvenTree/settings/user.html:209 +msgid "Change factors" msgstr "" -#: templates/InvenTree/settings/user.html:213 -#, python-format -msgid "%(time)s ago" +#: templates/InvenTree/settings/user.html:210 +msgid "Setup multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:224 -msgid "Do you really want to remove the selected email address?" +#: templates/InvenTree/settings/user.html:212 +msgid "Remove multifactor" msgstr "" +#: templates/InvenTree/settings/user.html:219 #: templates/InvenTree/settings/user_display.html:25 msgid "Theme Settings" msgstr "Tema Ayarları" +#: templates/InvenTree/settings/user.html:227 #: templates/InvenTree/settings/user_display.html:35 msgid "Select theme" msgstr "" +#: templates/InvenTree/settings/user.html:237 #: templates/InvenTree/settings/user_display.html:46 msgid "Set Theme" msgstr "Tema Seç" +#: templates/InvenTree/settings/user.html:246 #: templates/InvenTree/settings/user_display.html:54 msgid "Language Settings" msgstr "Dil Ayarları" +#: templates/InvenTree/settings/user.html:254 #: templates/InvenTree/settings/user_display.html:63 msgid "Select language" msgstr "" +#: templates/InvenTree/settings/user.html:270 #: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" +#: templates/InvenTree/settings/user.html:272 #: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" +#: templates/InvenTree/settings/user.html:279 #: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "Dili Ayarla" +#: templates/InvenTree/settings/user.html:281 #: templates/InvenTree/settings/user_display.html:91 msgid "Some languages are not complete" msgstr "" +#: templates/InvenTree/settings/user.html:283 #: 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.html:285 #: templates/InvenTree/settings/user_display.html:95 msgid "Show them too" msgstr "" +#: templates/InvenTree/settings/user.html:292 #: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" +#: templates/InvenTree/settings/user.html:293 +#, python-format +msgid "Native language translation of the\n" +" InvenTree web application is community contributed via crowdin. Contributions are\n" +" welcomed and encouraged." +msgstr "" + +#: templates/InvenTree/settings/user.html:302 +msgid "Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:308 +msgid "Log out active sessions (except this one)" +msgstr "" + +#: templates/InvenTree/settings/user.html:309 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:318 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:319 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:323 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:324 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:325 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:334 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:336 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:348 +msgid "Do you really want to remove the selected email address?" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +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." @@ -6830,7 +6889,7 @@ msgid "InvenTree Version Information" msgstr "InvenTree Sürüm Bilgisi" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53 +#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53 #: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662 #: templates/js/translated/modals.js:965 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 @@ -7006,6 +7065,71 @@ msgstr "" msgid "View in administration panel" msgstr "" +#: templates/allauth_2fa/authenticate.html:5 +msgid "Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:12 +msgid "Authenticate" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:6 +msgid "Two-Factor Authentication Backup Tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:17 +msgid "Backup tokens have been generated, but are not revealed here for security reasons. Press the button below to generate new ones." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:20 +msgid "No tokens. Press the button below to generate some." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:27 +msgid "Generate backup tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:31 +#: templates/allauth_2fa/setup.html:40 +msgid "back to settings" +msgstr "" + +#: templates/allauth_2fa/remove.html:6 +msgid "Disable Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/remove.html:9 +msgid "Are you sure?" +msgstr "" + +#: templates/allauth_2fa/remove.html:14 +msgid "Disable Two-Factor" +msgstr "" + +#: templates/allauth_2fa/setup.html:6 +msgid "Setup Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/setup.html:10 +msgid "Step 1" +msgstr "" + +#: templates/allauth_2fa/setup.html:14 +msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." +msgstr "" + +#: templates/allauth_2fa/setup.html:23 +msgid "Step 2" +msgstr "" + +#: templates/allauth_2fa/setup.html:27 +msgid "Input a token generated by the app:" +msgstr "" + +#: templates/allauth_2fa/setup.html:35 +msgid "Verify" +msgstr "" + #: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 msgid "Add Link" msgstr "" @@ -7044,13 +7168,13 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:1103 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134 +#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1134 #: templates/js/translated/build.js:1755 #: templates/js/translated/table_filters.js:178 msgid "Available" @@ -7239,7 +7363,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018 msgid "Remove stock item" msgstr "" @@ -7281,91 +7405,153 @@ msgstr "Konuma Kaydet" msgid "Barcode does not match a valid location" msgstr "Barkod geçerli bir konumla eşleşmiyor" -#: templates/js/translated/bom.js:184 +#: templates/js/translated/bom.js:36 +msgid "Download BOM Template" +msgstr "" + +#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510 +msgid "Format" +msgstr "" + +#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511 +msgid "Select file format" +msgstr "" + +#: templates/js/translated/bom.js:81 +msgid "Cascading" +msgstr "" + +#: templates/js/translated/bom.js:82 +msgid "Download cascading / multi-level BOM" +msgstr "" + +#: templates/js/translated/bom.js:87 +msgid "Levels" +msgstr "Seviyeler" + +#: templates/js/translated/bom.js:88 +msgid "Select maximum number of BOM levels to export (0 = all levels)" +msgstr "" + +#: templates/js/translated/bom.js:94 +msgid "Include Parameter Data" +msgstr "" + +#: templates/js/translated/bom.js:95 +msgid "Include part parameter data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:100 +msgid "Include Stock Data" +msgstr "" + +#: templates/js/translated/bom.js:101 +msgid "Include part stock data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:106 +msgid "Include Manufacturer Data" +msgstr "" + +#: templates/js/translated/bom.js:107 +msgid "Include part manufacturer data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:112 +msgid "Include Supplier Data" +msgstr "" + +#: templates/js/translated/bom.js:113 +msgid "Include part supplier data in exported BOM" +msgstr "Dışa aktarılan malzeme listesine parça tedarikçisi verilerini dahil edin" + +#: templates/js/translated/bom.js:296 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:228 +#: templates/js/translated/bom.js:340 msgid "Select and add a new variant item using the input below" msgstr "" -#: templates/js/translated/bom.js:239 +#: templates/js/translated/bom.js:351 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:245 +#: templates/js/translated/bom.js:357 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:284 +#: templates/js/translated/bom.js:396 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:285 +#: templates/js/translated/bom.js:397 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:404 +#: templates/js/translated/bom.js:516 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116 +#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1116 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:413 +#: templates/js/translated/bom.js:525 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:485 +#: templates/js/translated/bom.js:597 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:500 +#: templates/js/translated/bom.js:612 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:507 +#: templates/js/translated/bom.js:619 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645 +#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:616 +#: templates/js/translated/bom.js:728 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:618 +#: templates/js/translated/bom.js:730 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:620 +#: templates/js/translated/bom.js:732 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796 +#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779 +#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860 +#: templates/js/translated/bom.js:830 templates/js/translated/build.js:860 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:774 +#: templates/js/translated/bom.js:886 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100 +#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1100 msgid "Required Part" msgstr "Gerekli Parça" -#: templates/js/translated/bom.js:996 +#: templates/js/translated/bom.js:1108 msgid "Inherited from parent BOM" msgstr "" @@ -7464,7 +7650,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1199 templates/stock_table.html:52 +#: templates/js/translated/build.js:1199 templates/stock_table.html:53 msgid "Order stock" msgstr "" @@ -7509,9 +7695,9 @@ msgstr "" msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147 -#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333 -#: templates/js/translated/stock.js:2128 +#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1149 +#: templates/js/translated/part.js:1560 templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:2321 msgid "Select" msgstr "" @@ -7519,7 +7705,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347 +#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2540 msgid "No user information" msgstr "" @@ -7682,20 +7868,20 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1078 templates/modals.html:19 +#: templates/js/translated/forms.js:1080 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1469 +#: templates/js/translated/forms.js:1471 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1673 +#: templates/js/translated/forms.js:1675 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1893 +#: templates/js/translated/forms.js:1895 msgid "Clear input" msgstr "" @@ -7708,7 +7894,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:863 +#: templates/js/translated/stock.js:1042 msgid "Select Stock Items" msgstr "" @@ -7888,14 +8074,6 @@ msgstr "" msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509 -msgid "Format" -msgstr "" - -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510 -msgid "Select file format" -msgstr "" - #: templates/js/translated/order.js:460 msgid "Select Line Items" msgstr "" @@ -7908,7 +8086,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123 msgid "Stock Status" msgstr "" @@ -7957,7 +8135,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163 -#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986 +#: templates/js/translated/part.js:1777 templates/js/translated/part.js:1988 msgid "Unit Price" msgstr "" @@ -8042,7 +8220,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1249 +#: templates/js/translated/stock.js:1428 msgid "Shipped to customer" msgstr "" @@ -8206,92 +8384,92 @@ msgstr "" msgid "No variants found" msgstr "Çeşit bulunamadı" -#: templates/js/translated/part.js:946 +#: templates/js/translated/part.js:948 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:970 +#: templates/js/translated/part.js:972 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1037 templates/js/translated/part.js:1297 +#: templates/js/translated/part.js:1039 templates/js/translated/part.js:1299 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1207 +#: templates/js/translated/part.js:1209 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1230 +#: templates/js/translated/part.js:1232 #: templates/js/translated/table_filters.js:412 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493 -#: templates/js/translated/stock.js:2089 +#: templates/js/translated/part.js:1323 templates/js/translated/part.js:1495 +#: templates/js/translated/stock.js:2282 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1337 +#: templates/js/translated/part.js:1339 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108 +#: templates/js/translated/part.js:1514 templates/js/translated/stock.js:2301 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1576 +#: templates/js/translated/part.js:1578 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152 +#: templates/js/translated/part.js:1592 templates/js/translated/stock.js:2345 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1634 +#: templates/js/translated/part.js:1636 msgid "No test templates matching query" msgstr "Sorgu ile eşleşen test şablonu bulunamadı" -#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055 +#: templates/js/translated/part.js:1687 templates/js/translated/stock.js:1234 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056 +#: templates/js/translated/part.js:1688 templates/js/translated/stock.js:1235 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1692 +#: templates/js/translated/part.js:1694 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1714 +#: templates/js/translated/part.js:1716 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1728 +#: templates/js/translated/part.js:1730 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1753 +#: templates/js/translated/part.js:1755 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1808 +#: templates/js/translated/part.js:1810 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1809 +#: templates/js/translated/part.js:1811 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1910 +#: templates/js/translated/part.js:1912 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1929 +#: templates/js/translated/part.js:1931 msgid "Single Price Difference" msgstr "" @@ -8365,316 +8543,340 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:72 +#: templates/js/translated/stock.js:73 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173 msgid "Next available serial number" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174 +#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175 msgid "Latest serial number" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:101 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:109 +#: templates/js/translated/stock.js:110 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:145 +#: templates/js/translated/stock.js:146 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:185 +#: templates/js/translated/stock.js:186 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:224 +#: templates/js/translated/stock.js:225 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:231 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:373 +#: templates/js/translated/stock.js:374 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:386 +#: templates/js/translated/stock.js:387 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:411 +#: templates/js/translated/stock.js:412 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416 +#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:432 +#: templates/js/translated/stock.js:433 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:452 +#: templates/js/translated/stock.js:453 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:506 +#: templates/js/translated/stock.js:507 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:517 +#: templates/js/translated/stock.js:518 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:518 +#: templates/js/translated/stock.js:519 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:627 +#: templates/js/translated/stock.js:628 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:628 +#: templates/js/translated/stock.js:629 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:713 +#: templates/js/translated/stock.js:706 +msgid "Warning: Merge operation cannot be reversed" +msgstr "" + +#: templates/js/translated/stock.js:707 +msgid "Some information will be lost when merging stock items" +msgstr "" + +#: templates/js/translated/stock.js:709 +msgid "Stock transaction history will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:710 +msgid "Supplier part information will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:796 +msgid "Confirm stock item merge" +msgstr "" + +#: templates/js/translated/stock.js:797 +msgid "Merge Stock Items" +msgstr "" + +#: templates/js/translated/stock.js:892 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:893 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:899 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:721 +#: templates/js/translated/stock.js:900 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:725 +#: templates/js/translated/stock.js:904 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:726 +#: templates/js/translated/stock.js:905 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:730 +#: templates/js/translated/stock.js:909 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:731 users/models.py:202 +#: templates/js/translated/stock.js:910 users/models.py:205 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:735 templates/stock_table.html:57 +#: templates/js/translated/stock.js:914 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:864 +#: templates/js/translated/stock.js:1043 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1022 +#: templates/js/translated/stock.js:1201 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1024 +#: templates/js/translated/stock.js:1203 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1029 +#: templates/js/translated/stock.js:1208 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1230 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1077 +#: templates/js/translated/stock.js:1256 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1134 +#: templates/js/translated/stock.js:1313 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1420 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1245 +#: templates/js/translated/stock.js:1424 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1432 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1259 +#: templates/js/translated/stock.js:1438 msgid "No stock location set" msgstr "Stok konumu ayarlanmadı" -#: templates/js/translated/stock.js:1417 +#: templates/js/translated/stock.js:1596 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1422 +#: templates/js/translated/stock.js:1601 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1425 +#: templates/js/translated/stock.js:1604 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1429 +#: templates/js/translated/stock.js:1608 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1431 +#: templates/js/translated/stock.js:1610 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1437 +#: templates/js/translated/stock.js:1616 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1618 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1441 +#: templates/js/translated/stock.js:1620 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1625 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1453 +#: templates/js/translated/stock.js:1632 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1455 +#: templates/js/translated/stock.js:1634 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1457 +#: templates/js/translated/stock.js:1636 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1461 +#: templates/js/translated/stock.js:1640 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1511 +#: templates/js/translated/stock.js:1690 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1584 +#: templates/js/translated/stock.js:1763 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1622 +#: templates/js/translated/stock.js:1801 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691 +#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1731 +#: templates/js/translated/stock.js:1910 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1758 +#: templates/js/translated/stock.js:1937 msgid "locations" msgstr "konumlar" -#: templates/js/translated/stock.js:1760 +#: templates/js/translated/stock.js:1939 msgid "Undefined location" msgstr "Tanımsız konum" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2138 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1959 +#: templates/js/translated/stock.js:2152 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1960 +#: templates/js/translated/stock.js:2153 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2377 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2206 +#: templates/js/translated/stock.js:2399 msgid "Details" msgstr "Detaylar" -#: templates/js/translated/stock.js:2231 +#: templates/js/translated/stock.js:2424 msgid "Location no longer exists" msgstr "Konum artık yok" -#: templates/js/translated/stock.js:2250 +#: templates/js/translated/stock.js:2443 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2269 +#: templates/js/translated/stock.js:2462 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2480 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2310 +#: templates/js/translated/stock.js:2503 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2318 +#: templates/js/translated/stock.js:2511 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2552 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2360 +#: templates/js/translated/stock.js:2553 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2411 +#: templates/js/translated/stock.js:2604 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2462 +#: templates/js/translated/stock.js:2655 msgid "Uninstall Stock Item" msgstr "" @@ -9059,18 +9261,26 @@ msgid "Move stock" msgstr "" #: templates/stock_table.html:52 +msgid "Merge selected stock items" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Merge stock" +msgstr "" + +#: templates/stock_table.html:53 msgid "Order selected items" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change status" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change stock status" msgstr "" -#: templates/stock_table.html:57 +#: templates/stock_table.html:58 msgid "Delete selected items" msgstr "" @@ -9106,35 +9316,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:189 +#: users/models.py:192 msgid "Permission set" msgstr "" -#: users/models.py:197 +#: users/models.py:200 msgid "Group" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "View" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "Permission to view items" msgstr "" -#: users/models.py:202 +#: users/models.py:205 msgid "Permission to add items" msgstr "" -#: users/models.py:204 +#: users/models.py:207 msgid "Change" msgstr "" -#: users/models.py:204 +#: users/models.py:207 msgid "Permissions to edit items" msgstr "" -#: users/models.py:206 +#: users/models.py:209 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po index 1f893cff2e..372bddf936 100644 --- a/InvenTree/locale/vi/LC_MESSAGES/django.po +++ b/InvenTree/locale/vi/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-12-08 23:43+0000\n" -"PO-Revision-Date: 2021-12-08 23:47\n" +"POT-Creation-Date: 2021-12-21 02:57+0000\n" +"PO-Revision-Date: 2021-12-21 03:01\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Language: vi_VN\n" @@ -34,50 +34,50 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93 +#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 build/forms.py:93 #: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: part/forms.py:108 templates/account/email_confirm.html:20 +#: part/forms.py:78 templates/account/email_confirm.html:20 #: templates/js/translated/forms.js:595 msgid "Confirm" msgstr "" -#: InvenTree/forms.py:136 +#: InvenTree/forms.py:142 msgid "Confirm delete" msgstr "" -#: InvenTree/forms.py:137 +#: InvenTree/forms.py:143 msgid "Confirm item deletion" msgstr "" -#: InvenTree/forms.py:168 +#: InvenTree/forms.py:174 msgid "Enter password" msgstr "" -#: InvenTree/forms.py:169 +#: InvenTree/forms.py:175 msgid "Enter new password" msgstr "" -#: InvenTree/forms.py:176 +#: InvenTree/forms.py:182 msgid "Confirm password" msgstr "Xác nhận mật khẩu" -#: InvenTree/forms.py:177 +#: InvenTree/forms.py:183 msgid "Confirm new password" msgstr "Xác nhận mật khẩu mới" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:215 msgid "Select Category" msgstr "Chọn danh mục" -#: InvenTree/forms.py:230 +#: InvenTree/forms.py:236 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:234 +#: InvenTree/forms.py:240 msgid "Email address confirmation" msgstr "" -#: InvenTree/forms.py:254 +#: InvenTree/forms.py:260 msgid "You must type the same email each time." msgstr "" @@ -123,7 +123,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:132 stock/models.py:1852 +#: InvenTree/models.py:132 stock/models.py:1967 #: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "" @@ -136,12 +136,12 @@ msgstr "" #: company/models.py:564 order/models.py:124 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:1258 +#: templates/js/translated/company.js:826 templates/js/translated/part.js:1260 msgid "Link" msgstr "" #: InvenTree/models.py:140 build/models.py:330 part/models.py:798 -#: stock/models.py:524 +#: stock/models.py:527 msgid "Link to external URL" msgstr "" @@ -153,10 +153,10 @@ msgstr "Bình luận" msgid "File comment" msgstr "" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213 -#: common/models.py:1214 part/models.py:2205 part/models.py:2225 +#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1219 +#: common/models.py:1220 part/models.py:2205 part/models.py:2225 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2341 +#: templates/js/translated/stock.js:2534 msgid "User" msgstr "Người dùng" @@ -202,8 +202,8 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:268 #: templates/js/translated/company.js:638 templates/js/translated/part.js:506 -#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565 -#: templates/js/translated/stock.js:2134 +#: templates/js/translated/part.js:643 templates/js/translated/part.js:1567 +#: templates/js/translated/stock.js:2327 msgid "Name" msgstr "" @@ -212,23 +212,23 @@ msgstr "" #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70 +#: order/models.py:122 part/models.py:764 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:89 +#: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428 +#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540 #: templates/js/translated/build.js:1627 templates/js/translated/company.js:345 #: templates/js/translated/company.js:548 #: templates/js/translated/company.js:837 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 -#: templates/js/translated/part.js:565 templates/js/translated/part.js:933 -#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188 -#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653 -#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146 -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/part.js:565 templates/js/translated/part.js:935 +#: templates/js/translated/part.js:1020 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1586 templates/js/translated/part.js:1655 +#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339 +#: templates/js/translated/stock.js:2384 msgid "Description" msgstr "Mô tả" @@ -248,83 +248,83 @@ msgstr "" msgid "Filename" msgstr "Tên tập tin" -#: InvenTree/settings.py:689 +#: InvenTree/settings.py:698 msgid "German" msgstr "" -#: InvenTree/settings.py:690 +#: InvenTree/settings.py:699 msgid "Greek" msgstr "" -#: InvenTree/settings.py:691 +#: InvenTree/settings.py:700 msgid "English" msgstr "" -#: InvenTree/settings.py:692 +#: InvenTree/settings.py:701 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:693 +#: InvenTree/settings.py:702 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:694 +#: InvenTree/settings.py:703 msgid "French" msgstr "" -#: InvenTree/settings.py:695 +#: InvenTree/settings.py:704 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:696 +#: InvenTree/settings.py:705 msgid "Italian" msgstr "" -#: InvenTree/settings.py:697 +#: InvenTree/settings.py:706 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:698 +#: InvenTree/settings.py:707 msgid "Korean" msgstr "" -#: InvenTree/settings.py:699 +#: InvenTree/settings.py:708 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:700 +#: InvenTree/settings.py:709 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:701 +#: InvenTree/settings.py:710 msgid "Polish" msgstr "" -#: InvenTree/settings.py:702 +#: InvenTree/settings.py:711 msgid "Portugese" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:712 msgid "Russian" msgstr "" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:713 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:714 msgid "Thai" msgstr "" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:715 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:716 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:717 msgid "Chinese" msgstr "" @@ -341,7 +341,7 @@ msgid "InvenTree system health checks failed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 msgid "Pending" msgstr "" @@ -349,14 +349,14 @@ msgstr "" msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:319 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:313 +#: InvenTree/status_codes.py:318 msgid "Cancelled" msgstr "" @@ -370,7 +370,7 @@ msgstr "" msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:143 order/models.py:939 +#: InvenTree/status_codes.py:143 order/models.py:941 #: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255 msgid "Shipped" msgstr "" @@ -395,83 +395,87 @@ msgstr "" msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:269 +#: InvenTree/status_codes.py:272 msgid "Legacy stock tracking entry" msgstr "" -#: InvenTree/status_codes.py:271 +#: InvenTree/status_codes.py:274 msgid "Stock item created" msgstr "" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Edited stock item" msgstr "" -#: InvenTree/status_codes.py:274 +#: InvenTree/status_codes.py:277 msgid "Assigned serial number" msgstr "" -#: InvenTree/status_codes.py:276 +#: InvenTree/status_codes.py:279 msgid "Stock counted" msgstr "" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Stock manually added" msgstr "" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Stock manually removed" msgstr "" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Location changed" msgstr "" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Installed into assembly" msgstr "" -#: InvenTree/status_codes.py:283 +#: InvenTree/status_codes.py:286 msgid "Removed from assembly" msgstr "" -#: InvenTree/status_codes.py:285 +#: InvenTree/status_codes.py:288 msgid "Installed component item" msgstr "" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Removed component item" msgstr "" -#: InvenTree/status_codes.py:288 +#: InvenTree/status_codes.py:291 msgid "Split from parent item" msgstr "" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064 +msgid "Merged stock items" +msgstr "" + +#: InvenTree/status_codes.py:296 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:297 msgid "Returned from customer" msgstr "" -#: InvenTree/status_codes.py:294 +#: InvenTree/status_codes.py:299 msgid "Build order output created" msgstr "" -#: InvenTree/status_codes.py:295 +#: InvenTree/status_codes.py:300 msgid "Build order output completed" msgstr "" -#: InvenTree/status_codes.py:297 +#: InvenTree/status_codes.py:302 msgid "Received against purchase order" msgstr "" -#: InvenTree/status_codes.py:312 +#: InvenTree/status_codes.py:317 msgid "Production" msgstr "" @@ -575,16 +579,16 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1283 -#: build/templates/build/build_base.html:132 -#: build/templates/build/detail.html:35 common/models.py:1253 +#: build/forms.py:36 build/models.py:1286 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1259 #: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:794 order/models.py:1205 order/serializers.py:810 +#: order/models.py:796 order/models.py:1207 order/serializers.py:810 #: order/templates/order/order_wizard/match_parts.html:30 -#: 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 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:193 +#: part/forms.py:209 part/forms.py:225 part/models.py:2576 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:967 part/templates/part/detail.html:1053 +#: part/templates/part/detail.html:961 part/templates/part/detail.html:1047 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -592,10 +596,10 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:174 -#: stock/templates/stock/item_base.html:255 -#: stock/templates/stock/item_base.html:263 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443 +#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:261 +#: stock/templates/stock/item_base.html:269 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555 #: templates/js/translated/build.js:240 templates/js/translated/build.js:440 #: templates/js/translated/build.js:634 templates/js/translated/build.js:644 #: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367 @@ -604,10 +608,10 @@ msgstr "" #: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 #: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 #: templates/js/translated/order.js:2150 templates/js/translated/part.js:843 -#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919 -#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382 -#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326 -#: templates/js/translated/stock.js:2428 +#: templates/js/translated/part.js:1798 templates/js/translated/part.js:1921 +#: templates/js/translated/part.js:1999 templates/js/translated/stock.js:383 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750 +#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621 msgid "Quantity" msgstr "" @@ -616,8 +620,8 @@ msgid "Enter quantity for build output" msgstr "" #: build/forms.py:41 order/serializers.py:814 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:229 -#: templates/js/translated/stock.js:383 +#: stock/serializers.py:314 templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:384 msgid "Serial Numbers" msgstr "" @@ -661,7 +665,7 @@ msgstr "Tạo đơn hàng" #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:145 +#: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" msgstr "Tạo đơn hàng" @@ -671,11 +675,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:199 order/models.py:210 order/models.py:536 -#: order/models.py:801 part/models.py:2585 +#: order/models.py:803 part/models.py:2585 #: part/templates/part/bom_upload/match_parts.html:30 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124 +#: templates/js/translated/bom.js:547 templates/js/translated/build.js:1124 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "" @@ -695,7 +699,7 @@ msgstr "" #: build/models.py:225 build/templates/build/build_base.html:77 #: build/templates/build/detail.html:30 company/models.py:705 -#: order/models.py:854 order/models.py:928 +#: order/models.py:856 order/models.py:930 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357 #: part/models.py:2151 part/models.py:2167 part/models.py:2186 #: part/models.py:2203 part/models.py:2305 part/models.py:2427 @@ -706,20 +710,21 @@ msgstr "" #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 -#: templates/InvenTree/search.html:86 +#: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214 -#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326 +#: templates/js/translated/bom.js:505 templates/js/translated/build.js:625 #: templates/js/translated/build.js:993 templates/js/translated/build.js:1364 #: templates/js/translated/build.js:1632 templates/js/translated/company.js:489 #: templates/js/translated/company.js:746 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 -#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918 -#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166 -#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747 -#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416 +#: templates/js/translated/order.js:2128 templates/js/translated/part.js:920 +#: templates/js/translated/part.js:1001 templates/js/translated/part.js:1168 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719 +#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:2609 msgid "Part" msgstr "Nguyên liệu" @@ -776,7 +781,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:285 stock/models.py:528 +#: build/models.py:285 stock/models.py:531 msgid "Batch Code" msgstr "" @@ -830,27 +835,27 @@ msgstr "" #: build/models.py:329 build/templates/build/detail.html:102 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:354 stock/models.py:522 -#: stock/templates/stock/item_base.html:374 +#: part/templates/part/part_base.html:354 stock/models.py:525 +#: stock/templates/stock/item_base.html:372 msgid "External Link" 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:144 order/models.py:803 order/models.py:1049 +#: order/models.py:144 order/models.py:805 order/models.py:1051 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:925 -#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50 +#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594 -#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332 -#: stock/serializers.py:624 stock/serializers.py:711 +#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597 +#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332 +#: stock/serializers.py:638 stock/serializers.py:736 stock/serializers.py:868 #: stock/templates/stock/stock_sidebar.html:21 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711 #: templates/js/translated/company.js:842 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795 msgid "Notes" msgstr "" @@ -883,7 +888,7 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1133 order/models.py:1165 +#: build/models.py:1133 order/models.py:1167 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -891,51 +896,52 @@ msgstr "" msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1193 +#: build/models.py:1196 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1253 stock/templates/stock/item_base.html:346 -#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605 +#: build/models.py:1256 stock/templates/stock/item_base.html:344 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1605 #: templates/navbar.html:35 msgid "Build" msgstr "" -#: build/models.py:1254 +#: build/models.py:1257 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690 -#: order/serializers.py:708 stock/serializers.py:562 +#: build/models.py:1273 build/serializers.py:334 order/serializers.py:690 +#: order/serializers.py:708 stock/serializers.py:576 stock/serializers.py:694 #: stock/templates/stock/item_base.html:8 -#: stock/templates/stock/item_base.html:16 -#: stock/templates/stock/item_base.html:368 +#: stock/templates/stock/item_base.html:22 +#: stock/templates/stock/item_base.html:366 #: templates/js/translated/build.js:413 templates/js/translated/build.js:418 #: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277 +#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:2470 msgid "Stock Item" msgstr "" -#: build/models.py:1271 +#: build/models.py:1274 msgid "Source stock item" msgstr "" -#: build/models.py:1284 +#: build/models.py:1287 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1292 +#: build/models.py:1295 msgid "Install into" msgstr "" -#: build/models.py:1293 +#: build/models.py:1296 msgid "Destination stock item" msgstr "" -#: build/serializers.py:137 build/serializers.py:357 +#: build/serializers.py:137 build/serializers.py:363 msgid "Build Output" msgstr "" @@ -956,16 +962,16 @@ msgid "This build output is not fully allocated" msgstr "" #: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813 -#: stock/templates/stock/item_base.html:314 +#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:729 +#: stock/serializers.py:970 stock/templates/stock/item_base.html:312 #: templates/js/translated/barcode.js:384 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425 #: templates/js/translated/build.js:1032 templates/js/translated/order.js:508 #: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 #: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497 -#: templates/js/translated/stock.js:2218 +#: templates/js/translated/part.js:177 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411 msgid "Location" msgstr "" @@ -975,11 +981,11 @@ msgstr "" #: build/serializers.py:197 build/templates/build/build_base.html:137 #: build/templates/build/detail.html:63 order/models.py:552 -#: order/serializers.py:247 stock/templates/stock/item_base.html:180 +#: order/serializers.py:247 stock/templates/stock/item_base.html:186 #: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661 #: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472 -#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651 +#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637 msgid "Status" msgstr "Trạng thái" @@ -1000,33 +1006,33 @@ msgstr "" msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:319 +#: build/serializers.py:325 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:334 stock/serializers.py:569 +#: build/serializers.py:340 stock/serializers.py:583 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:348 order/models.py:277 order/serializers.py:240 -#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305 +#: build/serializers.py:354 order/models.py:277 order/serializers.py:240 +#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:390 order/serializers.py:741 +#: build/serializers.py:396 order/serializers.py:741 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:396 +#: build/serializers.py:402 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:403 +#: build/serializers.py:409 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:431 order/serializers.py:984 +#: build/serializers.py:437 order/serializers.py:984 msgid "Allocation items must be provided" msgstr "" @@ -1067,33 +1073,33 @@ msgstr "" msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:87 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:96 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:98 +#: build/templates/build/build_base.html:103 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:105 +#: build/templates/build/build_base.html:110 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Stock has not been fully allocated to this Build Order" msgstr "" @@ -1131,12 +1137,12 @@ msgid "Completed" msgstr "Đã hoàn thành" #: build/templates/build/build_base.html:171 -#: build/templates/build/detail.html:95 order/models.py:925 -#: order/models.py:1021 order/templates/order/sales_order_base.html:9 +#: build/templates/build/detail.html:95 order/models.py:927 +#: order/models.py:1023 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:308 +#: stock/templates/stock/item_base.html:306 #: templates/js/translated/order.js:1218 msgid "Sales Order" msgstr "" @@ -1211,7 +1217,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "" @@ -1225,8 +1231,8 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:332 -#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451 +#: stock/templates/stock/item_base.html:330 +#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1278,7 +1284,7 @@ msgstr "" #: build/templates/build/detail.html:185 #: company/templates/company/detail.html:38 #: company/templates/company/detail.html:85 order/views.py:463 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order Parts" msgstr "" @@ -1347,7 +1353,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115 +#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115 #: stock/templates/stock/item.html:205 msgid "Edit Notes" msgstr "" @@ -1489,7 +1495,7 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:340 common/models.py:998 common/models.py:1206 +#: common/models.py:340 common/models.py:1004 common/models.py:1212 msgid "Settings key (must be unique - case insensitive" msgstr "" @@ -1651,7 +1657,7 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956 +#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:1068 #: templates/js/translated/table_filters.js:168 #: templates/js/translated/table_filters.js:416 msgid "Assembly" @@ -1953,256 +1959,264 @@ msgid "Group to which new users are assigned on registration" msgstr "" #: common/models.py:961 -msgid "Enable URL integration" +msgid "Enforce MFA" msgstr "" #: common/models.py:962 -msgid "Enable plugins to add URL routes" +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:967 +msgid "Enable URL integration" msgstr "" #: common/models.py:968 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:974 msgid "Enable navigation integration" msgstr "" -#: common/models.py:969 +#: common/models.py:975 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:975 +#: common/models.py:981 msgid "Enable global setting integration" msgstr "" -#: common/models.py:976 +#: common/models.py:982 msgid "Enable plugins to integrate into inventree global settings" msgstr "" -#: common/models.py:982 +#: common/models.py:988 msgid "Enable app integration" msgstr "" -#: common/models.py:983 +#: common/models.py:989 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1029 +#: common/models.py:1035 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1030 +#: common/models.py:1036 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1035 +#: common/models.py:1041 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1036 +#: common/models.py:1042 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1041 +#: common/models.py:1047 msgid "Show latest parts" msgstr "Hiển thị nguyên liệu mới nhất" -#: common/models.py:1042 +#: common/models.py:1048 msgid "Show latest parts on the homepage" msgstr "Hiển thị nguyên liệu mới nhất trên trang chủ" -#: common/models.py:1047 +#: common/models.py:1053 msgid "Recent Part Count" msgstr "" -#: common/models.py:1048 +#: common/models.py:1054 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1054 +#: common/models.py:1060 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1055 +#: common/models.py:1061 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1060 +#: common/models.py:1066 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1061 +#: common/models.py:1067 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1066 +#: common/models.py:1072 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1067 +#: common/models.py:1073 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1072 +#: common/models.py:1078 msgid "Show low stock" msgstr "" -#: common/models.py:1073 +#: common/models.py:1079 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1078 +#: common/models.py:1084 msgid "Show depleted stock" msgstr "" -#: common/models.py:1079 +#: common/models.py:1085 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1084 +#: common/models.py:1090 msgid "Show needed stock" msgstr "" -#: common/models.py:1085 +#: common/models.py:1091 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1090 +#: common/models.py:1096 msgid "Show expired stock" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1096 +#: common/models.py:1102 msgid "Show stale stock" msgstr "" -#: common/models.py:1097 +#: common/models.py:1103 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1102 +#: common/models.py:1108 msgid "Show pending builds" msgstr "" -#: common/models.py:1103 +#: common/models.py:1109 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1108 +#: common/models.py:1114 msgid "Show overdue builds" msgstr "" -#: common/models.py:1109 +#: common/models.py:1115 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1114 +#: common/models.py:1120 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1115 +#: common/models.py:1121 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1120 +#: common/models.py:1126 msgid "Show overdue POs" msgstr "" -#: common/models.py:1121 +#: common/models.py:1127 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1126 +#: common/models.py:1132 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1127 +#: common/models.py:1133 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1132 +#: common/models.py:1138 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1133 +#: common/models.py:1139 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1139 +#: common/models.py:1145 msgid "Inline label display" msgstr "" -#: common/models.py:1140 +#: common/models.py:1146 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1146 +#: common/models.py:1152 msgid "Inline report display" msgstr "" -#: common/models.py:1147 +#: common/models.py:1153 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1153 +#: common/models.py:1159 msgid "Search Preview Results" msgstr "" -#: common/models.py:1154 +#: common/models.py:1160 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1160 +#: common/models.py:1166 msgid "Search Show Stock" msgstr "" -#: common/models.py:1161 +#: common/models.py:1167 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1167 +#: common/models.py:1173 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1168 +#: common/models.py:1174 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1174 +#: common/models.py:1180 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1175 +#: common/models.py:1181 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1181 +#: common/models.py:1187 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1182 +#: common/models.py:1188 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1188 +#: common/models.py:1194 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1189 +#: common/models.py:1195 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1254 company/forms.py:43 +#: common/models.py:1260 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1261 company/serializers.py:264 +#: common/models.py:1267 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801 +#: templates/js/translated/part.js:852 templates/js/translated/part.js:1803 msgid "Price" msgstr "" -#: common/models.py:1262 +#: common/models.py:1268 msgid "Unit price at specified quantity" msgstr "" @@ -2290,7 +2304,7 @@ msgid "Contact phone number" msgstr "" #: company/models.py:125 company/templates/company/company_base.html:129 -#: templates/InvenTree/settings/user.html:47 +#: templates/InvenTree/settings/user.html:48 msgid "Email" msgstr "" @@ -2347,8 +2361,8 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:320 company/models.py:535 stock/models.py:468 -#: stock/templates/stock/item_base.html:135 +#: company/models.py:320 company/models.py:535 stock/models.py:469 +#: stock/templates/stock/item_base.html:141 msgid "Base Part" msgstr "" @@ -2359,7 +2373,7 @@ msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:381 +#: stock/templates/stock/item_base.html:379 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:514 #: templates/js/translated/company.js:797 templates/js/translated/part.js:232 @@ -2393,7 +2407,7 @@ msgstr "" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:391 +#: stock/templates/stock/item_base.html:389 msgid "Manufacturer Part" msgstr "" @@ -2403,8 +2417,8 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:1845 templates/js/translated/company.js:644 -#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117 +#: stock/models.py:1960 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1296 msgid "Value" msgstr "" @@ -2431,7 +2445,7 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:224 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219 -#: part/bom.py:247 stock/templates/stock/item_base.html:398 +#: part/bom.py:247 stock/templates/stock/item_base.html:396 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:771 templates/js/translated/order.js:823 #: templates/js/translated/part.js:213 templates/js/translated/part.js:800 @@ -2479,8 +2493,8 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:491 stock/templates/stock/item_base.html:339 -#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612 +#: stock/models.py:493 stock/templates/stock/item_base.html:337 +#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1791 msgid "Packaging" msgstr "" @@ -2506,7 +2520,7 @@ msgstr "" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322 +#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322 msgid "Company" msgstr "" @@ -2548,11 +2562,11 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:83 order/models.py:547 -#: order/templates/order/sales_order_base.html:115 stock/models.py:509 -#: stock/models.py:510 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:291 +#: order/templates/order/sales_order_base.html:115 stock/models.py:512 +#: stock/models.py:513 stock/serializers.py:624 +#: stock/templates/stock/item_base.html:289 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2259 +#: templates/js/translated/stock.js:2452 msgid "Customer" msgstr "" @@ -2571,7 +2585,7 @@ msgstr "" #: company/templates/company/detail.html:15 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:124 +#: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" @@ -2590,14 +2604,14 @@ msgstr "" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:167 part/templates/part/detail.html:342 +#: part/templates/part/category.html:171 part/templates/part/detail.html:342 #: part/templates/part/detail.html:370 msgid "Options" msgstr "" #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order parts" msgstr "" @@ -2611,7 +2625,7 @@ msgstr "" msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109 +#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" @@ -2633,8 +2647,8 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203 +#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" @@ -2655,8 +2669,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223 +#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" @@ -2698,7 +2712,7 @@ msgid "Supplier List" msgstr "" #: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184 +#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 #: templates/navbar.html:46 msgid "Manufacturers" msgstr "" @@ -2706,7 +2720,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:67 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76 msgid "Order part" msgstr "" @@ -2728,7 +2742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 #: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:194 templates/navbar.html:45 +#: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "" @@ -2742,7 +2756,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:254 #: part/templates/part/detail.html:344 part/templates/part/detail.html:372 #: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31 -#: users/models.py:206 +#: users/models.py:209 msgid "Delete" msgstr "" @@ -2765,7 +2779,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:867 +#: part/templates/part/detail.html:861 msgid "Add Parameter" msgstr "" @@ -2794,9 +2808,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:476 -#: stock/templates/stock/item_base.html:403 -#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569 +#: company/templates/company/supplier_part.html:24 stock/models.py:477 +#: stock/templates/stock/item_base.html:401 +#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1748 msgid "Supplier Part" msgstr "" @@ -2816,13 +2830,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:20 stock/templates/stock/location.html:162 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:166 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163 -#: templates/js/translated/stock.js:359 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 +#: templates/js/translated/stock.js:360 msgid "New Stock Item" msgstr "" @@ -2832,7 +2846,7 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:68 +#: part/templates/part/detail.html:72 msgid "Order Part" msgstr "" @@ -2843,7 +2857,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:1717 +#: part/templates/part/prices.html:271 part/views.py:1713 msgid "Add Price Break" msgstr "" @@ -2851,11 +2865,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1779 +#: company/templates/company/supplier_part.html:224 part/views.py:1775 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1765 +#: company/templates/company/supplier_part.html:238 part/views.py:1761 msgid "Edit Price Break" msgstr "" @@ -2869,14 +2883,14 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:156 +#: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434 -#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059 -#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:1401 templates/navbar.html:28 +#: templates/js/translated/bom.js:328 templates/js/translated/part.js:434 +#: templates/js/translated/part.js:569 templates/js/translated/part.js:1061 +#: templates/js/translated/part.js:1222 templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:1580 templates/navbar.html:28 msgid "Stock" msgstr "Kiện hàng" @@ -2895,11 +2909,11 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:133 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:159 +#: stock/templates/stock/location.html:137 +#: stock/templates/stock/location.html:151 +#: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "" @@ -2912,7 +2926,7 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:61 templates/InvenTree/search.html:214 +#: company/views.py:61 templates/InvenTree/search.html:208 #: templates/navbar.html:57 msgid "Customers" msgstr "" @@ -3121,7 +3135,7 @@ msgstr "" msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:562 order/models.py:1026 +#: order/models.py:562 order/models.py:1028 #: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429 msgid "Shipment Date" msgstr "" @@ -3130,7 +3144,7 @@ msgstr "" msgid "shipped by" msgstr "" -#: order/models.py:634 +#: order/models.py:635 msgid "Order cannot be completed as no parts have been assigned" msgstr "" @@ -3138,172 +3152,172 @@ msgstr "" msgid "Only a pending order can be marked as complete" msgstr "" -#: order/models.py:643 +#: order/models.py:642 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:647 +#: order/models.py:645 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:795 +#: order/models.py:797 msgid "Item quantity" msgstr "" -#: order/models.py:801 +#: order/models.py:803 msgid "Line item reference" msgstr "" -#: order/models.py:803 +#: order/models.py:805 msgid "Line item notes" msgstr "" -#: order/models.py:833 order/models.py:924 order/models.py:1020 +#: order/models.py:835 order/models.py:926 order/models.py:1022 #: templates/js/translated/order.js:1820 msgid "Order" msgstr "" -#: order/models.py:834 order/templates/order/order_base.html:9 +#: order/models.py:836 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:353 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/order.js:801 templates/js/translated/part.js:775 -#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240 +#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433 msgid "Purchase Order" msgstr "Đơn hàng" -#: order/models.py:855 +#: order/models.py:857 msgid "Supplier part" msgstr "" -#: order/models.py:862 order/templates/order/order_base.html:163 +#: order/models.py:864 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:847 templates/js/translated/part.js:873 #: templates/js/translated/table_filters.js:317 msgid "Received" msgstr "" -#: order/models.py:863 +#: order/models.py:865 msgid "Number of items received" msgstr "" -#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:360 -#: templates/js/translated/stock.js:1600 +#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:358 +#: templates/js/translated/stock.js:1779 msgid "Purchase Price" msgstr "Giá mua" -#: order/models.py:871 +#: order/models.py:873 msgid "Unit purchase price" msgstr "" -#: order/models.py:879 +#: order/models.py:881 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:934 part/templates/part/part_pricing.html:112 +#: order/models.py:936 part/templates/part/part_pricing.html:112 #: part/templates/part/prices.html:116 part/templates/part/prices.html:284 msgid "Sale Price" msgstr "" -#: order/models.py:935 +#: order/models.py:937 msgid "Unit sale price" msgstr "" -#: order/models.py:940 +#: order/models.py:942 msgid "Shipped quantity" msgstr "" -#: order/models.py:1027 +#: order/models.py:1029 msgid "Date of shipment" msgstr "" -#: order/models.py:1034 +#: order/models.py:1036 msgid "Checked By" msgstr "" -#: order/models.py:1035 +#: order/models.py:1037 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1043 +#: order/models.py:1045 msgid "Shipment number" msgstr "" -#: order/models.py:1050 +#: order/models.py:1052 msgid "Shipment notes" msgstr "" -#: order/models.py:1057 +#: order/models.py:1059 msgid "Tracking Number" msgstr "" -#: order/models.py:1058 +#: order/models.py:1060 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1068 +#: order/models.py:1070 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1071 +#: order/models.py:1073 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1147 order/models.py:1149 +#: order/models.py:1149 order/models.py:1151 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1153 +#: order/models.py:1155 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1155 +#: order/models.py:1157 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1158 +#: order/models.py:1160 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1162 +#: order/models.py:1164 msgid "StockItem is over-allocated" msgstr "" -#: order/models.py:1168 order/serializers.py:734 +#: order/models.py:1170 order/serializers.py:734 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1171 +#: order/models.py:1173 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1172 +#: order/models.py:1174 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1180 +#: order/models.py:1182 msgid "Line" msgstr "" -#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953 +#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953 #: templates/js/translated/model_renderers.js:251 msgid "Shipment" msgstr "" -#: order/models.py:1189 +#: order/models.py:1191 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1201 +#: order/models.py:1203 msgid "Item" msgstr "" -#: order/models.py:1202 +#: order/models.py:1204 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1205 +#: order/models.py:1207 msgid "Enter stock allocation quantity" msgstr "" @@ -3530,7 +3544,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/build.js:245 templates/js/translated/build.js:1256 #: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:592 +#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761 msgid "Remove row" msgstr "" @@ -3722,7 +3736,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188 +#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1188 msgid "Actions" msgstr "" @@ -3797,24 +3811,24 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:760 +#: part/api.py:777 msgid "Must be greater than zero" msgstr "" -#: part/api.py:764 +#: part/api.py:781 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:779 +#: part/api.py:796 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833 +#: part/api.py:827 part/api.py:831 part/api.py:846 part/api.py:850 msgid "This field is required" msgstr "" #: part/bom.py:125 part/models.py:81 part/models.py:816 -#: part/templates/part/category.html:104 part/templates/part/part_base.html:338 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "" @@ -3822,99 +3836,43 @@ msgstr "" msgid "Available Stock" msgstr "" -#: part/forms.py:63 -msgid "File Format" -msgstr "" - -#: part/forms.py:63 -msgid "Select output file format" -msgstr "" - -#: part/forms.py:65 -msgid "Cascading" -msgstr "" - -#: part/forms.py:65 -msgid "Download cascading / multi-level BOM" -msgstr "" - -#: part/forms.py:67 -msgid "Levels" -msgstr "" - -#: part/forms.py:67 -msgid "Select maximum number of BOM levels to export (0 = all levels)" -msgstr "" - -#: part/forms.py:69 -msgid "Include Parameter Data" -msgstr "" - -#: part/forms.py:69 -msgid "Include part parameters data in exported BOM" -msgstr "" - -#: part/forms.py:71 -msgid "Include Stock Data" -msgstr "" - -#: part/forms.py:71 -msgid "Include part stock data in exported BOM" -msgstr "" - -#: part/forms.py:73 -msgid "Include Manufacturer Data" -msgstr "" - -#: part/forms.py:73 -msgid "Include part manufacturer data in exported BOM" -msgstr "" - -#: part/forms.py:75 -msgid "Include Supplier Data" -msgstr "" - -#: part/forms.py:75 -msgid "Include part supplier data in exported BOM" -msgstr "" - -#: part/forms.py:96 part/models.py:2427 +#: part/forms.py:66 part/models.py:2427 msgid "Parent Part" msgstr "" -#: part/forms.py:97 part/templates/part/bom_duplicate.html:7 +#: part/forms.py:67 part/templates/part/bom_duplicate.html:7 msgid "Select parent part to copy BOM from" msgstr "" -#: part/forms.py:103 +#: part/forms.py:73 msgid "Clear existing BOM items" msgstr "" -#: part/forms.py:109 +#: part/forms.py:79 msgid "Confirm BOM duplication" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "validate" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "Confirm that the BOM is correct" msgstr "" -#: part/forms.py:163 +#: part/forms.py:133 msgid "Select part category" msgstr "" -#: part/forms.py:200 +#: part/forms.py:170 msgid "Add parameter template to same level categories" msgstr "" -#: part/forms.py:204 +#: part/forms.py:174 msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:224 +#: part/forms.py:194 msgid "Input quantity for price calculation" msgstr "" @@ -3930,24 +3888,24 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11 +#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:96 part/templates/part/category.html:124 -#: templates/InvenTree/search.html:101 templates/stats.html:84 +#: part/models.py:96 part/templates/part/category.html:128 +#: templates/InvenTree/search.html:95 templates/stats.html:84 #: users/models.py:40 msgid "Part Categories" msgstr "" #: part/models.py:358 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:13 part/templates/part/category.html:129 -#: part/templates/part/category.html:149 +#: part/templates/part/category.html:17 part/templates/part/category.html:133 +#: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1597 templates/navbar.html:21 +#: templates/js/translated/part.js:1599 templates/navbar.html:21 #: templates/stats.html:80 templates/stats.html:89 users/models.py:41 msgid "Parts" msgstr "Nguyên liệu" @@ -4001,7 +3959,7 @@ msgstr "" msgid "Part description" msgstr "" -#: part/models.py:770 part/templates/part/category.html:82 +#: part/models.py:770 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "" @@ -4014,7 +3972,7 @@ msgstr "" #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 #: templates/InvenTree/settings/settings.html:172 -#: templates/js/translated/part.js:1202 +#: templates/js/translated/part.js:1204 msgid "Category" msgstr "" @@ -4023,8 +3981,8 @@ msgid "Part category" msgstr "" #: part/models.py:784 part/templates/part/part_base.html:274 -#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155 -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/part.js:557 templates/js/translated/part.js:1157 +#: templates/js/translated/stock.js:1552 msgid "IPN" msgstr "" @@ -4145,8 +4103,8 @@ msgstr "" msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2310 templates/js/translated/part.js:1648 -#: templates/js/translated/stock.js:1097 +#: part/models.py:2310 templates/js/translated/part.js:1650 +#: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "" @@ -4162,7 +4120,7 @@ msgstr "" msgid "Enter description for this test" msgstr "" -#: part/models.py:2322 templates/js/translated/part.js:1657 +#: part/models.py:2322 templates/js/translated/part.js:1659 #: templates/js/translated/table_filters.js:281 msgid "Required" msgstr "" @@ -4171,7 +4129,7 @@ msgstr "" msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2328 templates/js/translated/part.js:1665 +#: part/models.py:2328 templates/js/translated/part.js:1667 msgid "Requires Value" msgstr "" @@ -4179,7 +4137,7 @@ msgstr "" msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2334 templates/js/translated/part.js:1672 +#: part/models.py:2334 templates/js/translated/part.js:1674 msgid "Requires Attachment" msgstr "" @@ -4241,8 +4199,8 @@ msgstr "" msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2578 templates/js/translated/bom.js:454 -#: templates/js/translated/bom.js:528 +#: part/models.py:2578 templates/js/translated/bom.js:566 +#: templates/js/translated/bom.js:640 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" @@ -4275,8 +4233,8 @@ msgstr "" msgid "BOM line checksum" msgstr "" -#: part/models.py:2594 templates/js/translated/bom.js:545 -#: templates/js/translated/bom.js:552 +#: part/models.py:2594 templates/js/translated/bom.js:657 +#: templates/js/translated/bom.js:664 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" @@ -4286,7 +4244,7 @@ msgstr "" msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2600 templates/js/translated/bom.js:537 +#: part/models.py:2600 templates/js/translated/bom.js:649 msgid "Allow Variants" msgstr "" @@ -4406,100 +4364,100 @@ msgstr "" msgid "This will validate each line in the BOM." msgstr "" -#: part/templates/part/category.html:24 part/templates/part/category.html:28 +#: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:32 +#: part/templates/part/category.html:36 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:38 +#: part/templates/part/category.html:42 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:43 +#: part/templates/part/category.html:47 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:44 +#: part/templates/part/category.html:48 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:52 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:53 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:57 +#: part/templates/part/category.html:61 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:58 +#: part/templates/part/category.html:62 msgid "New Category" msgstr "" -#: part/templates/part/category.html:76 part/templates/part/category.html:89 +#: part/templates/part/category.html:80 part/templates/part/category.html:93 msgid "Category Path" msgstr "" -#: part/templates/part/category.html:90 +#: part/templates/part/category.html:94 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:110 part/templates/part/category.html:201 +#: part/templates/part/category.html:114 part/templates/part/category.html:205 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/templates/part/category.html:115 +#: part/templates/part/category.html:119 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:152 +#: part/templates/part/category.html:156 msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:153 part/templates/part/category.html:177 +#: part/templates/part/category.html:157 part/templates/part/category.html:181 msgid "Export" msgstr "" -#: part/templates/part/category.html:156 +#: part/templates/part/category.html:160 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:157 templates/js/translated/bom.js:40 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 msgid "New Part" msgstr "" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set category" msgstr "" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set Category" msgstr "" -#: part/templates/part/category.html:175 +#: part/templates/part/category.html:179 msgid "Print Labels" msgstr "" -#: part/templates/part/category.html:177 +#: part/templates/part/category.html:181 msgid "Export Data" msgstr "" -#: part/templates/part/category.html:191 +#: part/templates/part/category.html:195 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:268 +#: part/templates/part/category.html:288 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:295 +#: part/templates/part/category.html:315 msgid "Create Part" msgstr "" @@ -4566,24 +4524,24 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:17 +#: part/templates/part/detail.html:21 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:29 +#: part/templates/part/detail.html:33 #, python-format msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:39 +#: part/templates/part/detail.html:43 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:44 +#: part/templates/part/detail.html:48 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:101 +#: part/templates/part/detail.html:105 msgid "Sales Order Allocations" msgstr "" @@ -4619,7 +4577,7 @@ msgstr "" msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:242 +#: part/templates/part/detail.html:242 templates/js/translated/bom.js:70 msgid "Export BOM" msgstr "" @@ -4683,38 +4641,38 @@ msgstr "" msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:651 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:659 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:760 +#: part/templates/part/detail.html:754 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:817 +#: part/templates/part/detail.html:811 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:930 +#: part/templates/part/detail.html:924 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:942 +#: part/templates/part/detail.html:936 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:954 +#: part/templates/part/detail.html:948 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1043 +#: part/templates/part/detail.html:1037 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4745,20 +4703,20 @@ msgid "Subscribe to notifications for this part" msgstr "" #: part/templates/part/part_base.html:43 -#: stock/templates/stock/item_base.html:28 -#: stock/templates/stock/location.html:29 +#: stock/templates/stock/item_base.html:34 +#: stock/templates/stock/location.html:33 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:45 -#: stock/templates/stock/item_base.html:32 -#: stock/templates/stock/location.html:31 templates/qr_button.html:1 +#: stock/templates/stock/item_base.html:38 +#: stock/templates/stock/location.html:35 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:48 -#: stock/templates/stock/location.html:32 +#: stock/templates/stock/item_base.html:54 +#: stock/templates/stock/location.html:36 msgid "Print Label" msgstr "" @@ -4767,8 +4725,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:103 -#: stock/templates/stock/location.html:40 +#: stock/templates/stock/item_base.html:109 +#: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "" @@ -4848,7 +4806,7 @@ msgstr "" msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1235 +#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1237 msgid "On Order" msgstr "" @@ -4864,12 +4822,12 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:566 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1066 -#: templates/js/translated/part.js:1239 +#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1068 +#: templates/js/translated/part.js:1241 msgid "Building" msgstr "" @@ -4882,7 +4840,7 @@ msgid "Latest Serial Number" msgstr "Số seri mới nhất" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:159 +#: stock/templates/stock/item_base.html:165 msgid "Search for serial number" msgstr "" @@ -4921,7 +4879,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:520 +#: templates/js/translated/bom.js:632 msgid "No supplier pricing available" msgstr "" @@ -5036,7 +4994,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626 msgid "Supplier Cost" msgstr "" @@ -5058,7 +5016,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1788 +#: part/templates/part/prices.html:215 part/views.py:1784 msgid "Add Internal Price Break" msgstr "" @@ -5078,9 +5036,9 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476 -#: templates/js/translated/part.js:436 templates/js/translated/part.js:1056 -#: templates/js/translated/part.js:1243 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588 +#: templates/js/translated/part.js:436 templates/js/translated/part.js:1058 +#: templates/js/translated/part.js:1245 msgid "No Stock" msgstr "" @@ -5154,67 +5112,67 @@ msgstr "" msgid "Match Parts" msgstr "" -#: part/views.py:1196 +#: part/views.py:1195 msgid "Export Bill of Materials" msgstr "" -#: part/views.py:1248 +#: part/views.py:1244 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1255 +#: part/views.py:1251 msgid "Part was deleted" msgstr "" -#: part/views.py:1264 +#: part/views.py:1260 msgid "Part Pricing" msgstr "" -#: part/views.py:1413 +#: part/views.py:1409 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1423 +#: part/views.py:1419 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1430 +#: part/views.py:1426 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1489 templates/js/translated/part.js:313 +#: part/views.py:1485 templates/js/translated/part.js:313 msgid "Edit Part Category" msgstr "" -#: part/views.py:1527 +#: part/views.py:1523 msgid "Delete Part Category" msgstr "" -#: part/views.py:1533 +#: part/views.py:1529 msgid "Part category was deleted" msgstr "" -#: part/views.py:1542 +#: part/views.py:1538 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1643 +#: part/views.py:1639 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1699 +#: part/views.py:1695 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1721 +#: part/views.py:1717 msgid "Added new price break" msgstr "" -#: part/views.py:1797 +#: part/views.py:1793 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1805 +#: part/views.py:1801 msgid "Delete Internal Price Break" msgstr "" @@ -5388,12 +5346,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:514 stock/templates/stock/item_base.html:149 +#: stock/models.py:517 stock/templates/stock/item_base.html:155 #: templates/js/translated/build.js:238 templates/js/translated/build.js:642 #: templates/js/translated/build.js:1018 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415 msgid "Serial Number" msgstr "" @@ -5402,19 +5360,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:1833 +#: stock/models.py:1948 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:1839 +#: stock/models.py:1954 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:49 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367 msgid "Date" msgstr "" @@ -5432,17 +5390,18 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434 +#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748 +#: templates/js/translated/stock.js:2627 msgid "Serial" msgstr "" -#: stock/api.py:446 +#: stock/api.py:478 msgid "Quantity is required" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571 -#: stock/templates/stock/item_base.html:186 -#: templates/js/translated/stock.js:1522 +#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574 +#: stock/templates/stock/item_base.html:192 +#: templates/js/translated/stock.js:1701 msgid "Expiry Date" msgstr "" @@ -5490,12 +5449,12 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:60 stock/models.py:608 -#: stock/templates/stock/item_base.html:417 +#: stock/models.py:60 stock/models.py:611 +#: stock/templates/stock/item_base.html:415 msgid "Owner" msgstr "" -#: stock/models.py:61 stock/models.py:609 +#: stock/models.py:61 stock/models.py:612 msgid "Select Owner" msgstr "" @@ -5528,150 +5487,190 @@ msgstr "" msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:460 +#: stock/models.py:461 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:470 msgid "Base part" msgstr "" -#: stock/models.py:477 +#: stock/models.py:478 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:482 stock/templates/stock/location.html:12 +#: stock/models.py:484 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Kho hàng" -#: stock/models.py:485 +#: stock/models.py:487 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:492 +#: stock/models.py:494 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:497 stock/templates/stock/item_base.html:299 +#: stock/models.py:500 stock/templates/stock/item_base.html:297 msgid "Installed In" msgstr "" -#: stock/models.py:500 +#: stock/models.py:503 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:516 +#: stock/models.py:519 msgid "Serial number for this item" msgstr "" -#: stock/models.py:530 +#: stock/models.py:533 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:534 +#: stock/models.py:537 msgid "Stock Quantity" msgstr "" -#: stock/models.py:543 +#: stock/models.py:546 msgid "Source Build" msgstr "" -#: stock/models.py:545 +#: stock/models.py:548 msgid "Build for this stock item" msgstr "" -#: stock/models.py:556 +#: stock/models.py:559 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:559 +#: stock/models.py:562 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:565 +#: stock/models.py:568 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:572 +#: stock/models.py:575 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete on deplete" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:595 stock/templates/stock/item.html:111 +#: stock/models.py:598 stock/templates/stock/item.html:111 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:604 +#: stock/models.py:607 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1072 +#: stock/models.py:1068 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1078 +#: stock/models.py:1074 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1084 +#: stock/models.py:1080 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1087 +#: stock/models.py:1083 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1090 +#: stock/models.py:1086 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1097 +#: stock/models.py:1093 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1255 +#: stock/models.py:1164 +msgid "Stock item has been assigned to a sales order" +msgstr "" + +#: stock/models.py:1167 +msgid "Stock item is installed in another item" +msgstr "" + +#: stock/models.py:1170 +msgid "Stock item contains other items" +msgstr "" + +#: stock/models.py:1173 +msgid "Stock item has been assigned to a customer" +msgstr "" + +#: stock/models.py:1176 +msgid "Stock item is currently in production" +msgstr "" + +#: stock/models.py:1179 +msgid "Serialized stock cannot be merged" +msgstr "" + +#: stock/models.py:1186 stock/serializers.py:773 +msgid "Duplicate stock items" +msgstr "" + +#: stock/models.py:1190 +msgid "Stock items must refer to the same part" +msgstr "" + +#: stock/models.py:1194 +msgid "Stock items must refer to the same supplier part" +msgstr "" + +#: stock/models.py:1198 +msgid "Stock status codes must match" +msgstr "" + +#: stock/models.py:1369 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1753 +#: stock/models.py:1868 msgid "Entry notes" msgstr "" -#: stock/models.py:1810 +#: stock/models.py:1925 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1931 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1834 +#: stock/models.py:1949 msgid "Test name" msgstr "" -#: stock/models.py:1840 templates/js/translated/table_filters.js:271 +#: stock/models.py:1955 templates/js/translated/table_filters.js:271 msgid "Test result" msgstr "" -#: stock/models.py:1846 +#: stock/models.py:1961 msgid "Test output value" msgstr "" -#: stock/models.py:1853 +#: stock/models.py:1968 msgid "Test result attachment" msgstr "" -#: stock/models.py:1859 +#: stock/models.py:1974 msgid "Test notes" msgstr "" @@ -5696,7 +5695,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:814 +#: stock/serializers.py:326 stock/serializers.py:730 stock/serializers.py:971 msgid "Destination stock location" msgstr "" @@ -5708,39 +5707,63 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:573 +#: stock/serializers.py:587 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:577 +#: stock/serializers.py:591 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:581 +#: stock/serializers.py:595 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:611 +#: stock/serializers.py:625 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:617 +#: stock/serializers.py:631 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:639 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:635 stock/serializers.py:722 +#: stock/serializers.py:649 stock/serializers.py:879 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:684 +#: stock/serializers.py:737 +msgid "Stock merging notes" +msgstr "" + +#: stock/serializers.py:742 +msgid "Allow mismatched suppliers" +msgstr "" + +#: stock/serializers.py:743 +msgid "Allow stock items with different supplier parts to be merged" +msgstr "" + +#: stock/serializers.py:748 +msgid "Allow mismatched status" +msgstr "" + +#: stock/serializers.py:749 +msgid "Allow stock items with different status codes to be merged" +msgstr "" + +#: stock/serializers.py:759 +msgid "At least two stock items must be provided" +msgstr "" + +#: stock/serializers.py:841 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:712 +#: stock/serializers.py:869 msgid "Stock transaction notes" msgstr "" @@ -5765,7 +5788,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50 +#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:56 msgid "Test Report" msgstr "" @@ -5797,197 +5820,189 @@ msgstr "" msgid "Delete Test Result" msgstr "" -#: stock/templates/stock/item_base.html:35 +#: stock/templates/stock/item_base.html:41 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:37 +#: stock/templates/stock/item_base.html:43 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24 +#: stock/templates/stock/item_base.html:45 templates/stock_table.html:24 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:46 +#: stock/templates/stock/item_base.html:52 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:71 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:47 templates/stock_table.html:50 +#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/location.html:51 templates/stock_table.html:50 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:78 templates/stock_table.html:48 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49 +#: stock/templates/stock/item_base.html:81 templates/stock_table.html:49 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:84 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:53 +#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/location.html:57 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53 +#: stock/templates/stock/item_base.html:91 templates/stock_table.html:54 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:94 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:108 +#: stock/templates/stock/item_base.html:114 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/item_base.html:117 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:119 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:116 +#: stock/templates/stock/item_base.html:122 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/stock.js:1535 +#: stock/templates/stock/item_base.html:205 +#: templates/js/translated/stock.js:1714 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:208 +#: stock/templates/stock/item_base.html:214 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:226 +#: stock/templates/stock/item_base.html:232 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:239 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:234 +#: stock/templates/stock/item_base.html:240 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:247 +#: stock/templates/stock/item_base.html:253 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:261 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:263 +#: stock/templates/stock/item_base.html:269 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:269 +#: stock/templates/stock/item_base.html:275 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:273 -msgid "This stock item cannot be deleted as it has child items" -msgstr "" - -#: stock/templates/stock/item_base.html:277 -msgid "This stock item will be automatically deleted when all stock is depleted." -msgstr "" - -#: stock/templates/stock/item_base.html:318 +#: stock/templates/stock/item_base.html:316 #: templates/js/translated/build.js:1040 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:325 +#: stock/templates/stock/item_base.html:323 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:367 +#: stock/templates/stock/item_base.html:365 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:385 +#: stock/templates/stock/item_base.html:383 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:410 +#: stock/templates/stock/item_base.html:408 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:500 +#: stock/templates/stock/item_base.html:498 msgid "Edit Stock Status" msgstr "" @@ -6041,59 +6056,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:37 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:65 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:67 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:65 +#: stock/templates/stock/location.html:69 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:79 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:76 +#: stock/templates/stock/location.html:80 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:95 -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:99 +#: stock/templates/stock/location.html:105 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:102 +#: stock/templates/stock/location.html:106 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:119 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:175 +#: stock/templates/stock/location.html:132 +#: stock/templates/stock/location.html:179 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:142 templates/InvenTree/search.html:170 +#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "" -#: stock/templates/stock/location.html:182 templates/stock_table.html:30 +#: stock/templates/stock/location.html:186 templates/stock_table.html:30 msgid "Printing Actions" msgstr "" -#: stock/templates/stock/location.html:186 templates/stock_table.html:34 +#: stock/templates/stock/location.html:190 templates/stock_table.html:34 msgid "Print labels" msgstr "" @@ -6178,7 +6193,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:887 +#: stock/views.py:727 templates/js/translated/stock.js:1066 msgid "Confirm stock adjustment" msgstr "" @@ -6186,7 +6201,7 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:323 +#: stock/views.py:760 templates/js/translated/stock.js:324 msgid "Edit Stock Item" msgstr "" @@ -6198,7 +6213,7 @@ msgstr "" msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:303 +#: stock/views.py:1153 templates/js/translated/stock.js:304 msgid "Duplicate Stock Item" msgstr "" @@ -6314,10 +6329,6 @@ msgstr "" msgid "Search Results" msgstr "" -#: templates/InvenTree/search.html:22 -msgid "Enter a search query" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6363,7 +6374,7 @@ msgstr "" msgid "Login Settings" msgstr "" -#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5 +#: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5 msgid "Signup" msgstr "" @@ -6648,7 +6659,7 @@ msgstr "" msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:55 +#: templates/InvenTree/settings/user.html:54 msgid "The following email addresses are associated with your account:" msgstr "" @@ -6673,145 +6684,193 @@ msgid "Re-send Verification" msgstr "" #: templates/InvenTree/settings/user.html:87 -#: templates/InvenTree/settings/user.html:154 +#: templates/InvenTree/settings/user.html:149 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:94 +#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:201 msgid "Warning:" msgstr "" -#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:96 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:102 +#: templates/InvenTree/settings/user.html:104 msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:112 -msgid "Enter e-mail address" -msgstr "" - -#: templates/InvenTree/settings/user.html:114 +#: templates/InvenTree/settings/user.html:109 msgid "Add Email" msgstr "" -#: templates/InvenTree/settings/user.html:124 +#: templates/InvenTree/settings/user.html:117 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:129 +#: templates/InvenTree/settings/user.html:122 msgid "You can sign in to your account using any of the following third party accounts:" msgstr "" -#: templates/InvenTree/settings/user.html:163 -msgid "There are no social network accounts connected to your InvenTree account" +#: templates/InvenTree/settings/user.html:157 +msgid "You currently have no social network accounts connected to this account." msgstr "" -#: templates/InvenTree/settings/user.html:168 +#: templates/InvenTree/settings/user.html:162 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:179 -msgid "Active Sessions" +#: templates/InvenTree/settings/user.html:172 +msgid "Multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:185 -msgid "Log out active sessions (except this one)" +#: templates/InvenTree/settings/user.html:177 +msgid "You have these factors available:" msgstr "" -#: templates/InvenTree/settings/user.html:186 -msgid "Log Out Active Sessions" +#: templates/InvenTree/settings/user.html:187 +msgid "TOTP" 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" +#: templates/InvenTree/settings/user.html:193 +msgid "Static" msgstr "" #: templates/InvenTree/settings/user.html:202 -msgid "Last Activity" +msgid "You currently do not have any factors set up." msgstr "" -#: templates/InvenTree/settings/user.html:211 -#, python-format -msgid "%(time)s ago (this session)" +#: templates/InvenTree/settings/user.html:209 +msgid "Change factors" msgstr "" -#: templates/InvenTree/settings/user.html:213 -#, python-format -msgid "%(time)s ago" +#: templates/InvenTree/settings/user.html:210 +msgid "Setup multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:224 -msgid "Do you really want to remove the selected email address?" +#: templates/InvenTree/settings/user.html:212 +msgid "Remove multifactor" msgstr "" +#: templates/InvenTree/settings/user.html:219 #: templates/InvenTree/settings/user_display.html:25 msgid "Theme Settings" msgstr "Thiết lập giao diện" +#: templates/InvenTree/settings/user.html:227 #: templates/InvenTree/settings/user_display.html:35 msgid "Select theme" msgstr "" +#: templates/InvenTree/settings/user.html:237 #: templates/InvenTree/settings/user_display.html:46 msgid "Set Theme" msgstr "" +#: templates/InvenTree/settings/user.html:246 #: templates/InvenTree/settings/user_display.html:54 msgid "Language Settings" msgstr "Thiết lập ngôn ngữ" +#: templates/InvenTree/settings/user.html:254 #: templates/InvenTree/settings/user_display.html:63 msgid "Select language" msgstr "" +#: templates/InvenTree/settings/user.html:270 #: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" +#: templates/InvenTree/settings/user.html:272 #: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" +#: templates/InvenTree/settings/user.html:279 #: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" +#: templates/InvenTree/settings/user.html:281 #: templates/InvenTree/settings/user_display.html:91 msgid "Some languages are not complete" msgstr "" +#: templates/InvenTree/settings/user.html:283 #: 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.html:285 #: templates/InvenTree/settings/user_display.html:95 msgid "Show them too" msgstr "" +#: templates/InvenTree/settings/user.html:292 #: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" +#: templates/InvenTree/settings/user.html:293 +#, python-format +msgid "Native language translation of the\n" +" InvenTree web application is community contributed via crowdin. Contributions are\n" +" welcomed and encouraged." +msgstr "" + +#: templates/InvenTree/settings/user.html:302 +msgid "Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:308 +msgid "Log out active sessions (except this one)" +msgstr "" + +#: templates/InvenTree/settings/user.html:309 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:318 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:319 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:323 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:324 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:325 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:334 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:336 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:348 +msgid "Do you really want to remove the selected email address?" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +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." @@ -6830,7 +6889,7 @@ msgid "InvenTree Version Information" msgstr "" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53 +#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53 #: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662 #: templates/js/translated/modals.js:965 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 @@ -7006,6 +7065,71 @@ msgstr "" msgid "View in administration panel" msgstr "" +#: templates/allauth_2fa/authenticate.html:5 +msgid "Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:12 +msgid "Authenticate" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:6 +msgid "Two-Factor Authentication Backup Tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:17 +msgid "Backup tokens have been generated, but are not revealed here for security reasons. Press the button below to generate new ones." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:20 +msgid "No tokens. Press the button below to generate some." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:27 +msgid "Generate backup tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:31 +#: templates/allauth_2fa/setup.html:40 +msgid "back to settings" +msgstr "" + +#: templates/allauth_2fa/remove.html:6 +msgid "Disable Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/remove.html:9 +msgid "Are you sure?" +msgstr "" + +#: templates/allauth_2fa/remove.html:14 +msgid "Disable Two-Factor" +msgstr "" + +#: templates/allauth_2fa/setup.html:6 +msgid "Setup Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/setup.html:10 +msgid "Step 1" +msgstr "" + +#: templates/allauth_2fa/setup.html:14 +msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." +msgstr "" + +#: templates/allauth_2fa/setup.html:23 +msgid "Step 2" +msgstr "" + +#: templates/allauth_2fa/setup.html:27 +msgid "Input a token generated by the app:" +msgstr "" + +#: templates/allauth_2fa/setup.html:35 +msgid "Verify" +msgstr "" + #: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 msgid "Add Link" msgstr "" @@ -7044,13 +7168,13 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:1103 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134 +#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1134 #: templates/js/translated/build.js:1755 #: templates/js/translated/table_filters.js:178 msgid "Available" @@ -7239,7 +7363,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018 msgid "Remove stock item" msgstr "" @@ -7281,91 +7405,153 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:184 +#: templates/js/translated/bom.js:36 +msgid "Download BOM Template" +msgstr "" + +#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510 +msgid "Format" +msgstr "" + +#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511 +msgid "Select file format" +msgstr "" + +#: templates/js/translated/bom.js:81 +msgid "Cascading" +msgstr "" + +#: templates/js/translated/bom.js:82 +msgid "Download cascading / multi-level BOM" +msgstr "" + +#: templates/js/translated/bom.js:87 +msgid "Levels" +msgstr "" + +#: templates/js/translated/bom.js:88 +msgid "Select maximum number of BOM levels to export (0 = all levels)" +msgstr "" + +#: templates/js/translated/bom.js:94 +msgid "Include Parameter Data" +msgstr "" + +#: templates/js/translated/bom.js:95 +msgid "Include part parameter data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:100 +msgid "Include Stock Data" +msgstr "" + +#: templates/js/translated/bom.js:101 +msgid "Include part stock data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:106 +msgid "Include Manufacturer Data" +msgstr "" + +#: templates/js/translated/bom.js:107 +msgid "Include part manufacturer data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:112 +msgid "Include Supplier Data" +msgstr "" + +#: templates/js/translated/bom.js:113 +msgid "Include part supplier data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:296 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:228 +#: templates/js/translated/bom.js:340 msgid "Select and add a new variant item using the input below" msgstr "" -#: templates/js/translated/bom.js:239 +#: templates/js/translated/bom.js:351 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:245 +#: templates/js/translated/bom.js:357 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:284 +#: templates/js/translated/bom.js:396 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:285 +#: templates/js/translated/bom.js:397 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:404 +#: templates/js/translated/bom.js:516 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116 +#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1116 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:413 +#: templates/js/translated/bom.js:525 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:485 +#: templates/js/translated/bom.js:597 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:500 +#: templates/js/translated/bom.js:612 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:507 +#: templates/js/translated/bom.js:619 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645 +#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:616 +#: templates/js/translated/bom.js:728 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:618 +#: templates/js/translated/bom.js:730 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:620 +#: templates/js/translated/bom.js:732 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796 +#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779 +#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860 +#: templates/js/translated/bom.js:830 templates/js/translated/build.js:860 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:774 +#: templates/js/translated/bom.js:886 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100 +#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1100 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:996 +#: templates/js/translated/bom.js:1108 msgid "Inherited from parent BOM" msgstr "" @@ -7464,7 +7650,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1199 templates/stock_table.html:52 +#: templates/js/translated/build.js:1199 templates/stock_table.html:53 msgid "Order stock" msgstr "" @@ -7509,9 +7695,9 @@ msgstr "" msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147 -#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333 -#: templates/js/translated/stock.js:2128 +#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1149 +#: templates/js/translated/part.js:1560 templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:2321 msgid "Select" msgstr "" @@ -7519,7 +7705,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347 +#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2540 msgid "No user information" msgstr "" @@ -7682,20 +7868,20 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1078 templates/modals.html:19 +#: templates/js/translated/forms.js:1080 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1469 +#: templates/js/translated/forms.js:1471 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1673 +#: templates/js/translated/forms.js:1675 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1893 +#: templates/js/translated/forms.js:1895 msgid "Clear input" msgstr "" @@ -7708,7 +7894,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:863 +#: templates/js/translated/stock.js:1042 msgid "Select Stock Items" msgstr "" @@ -7888,14 +8074,6 @@ msgstr "" msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509 -msgid "Format" -msgstr "" - -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510 -msgid "Select file format" -msgstr "" - #: templates/js/translated/order.js:460 msgid "Select Line Items" msgstr "" @@ -7908,7 +8086,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123 msgid "Stock Status" msgstr "" @@ -7957,7 +8135,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163 -#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986 +#: templates/js/translated/part.js:1777 templates/js/translated/part.js:1988 msgid "Unit Price" msgstr "" @@ -8042,7 +8220,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1249 +#: templates/js/translated/stock.js:1428 msgid "Shipped to customer" msgstr "" @@ -8206,92 +8384,92 @@ msgstr "" msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:946 +#: templates/js/translated/part.js:948 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:970 +#: templates/js/translated/part.js:972 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1037 templates/js/translated/part.js:1297 +#: templates/js/translated/part.js:1039 templates/js/translated/part.js:1299 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1207 +#: templates/js/translated/part.js:1209 msgid "No category" msgstr "" -#: templates/js/translated/part.js:1230 +#: templates/js/translated/part.js:1232 #: templates/js/translated/table_filters.js:412 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493 -#: templates/js/translated/stock.js:2089 +#: templates/js/translated/part.js:1323 templates/js/translated/part.js:1495 +#: templates/js/translated/stock.js:2282 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1337 +#: templates/js/translated/part.js:1339 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108 +#: templates/js/translated/part.js:1514 templates/js/translated/stock.js:2301 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1576 +#: templates/js/translated/part.js:1578 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152 +#: templates/js/translated/part.js:1592 templates/js/translated/stock.js:2345 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1634 +#: templates/js/translated/part.js:1636 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055 +#: templates/js/translated/part.js:1687 templates/js/translated/stock.js:1234 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056 +#: templates/js/translated/part.js:1688 templates/js/translated/stock.js:1235 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1692 +#: templates/js/translated/part.js:1694 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1714 +#: templates/js/translated/part.js:1716 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1728 +#: templates/js/translated/part.js:1730 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1753 +#: templates/js/translated/part.js:1755 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1808 +#: templates/js/translated/part.js:1810 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1809 +#: templates/js/translated/part.js:1811 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1910 +#: templates/js/translated/part.js:1912 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1929 +#: templates/js/translated/part.js:1931 msgid "Single Price Difference" msgstr "" @@ -8365,316 +8543,340 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:72 +#: templates/js/translated/stock.js:73 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173 msgid "Next available serial number" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174 +#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175 msgid "Latest serial number" msgstr "Số seri mới nhất" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:101 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:109 +#: templates/js/translated/stock.js:110 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:145 +#: templates/js/translated/stock.js:146 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:185 +#: templates/js/translated/stock.js:186 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:224 +#: templates/js/translated/stock.js:225 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:231 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:373 +#: templates/js/translated/stock.js:374 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:386 +#: templates/js/translated/stock.js:387 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:411 +#: templates/js/translated/stock.js:412 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416 +#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:432 +#: templates/js/translated/stock.js:433 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:452 +#: templates/js/translated/stock.js:453 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:506 +#: templates/js/translated/stock.js:507 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:517 +#: templates/js/translated/stock.js:518 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:518 +#: templates/js/translated/stock.js:519 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:627 +#: templates/js/translated/stock.js:628 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:628 +#: templates/js/translated/stock.js:629 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:713 +#: templates/js/translated/stock.js:706 +msgid "Warning: Merge operation cannot be reversed" +msgstr "" + +#: templates/js/translated/stock.js:707 +msgid "Some information will be lost when merging stock items" +msgstr "" + +#: templates/js/translated/stock.js:709 +msgid "Stock transaction history will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:710 +msgid "Supplier part information will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:796 +msgid "Confirm stock item merge" +msgstr "" + +#: templates/js/translated/stock.js:797 +msgid "Merge Stock Items" +msgstr "" + +#: templates/js/translated/stock.js:892 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:893 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:899 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:721 +#: templates/js/translated/stock.js:900 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:725 +#: templates/js/translated/stock.js:904 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:726 +#: templates/js/translated/stock.js:905 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:730 +#: templates/js/translated/stock.js:909 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:731 users/models.py:202 +#: templates/js/translated/stock.js:910 users/models.py:205 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:735 templates/stock_table.html:57 +#: templates/js/translated/stock.js:914 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:864 +#: templates/js/translated/stock.js:1043 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1022 +#: templates/js/translated/stock.js:1201 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1024 +#: templates/js/translated/stock.js:1203 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1029 +#: templates/js/translated/stock.js:1208 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1230 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1077 +#: templates/js/translated/stock.js:1256 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1134 +#: templates/js/translated/stock.js:1313 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1420 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1245 +#: templates/js/translated/stock.js:1424 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1432 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1259 +#: templates/js/translated/stock.js:1438 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1417 +#: templates/js/translated/stock.js:1596 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1422 +#: templates/js/translated/stock.js:1601 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1425 +#: templates/js/translated/stock.js:1604 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1429 +#: templates/js/translated/stock.js:1608 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1431 +#: templates/js/translated/stock.js:1610 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1437 +#: templates/js/translated/stock.js:1616 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1618 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1441 +#: templates/js/translated/stock.js:1620 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1625 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1453 +#: templates/js/translated/stock.js:1632 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1455 +#: templates/js/translated/stock.js:1634 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1457 +#: templates/js/translated/stock.js:1636 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1461 +#: templates/js/translated/stock.js:1640 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1511 +#: templates/js/translated/stock.js:1690 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1584 +#: templates/js/translated/stock.js:1763 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1622 +#: templates/js/translated/stock.js:1801 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691 +#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1731 +#: templates/js/translated/stock.js:1910 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1758 +#: templates/js/translated/stock.js:1937 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1760 +#: templates/js/translated/stock.js:1939 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2138 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1959 +#: templates/js/translated/stock.js:2152 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1960 +#: templates/js/translated/stock.js:2153 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2377 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2206 +#: templates/js/translated/stock.js:2399 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2231 +#: templates/js/translated/stock.js:2424 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2250 +#: templates/js/translated/stock.js:2443 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2269 +#: templates/js/translated/stock.js:2462 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2480 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2310 +#: templates/js/translated/stock.js:2503 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2318 +#: templates/js/translated/stock.js:2511 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2552 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2360 +#: templates/js/translated/stock.js:2553 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2411 +#: templates/js/translated/stock.js:2604 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2462 +#: templates/js/translated/stock.js:2655 msgid "Uninstall Stock Item" msgstr "" @@ -9059,18 +9261,26 @@ msgid "Move stock" msgstr "" #: templates/stock_table.html:52 +msgid "Merge selected stock items" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Merge stock" +msgstr "" + +#: templates/stock_table.html:53 msgid "Order selected items" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change status" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change stock status" msgstr "" -#: templates/stock_table.html:57 +#: templates/stock_table.html:58 msgid "Delete selected items" msgstr "" @@ -9106,35 +9316,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:189 +#: users/models.py:192 msgid "Permission set" msgstr "" -#: users/models.py:197 +#: users/models.py:200 msgid "Group" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "View" msgstr "" -#: users/models.py:200 +#: users/models.py:203 msgid "Permission to view items" msgstr "" -#: users/models.py:202 +#: users/models.py:205 msgid "Permission to add items" msgstr "" -#: users/models.py:204 +#: users/models.py:207 msgid "Change" msgstr "" -#: users/models.py:204 +#: users/models.py:207 msgid "Permissions to edit items" msgstr "" -#: users/models.py:206 +#: users/models.py:209 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po index 08a330c36f..a3b8d4255c 100644 --- a/InvenTree/locale/zh/LC_MESSAGES/django.po +++ b/InvenTree/locale/zh/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-12-08 23:43+0000\n" -"PO-Revision-Date: 2021-12-08 23:47\n" +"POT-Creation-Date: 2021-12-21 02:57+0000\n" +"PO-Revision-Date: 2021-12-21 03:01\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -34,50 +34,50 @@ msgstr "未找到指定操作" msgid "Enter date" msgstr "输入日期" -#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93 +#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 build/forms.py:93 #: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57 -#: part/forms.py:108 templates/account/email_confirm.html:20 +#: part/forms.py:78 templates/account/email_confirm.html:20 #: templates/js/translated/forms.js:595 msgid "Confirm" msgstr "确认" -#: InvenTree/forms.py:136 +#: InvenTree/forms.py:142 msgid "Confirm delete" msgstr "确认删除" -#: InvenTree/forms.py:137 +#: InvenTree/forms.py:143 msgid "Confirm item deletion" msgstr "确认删除" -#: InvenTree/forms.py:168 +#: InvenTree/forms.py:174 msgid "Enter password" msgstr "输入密码" -#: InvenTree/forms.py:169 +#: InvenTree/forms.py:175 msgid "Enter new password" msgstr "输入新密码" -#: InvenTree/forms.py:176 +#: InvenTree/forms.py:182 msgid "Confirm password" msgstr "确认密码" -#: InvenTree/forms.py:177 +#: InvenTree/forms.py:183 msgid "Confirm new password" msgstr "确认新密码" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:215 msgid "Select Category" msgstr "选择分类" -#: InvenTree/forms.py:230 +#: InvenTree/forms.py:236 msgid "Email (again)" msgstr "Email (再次)" -#: InvenTree/forms.py:234 +#: InvenTree/forms.py:240 msgid "Email address confirmation" msgstr "Email 地址确认" -#: InvenTree/forms.py:254 +#: InvenTree/forms.py:260 msgid "You must type the same email each time." msgstr "您必须输入相同的 Email 。" @@ -123,7 +123,7 @@ msgstr "缺少文件" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:132 stock/models.py:1852 +#: InvenTree/models.py:132 stock/models.py:1967 #: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "附件" @@ -136,12 +136,12 @@ msgstr "选择附件" #: company/models.py:564 order/models.py:124 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:1258 +#: templates/js/translated/company.js:826 templates/js/translated/part.js:1260 msgid "Link" msgstr "链接" #: InvenTree/models.py:140 build/models.py:330 part/models.py:798 -#: stock/models.py:524 +#: stock/models.py:527 msgid "Link to external URL" msgstr "链接到外部 URL" @@ -153,10 +153,10 @@ msgstr "注释" msgid "File comment" msgstr "文件注释" -#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213 -#: common/models.py:1214 part/models.py:2205 part/models.py:2225 +#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1219 +#: common/models.py:1220 part/models.py:2205 part/models.py:2225 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2341 +#: templates/js/translated/stock.js:2534 msgid "User" msgstr "用户" @@ -202,8 +202,8 @@ msgstr "选择无效" #: templates/InvenTree/settings/plugin_settings.html:23 #: templates/InvenTree/settings/settings.html:268 #: templates/js/translated/company.js:638 templates/js/translated/part.js:506 -#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565 -#: templates/js/translated/stock.js:2134 +#: templates/js/translated/part.js:643 templates/js/translated/part.js:1567 +#: templates/js/translated/stock.js:2327 msgid "Name" msgstr "名称" @@ -212,23 +212,23 @@ msgstr "名称" #: company/models.py:570 company/templates/company/company_base.html:68 #: company/templates/company/manufacturer_part.html:76 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70 +#: order/models.py:122 part/models.py:764 part/templates/part/category.html:74 #: part/templates/part/part_base.html:163 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:89 +#: stock/templates/stock/location.html:93 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428 +#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540 #: templates/js/translated/build.js:1627 templates/js/translated/company.js:345 #: templates/js/translated/company.js:548 #: templates/js/translated/company.js:837 templates/js/translated/order.js:836 #: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258 -#: templates/js/translated/part.js:565 templates/js/translated/part.js:933 -#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188 -#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653 -#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146 -#: templates/js/translated/stock.js:2191 +#: templates/js/translated/part.js:565 templates/js/translated/part.js:935 +#: templates/js/translated/part.js:1020 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1586 templates/js/translated/part.js:1655 +#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339 +#: templates/js/translated/stock.js:2384 msgid "Description" msgstr "描述信息" @@ -248,83 +248,83 @@ msgstr "必须是有效数字" msgid "Filename" msgstr "文件名" -#: InvenTree/settings.py:689 +#: InvenTree/settings.py:698 msgid "German" msgstr "德语" -#: InvenTree/settings.py:690 +#: InvenTree/settings.py:699 msgid "Greek" msgstr "希腊语" -#: InvenTree/settings.py:691 +#: InvenTree/settings.py:700 msgid "English" msgstr "英语" -#: InvenTree/settings.py:692 +#: InvenTree/settings.py:701 msgid "Spanish" msgstr "西班牙语" -#: InvenTree/settings.py:693 +#: InvenTree/settings.py:702 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:694 +#: InvenTree/settings.py:703 msgid "French" msgstr "法语" -#: InvenTree/settings.py:695 +#: InvenTree/settings.py:704 msgid "Hebrew" msgstr "希伯来语" -#: InvenTree/settings.py:696 +#: InvenTree/settings.py:705 msgid "Italian" msgstr "意大利语" -#: InvenTree/settings.py:697 +#: InvenTree/settings.py:706 msgid "Japanese" msgstr "日语" -#: InvenTree/settings.py:698 +#: InvenTree/settings.py:707 msgid "Korean" msgstr "韩语" -#: InvenTree/settings.py:699 +#: InvenTree/settings.py:708 msgid "Dutch" msgstr "荷兰语" -#: InvenTree/settings.py:700 +#: InvenTree/settings.py:709 msgid "Norwegian" msgstr "挪威语" -#: InvenTree/settings.py:701 +#: InvenTree/settings.py:710 msgid "Polish" msgstr "波兰语" -#: InvenTree/settings.py:702 +#: InvenTree/settings.py:711 msgid "Portugese" msgstr "" -#: InvenTree/settings.py:703 +#: InvenTree/settings.py:712 msgid "Russian" msgstr "俄语" -#: InvenTree/settings.py:704 +#: InvenTree/settings.py:713 msgid "Swedish" msgstr "瑞典语" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:714 msgid "Thai" msgstr "泰语" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:715 msgid "Turkish" msgstr "土耳其语" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:716 msgid "Vietnamese" msgstr "越南语" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:717 msgid "Chinese" msgstr "中文(简体)" @@ -341,7 +341,7 @@ msgid "InvenTree system health checks failed" msgstr "InventTree系统健康检查失败" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313 +#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313 msgid "Pending" msgstr "待定" @@ -349,14 +349,14 @@ msgstr "待定" msgid "Placed" msgstr "已添加" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:319 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "完成" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:313 +#: InvenTree/status_codes.py:318 msgid "Cancelled" msgstr "已取消" @@ -370,7 +370,7 @@ msgstr "丢失" msgid "Returned" msgstr "已退回" -#: InvenTree/status_codes.py:143 order/models.py:939 +#: InvenTree/status_codes.py:143 order/models.py:941 #: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255 msgid "Shipped" msgstr "已发货" @@ -395,83 +395,87 @@ msgstr "已销毁" msgid "Rejected" msgstr "Rejected" -#: InvenTree/status_codes.py:269 +#: InvenTree/status_codes.py:272 msgid "Legacy stock tracking entry" msgstr "旧库存跟踪条目" -#: InvenTree/status_codes.py:271 +#: InvenTree/status_codes.py:274 msgid "Stock item created" msgstr "库存项已创建" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Edited stock item" msgstr "已编辑库存项" -#: InvenTree/status_codes.py:274 +#: InvenTree/status_codes.py:277 msgid "Assigned serial number" msgstr "已分配序列号" -#: InvenTree/status_codes.py:276 +#: InvenTree/status_codes.py:279 msgid "Stock counted" msgstr "库存计数" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Stock manually added" msgstr "已手动添加库存" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Stock manually removed" msgstr "库存手动删除" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Location changed" msgstr "仓储地点已更改" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Installed into assembly" msgstr "安装到组装中" -#: InvenTree/status_codes.py:283 +#: InvenTree/status_codes.py:286 msgid "Removed from assembly" msgstr "已从组装中删除" -#: InvenTree/status_codes.py:285 +#: InvenTree/status_codes.py:288 msgid "Installed component item" msgstr "已安装组件项" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Removed component item" msgstr "已删除组件项" -#: InvenTree/status_codes.py:288 +#: InvenTree/status_codes.py:291 msgid "Split from parent item" msgstr "从父项拆分" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Split child item" msgstr "拆分子项" -#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064 +msgid "Merged stock items" +msgstr "" + +#: InvenTree/status_codes.py:296 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "发送给客户" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:297 msgid "Returned from customer" msgstr "从客户退货" -#: InvenTree/status_codes.py:294 +#: InvenTree/status_codes.py:299 msgid "Build order output created" msgstr "已创建生产订单输出" -#: InvenTree/status_codes.py:295 +#: InvenTree/status_codes.py:300 msgid "Build order output completed" msgstr "生产订单输出已完成" -#: InvenTree/status_codes.py:297 +#: InvenTree/status_codes.py:302 msgid "Received against purchase order" msgstr "收到定购单" -#: InvenTree/status_codes.py:312 +#: InvenTree/status_codes.py:317 msgid "Production" msgstr "生产中" @@ -575,16 +579,16 @@ msgstr "" msgid "Barcode associated with Stock Item" msgstr "" -#: build/forms.py:36 build/models.py:1283 -#: build/templates/build/build_base.html:132 -#: build/templates/build/detail.html:35 common/models.py:1253 +#: build/forms.py:36 build/models.py:1286 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:35 common/models.py:1259 #: company/forms.py:42 company/templates/company/supplier_part.html:251 -#: order/models.py:794 order/models.py:1205 order/serializers.py:810 +#: order/models.py:796 order/models.py:1207 order/serializers.py:810 #: order/templates/order/order_wizard/match_parts.html:30 -#: 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 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:193 +#: part/forms.py:209 part/forms.py:225 part/models.py:2576 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:967 part/templates/part/detail.html:1053 +#: part/templates/part/detail.html:961 part/templates/part/detail.html:1047 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -592,10 +596,10 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:142 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:174 -#: stock/templates/stock/item_base.html:255 -#: stock/templates/stock/item_base.html:263 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443 +#: stock/templates/stock/item_base.html:180 +#: stock/templates/stock/item_base.html:261 +#: stock/templates/stock/item_base.html:269 +#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555 #: templates/js/translated/build.js:240 templates/js/translated/build.js:440 #: templates/js/translated/build.js:634 templates/js/translated/build.js:644 #: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367 @@ -604,10 +608,10 @@ msgstr "" #: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859 #: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036 #: templates/js/translated/order.js:2150 templates/js/translated/part.js:843 -#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919 -#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382 -#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326 -#: templates/js/translated/stock.js:2428 +#: templates/js/translated/part.js:1798 templates/js/translated/part.js:1921 +#: templates/js/translated/part.js:1999 templates/js/translated/stock.js:383 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750 +#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621 msgid "Quantity" msgstr "数量" @@ -616,8 +620,8 @@ msgid "Enter quantity for build output" msgstr "输入生产产出数量" #: build/forms.py:41 order/serializers.py:814 stock/forms.py:81 -#: stock/serializers.py:314 templates/js/translated/stock.js:229 -#: templates/js/translated/stock.js:383 +#: stock/serializers.py:314 templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:384 msgid "Serial Numbers" msgstr "序列号" @@ -661,7 +665,7 @@ msgstr "生产订单" #: order/templates/order/sales_order_detail.html:92 #: order/templates/order/so_sidebar.html:13 #: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221 -#: templates/InvenTree/search.html:145 +#: templates/InvenTree/search.html:139 #: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 msgid "Build Orders" msgstr "生产订单" @@ -671,11 +675,11 @@ msgid "Build Order Reference" msgstr "相关生产订单" #: build/models.py:199 order/models.py:210 order/models.py:536 -#: order/models.py:801 part/models.py:2585 +#: order/models.py:803 part/models.py:2585 #: part/templates/part/bom_upload/match_parts.html:30 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124 +#: templates/js/translated/bom.js:547 templates/js/translated/build.js:1124 #: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144 msgid "Reference" msgstr "引用" @@ -695,7 +699,7 @@ msgstr "此次生产匹配的订单" #: build/models.py:225 build/templates/build/build_base.html:77 #: build/templates/build/detail.html:30 company/models.py:705 -#: order/models.py:854 order/models.py:928 +#: order/models.py:856 order/models.py:930 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357 #: part/models.py:2151 part/models.py:2167 part/models.py:2186 #: part/models.py:2203 part/models.py:2305 part/models.py:2427 @@ -706,20 +710,21 @@ msgstr "此次生产匹配的订单" #: report/templates/report/inventree_build_order_base.html:110 #: report/templates/report/inventree_po_report.html:90 #: report/templates/report/inventree_so_report.html:90 -#: templates/InvenTree/search.html:86 +#: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214 -#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625 +#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326 +#: templates/js/translated/bom.js:505 templates/js/translated/build.js:625 #: templates/js/translated/build.js:993 templates/js/translated/build.js:1364 #: templates/js/translated/build.js:1632 templates/js/translated/company.js:489 #: templates/js/translated/company.js:746 templates/js/translated/order.js:84 #: templates/js/translated/order.js:586 templates/js/translated/order.js:1004 #: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933 -#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918 -#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166 -#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747 -#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416 +#: templates/js/translated/order.js:2128 templates/js/translated/part.js:920 +#: templates/js/translated/part.js:1001 templates/js/translated/part.js:1168 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719 +#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:2609 msgid "Part" msgstr "商品" @@ -776,7 +781,7 @@ msgstr "生产状态" msgid "Build status code" msgstr "生产状态代码" -#: build/models.py:285 stock/models.py:528 +#: build/models.py:285 stock/models.py:531 msgid "Batch Code" msgstr "批量代码" @@ -830,27 +835,27 @@ msgstr "负责此生产订单的用户" #: build/models.py:329 build/templates/build/detail.html:102 #: company/templates/company/manufacturer_part.html:102 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:354 stock/models.py:522 -#: stock/templates/stock/item_base.html:374 +#: part/templates/part/part_base.html:354 stock/models.py:525 +#: stock/templates/stock/item_base.html:372 msgid "External Link" 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:144 order/models.py:803 order/models.py:1049 +#: order/models.py:144 order/models.py:805 order/models.py:1051 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 part/models.py:925 -#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50 +#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594 -#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332 -#: stock/serializers.py:624 stock/serializers.py:711 +#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597 +#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332 +#: stock/serializers.py:638 stock/serializers.py:736 stock/serializers.py:868 #: stock/templates/stock/stock_sidebar.html:21 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711 #: templates/js/translated/company.js:842 templates/js/translated/order.js:1149 #: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280 -#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616 +#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795 msgid "Notes" msgstr "备注" @@ -883,7 +888,7 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "库存物品分配过度!" -#: build/models.py:1133 order/models.py:1165 +#: build/models.py:1133 order/models.py:1167 msgid "Allocation quantity must be greater than zero" msgstr "分配数量必须大于0" @@ -891,51 +896,52 @@ msgstr "分配数量必须大于0" msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1193 +#: build/models.py:1196 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1253 stock/templates/stock/item_base.html:346 -#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605 +#: build/models.py:1256 stock/templates/stock/item_base.html:344 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1605 #: templates/navbar.html:35 msgid "Build" msgstr "生产" -#: build/models.py:1254 +#: build/models.py:1257 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690 -#: order/serializers.py:708 stock/serializers.py:562 +#: build/models.py:1273 build/serializers.py:334 order/serializers.py:690 +#: order/serializers.py:708 stock/serializers.py:576 stock/serializers.py:694 #: stock/templates/stock/item_base.html:8 -#: stock/templates/stock/item_base.html:16 -#: stock/templates/stock/item_base.html:368 +#: stock/templates/stock/item_base.html:22 +#: stock/templates/stock/item_base.html:366 #: templates/js/translated/build.js:413 templates/js/translated/build.js:418 #: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1577 #: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837 #: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030 -#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277 +#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:2470 msgid "Stock Item" msgstr "库存项" -#: build/models.py:1271 +#: build/models.py:1274 msgid "Source stock item" msgstr "源库存项" -#: build/models.py:1284 +#: build/models.py:1287 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1292 +#: build/models.py:1295 msgid "Install into" msgstr "安装到" -#: build/models.py:1293 +#: build/models.py:1296 msgid "Destination stock item" msgstr "" -#: build/serializers.py:137 build/serializers.py:357 +#: build/serializers.py:137 build/serializers.py:363 msgid "Build Output" msgstr "" @@ -956,16 +962,16 @@ msgid "This build output is not fully allocated" msgstr "" #: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294 -#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813 -#: stock/templates/stock/item_base.html:314 +#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:729 +#: stock/serializers.py:970 stock/templates/stock/item_base.html:312 #: templates/js/translated/barcode.js:384 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425 #: templates/js/translated/build.js:1032 templates/js/translated/order.js:508 #: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955 #: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044 -#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555 -#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497 -#: templates/js/translated/stock.js:2218 +#: templates/js/translated/part.js:177 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411 msgid "Location" msgstr "地点" @@ -975,11 +981,11 @@ msgstr "" #: build/serializers.py:197 build/templates/build/build_base.html:137 #: build/templates/build/detail.html:63 order/models.py:552 -#: order/serializers.py:247 stock/templates/stock/item_base.html:180 +#: order/serializers.py:247 stock/templates/stock/item_base.html:186 #: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661 #: templates/js/translated/order.js:591 templates/js/translated/order.js:840 -#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472 -#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444 +#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651 +#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637 msgid "Status" msgstr "状态" @@ -1000,33 +1006,33 @@ msgstr "" msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:319 +#: build/serializers.py:325 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:334 stock/serializers.py:569 +#: build/serializers.py:340 stock/serializers.py:583 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:348 order/models.py:277 order/serializers.py:240 -#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305 +#: build/serializers.py:354 order/models.py:277 order/serializers.py:240 +#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:390 order/serializers.py:741 +#: build/serializers.py:396 order/serializers.py:741 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:396 +#: build/serializers.py:402 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:403 +#: build/serializers.py:409 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:431 order/serializers.py:984 +#: build/serializers.py:437 order/serializers.py:984 msgid "Allocation items must be provided" msgstr "" @@ -1067,33 +1073,33 @@ msgstr "删除生产" msgid "Complete Build" msgstr "生产完成" -#: build/templates/build/build_base.html:82 +#: build/templates/build/build_base.html:87 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:96 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:98 +#: build/templates/build/build_base.html:103 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:105 +#: build/templates/build/build_base.html:110 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:110 +#: build/templates/build/build_base.html:115 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:115 +#: build/templates/build/build_base.html:120 msgid "Required build quantity has not yet been completed" msgstr "所需生产数量尚未完成" -#: build/templates/build/build_base.html:120 +#: build/templates/build/build_base.html:125 msgid "Stock has not been fully allocated to this Build Order" msgstr "" @@ -1131,12 +1137,12 @@ msgid "Completed" msgstr "已完成" #: build/templates/build/build_base.html:171 -#: build/templates/build/detail.html:95 order/models.py:925 -#: order/models.py:1021 order/templates/order/sales_order_base.html:9 +#: build/templates/build/detail.html:95 order/models.py:927 +#: order/models.py:1023 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:308 +#: stock/templates/stock/item_base.html:306 #: templates/js/translated/order.js:1218 msgid "Sales Order" msgstr "销售订单" @@ -1211,7 +1217,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136 +#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136 #: templates/js/translated/order.js:592 templates/js/translated/order.js:1138 msgid "Destination" msgstr "" @@ -1225,8 +1231,8 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:332 -#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451 +#: stock/templates/stock/item_base.html:330 +#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644 #: templates/js/translated/table_filters.js:151 #: templates/js/translated/table_filters.js:238 msgid "Batch" @@ -1278,7 +1284,7 @@ msgstr "订单所需部件" #: build/templates/build/detail.html:185 #: company/templates/company/detail.html:38 #: company/templates/company/detail.html:85 order/views.py:463 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order Parts" msgstr "订购商品" @@ -1347,7 +1353,7 @@ msgstr "生产备注" #: order/templates/order/purchase_order_detail.html:108 #: order/templates/order/sales_order_detail.html:127 #: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115 +#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115 #: stock/templates/stock/item.html:205 msgid "Edit Notes" msgstr "编辑备注" @@ -1489,7 +1495,7 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:340 common/models.py:998 common/models.py:1206 +#: common/models.py:340 common/models.py:1004 common/models.py:1212 msgid "Settings key (must be unique - case insensitive" msgstr "" @@ -1651,7 +1657,7 @@ msgstr "模板" msgid "Parts are templates by default" msgstr "" -#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956 +#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:1068 #: templates/js/translated/table_filters.js:168 #: templates/js/translated/table_filters.js:416 msgid "Assembly" @@ -1953,256 +1959,264 @@ msgid "Group to which new users are assigned on registration" msgstr "" #: common/models.py:961 -msgid "Enable URL integration" +msgid "Enforce MFA" msgstr "" #: common/models.py:962 -msgid "Enable plugins to add URL routes" +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:967 +msgid "Enable URL integration" msgstr "" #: common/models.py:968 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:974 msgid "Enable navigation integration" msgstr "" -#: common/models.py:969 +#: common/models.py:975 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:975 +#: common/models.py:981 msgid "Enable global setting integration" msgstr "" -#: common/models.py:976 +#: common/models.py:982 msgid "Enable plugins to integrate into inventree global settings" msgstr "" -#: common/models.py:982 +#: common/models.py:988 msgid "Enable app integration" msgstr "" -#: common/models.py:983 +#: common/models.py:989 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1029 +#: common/models.py:1035 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1030 +#: common/models.py:1036 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1035 +#: common/models.py:1041 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1036 +#: common/models.py:1042 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1041 +#: common/models.py:1047 msgid "Show latest parts" msgstr "显示最近商品" -#: common/models.py:1042 +#: common/models.py:1048 msgid "Show latest parts on the homepage" msgstr "在主页上显示最近商品" -#: common/models.py:1047 +#: common/models.py:1053 msgid "Recent Part Count" msgstr "" -#: common/models.py:1048 +#: common/models.py:1054 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1054 +#: common/models.py:1060 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1055 +#: common/models.py:1061 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1060 +#: common/models.py:1066 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1061 +#: common/models.py:1067 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1066 +#: common/models.py:1072 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1067 +#: common/models.py:1073 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1072 +#: common/models.py:1078 msgid "Show low stock" msgstr "" -#: common/models.py:1073 +#: common/models.py:1079 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1078 +#: common/models.py:1084 msgid "Show depleted stock" msgstr "" -#: common/models.py:1079 +#: common/models.py:1085 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1084 +#: common/models.py:1090 msgid "Show needed stock" msgstr "" -#: common/models.py:1085 +#: common/models.py:1091 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1090 +#: common/models.py:1096 msgid "Show expired stock" msgstr "" -#: common/models.py:1091 +#: common/models.py:1097 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1096 +#: common/models.py:1102 msgid "Show stale stock" msgstr "" -#: common/models.py:1097 +#: common/models.py:1103 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1102 +#: common/models.py:1108 msgid "Show pending builds" msgstr "" -#: common/models.py:1103 +#: common/models.py:1109 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1108 +#: common/models.py:1114 msgid "Show overdue builds" msgstr "显示逾期生产" -#: common/models.py:1109 +#: common/models.py:1115 msgid "Show overdue builds on the homepage" msgstr "在主页上显示逾期的生产" -#: common/models.py:1114 +#: common/models.py:1120 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1115 +#: common/models.py:1121 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1120 +#: common/models.py:1126 msgid "Show overdue POs" msgstr "" -#: common/models.py:1121 +#: common/models.py:1127 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1126 +#: common/models.py:1132 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1127 +#: common/models.py:1133 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1132 +#: common/models.py:1138 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1133 +#: common/models.py:1139 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1139 +#: common/models.py:1145 msgid "Inline label display" msgstr "内嵌标签显示" -#: common/models.py:1140 +#: common/models.py:1146 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "在浏览器中显示 PDF 标签,而不是以文件形式下载" -#: common/models.py:1146 +#: common/models.py:1152 msgid "Inline report display" msgstr "" -#: common/models.py:1147 +#: common/models.py:1153 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "在浏览器中显示 PDF 报告,而不是以文件形式下载" -#: common/models.py:1153 +#: common/models.py:1159 msgid "Search Preview Results" msgstr "搜索预览结果" -#: common/models.py:1154 +#: common/models.py:1160 msgid "Number of results to show in search preview window" msgstr "搜索预览窗口中显示的结果数" -#: common/models.py:1160 +#: common/models.py:1166 msgid "Search Show Stock" msgstr "" -#: common/models.py:1161 +#: common/models.py:1167 msgid "Display stock levels in search preview window" msgstr "" -#: common/models.py:1167 +#: common/models.py:1173 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1168 +#: common/models.py:1174 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1174 +#: common/models.py:1180 msgid "Show Quantity in Forms" msgstr "在表格中显示数量" -#: common/models.py:1175 +#: common/models.py:1181 msgid "Display available part quantity in some forms" msgstr "在某些表格中显示可用的商品数量" -#: common/models.py:1181 +#: common/models.py:1187 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1182 +#: common/models.py:1188 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1188 +#: common/models.py:1194 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1189 +#: common/models.py:1195 msgid "InvenTree navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1254 company/forms.py:43 +#: common/models.py:1260 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1261 company/serializers.py:264 +#: common/models.py:1267 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801 +#: templates/js/translated/part.js:852 templates/js/translated/part.js:1803 msgid "Price" msgstr "价格" -#: common/models.py:1262 +#: common/models.py:1268 msgid "Unit price at specified quantity" msgstr "" @@ -2290,7 +2304,7 @@ msgid "Contact phone number" msgstr "联系电话" #: company/models.py:125 company/templates/company/company_base.html:129 -#: templates/InvenTree/settings/user.html:47 +#: templates/InvenTree/settings/user.html:48 msgid "Email" msgstr "电子邮件" @@ -2347,8 +2361,8 @@ msgstr "货币" msgid "Default currency used for this company" msgstr "该公司使用的默认货币" -#: company/models.py:320 company/models.py:535 stock/models.py:468 -#: stock/templates/stock/item_base.html:135 +#: company/models.py:320 company/models.py:535 stock/models.py:469 +#: stock/templates/stock/item_base.html:141 msgid "Base Part" msgstr "" @@ -2359,7 +2373,7 @@ msgstr "选择商品" #: company/models.py:335 company/templates/company/company_base.html:73 #: company/templates/company/manufacturer_part.html:91 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:381 +#: stock/templates/stock/item_base.html:379 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:514 #: templates/js/translated/company.js:797 templates/js/translated/part.js:232 @@ -2393,7 +2407,7 @@ msgstr "制造商商品描述" #: company/models.py:409 company/models.py:558 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:391 +#: stock/templates/stock/item_base.html:389 msgid "Manufacturer Part" msgstr "制造商商品" @@ -2403,8 +2417,8 @@ msgstr "参数名称" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:1845 templates/js/translated/company.js:644 -#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117 +#: stock/models.py:1960 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1296 msgid "Value" msgstr "数值" @@ -2431,7 +2445,7 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:224 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219 -#: part/bom.py:247 stock/templates/stock/item_base.html:398 +#: part/bom.py:247 stock/templates/stock/item_base.html:396 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:771 templates/js/translated/order.js:823 #: templates/js/translated/part.js:213 templates/js/translated/part.js:800 @@ -2479,8 +2493,8 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "最低收费(例如库存费)" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:491 stock/templates/stock/item_base.html:339 -#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612 +#: stock/models.py:493 stock/templates/stock/item_base.html:337 +#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1791 msgid "Packaging" msgstr "打包" @@ -2506,7 +2520,7 @@ msgstr "货币代码" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 -#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322 +#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322 msgid "Company" msgstr "公司" @@ -2548,11 +2562,11 @@ msgid "Download image from URL" msgstr "从 URL 下载图片" #: company/templates/company/company_base.html:83 order/models.py:547 -#: order/templates/order/sales_order_base.html:115 stock/models.py:509 -#: stock/models.py:510 stock/serializers.py:610 -#: stock/templates/stock/item_base.html:291 +#: order/templates/order/sales_order_base.html:115 stock/models.py:512 +#: stock/models.py:513 stock/serializers.py:624 +#: stock/templates/stock/item_base.html:289 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1240 -#: templates/js/translated/stock.js:2259 +#: templates/js/translated/stock.js:2452 msgid "Customer" msgstr "客户" @@ -2571,7 +2585,7 @@ msgstr "上传图片" #: company/templates/company/detail.html:15 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:124 +#: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "供应商商品" @@ -2590,14 +2604,14 @@ msgstr "新建供应商商品" #: company/templates/company/detail.html:79 #: company/templates/company/manufacturer_part.html:127 #: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:167 part/templates/part/detail.html:342 +#: part/templates/part/category.html:171 part/templates/part/detail.html:342 #: part/templates/part/detail.html:370 msgid "Options" msgstr "选项" #: company/templates/company/detail.html:37 #: company/templates/company/detail.html:84 -#: part/templates/part/category.html:173 +#: part/templates/part/category.html:177 msgid "Order parts" msgstr "订购商品" @@ -2611,7 +2625,7 @@ msgstr "删除商品" msgid "Delete Parts" msgstr "删除商品" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109 +#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "制造商商品" @@ -2633,8 +2647,8 @@ msgstr "供货商库存" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33 -#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203 +#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 #: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 #: users/models.py:45 msgid "Purchase Orders" @@ -2655,8 +2669,8 @@ msgstr "新建采购订单" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37 -#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223 +#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 #: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 #: users/models.py:46 msgid "Sales Orders" @@ -2698,7 +2712,7 @@ msgid "Supplier List" msgstr "供应商列表" #: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184 +#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 #: templates/navbar.html:46 msgid "Manufacturers" msgstr "制造商" @@ -2706,7 +2720,7 @@ msgstr "制造商" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:67 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76 msgid "Order part" msgstr "订购商品" @@ -2728,7 +2742,7 @@ msgstr "内部商品" #: company/templates/company/manufacturer_part.html:114 #: company/templates/company/supplier_part.html:15 company/views.py:49 #: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:194 templates/navbar.html:45 +#: templates/InvenTree/search.html:188 templates/navbar.html:45 msgid "Suppliers" msgstr "供应商" @@ -2742,7 +2756,7 @@ msgstr "删除供应商商品" #: company/templates/company/manufacturer_part.html:254 #: part/templates/part/detail.html:344 part/templates/part/detail.html:372 #: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31 -#: users/models.py:206 +#: users/models.py:209 msgid "Delete" msgstr "删除" @@ -2765,7 +2779,7 @@ msgid "Delete parameters" msgstr "删除参数" #: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:867 +#: part/templates/part/detail.html:861 msgid "Add Parameter" msgstr "添加参数" @@ -2794,9 +2808,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:476 -#: stock/templates/stock/item_base.html:403 -#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569 +#: company/templates/company/supplier_part.html:24 stock/models.py:477 +#: stock/templates/stock/item_base.html:401 +#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1748 msgid "Supplier Part" msgstr "供应商商品" @@ -2816,13 +2830,13 @@ msgid "Supplier Part Stock" msgstr "供货商商品库存" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:20 stock/templates/stock/location.html:162 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:166 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163 -#: templates/js/translated/stock.js:359 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167 +#: templates/js/translated/stock.js:360 msgid "New Stock Item" msgstr "" @@ -2832,7 +2846,7 @@ msgid "Supplier Part Orders" msgstr "供应商商品订单" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:68 +#: part/templates/part/detail.html:72 msgid "Order Part" msgstr "订购商品" @@ -2843,7 +2857,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:1717 +#: part/templates/part/prices.html:271 part/views.py:1713 msgid "Add Price Break" msgstr "" @@ -2851,11 +2865,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1779 +#: company/templates/company/supplier_part.html:224 part/views.py:1775 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1765 +#: company/templates/company/supplier_part.html:238 part/views.py:1761 msgid "Edit Price Break" msgstr "" @@ -2869,14 +2883,14 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:15 #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 -#: templates/InvenTree/search.html:156 +#: templates/InvenTree/search.html:150 #: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434 -#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059 -#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748 -#: templates/js/translated/stock.js:1401 templates/navbar.html:28 +#: templates/js/translated/bom.js:328 templates/js/translated/part.js:434 +#: templates/js/translated/part.js:569 templates/js/translated/part.js:1061 +#: templates/js/translated/part.js:1222 templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:1580 templates/navbar.html:28 msgid "Stock" msgstr "库存" @@ -2895,11 +2909,11 @@ msgid "Pricing" msgstr "定价" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:133 -#: stock/templates/stock/location.html:147 -#: stock/templates/stock/location.html:159 +#: stock/templates/stock/location.html:137 +#: stock/templates/stock/location.html:151 +#: stock/templates/stock/location.html:163 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158 +#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "库存项" @@ -2912,7 +2926,7 @@ msgstr "新增供应商" msgid "New Manufacturer" msgstr "新建制造商" -#: company/views.py:61 templates/InvenTree/search.html:214 +#: company/views.py:61 templates/InvenTree/search.html:208 #: templates/navbar.html:57 msgid "Customers" msgstr "客户信息" @@ -3121,7 +3135,7 @@ msgstr "" msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:562 order/models.py:1026 +#: order/models.py:562 order/models.py:1028 #: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429 msgid "Shipment Date" msgstr "" @@ -3130,7 +3144,7 @@ msgstr "" msgid "shipped by" msgstr "" -#: order/models.py:634 +#: order/models.py:635 msgid "Order cannot be completed as no parts have been assigned" msgstr "" @@ -3138,172 +3152,172 @@ msgstr "" msgid "Only a pending order can be marked as complete" msgstr "" -#: order/models.py:643 +#: order/models.py:642 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:647 +#: order/models.py:645 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:795 +#: order/models.py:797 msgid "Item quantity" msgstr "" -#: order/models.py:801 +#: order/models.py:803 msgid "Line item reference" msgstr "" -#: order/models.py:803 +#: order/models.py:805 msgid "Line item notes" msgstr "" -#: order/models.py:833 order/models.py:924 order/models.py:1020 +#: order/models.py:835 order/models.py:926 order/models.py:1022 #: templates/js/translated/order.js:1820 msgid "Order" msgstr "" -#: order/models.py:834 order/templates/order/order_base.html:9 +#: order/models.py:836 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:353 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/order.js:801 templates/js/translated/part.js:775 -#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240 +#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433 msgid "Purchase Order" msgstr "" -#: order/models.py:855 +#: order/models.py:857 msgid "Supplier part" msgstr "供应商商品" -#: order/models.py:862 order/templates/order/order_base.html:163 +#: order/models.py:864 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:589 templates/js/translated/order.js:1118 #: templates/js/translated/part.js:847 templates/js/translated/part.js:873 #: templates/js/translated/table_filters.js:317 msgid "Received" msgstr "" -#: order/models.py:863 +#: order/models.py:865 msgid "Number of items received" msgstr "" -#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:360 -#: templates/js/translated/stock.js:1600 +#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:358 +#: templates/js/translated/stock.js:1779 msgid "Purchase Price" msgstr "采购价格" -#: order/models.py:871 +#: order/models.py:873 msgid "Unit purchase price" msgstr "" -#: order/models.py:879 +#: order/models.py:881 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:934 part/templates/part/part_pricing.html:112 +#: order/models.py:936 part/templates/part/part_pricing.html:112 #: part/templates/part/prices.html:116 part/templates/part/prices.html:284 msgid "Sale Price" msgstr "销售价格" -#: order/models.py:935 +#: order/models.py:937 msgid "Unit sale price" msgstr "" -#: order/models.py:940 +#: order/models.py:942 msgid "Shipped quantity" msgstr "" -#: order/models.py:1027 +#: order/models.py:1029 msgid "Date of shipment" msgstr "" -#: order/models.py:1034 +#: order/models.py:1036 msgid "Checked By" msgstr "" -#: order/models.py:1035 +#: order/models.py:1037 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1043 +#: order/models.py:1045 msgid "Shipment number" msgstr "" -#: order/models.py:1050 +#: order/models.py:1052 msgid "Shipment notes" msgstr "" -#: order/models.py:1057 +#: order/models.py:1059 msgid "Tracking Number" msgstr "" -#: order/models.py:1058 +#: order/models.py:1060 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1068 +#: order/models.py:1070 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1071 +#: order/models.py:1073 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1147 order/models.py:1149 +#: order/models.py:1149 order/models.py:1151 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1153 +#: order/models.py:1155 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1155 +#: order/models.py:1157 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1158 +#: order/models.py:1160 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1162 +#: order/models.py:1164 msgid "StockItem is over-allocated" msgstr "" -#: order/models.py:1168 order/serializers.py:734 +#: order/models.py:1170 order/serializers.py:734 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1171 +#: order/models.py:1173 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1172 +#: order/models.py:1174 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1180 +#: order/models.py:1182 msgid "Line" msgstr "" -#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953 +#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953 #: templates/js/translated/model_renderers.js:251 msgid "Shipment" msgstr "" -#: order/models.py:1189 +#: order/models.py:1191 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1201 +#: order/models.py:1203 msgid "Item" msgstr "" -#: order/models.py:1202 +#: order/models.py:1204 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1205 +#: order/models.py:1207 msgid "Enter stock allocation quantity" msgstr "" @@ -3530,7 +3544,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/build.js:245 templates/js/translated/build.js:1256 #: templates/js/translated/order.js:537 templates/js/translated/order.js:1488 -#: templates/js/translated/stock.js:592 +#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761 msgid "Remove row" msgstr "移除行" @@ -3722,7 +3736,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188 +#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1188 msgid "Actions" msgstr "" @@ -3797,24 +3811,24 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:760 +#: part/api.py:777 msgid "Must be greater than zero" msgstr "必须大于0" -#: part/api.py:764 +#: part/api.py:781 msgid "Must be a valid quantity" msgstr "必须是有效的数量" -#: part/api.py:779 +#: part/api.py:796 msgid "Specify location for initial part stock" msgstr "指定初始初始商品仓储地点" -#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833 +#: part/api.py:827 part/api.py:831 part/api.py:846 part/api.py:850 msgid "This field is required" msgstr "此字段为必填" #: part/bom.py:125 part/models.py:81 part/models.py:816 -#: part/templates/part/category.html:104 part/templates/part/part_base.html:338 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:338 msgid "Default Location" msgstr "默认仓储地点" @@ -3822,99 +3836,43 @@ msgstr "默认仓储地点" msgid "Available Stock" msgstr "可用库存" -#: part/forms.py:63 -msgid "File Format" -msgstr "文件格式" - -#: part/forms.py:63 -msgid "Select output file format" -msgstr "选择输出文件格式" - -#: part/forms.py:65 -msgid "Cascading" -msgstr "" - -#: part/forms.py:65 -msgid "Download cascading / multi-level BOM" -msgstr "" - -#: part/forms.py:67 -msgid "Levels" -msgstr "等级" - -#: part/forms.py:67 -msgid "Select maximum number of BOM levels to export (0 = all levels)" -msgstr "" - -#: part/forms.py:69 -msgid "Include Parameter Data" -msgstr "包含参数数据" - -#: part/forms.py:69 -msgid "Include part parameters data in exported BOM" -msgstr "在导出的BOM 中包含商品参数" - -#: part/forms.py:71 -msgid "Include Stock Data" -msgstr "包括库存数据" - -#: part/forms.py:71 -msgid "Include part stock data in exported BOM" -msgstr "在导出 BOM 中包括库存数据" - -#: part/forms.py:73 -msgid "Include Manufacturer Data" -msgstr "包括制造商数据" - -#: part/forms.py:73 -msgid "Include part manufacturer data in exported BOM" -msgstr "在导出 BOM 中包含制造商数据" - -#: part/forms.py:75 -msgid "Include Supplier Data" -msgstr "包含供应商数据" - -#: part/forms.py:75 -msgid "Include part supplier data in exported BOM" -msgstr "在导出 BOM 中包含供应商数据" - -#: part/forms.py:96 part/models.py:2427 +#: part/forms.py:66 part/models.py:2427 msgid "Parent Part" msgstr "" -#: part/forms.py:97 part/templates/part/bom_duplicate.html:7 +#: part/forms.py:67 part/templates/part/bom_duplicate.html:7 msgid "Select parent part to copy BOM from" msgstr "" -#: part/forms.py:103 +#: part/forms.py:73 msgid "Clear existing BOM items" msgstr "" -#: part/forms.py:109 +#: part/forms.py:79 msgid "Confirm BOM duplication" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "validate" msgstr "" -#: part/forms.py:127 +#: part/forms.py:97 msgid "Confirm that the BOM is correct" msgstr "确认BOM 正确" -#: part/forms.py:163 +#: part/forms.py:133 msgid "Select part category" msgstr "选择类别" -#: part/forms.py:200 +#: part/forms.py:170 msgid "Add parameter template to same level categories" msgstr "" -#: part/forms.py:204 +#: part/forms.py:174 msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:224 +#: part/forms.py:194 msgid "Input quantity for price calculation" msgstr "" @@ -3930,24 +3888,24 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "此类别商品的默认关键字" -#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11 +#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "商品类别" -#: part/models.py:96 part/templates/part/category.html:124 -#: templates/InvenTree/search.html:101 templates/stats.html:84 +#: part/models.py:96 part/templates/part/category.html:128 +#: templates/InvenTree/search.html:95 templates/stats.html:84 #: users/models.py:40 msgid "Part Categories" msgstr "商品类别" #: part/models.py:358 part/templates/part/cat_link.html:3 -#: part/templates/part/category.html:13 part/templates/part/category.html:129 -#: part/templates/part/category.html:149 +#: part/templates/part/category.html:17 part/templates/part/category.html:133 +#: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 -#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 #: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1597 templates/navbar.html:21 +#: templates/js/translated/part.js:1599 templates/navbar.html:21 #: templates/stats.html:80 templates/stats.html:89 users/models.py:41 msgid "Parts" msgstr "商品" @@ -4001,7 +3959,7 @@ msgstr "" msgid "Part description" msgstr "商品描述" -#: part/models.py:770 part/templates/part/category.html:82 +#: part/models.py:770 part/templates/part/category.html:86 #: part/templates/part/part_base.html:302 msgid "Keywords" msgstr "关键词" @@ -4014,7 +3972,7 @@ msgstr "提高搜索结果可见性的关键字" #: part/templates/part/part_base.html:265 #: part/templates/part/set_category.html:15 #: templates/InvenTree/settings/settings.html:172 -#: templates/js/translated/part.js:1202 +#: templates/js/translated/part.js:1204 msgid "Category" msgstr "类别" @@ -4023,8 +3981,8 @@ msgid "Part category" msgstr "商品类别" #: part/models.py:784 part/templates/part/part_base.html:274 -#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155 -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/part.js:557 templates/js/translated/part.js:1157 +#: templates/js/translated/stock.js:1552 msgid "IPN" msgstr "" @@ -4145,8 +4103,8 @@ msgstr "" msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2310 templates/js/translated/part.js:1648 -#: templates/js/translated/stock.js:1097 +#: part/models.py:2310 templates/js/translated/part.js:1650 +#: templates/js/translated/stock.js:1276 msgid "Test Name" msgstr "" @@ -4162,7 +4120,7 @@ msgstr "" msgid "Enter description for this test" msgstr "" -#: part/models.py:2322 templates/js/translated/part.js:1657 +#: part/models.py:2322 templates/js/translated/part.js:1659 #: templates/js/translated/table_filters.js:281 msgid "Required" msgstr "" @@ -4171,7 +4129,7 @@ msgstr "" msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2328 templates/js/translated/part.js:1665 +#: part/models.py:2328 templates/js/translated/part.js:1667 msgid "Requires Value" msgstr "" @@ -4179,7 +4137,7 @@ msgstr "" msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2334 templates/js/translated/part.js:1672 +#: part/models.py:2334 templates/js/translated/part.js:1674 msgid "Requires Attachment" msgstr "" @@ -4241,8 +4199,8 @@ msgstr "" msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2578 templates/js/translated/bom.js:454 -#: templates/js/translated/bom.js:528 +#: part/models.py:2578 templates/js/translated/bom.js:566 +#: templates/js/translated/bom.js:640 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "可选项" @@ -4275,8 +4233,8 @@ msgstr "" msgid "BOM line checksum" msgstr "" -#: part/models.py:2594 templates/js/translated/bom.js:545 -#: templates/js/translated/bom.js:552 +#: part/models.py:2594 templates/js/translated/bom.js:657 +#: templates/js/translated/bom.js:664 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" @@ -4286,7 +4244,7 @@ msgstr "继承项" msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2600 templates/js/translated/bom.js:537 +#: part/models.py:2600 templates/js/translated/bom.js:649 msgid "Allow Variants" msgstr "" @@ -4406,100 +4364,100 @@ msgstr "" msgid "This will validate each line in the BOM." msgstr "" -#: part/templates/part/category.html:24 part/templates/part/category.html:28 +#: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:32 +#: part/templates/part/category.html:36 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:38 +#: part/templates/part/category.html:42 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:43 +#: part/templates/part/category.html:47 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:44 +#: part/templates/part/category.html:48 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:48 +#: part/templates/part/category.html:52 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:53 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:57 +#: part/templates/part/category.html:61 msgid "Create new part category" msgstr "新建商品类别" -#: part/templates/part/category.html:58 +#: part/templates/part/category.html:62 msgid "New Category" msgstr "" -#: part/templates/part/category.html:76 part/templates/part/category.html:89 +#: part/templates/part/category.html:80 part/templates/part/category.html:93 msgid "Category Path" msgstr "类别路径" -#: part/templates/part/category.html:90 +#: part/templates/part/category.html:94 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:110 part/templates/part/category.html:201 +#: part/templates/part/category.html:114 part/templates/part/category.html:205 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "子类别" -#: part/templates/part/category.html:115 +#: part/templates/part/category.html:119 msgid "Parts (Including subcategories)" msgstr "商品 (包括子类别)" -#: part/templates/part/category.html:152 +#: part/templates/part/category.html:156 msgid "Export Part Data" msgstr "导出商品数据" -#: part/templates/part/category.html:153 part/templates/part/category.html:177 +#: part/templates/part/category.html:157 part/templates/part/category.html:181 msgid "Export" msgstr "导出" -#: part/templates/part/category.html:156 +#: part/templates/part/category.html:160 msgid "Create new part" msgstr "新建商品" -#: part/templates/part/category.html:157 templates/js/translated/bom.js:40 +#: part/templates/part/category.html:161 templates/js/translated/bom.js:152 msgid "New Part" msgstr "新商品" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set category" msgstr "设置类别" -#: part/templates/part/category.html:171 +#: part/templates/part/category.html:175 msgid "Set Category" msgstr "设置类别" -#: part/templates/part/category.html:175 +#: part/templates/part/category.html:179 msgid "Print Labels" msgstr "打印标签" -#: part/templates/part/category.html:177 +#: part/templates/part/category.html:181 msgid "Export Data" msgstr "导出数据" -#: part/templates/part/category.html:191 +#: part/templates/part/category.html:195 msgid "Part Parameters" msgstr "商品参数" -#: part/templates/part/category.html:268 +#: part/templates/part/category.html:288 msgid "Create Part Category" msgstr "创建商品类别" -#: part/templates/part/category.html:295 +#: part/templates/part/category.html:315 msgid "Create Part" msgstr "创建商品" @@ -4566,24 +4524,24 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:17 +#: part/templates/part/detail.html:21 msgid "Part Stock" msgstr "商品库存" -#: part/templates/part/detail.html:29 +#: part/templates/part/detail.html:33 #, python-format msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:39 +#: part/templates/part/detail.html:43 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:44 +#: part/templates/part/detail.html:48 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:101 +#: part/templates/part/detail.html:105 msgid "Sales Order Allocations" msgstr "" @@ -4619,7 +4577,7 @@ msgstr "" msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:242 +#: part/templates/part/detail.html:242 templates/js/translated/bom.js:70 msgid "Export BOM" msgstr "" @@ -4683,38 +4641,38 @@ msgstr "" msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:651 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:659 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:760 +#: part/templates/part/detail.html:754 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:817 +#: part/templates/part/detail.html:811 msgid "Edit Part Notes" msgstr "编辑商品注释" -#: part/templates/part/detail.html:930 +#: part/templates/part/detail.html:924 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:942 +#: part/templates/part/detail.html:936 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:954 +#: part/templates/part/detail.html:948 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1043 +#: part/templates/part/detail.html:1037 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4745,20 +4703,20 @@ msgid "Subscribe to notifications for this part" msgstr "" #: part/templates/part/part_base.html:43 -#: stock/templates/stock/item_base.html:28 -#: stock/templates/stock/location.html:29 +#: stock/templates/stock/item_base.html:34 +#: stock/templates/stock/location.html:33 msgid "Barcode actions" msgstr "" #: part/templates/part/part_base.html:45 -#: stock/templates/stock/item_base.html:32 -#: stock/templates/stock/location.html:31 templates/qr_button.html:1 +#: stock/templates/stock/item_base.html:38 +#: stock/templates/stock/location.html:35 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" #: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:48 -#: stock/templates/stock/location.html:32 +#: stock/templates/stock/item_base.html:54 +#: stock/templates/stock/location.html:36 msgid "Print Label" msgstr "打印标签" @@ -4767,8 +4725,8 @@ msgid "Show pricing information" msgstr "" #: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:103 -#: stock/templates/stock/location.html:40 +#: stock/templates/stock/item_base.html:109 +#: stock/templates/stock/location.html:44 msgid "Stock actions" msgstr "" @@ -4848,7 +4806,7 @@ msgstr "" msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1235 +#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1237 msgid "On Order" msgstr "" @@ -4864,12 +4822,12 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:566 +#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1066 -#: templates/js/translated/part.js:1239 +#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1068 +#: templates/js/translated/part.js:1241 msgid "Building" msgstr "" @@ -4882,7 +4840,7 @@ msgid "Latest Serial Number" msgstr "" #: part/templates/part/part_base.html:328 -#: stock/templates/stock/item_base.html:159 +#: stock/templates/stock/item_base.html:165 msgid "Search for serial number" msgstr "" @@ -4921,7 +4879,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:520 +#: templates/js/translated/bom.js:632 msgid "No supplier pricing available" msgstr "" @@ -5036,7 +4994,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626 msgid "Supplier Cost" msgstr "" @@ -5058,7 +5016,7 @@ msgstr "" msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1788 +#: part/templates/part/prices.html:215 part/views.py:1784 msgid "Add Internal Price Break" msgstr "" @@ -5078,9 +5036,9 @@ msgstr "" msgid "Set category for the following parts" msgstr "为以下商品设置类别" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476 -#: templates/js/translated/part.js:436 templates/js/translated/part.js:1056 -#: templates/js/translated/part.js:1243 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588 +#: templates/js/translated/part.js:436 templates/js/translated/part.js:1058 +#: templates/js/translated/part.js:1245 msgid "No Stock" msgstr "" @@ -5154,67 +5112,67 @@ msgstr "" msgid "Match Parts" msgstr "匹配商品" -#: part/views.py:1196 +#: part/views.py:1195 msgid "Export Bill of Materials" msgstr "" -#: part/views.py:1248 +#: part/views.py:1244 msgid "Confirm Part Deletion" msgstr "确认删除商品" -#: part/views.py:1255 +#: part/views.py:1251 msgid "Part was deleted" msgstr "商品已删除" -#: part/views.py:1264 +#: part/views.py:1260 msgid "Part Pricing" msgstr "商品价格" -#: part/views.py:1413 +#: part/views.py:1409 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1423 +#: part/views.py:1419 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1430 +#: part/views.py:1426 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1489 templates/js/translated/part.js:313 +#: part/views.py:1485 templates/js/translated/part.js:313 msgid "Edit Part Category" msgstr "编辑商品类别" -#: part/views.py:1527 +#: part/views.py:1523 msgid "Delete Part Category" msgstr "删除商品类别" -#: part/views.py:1533 +#: part/views.py:1529 msgid "Part category was deleted" msgstr "商品类别已删除" -#: part/views.py:1542 +#: part/views.py:1538 msgid "Create Category Parameter Template" msgstr "创建类别参数模板" -#: part/views.py:1643 +#: part/views.py:1639 msgid "Edit Category Parameter Template" msgstr "编辑类别参数模板" -#: part/views.py:1699 +#: part/views.py:1695 msgid "Delete Category Parameter Template" msgstr "删除类别参数模板" -#: part/views.py:1721 +#: part/views.py:1717 msgid "Added new price break" msgstr "" -#: part/views.py:1797 +#: part/views.py:1793 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1805 +#: part/views.py:1801 msgid "Delete Internal Price Break" msgstr "" @@ -5388,12 +5346,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:514 stock/templates/stock/item_base.html:149 +#: stock/models.py:517 stock/templates/stock/item_base.html:155 #: templates/js/translated/build.js:238 templates/js/translated/build.js:642 #: templates/js/translated/build.js:1018 #: templates/js/translated/model_renderers.js:95 #: templates/js/translated/order.js:99 templates/js/translated/order.js:1945 -#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414 +#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415 msgid "Serial Number" msgstr "序列号" @@ -5402,19 +5360,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:1833 +#: stock/models.py:1948 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:1839 +#: stock/models.py:1954 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 #: templates/InvenTree/settings/plugin.html:49 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174 +#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367 msgid "Date" msgstr "" @@ -5432,17 +5390,18 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434 +#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748 +#: templates/js/translated/stock.js:2627 msgid "Serial" msgstr "" -#: stock/api.py:446 +#: stock/api.py:478 msgid "Quantity is required" msgstr "" -#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571 -#: stock/templates/stock/item_base.html:186 -#: templates/js/translated/stock.js:1522 +#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574 +#: stock/templates/stock/item_base.html:192 +#: templates/js/translated/stock.js:1701 msgid "Expiry Date" msgstr "" @@ -5490,12 +5449,12 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:60 stock/models.py:608 -#: stock/templates/stock/item_base.html:417 +#: stock/models.py:60 stock/models.py:611 +#: stock/templates/stock/item_base.html:415 msgid "Owner" msgstr "" -#: stock/models.py:61 stock/models.py:609 +#: stock/models.py:61 stock/models.py:612 msgid "Select Owner" msgstr "" @@ -5528,150 +5487,190 @@ msgstr "" msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:460 +#: stock/models.py:461 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:469 +#: stock/models.py:470 msgid "Base part" msgstr "" -#: stock/models.py:477 +#: stock/models.py:478 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:482 stock/templates/stock/location.html:12 +#: stock/models.py:484 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "仓储地点" -#: stock/models.py:485 +#: stock/models.py:487 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:492 +#: stock/models.py:494 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:497 stock/templates/stock/item_base.html:299 +#: stock/models.py:500 stock/templates/stock/item_base.html:297 msgid "Installed In" msgstr "" -#: stock/models.py:500 +#: stock/models.py:503 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:516 +#: stock/models.py:519 msgid "Serial number for this item" msgstr "" -#: stock/models.py:530 +#: stock/models.py:533 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:534 +#: stock/models.py:537 msgid "Stock Quantity" msgstr "" -#: stock/models.py:543 +#: stock/models.py:546 msgid "Source Build" msgstr "" -#: stock/models.py:545 +#: stock/models.py:548 msgid "Build for this stock item" msgstr "" -#: stock/models.py:556 +#: stock/models.py:559 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:559 +#: stock/models.py:562 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:565 +#: stock/models.py:568 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:572 +#: stock/models.py:575 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete on deplete" msgstr "" -#: stock/models.py:585 +#: stock/models.py:588 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:595 stock/templates/stock/item.html:111 +#: stock/models.py:598 stock/templates/stock/item.html:111 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:604 +#: stock/models.py:607 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1072 +#: stock/models.py:1068 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1078 +#: stock/models.py:1074 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1084 +#: stock/models.py:1080 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1087 +#: stock/models.py:1083 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1090 +#: stock/models.py:1086 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1097 +#: stock/models.py:1093 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1255 +#: stock/models.py:1164 +msgid "Stock item has been assigned to a sales order" +msgstr "" + +#: stock/models.py:1167 +msgid "Stock item is installed in another item" +msgstr "" + +#: stock/models.py:1170 +msgid "Stock item contains other items" +msgstr "" + +#: stock/models.py:1173 +msgid "Stock item has been assigned to a customer" +msgstr "" + +#: stock/models.py:1176 +msgid "Stock item is currently in production" +msgstr "" + +#: stock/models.py:1179 +msgid "Serialized stock cannot be merged" +msgstr "" + +#: stock/models.py:1186 stock/serializers.py:773 +msgid "Duplicate stock items" +msgstr "" + +#: stock/models.py:1190 +msgid "Stock items must refer to the same part" +msgstr "" + +#: stock/models.py:1194 +msgid "Stock items must refer to the same supplier part" +msgstr "" + +#: stock/models.py:1198 +msgid "Stock status codes must match" +msgstr "" + +#: stock/models.py:1369 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1753 +#: stock/models.py:1868 msgid "Entry notes" msgstr "" -#: stock/models.py:1810 +#: stock/models.py:1925 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1931 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1834 +#: stock/models.py:1949 msgid "Test name" msgstr "" -#: stock/models.py:1840 templates/js/translated/table_filters.js:271 +#: stock/models.py:1955 templates/js/translated/table_filters.js:271 msgid "Test result" msgstr "" -#: stock/models.py:1846 +#: stock/models.py:1961 msgid "Test output value" msgstr "" -#: stock/models.py:1853 +#: stock/models.py:1968 msgid "Test result attachment" msgstr "" -#: stock/models.py:1859 +#: stock/models.py:1974 msgid "Test notes" msgstr "" @@ -5696,7 +5695,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:326 stock/serializers.py:814 +#: stock/serializers.py:326 stock/serializers.py:730 stock/serializers.py:971 msgid "Destination stock location" msgstr "" @@ -5708,39 +5707,63 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:573 +#: stock/serializers.py:587 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:577 +#: stock/serializers.py:591 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:581 +#: stock/serializers.py:595 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:611 +#: stock/serializers.py:625 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:617 +#: stock/serializers.py:631 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:639 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:635 stock/serializers.py:722 +#: stock/serializers.py:649 stock/serializers.py:879 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:684 +#: stock/serializers.py:737 +msgid "Stock merging notes" +msgstr "" + +#: stock/serializers.py:742 +msgid "Allow mismatched suppliers" +msgstr "" + +#: stock/serializers.py:743 +msgid "Allow stock items with different supplier parts to be merged" +msgstr "" + +#: stock/serializers.py:748 +msgid "Allow mismatched status" +msgstr "" + +#: stock/serializers.py:749 +msgid "Allow stock items with different status codes to be merged" +msgstr "" + +#: stock/serializers.py:759 +msgid "At least two stock items must be provided" +msgstr "" + +#: stock/serializers.py:841 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:712 +#: stock/serializers.py:869 msgid "Stock transaction notes" msgstr "" @@ -5765,7 +5788,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50 +#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:56 msgid "Test Report" msgstr "" @@ -5797,197 +5820,189 @@ msgstr "" msgid "Delete Test Result" msgstr "" -#: stock/templates/stock/item_base.html:35 +#: stock/templates/stock/item_base.html:41 #: templates/js/translated/barcode.js:330 #: templates/js/translated/barcode.js:335 msgid "Unlink Barcode" msgstr "" -#: stock/templates/stock/item_base.html:37 +#: stock/templates/stock/item_base.html:43 msgid "Link Barcode" msgstr "" -#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24 +#: stock/templates/stock/item_base.html:45 templates/stock_table.html:24 msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:46 +#: stock/templates/stock/item_base.html:52 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:71 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:47 templates/stock_table.html:50 +#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/location.html:51 templates/stock_table.html:50 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:78 templates/stock_table.html:48 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49 +#: stock/templates/stock/item_base.html:81 templates/stock_table.html:49 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:84 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:53 +#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/location.html:57 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53 +#: stock/templates/stock/item_base.html:91 templates/stock_table.html:54 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:94 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:97 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:94 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:108 +#: stock/templates/stock/item_base.html:114 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:111 +#: stock/templates/stock/item_base.html:117 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:119 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:116 +#: stock/templates/stock/item_base.html:122 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:160 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:163 +#: stock/templates/stock/item_base.html:169 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:190 +#: stock/templates/stock/item_base.html:196 #: templates/js/translated/table_filters.js:252 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 #: templates/js/translated/table_filters.js:258 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:199 -#: templates/js/translated/stock.js:1535 +#: stock/templates/stock/item_base.html:205 +#: templates/js/translated/stock.js:1714 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:204 +#: stock/templates/stock/item_base.html:210 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:208 +#: stock/templates/stock/item_base.html:214 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:226 +#: stock/templates/stock/item_base.html:232 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:239 msgid "This stock item is in production and cannot be edited." msgstr "此库存项目正在生产中,无法编辑。" -#: stock/templates/stock/item_base.html:234 +#: stock/templates/stock/item_base.html:240 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:247 +#: stock/templates/stock/item_base.html:253 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:261 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:263 +#: stock/templates/stock/item_base.html:269 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:269 +#: stock/templates/stock/item_base.html:275 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:273 -msgid "This stock item cannot be deleted as it has child items" -msgstr "" - -#: stock/templates/stock/item_base.html:277 -msgid "This stock item will be automatically deleted when all stock is depleted." -msgstr "" - -#: stock/templates/stock/item_base.html:318 +#: stock/templates/stock/item_base.html:316 #: templates/js/translated/build.js:1040 msgid "No location set" msgstr "未设置仓储地点" -#: stock/templates/stock/item_base.html:325 +#: stock/templates/stock/item_base.html:323 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:367 +#: stock/templates/stock/item_base.html:365 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:385 +#: stock/templates/stock/item_base.html:383 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:410 +#: stock/templates/stock/item_base.html:408 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:500 +#: stock/templates/stock/item_base.html:498 msgid "Edit Stock Status" msgstr "" @@ -6041,59 +6056,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:33 +#: stock/templates/stock/location.html:37 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:65 msgid "Location actions" msgstr "仓储地操作" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:67 msgid "Edit location" msgstr "编辑仓储地" -#: stock/templates/stock/location.html:65 +#: stock/templates/stock/location.html:69 msgid "Delete location" msgstr "删除仓储地" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:79 msgid "Create new stock location" msgstr "新建仓储地点" -#: stock/templates/stock/location.html:76 +#: stock/templates/stock/location.html:80 msgid "New Location" msgstr "新建仓储地点" -#: stock/templates/stock/location.html:95 -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:99 +#: stock/templates/stock/location.html:105 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:102 +#: stock/templates/stock/location.html:106 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:119 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "您不在此仓储地的所有者列表中,无法编辑此仓储地。" -#: stock/templates/stock/location.html:128 -#: stock/templates/stock/location.html:175 +#: stock/templates/stock/location.html:132 +#: stock/templates/stock/location.html:179 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:142 templates/InvenTree/search.html:170 +#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "仓储地点" -#: stock/templates/stock/location.html:182 templates/stock_table.html:30 +#: stock/templates/stock/location.html:186 templates/stock_table.html:30 msgid "Printing Actions" msgstr "打印操作" -#: stock/templates/stock/location.html:186 templates/stock_table.html:34 +#: stock/templates/stock/location.html:190 templates/stock_table.html:34 msgid "Print labels" msgstr "打印标签" @@ -6178,7 +6193,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:727 templates/js/translated/stock.js:887 +#: stock/views.py:727 templates/js/translated/stock.js:1066 msgid "Confirm stock adjustment" msgstr "" @@ -6186,7 +6201,7 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:323 +#: stock/views.py:760 templates/js/translated/stock.js:324 msgid "Edit Stock Item" msgstr "" @@ -6198,7 +6213,7 @@ msgstr "新建仓储地点" msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1153 templates/js/translated/stock.js:303 +#: stock/views.py:1153 templates/js/translated/stock.js:304 msgid "Duplicate Stock Item" msgstr "" @@ -6314,10 +6329,6 @@ msgstr "" msgid "Search Results" msgstr "" -#: templates/InvenTree/search.html:22 -msgid "Enter a search query" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "条形码设置" @@ -6363,7 +6374,7 @@ msgstr "" msgid "Login Settings" msgstr "" -#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5 +#: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5 msgid "Signup" msgstr "" @@ -6648,7 +6659,7 @@ msgstr "名字" msgid "Last Name" msgstr "姓氏" -#: templates/InvenTree/settings/user.html:55 +#: templates/InvenTree/settings/user.html:54 msgid "The following email addresses are associated with your account:" msgstr "" @@ -6673,145 +6684,193 @@ msgid "Re-send Verification" msgstr "" #: templates/InvenTree/settings/user.html:87 -#: templates/InvenTree/settings/user.html:154 +#: templates/InvenTree/settings/user.html:149 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:94 +#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:201 msgid "Warning:" msgstr "" -#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:96 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:102 +#: templates/InvenTree/settings/user.html:104 msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:112 -msgid "Enter e-mail address" -msgstr "" - -#: templates/InvenTree/settings/user.html:114 +#: templates/InvenTree/settings/user.html:109 msgid "Add Email" msgstr "" -#: templates/InvenTree/settings/user.html:124 +#: templates/InvenTree/settings/user.html:117 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:129 +#: templates/InvenTree/settings/user.html:122 msgid "You can sign in to your account using any of the following third party accounts:" msgstr "" -#: templates/InvenTree/settings/user.html:163 -msgid "There are no social network accounts connected to your InvenTree account" +#: templates/InvenTree/settings/user.html:157 +msgid "You currently have no social network accounts connected to this account." msgstr "" -#: templates/InvenTree/settings/user.html:168 +#: templates/InvenTree/settings/user.html:162 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:179 -msgid "Active Sessions" +#: templates/InvenTree/settings/user.html:172 +msgid "Multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:185 -msgid "Log out active sessions (except this one)" +#: templates/InvenTree/settings/user.html:177 +msgid "You have these factors available:" msgstr "" -#: templates/InvenTree/settings/user.html:186 -msgid "Log Out Active Sessions" +#: templates/InvenTree/settings/user.html:187 +msgid "TOTP" 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" +#: templates/InvenTree/settings/user.html:193 +msgid "Static" msgstr "" #: templates/InvenTree/settings/user.html:202 -msgid "Last Activity" +msgid "You currently do not have any factors set up." msgstr "" -#: templates/InvenTree/settings/user.html:211 -#, python-format -msgid "%(time)s ago (this session)" +#: templates/InvenTree/settings/user.html:209 +msgid "Change factors" msgstr "" -#: templates/InvenTree/settings/user.html:213 -#, python-format -msgid "%(time)s ago" +#: templates/InvenTree/settings/user.html:210 +msgid "Setup multifactor" msgstr "" -#: templates/InvenTree/settings/user.html:224 -msgid "Do you really want to remove the selected email address?" +#: templates/InvenTree/settings/user.html:212 +msgid "Remove multifactor" msgstr "" +#: templates/InvenTree/settings/user.html:219 #: templates/InvenTree/settings/user_display.html:25 msgid "Theme Settings" msgstr "主题设置" +#: templates/InvenTree/settings/user.html:227 #: templates/InvenTree/settings/user_display.html:35 msgid "Select theme" msgstr "" +#: templates/InvenTree/settings/user.html:237 #: templates/InvenTree/settings/user_display.html:46 msgid "Set Theme" msgstr "设置主题" +#: templates/InvenTree/settings/user.html:246 #: templates/InvenTree/settings/user_display.html:54 msgid "Language Settings" msgstr "语言设置" +#: templates/InvenTree/settings/user.html:254 #: templates/InvenTree/settings/user_display.html:63 msgid "Select language" msgstr "" +#: templates/InvenTree/settings/user.html:270 #: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "%(lang_translated)s%% 已翻译" +#: templates/InvenTree/settings/user.html:272 #: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "无可用翻译" +#: templates/InvenTree/settings/user.html:279 #: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "设置语言" +#: templates/InvenTree/settings/user.html:281 #: templates/InvenTree/settings/user_display.html:91 msgid "Some languages are not complete" msgstr "" +#: templates/InvenTree/settings/user.html:283 #: templates/InvenTree/settings/user_display.html:93 msgid "Show only sufficent" msgstr "" +#: templates/InvenTree/settings/user.html:285 +#: templates/InvenTree/settings/user_display.html:95 +msgid "Show them too" +msgstr "" + +#: templates/InvenTree/settings/user.html:292 +#: templates/InvenTree/settings/user_display.html:101 +msgid "Help the translation efforts!" +msgstr "帮助翻译工作!" + +#: templates/InvenTree/settings/user.html:293 +#, python-format +msgid "Native language translation of the\n" +" InvenTree web application is community contributed via crowdin. Contributions are\n" +" welcomed and encouraged." +msgstr "" + +#: templates/InvenTree/settings/user.html:302 +msgid "Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:308 +msgid "Log out active sessions (except this one)" +msgstr "" + +#: templates/InvenTree/settings/user.html:309 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:318 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:319 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:323 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:324 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:325 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:334 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:336 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:348 +msgid "Do you really want to remove the selected email address?" +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." @@ -6830,7 +6889,7 @@ msgid "InvenTree Version Information" msgstr "" #: templates/about.html:11 templates/about.html:105 -#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53 +#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53 #: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662 #: templates/js/translated/modals.js:965 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 @@ -7006,6 +7065,71 @@ msgstr "" msgid "View in administration panel" msgstr "" +#: templates/allauth_2fa/authenticate.html:5 +msgid "Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:12 +msgid "Authenticate" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:6 +msgid "Two-Factor Authentication Backup Tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:17 +msgid "Backup tokens have been generated, but are not revealed here for security reasons. Press the button below to generate new ones." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:20 +msgid "No tokens. Press the button below to generate some." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:27 +msgid "Generate backup tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:31 +#: templates/allauth_2fa/setup.html:40 +msgid "back to settings" +msgstr "" + +#: templates/allauth_2fa/remove.html:6 +msgid "Disable Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/remove.html:9 +msgid "Are you sure?" +msgstr "" + +#: templates/allauth_2fa/remove.html:14 +msgid "Disable Two-Factor" +msgstr "" + +#: templates/allauth_2fa/setup.html:6 +msgid "Setup Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/setup.html:10 +msgid "Step 1" +msgstr "" + +#: templates/allauth_2fa/setup.html:14 +msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." +msgstr "" + +#: templates/allauth_2fa/setup.html:23 +msgid "Step 2" +msgstr "" + +#: templates/allauth_2fa/setup.html:27 +msgid "Input a token generated by the app:" +msgstr "" + +#: templates/allauth_2fa/setup.html:35 +msgid "Verify" +msgstr "" + #: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 msgid "Add Link" msgstr "" @@ -7044,13 +7168,13 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:991 +#: templates/js/translated/bom.js:1103 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134 +#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1134 #: templates/js/translated/build.js:1755 #: templates/js/translated/table_filters.js:178 msgid "Available" @@ -7239,7 +7363,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018 msgid "Remove stock item" msgstr "" @@ -7281,91 +7405,153 @@ msgstr "" msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:184 +#: templates/js/translated/bom.js:36 +msgid "Download BOM Template" +msgstr "" + +#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73 +#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510 +msgid "Format" +msgstr "" + +#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74 +#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511 +msgid "Select file format" +msgstr "" + +#: templates/js/translated/bom.js:81 +msgid "Cascading" +msgstr "" + +#: templates/js/translated/bom.js:82 +msgid "Download cascading / multi-level BOM" +msgstr "" + +#: templates/js/translated/bom.js:87 +msgid "Levels" +msgstr "等级" + +#: templates/js/translated/bom.js:88 +msgid "Select maximum number of BOM levels to export (0 = all levels)" +msgstr "" + +#: templates/js/translated/bom.js:94 +msgid "Include Parameter Data" +msgstr "包含参数数据" + +#: templates/js/translated/bom.js:95 +msgid "Include part parameter data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:100 +msgid "Include Stock Data" +msgstr "包括库存数据" + +#: templates/js/translated/bom.js:101 +msgid "Include part stock data in exported BOM" +msgstr "在导出 BOM 中包括库存数据" + +#: templates/js/translated/bom.js:106 +msgid "Include Manufacturer Data" +msgstr "包括制造商数据" + +#: templates/js/translated/bom.js:107 +msgid "Include part manufacturer data in exported BOM" +msgstr "在导出 BOM 中包含制造商数据" + +#: templates/js/translated/bom.js:112 +msgid "Include Supplier Data" +msgstr "包含供应商数据" + +#: templates/js/translated/bom.js:113 +msgid "Include part supplier data in exported BOM" +msgstr "在导出 BOM 中包含供应商数据" + +#: templates/js/translated/bom.js:296 msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:228 +#: templates/js/translated/bom.js:340 msgid "Select and add a new variant item using the input below" msgstr "" -#: templates/js/translated/bom.js:239 +#: templates/js/translated/bom.js:351 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:245 +#: templates/js/translated/bom.js:357 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:284 +#: templates/js/translated/bom.js:396 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:285 +#: templates/js/translated/bom.js:397 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:404 +#: templates/js/translated/bom.js:516 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116 +#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1116 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:413 +#: templates/js/translated/bom.js:525 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:485 +#: templates/js/translated/bom.js:597 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:500 +#: templates/js/translated/bom.js:612 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:507 +#: templates/js/translated/bom.js:619 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645 +#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:616 +#: templates/js/translated/bom.js:728 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:618 +#: templates/js/translated/bom.js:730 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:620 +#: templates/js/translated/bom.js:732 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796 +#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779 +#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860 +#: templates/js/translated/bom.js:830 templates/js/translated/build.js:860 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:774 +#: templates/js/translated/bom.js:886 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100 +#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1100 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:996 +#: templates/js/translated/bom.js:1108 msgid "Inherited from parent BOM" msgstr "" @@ -7464,7 +7650,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1199 templates/stock_table.html:52 +#: templates/js/translated/build.js:1199 templates/stock_table.html:53 msgid "Order stock" msgstr "" @@ -7509,9 +7695,9 @@ msgstr "" msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147 -#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333 -#: templates/js/translated/stock.js:2128 +#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1149 +#: templates/js/translated/part.js:1560 templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:2321 msgid "Select" msgstr "" @@ -7519,7 +7705,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347 +#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2540 msgid "No user information" msgstr "没有用户信息" @@ -7682,20 +7868,20 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1078 templates/modals.html:19 +#: templates/js/translated/forms.js:1080 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1469 +#: templates/js/translated/forms.js:1471 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1673 +#: templates/js/translated/forms.js:1675 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1893 +#: templates/js/translated/forms.js:1895 msgid "Clear input" msgstr "" @@ -7708,7 +7894,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:863 +#: templates/js/translated/stock.js:1042 msgid "Select Stock Items" msgstr "选择库存项" @@ -7888,14 +8074,6 @@ msgstr "" msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509 -msgid "Format" -msgstr "" - -#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510 -msgid "Select file format" -msgstr "" - #: templates/js/translated/order.js:460 msgid "Select Line Items" msgstr "" @@ -7908,7 +8086,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930 +#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123 msgid "Stock Status" msgstr "" @@ -7957,7 +8135,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163 -#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986 +#: templates/js/translated/part.js:1777 templates/js/translated/part.js:1988 msgid "Unit Price" msgstr "单价" @@ -8042,7 +8220,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048 -#: templates/js/translated/stock.js:1249 +#: templates/js/translated/stock.js:1428 msgid "Shipped to customer" msgstr "" @@ -8206,92 +8384,92 @@ msgstr "可销售商品" msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:946 +#: templates/js/translated/part.js:948 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:970 +#: templates/js/translated/part.js:972 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:1037 templates/js/translated/part.js:1297 +#: templates/js/translated/part.js:1039 templates/js/translated/part.js:1299 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:1207 +#: templates/js/translated/part.js:1209 msgid "No category" msgstr "没有分类" -#: templates/js/translated/part.js:1230 +#: templates/js/translated/part.js:1232 #: templates/js/translated/table_filters.js:412 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493 -#: templates/js/translated/stock.js:2089 +#: templates/js/translated/part.js:1323 templates/js/translated/part.js:1495 +#: templates/js/translated/stock.js:2282 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1337 +#: templates/js/translated/part.js:1339 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108 +#: templates/js/translated/part.js:1514 templates/js/translated/stock.js:2301 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1576 +#: templates/js/translated/part.js:1578 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152 +#: templates/js/translated/part.js:1592 templates/js/translated/stock.js:2345 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1634 +#: templates/js/translated/part.js:1636 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055 +#: templates/js/translated/part.js:1687 templates/js/translated/stock.js:1234 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056 +#: templates/js/translated/part.js:1688 templates/js/translated/stock.js:1235 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1692 +#: templates/js/translated/part.js:1694 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1714 +#: templates/js/translated/part.js:1716 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1728 +#: templates/js/translated/part.js:1730 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1753 +#: templates/js/translated/part.js:1755 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1808 +#: templates/js/translated/part.js:1810 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1809 +#: templates/js/translated/part.js:1811 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1910 +#: templates/js/translated/part.js:1912 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1929 +#: templates/js/translated/part.js:1931 msgid "Single Price Difference" msgstr "" @@ -8365,316 +8543,340 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" -#: templates/js/translated/stock.js:72 +#: templates/js/translated/stock.js:73 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172 +#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173 msgid "Next available serial number" msgstr "" -#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174 +#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175 msgid "Latest serial number" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:101 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:109 +#: templates/js/translated/stock.js:110 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:145 +#: templates/js/translated/stock.js:146 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:185 +#: templates/js/translated/stock.js:186 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:224 +#: templates/js/translated/stock.js:225 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:230 +#: templates/js/translated/stock.js:231 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:373 +#: templates/js/translated/stock.js:374 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:386 +#: templates/js/translated/stock.js:387 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:411 +#: templates/js/translated/stock.js:412 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416 +#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:432 +#: templates/js/translated/stock.js:433 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:452 +#: templates/js/translated/stock.js:453 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:462 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:506 +#: templates/js/translated/stock.js:507 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:517 +#: templates/js/translated/stock.js:518 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:518 +#: templates/js/translated/stock.js:519 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:627 +#: templates/js/translated/stock.js:628 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:628 +#: templates/js/translated/stock.js:629 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:713 +#: templates/js/translated/stock.js:706 +msgid "Warning: Merge operation cannot be reversed" +msgstr "" + +#: templates/js/translated/stock.js:707 +msgid "Some information will be lost when merging stock items" +msgstr "" + +#: templates/js/translated/stock.js:709 +msgid "Stock transaction history will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:710 +msgid "Supplier part information will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:796 +msgid "Confirm stock item merge" +msgstr "" + +#: templates/js/translated/stock.js:797 +msgid "Merge Stock Items" +msgstr "" + +#: templates/js/translated/stock.js:892 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:714 +#: templates/js/translated/stock.js:893 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:720 +#: templates/js/translated/stock.js:899 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:721 +#: templates/js/translated/stock.js:900 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:725 +#: templates/js/translated/stock.js:904 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:726 +#: templates/js/translated/stock.js:905 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:730 +#: templates/js/translated/stock.js:909 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:731 users/models.py:202 +#: templates/js/translated/stock.js:910 users/models.py:205 msgid "Add" msgstr "添加" -#: templates/js/translated/stock.js:735 templates/stock_table.html:57 +#: templates/js/translated/stock.js:914 templates/stock_table.html:58 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:824 +#: templates/js/translated/stock.js:1003 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:864 +#: templates/js/translated/stock.js:1043 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1022 +#: templates/js/translated/stock.js:1201 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1024 +#: templates/js/translated/stock.js:1203 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1029 +#: templates/js/translated/stock.js:1208 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1051 +#: templates/js/translated/stock.js:1230 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1077 +#: templates/js/translated/stock.js:1256 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1134 +#: templates/js/translated/stock.js:1313 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1241 +#: templates/js/translated/stock.js:1420 msgid "In production" msgstr "正在生产" -#: templates/js/translated/stock.js:1245 +#: templates/js/translated/stock.js:1424 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1432 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1259 +#: templates/js/translated/stock.js:1438 msgid "No stock location set" msgstr "未设置仓储地点" -#: templates/js/translated/stock.js:1417 +#: templates/js/translated/stock.js:1596 msgid "Stock item is in production" msgstr "库存品正在生产" -#: templates/js/translated/stock.js:1422 +#: templates/js/translated/stock.js:1601 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1425 +#: templates/js/translated/stock.js:1604 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1429 +#: templates/js/translated/stock.js:1608 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1431 +#: templates/js/translated/stock.js:1610 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1437 +#: templates/js/translated/stock.js:1616 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1618 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1441 +#: templates/js/translated/stock.js:1620 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1625 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1453 +#: templates/js/translated/stock.js:1632 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1455 +#: templates/js/translated/stock.js:1634 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1457 +#: templates/js/translated/stock.js:1636 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1461 +#: templates/js/translated/stock.js:1640 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1511 +#: templates/js/translated/stock.js:1690 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1584 +#: templates/js/translated/stock.js:1763 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1622 +#: templates/js/translated/stock.js:1801 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691 +#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1731 +#: templates/js/translated/stock.js:1910 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1758 +#: templates/js/translated/stock.js:1937 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1760 +#: templates/js/translated/stock.js:1939 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1945 +#: templates/js/translated/stock.js:2138 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1959 +#: templates/js/translated/stock.js:2152 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1960 +#: templates/js/translated/stock.js:2153 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2184 +#: templates/js/translated/stock.js:2377 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:2206 +#: templates/js/translated/stock.js:2399 msgid "Details" msgstr "详情" -#: templates/js/translated/stock.js:2231 +#: templates/js/translated/stock.js:2424 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2250 +#: templates/js/translated/stock.js:2443 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2269 +#: templates/js/translated/stock.js:2462 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2480 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2310 +#: templates/js/translated/stock.js:2503 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2318 +#: templates/js/translated/stock.js:2511 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2552 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2360 +#: templates/js/translated/stock.js:2553 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2411 +#: templates/js/translated/stock.js:2604 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2462 +#: templates/js/translated/stock.js:2655 msgid "Uninstall Stock Item" msgstr "" @@ -9059,18 +9261,26 @@ msgid "Move stock" msgstr "" #: templates/stock_table.html:52 +msgid "Merge selected stock items" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Merge stock" +msgstr "" + +#: templates/stock_table.html:53 msgid "Order selected items" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change status" msgstr "" -#: templates/stock_table.html:54 +#: templates/stock_table.html:55 msgid "Change stock status" msgstr "" -#: templates/stock_table.html:57 +#: templates/stock_table.html:58 msgid "Delete selected items" msgstr "" @@ -9106,35 +9316,35 @@ msgstr "权限" msgid "Important dates" msgstr "重要日期" -#: users/models.py:189 +#: users/models.py:192 msgid "Permission set" msgstr "权限设置" -#: users/models.py:197 +#: users/models.py:200 msgid "Group" msgstr "群组" -#: users/models.py:200 +#: users/models.py:203 msgid "View" msgstr "视图" -#: users/models.py:200 +#: users/models.py:203 msgid "Permission to view items" msgstr "查看项目权限" -#: users/models.py:202 +#: users/models.py:205 msgid "Permission to add items" msgstr "添加项目权限" -#: users/models.py:204 +#: users/models.py:207 msgid "Change" msgstr "更改" -#: users/models.py:204 +#: users/models.py:207 msgid "Permissions to edit items" msgstr "编辑项目权限" -#: users/models.py:206 +#: users/models.py:209 msgid "Permission to delete items" msgstr "删除项目权限"