diff --git a/InvenTree/InvenTree/static/script/inventree/inventree.js b/InvenTree/InvenTree/static/script/inventree/inventree.js index 263e28fc01..fd9c2927ce 100644 --- a/InvenTree/InvenTree/static/script/inventree/inventree.js +++ b/InvenTree/InvenTree/static/script/inventree/inventree.js @@ -78,7 +78,15 @@ function getImageUrlFromTransfer(transfer) { return url; } -function makeIconButton(icon, cls, pk, title) { +function makeIconBadge(icon, title) { + // Construct an 'icon badge' which floats to the right of an object + + var html = ``; + + return html; +} + +function makeIconButton(icon, cls, pk, title, options={}) { // Construct an 'icon button' using the fontawesome set var classes = `btn btn-default btn-glyph ${cls}`; @@ -86,15 +94,21 @@ function makeIconButton(icon, cls, pk, title) { var id = `${cls}-${pk}`; var html = ''; + + var extraProps = ''; + + if (options.disabled) { + extraProps += "disabled='true' "; + } - html += ``; return html; } -function makeProgressBar(value, maximum, opts) { +function makeProgressBar(value, maximum, opts={}) { /* * Render a progessbar! * diff --git a/InvenTree/InvenTree/static/script/inventree/modals.js b/InvenTree/InvenTree/static/script/inventree/modals.js index 49de96468f..e620489ee2 100644 --- a/InvenTree/InvenTree/static/script/inventree/modals.js +++ b/InvenTree/InvenTree/static/script/inventree/modals.js @@ -467,6 +467,9 @@ function openModal(options) { var modal = options.modal || '#modal-form'; + // Ensure that the 'warning' div is hidden + $(modal).find('#form-validation-warning').css('display', 'none'); + $(modal).on('shown.bs.modal', function() { $(modal + ' .modal-form-content').scrollTop(0); if (options.focus) { diff --git a/InvenTree/company/api.py b/InvenTree/company/api.py index 548ac96016..731fd193fa 100644 --- a/InvenTree/company/api.py +++ b/InvenTree/company/api.py @@ -131,6 +131,13 @@ class SupplierPartList(generics.ListCreateAPIView): if part is not None: queryset = queryset.filter(part=part) + # Filter by 'active' status of the part? + active = params.get('active', None) + + if active is not None: + active = str2bool(active) + queryset = queryset.filter(part__active=active) + return queryset def get_serializer(self, *args, **kwargs): diff --git a/InvenTree/company/templates/company/detail_part.html b/InvenTree/company/templates/company/detail_part.html index d10da0b60c..5f212d839a 100644 --- a/InvenTree/company/templates/company/detail_part.html +++ b/InvenTree/company/templates/company/detail_part.html @@ -34,6 +34,9 @@ +
+ +
{% endif %} diff --git a/InvenTree/locale/de/LC_MESSAGES/django.mo b/InvenTree/locale/de/LC_MESSAGES/django.mo index f73513db61..e496fdd86a 100644 Binary files a/InvenTree/locale/de/LC_MESSAGES/django.mo and b/InvenTree/locale/de/LC_MESSAGES/django.mo differ diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po index afd1426fd4..0914ad779a 100644 --- a/InvenTree/locale/de/LC_MESSAGES/django.po +++ b/InvenTree/locale/de/LC_MESSAGES/django.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-10-28 11:37+0000\n" +"POT-Creation-Date: 2020-10-29 02:25+0000\n" "PO-Revision-Date: 2020-05-03 11:32+0200\n" "Last-Translator: Christian Schlüter \n" "Language-Team: C \n" @@ -97,7 +97,7 @@ msgid "User" msgstr "Benutzer" #: InvenTree/models.py:106 part/templates/part/params.html:24 -#: templates/js/part.js:81 +#: templates/js/part.js:90 msgid "Name" msgstr "Name" @@ -124,7 +124,7 @@ msgid "Polish" msgstr "Polnisch" #: InvenTree/status_codes.py:94 InvenTree/status_codes.py:135 -#: InvenTree/status_codes.py:222 templates/js/table_filters.js:159 +#: InvenTree/status_codes.py:222 templates/js/table_filters.js:181 msgid "Pending" msgstr "Ausstehend" @@ -315,7 +315,7 @@ msgid "Build Order Reference" msgstr "Bestellreferenz" #: build/models.py:87 build/templates/build/allocate.html:342 -#: order/templates/order/purchase_order_detail.html:173 templates/js/bom.js:154 +#: order/templates/order/purchase_order_detail.html:173 templates/js/bom.js:172 msgid "Reference" msgstr "Referenz" @@ -324,10 +324,10 @@ msgstr "Referenz" #: company/templates/company/supplier_part_detail.html:27 #: order/templates/order/purchase_order_detail.html:160 #: part/templates/part/detail.html:51 part/templates/part/set_category.html:14 -#: templates/InvenTree/search.html:147 templates/js/bom.js:147 -#: templates/js/bom.js:486 templates/js/build.js:56 templates/js/company.js:56 -#: templates/js/order.js:167 templates/js/order.js:249 templates/js/part.js:120 -#: templates/js/part.js:203 templates/js/part.js:345 templates/js/part.js:526 +#: templates/InvenTree/search.html:147 templates/js/bom.js:165 +#: templates/js/bom.js:504 templates/js/build.js:56 templates/js/company.js:56 +#: templates/js/order.js:167 templates/js/order.js:249 templates/js/part.js:149 +#: templates/js/part.js:232 templates/js/part.js:384 templates/js/part.js:565 #: templates/js/stock.js:445 templates/js/stock.js:672 msgid "Description" msgstr "Beschreibung" @@ -353,9 +353,9 @@ msgstr "Eltern-Bau, dem dieser Bau zugewiesen ist" #: order/templates/order/receive_parts.html:19 part/models.py:293 #: part/templates/part/part_app_base.html:7 #: part/templates/part/set_category.html:13 templates/InvenTree/search.html:133 -#: templates/js/barcode.js:336 templates/js/bom.js:124 templates/js/bom.js:471 -#: templates/js/build.js:61 templates/js/company.js:137 -#: templates/js/part.js:184 templates/js/part.js:289 templates/js/stock.js:421 +#: templates/js/barcode.js:336 templates/js/bom.js:124 templates/js/bom.js:489 +#: templates/js/build.js:61 templates/js/company.js:138 +#: templates/js/part.js:213 templates/js/part.js:318 templates/js/stock.js:421 #: templates/js/stock.js:978 msgid "Part" msgstr "Teil" @@ -426,7 +426,7 @@ msgstr "Link zu einer externen URL" #: order/templates/order/so_tabs.html:23 part/templates/part/tabs.html:70 #: stock/forms.py:306 stock/forms.py:338 stock/forms.py:366 stock/models.py:453 #: stock/models.py:1404 stock/templates/stock/tabs.html:26 -#: templates/js/barcode.js:391 templates/js/bom.js:223 +#: templates/js/barcode.js:391 templates/js/bom.js:241 #: templates/js/stock.js:116 templates/js/stock.js:544 msgid "Notes" msgstr "Notizen" @@ -519,7 +519,7 @@ msgstr "Seriennummer" #: stock/templates/stock/item_base.html:32 #: stock/templates/stock/item_base.html:184 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:338 -#: templates/js/bom.js:162 templates/js/build.js:72 templates/js/stock.js:691 +#: templates/js/bom.js:180 templates/js/build.js:72 templates/js/stock.js:691 #: templates/js/stock.js:906 msgid "Quantity" msgstr "Anzahl" @@ -543,12 +543,12 @@ msgstr "Lagerobjekt-Standort bearbeiten" msgid "Delete stock allocation" msgstr "Zuweisung löschen" -#: build/templates/build/allocate.html:238 templates/js/bom.js:334 +#: build/templates/build/allocate.html:238 templates/js/bom.js:352 msgid "No BOM items found" msgstr "Keine BOM-Einträge gefunden" #: build/templates/build/allocate.html:347 part/models.py:1401 -#: templates/js/part.js:530 templates/js/table_filters.js:145 +#: templates/js/part.js:569 templates/js/table_filters.js:167 msgid "Required" msgstr "benötigt" @@ -735,8 +735,8 @@ msgstr "Bestand kann jedem verfügbaren Lagerort entnommen werden." #: build/templates/build/detail.html:48 #: stock/templates/stock/item_base.html:238 templates/js/stock.js:514 -#: templates/js/stock.js:921 templates/js/table_filters.js:58 -#: templates/js/table_filters.js:124 +#: templates/js/stock.js:921 templates/js/table_filters.js:80 +#: templates/js/table_filters.js:146 msgid "Batch" msgstr "Los" @@ -1187,7 +1187,7 @@ msgstr "Telefon" #: company/templates/company/detail.html:16 #: company/templates/company/supplier_part_base.html:84 #: company/templates/company/supplier_part_detail.html:30 part/bom.py:172 -#: templates/js/company.js:44 templates/js/company.js:186 +#: templates/js/company.js:44 templates/js/company.js:188 msgid "Manufacturer" msgstr "Hersteller" @@ -1197,7 +1197,7 @@ msgstr "Hersteller" #: order/templates/order/order_base.html:79 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:170 #: stock/templates/stock/item_base.html:273 templates/js/company.js:48 -#: templates/js/company.js:162 templates/js/order.js:154 +#: templates/js/company.js:164 templates/js/order.js:154 msgid "Supplier" msgstr "Zulieferer" @@ -1246,30 +1246,30 @@ msgstr "Teile löschen" msgid "Delete Parts" msgstr "Teile löschen" -#: company/templates/company/detail_part.html:60 +#: company/templates/company/detail_part.html:63 #: part/templates/part/category.html:116 templates/js/stock.js:792 msgid "New Part" msgstr "Neues Teil" -#: company/templates/company/detail_part.html:61 +#: company/templates/company/detail_part.html:64 msgid "Create new Part" msgstr "Neues Teil hinzufügen" -#: company/templates/company/detail_part.html:66 company/views.py:53 +#: company/templates/company/detail_part.html:69 company/views.py:53 #: part/templates/part/supplier.html:47 msgid "New Supplier" msgstr "Neuer Zulieferer" -#: company/templates/company/detail_part.html:67 company/views.py:192 +#: company/templates/company/detail_part.html:70 company/views.py:192 msgid "Create new Supplier" msgstr "Neuen Zulieferer anlegen" -#: company/templates/company/detail_part.html:72 company/views.py:60 +#: company/templates/company/detail_part.html:75 company/views.py:60 #: part/templates/part/supplier.html:53 msgid "New Manufacturer" msgstr "Neuer Hersteller" -#: company/templates/company/detail_part.html:73 company/views.py:195 +#: company/templates/company/detail_part.html:76 company/views.py:195 msgid "Create new Manufacturer" msgstr "Neuen Hersteller anlegen" @@ -1341,7 +1341,7 @@ msgstr "Neuer Auftrag" #: company/templates/company/supplier_part_base.html:6 #: company/templates/company/supplier_part_base.html:19 stock/models.py:344 -#: stock/templates/stock/item_base.html:278 templates/js/company.js:178 +#: stock/templates/stock/item_base.html:278 templates/js/company.js:180 msgid "Supplier Part" msgstr "Zulieferer-Teil" @@ -1375,7 +1375,7 @@ msgstr "SKU" #: company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:31 part/bom.py:173 -#: templates/js/company.js:202 +#: templates/js/company.js:204 msgid "MPN" msgstr "MPN" @@ -1398,7 +1398,7 @@ msgid "Pricing Information" msgstr "Preisinformationen ansehen" #: company/templates/company/supplier_part_pricing.html:17 company/views.py:410 -#: part/templates/part/sale_prices.html:13 part/views.py:2228 +#: part/templates/part/sale_prices.html:13 part/views.py:2229 msgid "Add Price Break" msgstr "Preisstaffel hinzufügen" @@ -1410,7 +1410,7 @@ msgid "No price break information found" msgstr "Keine Firmeninformation gefunden" #: company/templates/company/supplier_part_pricing.html:80 -#: part/templates/part/sale_prices.html:85 templates/js/bom.js:207 +#: part/templates/part/sale_prices.html:85 templates/js/bom.js:225 msgid "Price" msgstr "Preis" @@ -1439,8 +1439,8 @@ msgstr "Bepreisung" #: company/templates/company/supplier_part_tabs.html:8 #: company/templates/company/tabs.html:12 part/templates/part/tabs.html:18 #: stock/templates/stock/location.html:17 templates/InvenTree/search.html:155 -#: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:124 -#: templates/js/part.js:372 templates/js/stock.js:453 templates/navbar.html:22 +#: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:153 +#: templates/js/part.js:411 templates/js/stock.js:453 templates/navbar.html:22 #: users/models.py:29 msgid "Stock" msgstr "Lagerbestand" @@ -1531,17 +1531,17 @@ msgstr "Neues Zuliefererteil anlegen" msgid "Delete Supplier Part" msgstr "Zuliefererteil entfernen" -#: company/views.py:416 part/views.py:2234 +#: company/views.py:416 part/views.py:2235 #, fuzzy #| msgid "Add Price Break" msgid "Added new price break" msgstr "Preisstaffel hinzufügen" -#: company/views.py:453 part/views.py:2279 +#: company/views.py:453 part/views.py:2280 msgid "Edit Price Break" msgstr "Preisstaffel bearbeiten" -#: company/views.py:469 part/views.py:2295 +#: company/views.py:469 part/views.py:2296 msgid "Delete Price Break" msgstr "Preisstaffel löschen" @@ -1646,7 +1646,7 @@ msgstr "" msgid "Date order was completed" msgstr "Bestellung als vollständig markieren" -#: order/models.py:185 order/models.py:259 part/views.py:1345 +#: order/models.py:185 order/models.py:259 part/views.py:1346 #: stock/models.py:241 stock/models.py:805 msgid "Quantity must be greater than zero" msgstr "Anzahl muss größer Null sein" @@ -1902,7 +1902,7 @@ msgid "Select parts to receive against this order" msgstr "" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:145 templates/js/part.js:388 +#: part/templates/part/part_base.html:145 templates/js/part.js:427 msgid "On Order" msgstr "bestellt" @@ -2406,7 +2406,7 @@ msgstr "" "Ein Teil mit dieser Seriennummer existiert bereits für die Teilevorlage " "{part}" -#: part/models.py:1389 templates/js/part.js:521 templates/js/stock.js:92 +#: part/models.py:1389 templates/js/part.js:560 templates/js/stock.js:92 #, fuzzy #| msgid "Instance Name" msgid "Test Name" @@ -2434,7 +2434,7 @@ msgstr "Kurze Beschreibung des Baus" msgid "Is this test required to pass?" msgstr "" -#: part/models.py:1407 templates/js/part.js:538 +#: part/models.py:1407 templates/js/part.js:577 #, fuzzy #| msgid "Required Parts" msgid "Requires Value" @@ -2444,7 +2444,7 @@ msgstr "benötigte Teile" msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:1413 templates/js/part.js:545 +#: part/models.py:1413 templates/js/part.js:584 #, fuzzy #| msgid "Delete Attachment" msgid "Requires Attachment" @@ -2512,7 +2512,7 @@ msgstr "Notizen zum Stücklisten-Objekt" msgid "BOM line checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:1612 part/views.py:1351 part/views.py:1403 +#: part/models.py:1612 part/views.py:1352 part/views.py:1404 #: stock/models.py:231 #, fuzzy #| msgid "Overage must be an integer value or a percentage" @@ -2605,7 +2605,7 @@ msgstr "Stückliste validieren" msgid "Validate" msgstr "BOM validieren" -#: part/templates/part/bom.html:61 part/views.py:1642 +#: part/templates/part/bom.html:61 part/views.py:1643 msgid "Export Bill of Materials" msgstr "Stückliste exportieren" @@ -2721,7 +2721,7 @@ msgstr "Neuen Bau beginnen" msgid "All parts" msgstr "Alle Teile" -#: part/templates/part/category.html:24 part/views.py:2045 +#: part/templates/part/category.html:24 part/views.py:2046 msgid "Create new part category" msgstr "Teilkategorie anlegen" @@ -2821,16 +2821,32 @@ msgstr "Neuen Lager-Standort erstellen" msgid "Parametric Table" msgstr "Parameter Wert" +#: part/templates/part/create_part.html:11 +#, fuzzy +#| msgid "No matching data" +msgid "Possible Matching Parts" +msgstr "Keine passenden Daten" + +#: part/templates/part/create_part.html:12 +msgid "The new part may be a duplicate of these existing parts" +msgstr "" + +#: part/templates/part/create_part.html:16 +#, fuzzy +#| msgid "Batch" +msgid "match" +msgstr "Los" + #: part/templates/part/detail.html:9 msgid "Part Details" msgstr "Teile-Details" #: part/templates/part/detail.html:25 part/templates/part/part_base.html:95 -#: templates/js/part.js:112 +#: templates/js/part.js:141 msgid "IPN" msgstr "IPN (Interne Produktnummer)" -#: part/templates/part/detail.html:32 templates/js/part.js:116 +#: part/templates/part/detail.html:32 templates/js/part.js:145 msgid "Revision" msgstr "Revision" @@ -2851,7 +2867,7 @@ msgid "Variant Of" msgstr "Variante von" #: part/templates/part/detail.html:70 part/templates/part/set_category.html:15 -#: templates/js/part.js:359 +#: templates/js/part.js:398 msgid "Category" msgstr "Kategorie" @@ -2879,7 +2895,7 @@ msgstr "Erstellt von" msgid "Responsible User" msgstr "Verantwortlicher Benutzer" -#: part/templates/part/detail.html:136 +#: part/templates/part/detail.html:136 templates/js/table_filters.js:27 msgid "Virtual" msgstr "Virtuell" @@ -2892,7 +2908,7 @@ msgid "Part is not a virtual part" msgstr "Teil ist nicht virtuell" #: part/templates/part/detail.html:145 stock/forms.py:248 -#: templates/js/table_filters.js:212 +#: templates/js/table_filters.js:23 templates/js/table_filters.js:243 msgid "Template" msgstr "Vorlage" @@ -2908,7 +2924,7 @@ msgstr "Teil kann keine Vorlage sein wenn es Variante eines anderen Teils ist" msgid "Part is not a template part" msgstr "Teil ist nicht virtuell" -#: part/templates/part/detail.html:154 templates/js/table_filters.js:224 +#: part/templates/part/detail.html:154 templates/js/table_filters.js:255 msgid "Assembly" msgstr "Baugruppe" @@ -2920,7 +2936,7 @@ msgstr "Teil kann aus anderen Teilen angefertigt werden" msgid "Part cannot be assembled from other parts" msgstr "Teil kann nicht aus anderen Teilen angefertigt werden" -#: part/templates/part/detail.html:163 templates/js/table_filters.js:228 +#: part/templates/part/detail.html:163 templates/js/table_filters.js:259 msgid "Component" msgstr "Komponente" @@ -2932,7 +2948,8 @@ msgstr "Teil kann in Baugruppen benutzt werden" msgid "Part cannot be used in assemblies" msgstr "Teil kann nicht in Baugruppen benutzt werden" -#: part/templates/part/detail.html:172 templates/js/table_filters.js:240 +#: part/templates/part/detail.html:172 templates/js/table_filters.js:31 +#: templates/js/table_filters.js:271 msgid "Trackable" msgstr "nachverfolgbar" @@ -2952,7 +2969,7 @@ msgstr "Kaufbar" msgid "Part can be purchased from external suppliers" msgstr "Teil kann von externen Zulieferern gekauft werden" -#: part/templates/part/detail.html:190 templates/js/table_filters.js:236 +#: part/templates/part/detail.html:190 templates/js/table_filters.js:267 msgid "Salable" msgstr "Verkäuflich" @@ -2964,8 +2981,8 @@ msgstr "Teil kann an Kunden verkauft werden" msgid "Part cannot be sold to customers" msgstr "Teil kann nicht an Kunden verkauft werden" -#: part/templates/part/detail.html:199 templates/js/table_filters.js:33 -#: templates/js/table_filters.js:207 +#: part/templates/part/detail.html:199 templates/js/table_filters.js:19 +#: templates/js/table_filters.js:55 templates/js/table_filters.js:238 msgid "Active" msgstr "Aktiv" @@ -3025,8 +3042,9 @@ msgstr "Dieses Teil ist eine Vorlage." msgid "This part is a variant of" msgstr "Dieses Teil ist eine Variante von" -#: part/templates/part/part_base.html:36 templates/js/company.js:153 -#: templates/js/part.js:336 +#: part/templates/part/part_base.html:36 templates/js/bom.js:152 +#: templates/js/company.js:155 templates/js/part.js:133 +#: templates/js/part.js:375 msgid "Inactive" msgstr "Inaktiv" @@ -3090,7 +3108,7 @@ msgstr "Vorlage bearbeiten" msgid "Delete part" msgstr "Teile löschen" -#: part/templates/part/part_base.html:124 templates/js/table_filters.js:89 +#: part/templates/part/part_base.html:124 templates/js/table_filters.js:111 msgid "In Stock" msgstr "Auf Lager" @@ -3156,8 +3174,8 @@ msgstr "Teil entfernen" msgid "Part Stock" msgstr "Teilbestand" -#: part/templates/part/stock_count.html:7 templates/js/bom.js:197 -#: templates/js/part.js:396 +#: part/templates/part/stock_count.html:7 templates/js/bom.js:215 +#: templates/js/part.js:435 msgid "No Stock" msgstr "Kein Bestand" @@ -3223,13 +3241,13 @@ msgstr "Baugruppen" msgid "Part Variants" msgstr "Varianten" -#: part/templates/part/variants.html:21 +#: part/templates/part/variants.html:22 #, fuzzy #| msgid "Create new Part" msgid "Create new variant" msgstr "Neues Teil hinzufügen" -#: part/templates/part/variants.html:21 +#: part/templates/part/variants.html:23 #, fuzzy #| msgid "Variants" msgid "New Variant" @@ -3294,129 +3312,131 @@ msgstr "Teil duplizieren" msgid "Copied part" msgstr "Teil kopiert" -#: part/views.py:513 templates/js/stock.js:793 +#: part/views.py:514 templates/js/stock.js:793 msgid "Create New Part" msgstr "Neues Teil anlegen" -#: part/views.py:520 +#: part/views.py:521 msgid "Created new part" msgstr "Neues Teil angelegt" -#: part/views.py:735 +#: part/views.py:736 msgid "Part QR Code" msgstr "Teil-QR-Code" -#: part/views.py:754 +#: part/views.py:755 msgid "Upload Part Image" msgstr "Teilbild hochladen" -#: part/views.py:762 part/views.py:799 +#: part/views.py:763 part/views.py:800 msgid "Updated part image" msgstr "Teilbild aktualisiert" -#: part/views.py:771 +#: part/views.py:772 msgid "Select Part Image" msgstr "Teilbild auswählen" -#: part/views.py:802 +#: part/views.py:803 msgid "Part image not found" msgstr "Teilbild nicht gefunden" -#: part/views.py:813 +#: part/views.py:814 msgid "Edit Part Properties" msgstr "Teileigenschaften bearbeiten" -#: part/views.py:837 +#: part/views.py:838 msgid "Validate BOM" msgstr "BOM validieren" -#: part/views.py:1004 +#: part/views.py:1005 msgid "No BOM file provided" msgstr "Keine Stückliste angegeben" -#: part/views.py:1354 +#: part/views.py:1355 msgid "Enter a valid quantity" msgstr "Bitte eine gültige Anzahl eingeben" -#: part/views.py:1379 part/views.py:1382 +#: part/views.py:1380 part/views.py:1383 msgid "Select valid part" msgstr "Bitte ein gültiges Teil auswählen" -#: part/views.py:1388 +#: part/views.py:1389 msgid "Duplicate part selected" msgstr "Teil doppelt ausgewählt" -#: part/views.py:1426 +#: part/views.py:1427 msgid "Select a part" msgstr "Teil auswählen" -#: part/views.py:1432 +#: part/views.py:1433 #, fuzzy #| msgid "Select part to be used in BOM" msgid "Selected part creates a circular BOM" msgstr "Teil für die Nutzung in der Stückliste auswählen" -#: part/views.py:1436 +#: part/views.py:1437 msgid "Specify quantity" msgstr "Anzahl angeben" -#: part/views.py:1692 +#: part/views.py:1693 msgid "Confirm Part Deletion" msgstr "Löschen des Teils bestätigen" -#: part/views.py:1701 +#: part/views.py:1702 msgid "Part was deleted" msgstr "Teil wurde gelöscht" -#: part/views.py:1710 +#: part/views.py:1711 msgid "Part Pricing" msgstr "Teilbepreisung" -#: part/views.py:1836 +#: part/views.py:1837 msgid "Create Part Parameter Template" msgstr "Teilparametervorlage anlegen" -#: part/views.py:1846 +#: part/views.py:1847 msgid "Edit Part Parameter Template" msgstr "Teilparametervorlage bearbeiten" -#: part/views.py:1855 +#: part/views.py:1856 msgid "Delete Part Parameter Template" msgstr "Teilparametervorlage löschen" -#: part/views.py:1865 +#: part/views.py:1866 msgid "Create Part Parameter" msgstr "Teilparameter anlegen" -#: part/views.py:1917 +#: part/views.py:1918 msgid "Edit Part Parameter" msgstr "Teilparameter bearbeiten" -#: part/views.py:1933 +#: part/views.py:1934 msgid "Delete Part Parameter" msgstr "Teilparameter löschen" -#: part/views.py:1992 +#: part/views.py:1993 msgid "Edit Part Category" msgstr "Teilkategorie bearbeiten" -#: part/views.py:2029 +#: part/views.py:2030 msgid "Delete Part Category" msgstr "Teilkategorie löschen" -#: part/views.py:2037 +#: part/views.py:2038 msgid "Part category was deleted" msgstr "Teilekategorie wurde gelöscht" -#: part/views.py:2100 -msgid "Create BOM item" +#: part/views.py:2101 +#, fuzzy +#| msgid "Create BOM item" +msgid "Create BOM Item" msgstr "BOM-Position anlegen" -#: part/views.py:2168 +#: part/views.py:2169 msgid "Edit BOM item" msgstr "BOM-Position beaarbeiten" -#: part/views.py:2218 +#: part/views.py:2219 msgid "Confim BOM item deletion" msgstr "Löschung von BOM-Position bestätigen" @@ -3775,7 +3795,7 @@ msgstr "Name des Teils" msgid "Result" msgstr "Suchergebnisse" -#: stock/models.py:1386 templates/js/table_filters.js:135 +#: stock/models.py:1386 templates/js/table_filters.js:157 msgid "Test result" msgstr "" @@ -4845,55 +4865,73 @@ msgstr "Vorrat zu {n} Lagerobjekten hinzugefügt" msgid "Barcode does not match Stock Item" msgstr "Neues Lagerobjekt hinzufügen" -#: templates/js/bom.js:132 +#: templates/js/bom.js:133 templates/js/part.js:117 templates/js/part.js:344 +#, fuzzy +#| msgid "Trackable" +msgid "Trackable part" +msgstr "nachverfolgbar" + +#: templates/js/bom.js:137 templates/js/part.js:121 templates/js/part.js:348 +#, fuzzy +#| msgid "Virtual" +msgid "Virtual part" +msgstr "Virtuell" + +#: templates/js/bom.js:141 +#, fuzzy +#| msgid "Template part" +msgid "Templat part" +msgstr "Vorlagenteil" + +#: templates/js/bom.js:146 msgid "Open subassembly" msgstr "Unterbaugruppe öffnen" -#: templates/js/bom.js:173 +#: templates/js/bom.js:191 #, fuzzy #| msgid "Options" msgid "Optional" msgstr "Optionen" -#: templates/js/bom.js:188 templates/js/build.js:133 +#: templates/js/bom.js:206 templates/js/build.js:133 msgid "Available" msgstr "verfügbar" -#: templates/js/bom.js:213 +#: templates/js/bom.js:231 msgid "No pricing available" msgstr "Keine Preisinformation verfügbar" -#: templates/js/bom.js:232 +#: templates/js/bom.js:250 #, fuzzy #| msgid "Options" msgid "Actions" msgstr "Optionen" -#: templates/js/bom.js:240 +#: templates/js/bom.js:258 msgid "Validate BOM Item" msgstr "BOM-Position validieren" -#: templates/js/bom.js:242 +#: templates/js/bom.js:260 msgid "This line has been validated" msgstr "Diese Position wurde validiert" -#: templates/js/bom.js:244 +#: templates/js/bom.js:262 msgid "Edit BOM Item" msgstr "BOM-Position bearbeiten" -#: templates/js/bom.js:246 +#: templates/js/bom.js:264 msgid "Delete BOM Item" msgstr "BOM-Position löschen" -#: templates/js/bom.js:478 +#: templates/js/bom.js:496 msgid "INACTIVE" msgstr "INAKTIV" -#: templates/js/bom.js:492 +#: templates/js/bom.js:510 msgid "Uses" msgstr "" -#: templates/js/bom.js:503 +#: templates/js/bom.js:521 #, fuzzy #| msgid "No matching action found" msgid "No matching parts found" @@ -4923,19 +4961,21 @@ msgstr "Hersteller" msgid "No company information found" msgstr "Keine Firmeninformation gefunden" -#: templates/js/company.js:128 +#: templates/js/company.js:129 msgid "No supplier parts found" msgstr "Keine Zuliefererteile gefunden" -#: templates/js/company.js:145 templates/js/part.js:314 +#: templates/js/company.js:147 templates/js/part.js:125 +#: templates/js/part.js:353 msgid "Template part" msgstr "Vorlagenteil" -#: templates/js/company.js:149 templates/js/part.js:318 +#: templates/js/company.js:151 templates/js/part.js:129 +#: templates/js/part.js:357 msgid "Assembled part" msgstr "Baugruppe" -#: templates/js/company.js:206 +#: templates/js/company.js:208 msgid "Link" msgstr "Link" @@ -4955,67 +4995,67 @@ msgstr "Keine Aufträge gefunden" msgid "Shipment Date" msgstr "Versanddatum" -#: templates/js/part.js:137 +#: templates/js/part.js:166 #, fuzzy #| msgid "No parts found" msgid "No variants found" msgstr "Keine Teile gefunden" -#: templates/js/part.js:223 templates/js/part.js:411 +#: templates/js/part.js:252 templates/js/part.js:450 msgid "No parts found" msgstr "Keine Teile gefunden" -#: templates/js/part.js:275 templates/js/stock.js:409 templates/js/stock.js:966 +#: templates/js/part.js:304 templates/js/stock.js:409 templates/js/stock.js:966 msgid "Select" msgstr "Auswählen" -#: templates/js/part.js:322 +#: templates/js/part.js:361 msgid "Starred part" msgstr "Favoritenteil" -#: templates/js/part.js:326 +#: templates/js/part.js:365 msgid "Salable part" msgstr "Verkäufliches Teil" -#: templates/js/part.js:365 +#: templates/js/part.js:404 msgid "No category" msgstr "Keine Kategorie" -#: templates/js/part.js:383 templates/js/table_filters.js:220 +#: templates/js/part.js:422 templates/js/table_filters.js:251 msgid "Low stock" msgstr "Bestand niedrig" -#: templates/js/part.js:392 +#: templates/js/part.js:431 msgid "Building" msgstr "Im Bau" -#: templates/js/part.js:471 +#: templates/js/part.js:510 msgid "YES" msgstr "" -#: templates/js/part.js:473 +#: templates/js/part.js:512 msgid "NO" msgstr "" -#: templates/js/part.js:507 +#: templates/js/part.js:546 #, fuzzy #| msgid "No stock items matching query" msgid "No test templates matching query" msgstr "Keine zur Anfrage passenden Lagerobjekte" -#: templates/js/part.js:558 templates/js/stock.js:63 +#: templates/js/part.js:597 templates/js/stock.js:63 #, fuzzy #| msgid "Edit Sales Order" msgid "Edit test result" msgstr "Auftrag bearbeiten" -#: templates/js/part.js:559 templates/js/stock.js:64 +#: templates/js/part.js:598 templates/js/stock.js:64 #, fuzzy #| msgid "Delete attachment" msgid "Delete test result" msgstr "Anhang löschen" -#: templates/js/part.js:565 +#: templates/js/part.js:604 msgid "This test is defined for a parent part" msgstr "" @@ -5101,7 +5141,7 @@ msgstr "Lagerobjekt wurde zugewiesen" msgid "Stock item is lost" msgstr "Lagerobjekt verloren" -#: templates/js/stock.js:498 templates/js/table_filters.js:84 +#: templates/js/stock.js:498 templates/js/table_filters.js:106 #, fuzzy #| msgid "Delete" msgid "Depleted" @@ -5133,7 +5173,7 @@ msgstr "Neuen Standort anlegen" msgid "Serial" msgstr "Seriennummer" -#: templates/js/stock.js:997 templates/js/table_filters.js:94 +#: templates/js/stock.js:997 templates/js/table_filters.js:116 #, fuzzy #| msgid "Installed In" msgid "Installed" @@ -5145,160 +5185,160 @@ msgstr "Installiert in" msgid "Install item" msgstr "Installiert in" -#: templates/js/table_filters.js:19 +#: templates/js/table_filters.js:41 #, fuzzy #| msgid "Trackable" msgid "Trackable Part" msgstr "nachverfolgbar" -#: templates/js/table_filters.js:23 +#: templates/js/table_filters.js:45 #, fuzzy #| msgid "Validate BOM" msgid "Validated" msgstr "BOM validieren" -#: templates/js/table_filters.js:43 templates/js/table_filters.js:104 +#: templates/js/table_filters.js:65 templates/js/table_filters.js:126 #, fuzzy #| msgid "Serialize Stock" msgid "Is Serialized" msgstr "Lagerbestand erfassen" -#: templates/js/table_filters.js:46 templates/js/table_filters.js:111 +#: templates/js/table_filters.js:68 templates/js/table_filters.js:133 #, fuzzy #| msgid "Serial Number" msgid "Serial number GTE" msgstr "Seriennummer" -#: templates/js/table_filters.js:47 templates/js/table_filters.js:112 +#: templates/js/table_filters.js:69 templates/js/table_filters.js:134 #, fuzzy #| msgid "Serial number for this item" msgid "Serial number greater than or equal to" msgstr "Seriennummer für dieses Teil" -#: templates/js/table_filters.js:50 templates/js/table_filters.js:115 +#: templates/js/table_filters.js:72 templates/js/table_filters.js:137 #, fuzzy #| msgid "Serial Number" msgid "Serial number LTE" msgstr "Seriennummer" -#: templates/js/table_filters.js:51 templates/js/table_filters.js:116 +#: templates/js/table_filters.js:73 templates/js/table_filters.js:138 #, fuzzy #| msgid "Serial numbers already exist: " msgid "Serial number less than or equal to" msgstr "Seriennummern existieren bereits:" -#: templates/js/table_filters.js:54 templates/js/table_filters.js:55 -#: templates/js/table_filters.js:107 templates/js/table_filters.js:108 +#: templates/js/table_filters.js:76 templates/js/table_filters.js:77 +#: templates/js/table_filters.js:129 templates/js/table_filters.js:130 #, fuzzy #| msgid "Serial Number" msgid "Serial number" msgstr "Seriennummer" -#: templates/js/table_filters.js:59 templates/js/table_filters.js:125 +#: templates/js/table_filters.js:81 templates/js/table_filters.js:147 #, fuzzy #| msgid "Batch Code" msgid "Batch code" msgstr "Losnummer" -#: templates/js/table_filters.js:69 +#: templates/js/table_filters.js:91 templates/js/table_filters.js:218 msgid "Active parts" msgstr "Aktive Teile" -#: templates/js/table_filters.js:70 +#: templates/js/table_filters.js:92 msgid "Show stock for active parts" msgstr "Bestand aktiver Teile anzeigen" -#: templates/js/table_filters.js:74 +#: templates/js/table_filters.js:96 msgid "Is allocated" msgstr "Ist zugeordnet" -#: templates/js/table_filters.js:75 +#: templates/js/table_filters.js:97 msgid "Item has been alloacted" msgstr "Position wurde zugeordnet" -#: templates/js/table_filters.js:79 +#: templates/js/table_filters.js:101 msgid "Include sublocations" msgstr "Unterlagerorte einschließen" -#: templates/js/table_filters.js:80 +#: templates/js/table_filters.js:102 msgid "Include stock in sublocations" msgstr "Bestand in Unterlagerorten einschließen" -#: templates/js/table_filters.js:85 +#: templates/js/table_filters.js:107 #, fuzzy #| msgid "Delete this Stock Item when stock is depleted" msgid "Show stock items which are depleted" msgstr "Objekt löschen wenn Lagerbestand aufgebraucht" -#: templates/js/table_filters.js:90 +#: templates/js/table_filters.js:112 msgid "Show items which are in stock" msgstr "" -#: templates/js/table_filters.js:95 +#: templates/js/table_filters.js:117 #, fuzzy #| msgid "Is this item installed in another item?" msgid "Show stock items which are installed in another item" msgstr "Ist dieses Teil in einem anderen verbaut?" -#: templates/js/table_filters.js:99 +#: templates/js/table_filters.js:121 #, fuzzy #| msgid "Item assigned to customer?" msgid "Sent to customer" msgstr "Ist dieses Objekt einem Kunden zugeteilt?" -#: templates/js/table_filters.js:100 +#: templates/js/table_filters.js:122 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/table_filters.js:120 templates/js/table_filters.js:121 +#: templates/js/table_filters.js:142 templates/js/table_filters.js:143 msgid "Stock status" msgstr "Bestandsstatus" -#: templates/js/table_filters.js:154 +#: templates/js/table_filters.js:176 msgid "Build status" msgstr "Bau-Status" -#: templates/js/table_filters.js:169 templates/js/table_filters.js:182 +#: templates/js/table_filters.js:191 templates/js/table_filters.js:204 msgid "Order status" msgstr "Bestellstatus" -#: templates/js/table_filters.js:174 templates/js/table_filters.js:187 +#: templates/js/table_filters.js:196 templates/js/table_filters.js:209 #, fuzzy #| msgid "Cascading" msgid "Outstanding" msgstr "Kaskadierend" -#: templates/js/table_filters.js:197 +#: templates/js/table_filters.js:228 msgid "Include subcategories" msgstr "Unterkategorien einschließen" -#: templates/js/table_filters.js:198 +#: templates/js/table_filters.js:229 msgid "Include parts in subcategories" msgstr "Teile in Unterkategorien einschließen" -#: templates/js/table_filters.js:202 +#: templates/js/table_filters.js:233 msgid "Has IPN" msgstr "" -#: templates/js/table_filters.js:203 +#: templates/js/table_filters.js:234 #, fuzzy #| msgid "Internal Part Number" msgid "Part has internal part number" msgstr "Interne Teilenummer" -#: templates/js/table_filters.js:208 +#: templates/js/table_filters.js:239 msgid "Show active parts" msgstr "Aktive Teile anzeigen" -#: templates/js/table_filters.js:216 +#: templates/js/table_filters.js:247 msgid "Stock available" msgstr "Bestand verfügbar" -#: templates/js/table_filters.js:232 +#: templates/js/table_filters.js:263 msgid "Starred" msgstr "Favorit" -#: templates/js/table_filters.js:244 +#: templates/js/table_filters.js:275 msgid "Purchasable" msgstr "Käuflich" @@ -5550,9 +5590,6 @@ msgstr "Ausgewählte Stücklistenpositionen entfernen" #~ msgid "StockItem does not exist" #~ msgstr "Lagerobjekt existiert nicht" -#~ msgid "No matching data" -#~ msgstr "Keine passenden Daten" - #, fuzzy #~| msgid "Add stock" #~ msgid "Add to stock" diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po index 15b1d532f6..c1a4837c86 100644 --- a/InvenTree/locale/en/LC_MESSAGES/django.po +++ b/InvenTree/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-10-28 11:37+0000\n" +"POT-Creation-Date: 2020-10-29 02:25+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -91,7 +91,7 @@ msgid "User" msgstr "" #: InvenTree/models.py:106 part/templates/part/params.html:24 -#: templates/js/part.js:81 +#: templates/js/part.js:90 msgid "Name" msgstr "" @@ -116,7 +116,7 @@ msgid "Polish" msgstr "" #: InvenTree/status_codes.py:94 InvenTree/status_codes.py:135 -#: InvenTree/status_codes.py:222 templates/js/table_filters.js:159 +#: InvenTree/status_codes.py:222 templates/js/table_filters.js:181 msgid "Pending" msgstr "" @@ -291,7 +291,7 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:87 build/templates/build/allocate.html:342 -#: order/templates/order/purchase_order_detail.html:173 templates/js/bom.js:154 +#: order/templates/order/purchase_order_detail.html:173 templates/js/bom.js:172 msgid "Reference" msgstr "" @@ -300,10 +300,10 @@ msgstr "" #: company/templates/company/supplier_part_detail.html:27 #: order/templates/order/purchase_order_detail.html:160 #: part/templates/part/detail.html:51 part/templates/part/set_category.html:14 -#: templates/InvenTree/search.html:147 templates/js/bom.js:147 -#: templates/js/bom.js:486 templates/js/build.js:56 templates/js/company.js:56 -#: templates/js/order.js:167 templates/js/order.js:249 templates/js/part.js:120 -#: templates/js/part.js:203 templates/js/part.js:345 templates/js/part.js:526 +#: templates/InvenTree/search.html:147 templates/js/bom.js:165 +#: templates/js/bom.js:504 templates/js/build.js:56 templates/js/company.js:56 +#: templates/js/order.js:167 templates/js/order.js:249 templates/js/part.js:149 +#: templates/js/part.js:232 templates/js/part.js:384 templates/js/part.js:565 #: templates/js/stock.js:445 templates/js/stock.js:672 msgid "Description" msgstr "" @@ -329,9 +329,9 @@ msgstr "" #: order/templates/order/receive_parts.html:19 part/models.py:293 #: part/templates/part/part_app_base.html:7 #: part/templates/part/set_category.html:13 templates/InvenTree/search.html:133 -#: templates/js/barcode.js:336 templates/js/bom.js:124 templates/js/bom.js:471 -#: templates/js/build.js:61 templates/js/company.js:137 -#: templates/js/part.js:184 templates/js/part.js:289 templates/js/stock.js:421 +#: templates/js/barcode.js:336 templates/js/bom.js:124 templates/js/bom.js:489 +#: templates/js/build.js:61 templates/js/company.js:138 +#: templates/js/part.js:213 templates/js/part.js:318 templates/js/stock.js:421 #: templates/js/stock.js:978 msgid "Part" msgstr "" @@ -400,7 +400,7 @@ msgstr "" #: order/templates/order/so_tabs.html:23 part/templates/part/tabs.html:70 #: stock/forms.py:306 stock/forms.py:338 stock/forms.py:366 stock/models.py:453 #: stock/models.py:1404 stock/templates/stock/tabs.html:26 -#: templates/js/barcode.js:391 templates/js/bom.js:223 +#: templates/js/barcode.js:391 templates/js/bom.js:241 #: templates/js/stock.js:116 templates/js/stock.js:544 msgid "Notes" msgstr "" @@ -492,7 +492,7 @@ msgstr "" #: stock/templates/stock/item_base.html:32 #: stock/templates/stock/item_base.html:184 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:338 -#: templates/js/bom.js:162 templates/js/build.js:72 templates/js/stock.js:691 +#: templates/js/bom.js:180 templates/js/build.js:72 templates/js/stock.js:691 #: templates/js/stock.js:906 msgid "Quantity" msgstr "" @@ -516,12 +516,12 @@ msgstr "" msgid "Delete stock allocation" msgstr "" -#: build/templates/build/allocate.html:238 templates/js/bom.js:334 +#: build/templates/build/allocate.html:238 templates/js/bom.js:352 msgid "No BOM items found" msgstr "" #: build/templates/build/allocate.html:347 part/models.py:1401 -#: templates/js/part.js:530 templates/js/table_filters.js:145 +#: templates/js/part.js:569 templates/js/table_filters.js:167 msgid "Required" msgstr "" @@ -693,8 +693,8 @@ msgstr "" #: build/templates/build/detail.html:48 #: stock/templates/stock/item_base.html:238 templates/js/stock.js:514 -#: templates/js/stock.js:921 templates/js/table_filters.js:58 -#: templates/js/table_filters.js:124 +#: templates/js/stock.js:921 templates/js/table_filters.js:80 +#: templates/js/table_filters.js:146 msgid "Batch" msgstr "" @@ -1104,7 +1104,7 @@ msgstr "" #: company/templates/company/detail.html:16 #: company/templates/company/supplier_part_base.html:84 #: company/templates/company/supplier_part_detail.html:30 part/bom.py:172 -#: templates/js/company.js:44 templates/js/company.js:186 +#: templates/js/company.js:44 templates/js/company.js:188 msgid "Manufacturer" msgstr "" @@ -1114,7 +1114,7 @@ msgstr "" #: order/templates/order/order_base.html:79 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:170 #: stock/templates/stock/item_base.html:273 templates/js/company.js:48 -#: templates/js/company.js:162 templates/js/order.js:154 +#: templates/js/company.js:164 templates/js/order.js:154 msgid "Supplier" msgstr "" @@ -1159,30 +1159,30 @@ msgstr "" msgid "Delete Parts" msgstr "" -#: company/templates/company/detail_part.html:60 +#: company/templates/company/detail_part.html:63 #: part/templates/part/category.html:116 templates/js/stock.js:792 msgid "New Part" msgstr "" -#: company/templates/company/detail_part.html:61 +#: company/templates/company/detail_part.html:64 msgid "Create new Part" msgstr "" -#: company/templates/company/detail_part.html:66 company/views.py:53 +#: company/templates/company/detail_part.html:69 company/views.py:53 #: part/templates/part/supplier.html:47 msgid "New Supplier" msgstr "" -#: company/templates/company/detail_part.html:67 company/views.py:192 +#: company/templates/company/detail_part.html:70 company/views.py:192 msgid "Create new Supplier" msgstr "" -#: company/templates/company/detail_part.html:72 company/views.py:60 +#: company/templates/company/detail_part.html:75 company/views.py:60 #: part/templates/part/supplier.html:53 msgid "New Manufacturer" msgstr "" -#: company/templates/company/detail_part.html:73 company/views.py:195 +#: company/templates/company/detail_part.html:76 company/views.py:195 msgid "Create new Manufacturer" msgstr "" @@ -1253,7 +1253,7 @@ msgstr "" #: company/templates/company/supplier_part_base.html:6 #: company/templates/company/supplier_part_base.html:19 stock/models.py:344 -#: stock/templates/stock/item_base.html:278 templates/js/company.js:178 +#: stock/templates/stock/item_base.html:278 templates/js/company.js:180 msgid "Supplier Part" msgstr "" @@ -1287,7 +1287,7 @@ msgstr "" #: company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:31 part/bom.py:173 -#: templates/js/company.js:202 +#: templates/js/company.js:204 msgid "MPN" msgstr "" @@ -1310,7 +1310,7 @@ msgid "Pricing Information" msgstr "" #: company/templates/company/supplier_part_pricing.html:17 company/views.py:410 -#: part/templates/part/sale_prices.html:13 part/views.py:2228 +#: part/templates/part/sale_prices.html:13 part/views.py:2229 msgid "Add Price Break" msgstr "" @@ -1320,7 +1320,7 @@ msgid "No price break information found" msgstr "" #: company/templates/company/supplier_part_pricing.html:80 -#: part/templates/part/sale_prices.html:85 templates/js/bom.js:207 +#: part/templates/part/sale_prices.html:85 templates/js/bom.js:225 msgid "Price" msgstr "" @@ -1345,8 +1345,8 @@ msgstr "" #: company/templates/company/supplier_part_tabs.html:8 #: company/templates/company/tabs.html:12 part/templates/part/tabs.html:18 #: stock/templates/stock/location.html:17 templates/InvenTree/search.html:155 -#: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:124 -#: templates/js/part.js:372 templates/js/stock.js:453 templates/navbar.html:22 +#: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:153 +#: templates/js/part.js:411 templates/js/stock.js:453 templates/navbar.html:22 #: users/models.py:29 msgid "Stock" msgstr "" @@ -1437,15 +1437,15 @@ msgstr "" msgid "Delete Supplier Part" msgstr "" -#: company/views.py:416 part/views.py:2234 +#: company/views.py:416 part/views.py:2235 msgid "Added new price break" msgstr "" -#: company/views.py:453 part/views.py:2279 +#: company/views.py:453 part/views.py:2280 msgid "Edit Price Break" msgstr "" -#: company/views.py:469 part/views.py:2295 +#: company/views.py:469 part/views.py:2296 msgid "Delete Price Break" msgstr "" @@ -1538,7 +1538,7 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:185 order/models.py:259 part/views.py:1345 +#: order/models.py:185 order/models.py:259 part/views.py:1346 #: stock/models.py:241 stock/models.py:805 msgid "Quantity must be greater than zero" msgstr "" @@ -1785,7 +1785,7 @@ msgid "Select parts to receive against this order" msgstr "" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:145 templates/js/part.js:388 +#: part/templates/part/part_base.html:145 templates/js/part.js:427 msgid "On Order" msgstr "" @@ -2257,7 +2257,7 @@ msgstr "" msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:1389 templates/js/part.js:521 templates/js/stock.js:92 +#: part/models.py:1389 templates/js/part.js:560 templates/js/stock.js:92 msgid "Test Name" msgstr "" @@ -2277,7 +2277,7 @@ msgstr "" msgid "Is this test required to pass?" msgstr "" -#: part/models.py:1407 templates/js/part.js:538 +#: part/models.py:1407 templates/js/part.js:577 msgid "Requires Value" msgstr "" @@ -2285,7 +2285,7 @@ msgstr "" msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:1413 templates/js/part.js:545 +#: part/models.py:1413 templates/js/part.js:584 msgid "Requires Attachment" msgstr "" @@ -2349,7 +2349,7 @@ msgstr "" msgid "BOM line checksum" msgstr "" -#: part/models.py:1612 part/views.py:1351 part/views.py:1403 +#: part/models.py:1612 part/views.py:1352 part/views.py:1404 #: stock/models.py:231 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -2432,7 +2432,7 @@ msgstr "" msgid "Validate" msgstr "" -#: part/templates/part/bom.html:61 part/views.py:1642 +#: part/templates/part/bom.html:61 part/views.py:1643 msgid "Export Bill of Materials" msgstr "" @@ -2524,7 +2524,7 @@ msgstr "" msgid "All parts" msgstr "" -#: part/templates/part/category.html:24 part/views.py:2045 +#: part/templates/part/category.html:24 part/views.py:2046 msgid "Create new part category" msgstr "" @@ -2604,16 +2604,28 @@ msgstr "" msgid "Parametric Table" msgstr "" +#: part/templates/part/create_part.html:11 +msgid "Possible Matching Parts" +msgstr "" + +#: part/templates/part/create_part.html:12 +msgid "The new part may be a duplicate of these existing parts" +msgstr "" + +#: part/templates/part/create_part.html:16 +msgid "match" +msgstr "" + #: part/templates/part/detail.html:9 msgid "Part Details" msgstr "" #: part/templates/part/detail.html:25 part/templates/part/part_base.html:95 -#: templates/js/part.js:112 +#: templates/js/part.js:141 msgid "IPN" msgstr "" -#: part/templates/part/detail.html:32 templates/js/part.js:116 +#: part/templates/part/detail.html:32 templates/js/part.js:145 msgid "Revision" msgstr "" @@ -2630,7 +2642,7 @@ msgid "Variant Of" msgstr "" #: part/templates/part/detail.html:70 part/templates/part/set_category.html:15 -#: templates/js/part.js:359 +#: templates/js/part.js:398 msgid "Category" msgstr "" @@ -2658,7 +2670,7 @@ msgstr "" msgid "Responsible User" msgstr "" -#: part/templates/part/detail.html:136 +#: part/templates/part/detail.html:136 templates/js/table_filters.js:27 msgid "Virtual" msgstr "" @@ -2671,7 +2683,7 @@ msgid "Part is not a virtual part" msgstr "" #: part/templates/part/detail.html:145 stock/forms.py:248 -#: templates/js/table_filters.js:212 +#: templates/js/table_filters.js:23 templates/js/table_filters.js:243 msgid "Template" msgstr "" @@ -2683,7 +2695,7 @@ msgstr "" msgid "Part is not a template part" msgstr "" -#: part/templates/part/detail.html:154 templates/js/table_filters.js:224 +#: part/templates/part/detail.html:154 templates/js/table_filters.js:255 msgid "Assembly" msgstr "" @@ -2695,7 +2707,7 @@ msgstr "" msgid "Part cannot be assembled from other parts" msgstr "" -#: part/templates/part/detail.html:163 templates/js/table_filters.js:228 +#: part/templates/part/detail.html:163 templates/js/table_filters.js:259 msgid "Component" msgstr "" @@ -2707,7 +2719,8 @@ msgstr "" msgid "Part cannot be used in assemblies" msgstr "" -#: part/templates/part/detail.html:172 templates/js/table_filters.js:240 +#: part/templates/part/detail.html:172 templates/js/table_filters.js:31 +#: templates/js/table_filters.js:271 msgid "Trackable" msgstr "" @@ -2727,7 +2740,7 @@ msgstr "" msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/detail.html:190 templates/js/table_filters.js:236 +#: part/templates/part/detail.html:190 templates/js/table_filters.js:267 msgid "Salable" msgstr "" @@ -2739,8 +2752,8 @@ msgstr "" msgid "Part cannot be sold to customers" msgstr "" -#: part/templates/part/detail.html:199 templates/js/table_filters.js:33 -#: templates/js/table_filters.js:207 +#: part/templates/part/detail.html:199 templates/js/table_filters.js:19 +#: templates/js/table_filters.js:55 templates/js/table_filters.js:238 msgid "Active" msgstr "" @@ -2794,8 +2807,9 @@ msgstr "" msgid "This part is a variant of" msgstr "" -#: part/templates/part/part_base.html:36 templates/js/company.js:153 -#: templates/js/part.js:336 +#: part/templates/part/part_base.html:36 templates/js/bom.js:152 +#: templates/js/company.js:155 templates/js/part.js:133 +#: templates/js/part.js:375 msgid "Inactive" msgstr "" @@ -2845,7 +2859,7 @@ msgstr "" msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:124 templates/js/table_filters.js:89 +#: part/templates/part/part_base.html:124 templates/js/table_filters.js:111 msgid "In Stock" msgstr "" @@ -2905,8 +2919,8 @@ msgstr "" msgid "Part Stock" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/bom.js:197 -#: templates/js/part.js:396 +#: part/templates/part/stock_count.html:7 templates/js/bom.js:215 +#: templates/js/part.js:435 msgid "No Stock" msgstr "" @@ -2962,11 +2976,11 @@ msgstr "" msgid "Part Variants" msgstr "" -#: part/templates/part/variants.html:21 +#: part/templates/part/variants.html:22 msgid "Create new variant" msgstr "" -#: part/templates/part/variants.html:21 +#: part/templates/part/variants.html:23 msgid "New Variant" msgstr "" @@ -3023,127 +3037,127 @@ msgstr "" msgid "Copied part" msgstr "" -#: part/views.py:513 templates/js/stock.js:793 +#: part/views.py:514 templates/js/stock.js:793 msgid "Create New Part" msgstr "" -#: part/views.py:520 +#: part/views.py:521 msgid "Created new part" msgstr "" -#: part/views.py:735 +#: part/views.py:736 msgid "Part QR Code" msgstr "" -#: part/views.py:754 +#: part/views.py:755 msgid "Upload Part Image" msgstr "" -#: part/views.py:762 part/views.py:799 +#: part/views.py:763 part/views.py:800 msgid "Updated part image" msgstr "" -#: part/views.py:771 +#: part/views.py:772 msgid "Select Part Image" msgstr "" -#: part/views.py:802 +#: part/views.py:803 msgid "Part image not found" msgstr "" -#: part/views.py:813 +#: part/views.py:814 msgid "Edit Part Properties" msgstr "" -#: part/views.py:837 +#: part/views.py:838 msgid "Validate BOM" msgstr "" -#: part/views.py:1004 +#: part/views.py:1005 msgid "No BOM file provided" msgstr "" -#: part/views.py:1354 +#: part/views.py:1355 msgid "Enter a valid quantity" msgstr "" -#: part/views.py:1379 part/views.py:1382 +#: part/views.py:1380 part/views.py:1383 msgid "Select valid part" msgstr "" -#: part/views.py:1388 +#: part/views.py:1389 msgid "Duplicate part selected" msgstr "" -#: part/views.py:1426 +#: part/views.py:1427 msgid "Select a part" msgstr "" -#: part/views.py:1432 +#: part/views.py:1433 msgid "Selected part creates a circular BOM" msgstr "" -#: part/views.py:1436 +#: part/views.py:1437 msgid "Specify quantity" msgstr "" -#: part/views.py:1692 +#: part/views.py:1693 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1701 +#: part/views.py:1702 msgid "Part was deleted" msgstr "" -#: part/views.py:1710 +#: part/views.py:1711 msgid "Part Pricing" msgstr "" -#: part/views.py:1836 +#: part/views.py:1837 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1846 +#: part/views.py:1847 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1855 +#: part/views.py:1856 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1865 +#: part/views.py:1866 msgid "Create Part Parameter" msgstr "" -#: part/views.py:1917 +#: part/views.py:1918 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:1933 +#: part/views.py:1934 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:1992 +#: part/views.py:1993 msgid "Edit Part Category" msgstr "" -#: part/views.py:2029 +#: part/views.py:2030 msgid "Delete Part Category" msgstr "" -#: part/views.py:2037 +#: part/views.py:2038 msgid "Part category was deleted" msgstr "" -#: part/views.py:2100 -msgid "Create BOM item" +#: part/views.py:2101 +msgid "Create BOM Item" msgstr "" -#: part/views.py:2168 +#: part/views.py:2169 msgid "Edit BOM item" msgstr "" -#: part/views.py:2218 +#: part/views.py:2219 msgid "Confim BOM item deletion" msgstr "" @@ -3447,7 +3461,7 @@ msgstr "" msgid "Result" msgstr "" -#: stock/models.py:1386 templates/js/table_filters.js:135 +#: stock/models.py:1386 templates/js/table_filters.js:157 msgid "Test result" msgstr "" @@ -4313,51 +4327,63 @@ msgstr "" msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/bom.js:132 +#: templates/js/bom.js:133 templates/js/part.js:117 templates/js/part.js:344 +msgid "Trackable part" +msgstr "" + +#: templates/js/bom.js:137 templates/js/part.js:121 templates/js/part.js:348 +msgid "Virtual part" +msgstr "" + +#: templates/js/bom.js:141 +msgid "Templat part" +msgstr "" + +#: templates/js/bom.js:146 msgid "Open subassembly" msgstr "" -#: templates/js/bom.js:173 +#: templates/js/bom.js:191 msgid "Optional" msgstr "" -#: templates/js/bom.js:188 templates/js/build.js:133 +#: templates/js/bom.js:206 templates/js/build.js:133 msgid "Available" msgstr "" -#: templates/js/bom.js:213 +#: templates/js/bom.js:231 msgid "No pricing available" msgstr "" -#: templates/js/bom.js:232 +#: templates/js/bom.js:250 msgid "Actions" msgstr "" -#: templates/js/bom.js:240 +#: templates/js/bom.js:258 msgid "Validate BOM Item" msgstr "" -#: templates/js/bom.js:242 +#: templates/js/bom.js:260 msgid "This line has been validated" msgstr "" -#: templates/js/bom.js:244 +#: templates/js/bom.js:262 msgid "Edit BOM Item" msgstr "" -#: templates/js/bom.js:246 +#: templates/js/bom.js:264 msgid "Delete BOM Item" msgstr "" -#: templates/js/bom.js:478 +#: templates/js/bom.js:496 msgid "INACTIVE" msgstr "" -#: templates/js/bom.js:492 +#: templates/js/bom.js:510 msgid "Uses" msgstr "" -#: templates/js/bom.js:503 +#: templates/js/bom.js:521 msgid "No matching parts found" msgstr "" @@ -4381,19 +4407,21 @@ msgstr "" msgid "No company information found" msgstr "" -#: templates/js/company.js:128 +#: templates/js/company.js:129 msgid "No supplier parts found" msgstr "" -#: templates/js/company.js:145 templates/js/part.js:314 +#: templates/js/company.js:147 templates/js/part.js:125 +#: templates/js/part.js:353 msgid "Template part" msgstr "" -#: templates/js/company.js:149 templates/js/part.js:318 +#: templates/js/company.js:151 templates/js/part.js:129 +#: templates/js/part.js:357 msgid "Assembled part" msgstr "" -#: templates/js/company.js:206 +#: templates/js/company.js:208 msgid "Link" msgstr "" @@ -4413,59 +4441,59 @@ msgstr "" msgid "Shipment Date" msgstr "" -#: templates/js/part.js:137 +#: templates/js/part.js:166 msgid "No variants found" msgstr "" -#: templates/js/part.js:223 templates/js/part.js:411 +#: templates/js/part.js:252 templates/js/part.js:450 msgid "No parts found" msgstr "" -#: templates/js/part.js:275 templates/js/stock.js:409 templates/js/stock.js:966 +#: templates/js/part.js:304 templates/js/stock.js:409 templates/js/stock.js:966 msgid "Select" msgstr "" -#: templates/js/part.js:322 +#: templates/js/part.js:361 msgid "Starred part" msgstr "" -#: templates/js/part.js:326 +#: templates/js/part.js:365 msgid "Salable part" msgstr "" -#: templates/js/part.js:365 +#: templates/js/part.js:404 msgid "No category" msgstr "" -#: templates/js/part.js:383 templates/js/table_filters.js:220 +#: templates/js/part.js:422 templates/js/table_filters.js:251 msgid "Low stock" msgstr "" -#: templates/js/part.js:392 +#: templates/js/part.js:431 msgid "Building" msgstr "" -#: templates/js/part.js:471 +#: templates/js/part.js:510 msgid "YES" msgstr "" -#: templates/js/part.js:473 +#: templates/js/part.js:512 msgid "NO" msgstr "" -#: templates/js/part.js:507 +#: templates/js/part.js:546 msgid "No test templates matching query" msgstr "" -#: templates/js/part.js:558 templates/js/stock.js:63 +#: templates/js/part.js:597 templates/js/stock.js:63 msgid "Edit test result" msgstr "" -#: templates/js/part.js:559 templates/js/stock.js:64 +#: templates/js/part.js:598 templates/js/stock.js:64 msgid "Delete test result" msgstr "" -#: templates/js/part.js:565 +#: templates/js/part.js:604 msgid "This test is defined for a parent part" msgstr "" @@ -4529,7 +4557,7 @@ msgstr "" msgid "Stock item is lost" msgstr "" -#: templates/js/stock.js:498 templates/js/table_filters.js:84 +#: templates/js/stock.js:498 templates/js/table_filters.js:106 msgid "Depleted" msgstr "" @@ -4553,7 +4581,7 @@ msgstr "" msgid "Serial" msgstr "" -#: templates/js/stock.js:997 templates/js/table_filters.js:94 +#: templates/js/stock.js:997 templates/js/table_filters.js:116 msgid "Installed" msgstr "" @@ -4561,132 +4589,132 @@ msgstr "" msgid "Install item" msgstr "" -#: templates/js/table_filters.js:19 +#: templates/js/table_filters.js:41 msgid "Trackable Part" msgstr "" -#: templates/js/table_filters.js:23 +#: templates/js/table_filters.js:45 msgid "Validated" msgstr "" -#: templates/js/table_filters.js:43 templates/js/table_filters.js:104 +#: templates/js/table_filters.js:65 templates/js/table_filters.js:126 msgid "Is Serialized" msgstr "" -#: templates/js/table_filters.js:46 templates/js/table_filters.js:111 +#: templates/js/table_filters.js:68 templates/js/table_filters.js:133 msgid "Serial number GTE" msgstr "" -#: templates/js/table_filters.js:47 templates/js/table_filters.js:112 +#: templates/js/table_filters.js:69 templates/js/table_filters.js:134 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/table_filters.js:50 templates/js/table_filters.js:115 +#: templates/js/table_filters.js:72 templates/js/table_filters.js:137 msgid "Serial number LTE" msgstr "" -#: templates/js/table_filters.js:51 templates/js/table_filters.js:116 +#: templates/js/table_filters.js:73 templates/js/table_filters.js:138 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/table_filters.js:54 templates/js/table_filters.js:55 -#: templates/js/table_filters.js:107 templates/js/table_filters.js:108 +#: templates/js/table_filters.js:76 templates/js/table_filters.js:77 +#: templates/js/table_filters.js:129 templates/js/table_filters.js:130 msgid "Serial number" msgstr "" -#: templates/js/table_filters.js:59 templates/js/table_filters.js:125 +#: templates/js/table_filters.js:81 templates/js/table_filters.js:147 msgid "Batch code" msgstr "" -#: templates/js/table_filters.js:69 +#: templates/js/table_filters.js:91 templates/js/table_filters.js:218 msgid "Active parts" msgstr "" -#: templates/js/table_filters.js:70 +#: templates/js/table_filters.js:92 msgid "Show stock for active parts" msgstr "" -#: templates/js/table_filters.js:74 +#: templates/js/table_filters.js:96 msgid "Is allocated" msgstr "" -#: templates/js/table_filters.js:75 +#: templates/js/table_filters.js:97 msgid "Item has been alloacted" msgstr "" -#: templates/js/table_filters.js:79 +#: templates/js/table_filters.js:101 msgid "Include sublocations" msgstr "" -#: templates/js/table_filters.js:80 +#: templates/js/table_filters.js:102 msgid "Include stock in sublocations" msgstr "" -#: templates/js/table_filters.js:85 +#: templates/js/table_filters.js:107 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/table_filters.js:90 +#: templates/js/table_filters.js:112 msgid "Show items which are in stock" msgstr "" -#: templates/js/table_filters.js:95 +#: templates/js/table_filters.js:117 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/table_filters.js:99 +#: templates/js/table_filters.js:121 msgid "Sent to customer" msgstr "" -#: templates/js/table_filters.js:100 +#: templates/js/table_filters.js:122 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/table_filters.js:120 templates/js/table_filters.js:121 +#: templates/js/table_filters.js:142 templates/js/table_filters.js:143 msgid "Stock status" msgstr "" -#: templates/js/table_filters.js:154 +#: templates/js/table_filters.js:176 msgid "Build status" msgstr "" -#: templates/js/table_filters.js:169 templates/js/table_filters.js:182 +#: templates/js/table_filters.js:191 templates/js/table_filters.js:204 msgid "Order status" msgstr "" -#: templates/js/table_filters.js:174 templates/js/table_filters.js:187 +#: templates/js/table_filters.js:196 templates/js/table_filters.js:209 msgid "Outstanding" msgstr "" -#: templates/js/table_filters.js:197 +#: templates/js/table_filters.js:228 msgid "Include subcategories" msgstr "" -#: templates/js/table_filters.js:198 +#: templates/js/table_filters.js:229 msgid "Include parts in subcategories" msgstr "" -#: templates/js/table_filters.js:202 +#: templates/js/table_filters.js:233 msgid "Has IPN" msgstr "" -#: templates/js/table_filters.js:203 +#: templates/js/table_filters.js:234 msgid "Part has internal part number" msgstr "" -#: templates/js/table_filters.js:208 +#: templates/js/table_filters.js:239 msgid "Show active parts" msgstr "" -#: templates/js/table_filters.js:216 +#: templates/js/table_filters.js:247 msgid "Stock available" msgstr "" -#: templates/js/table_filters.js:232 +#: templates/js/table_filters.js:263 msgid "Starred" msgstr "" -#: templates/js/table_filters.js:244 +#: templates/js/table_filters.js:275 msgid "Purchasable" msgstr "" diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po index 15b1d532f6..c1a4837c86 100644 --- a/InvenTree/locale/es/LC_MESSAGES/django.po +++ b/InvenTree/locale/es/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-10-28 11:37+0000\n" +"POT-Creation-Date: 2020-10-29 02:25+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -91,7 +91,7 @@ msgid "User" msgstr "" #: InvenTree/models.py:106 part/templates/part/params.html:24 -#: templates/js/part.js:81 +#: templates/js/part.js:90 msgid "Name" msgstr "" @@ -116,7 +116,7 @@ msgid "Polish" msgstr "" #: InvenTree/status_codes.py:94 InvenTree/status_codes.py:135 -#: InvenTree/status_codes.py:222 templates/js/table_filters.js:159 +#: InvenTree/status_codes.py:222 templates/js/table_filters.js:181 msgid "Pending" msgstr "" @@ -291,7 +291,7 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:87 build/templates/build/allocate.html:342 -#: order/templates/order/purchase_order_detail.html:173 templates/js/bom.js:154 +#: order/templates/order/purchase_order_detail.html:173 templates/js/bom.js:172 msgid "Reference" msgstr "" @@ -300,10 +300,10 @@ msgstr "" #: company/templates/company/supplier_part_detail.html:27 #: order/templates/order/purchase_order_detail.html:160 #: part/templates/part/detail.html:51 part/templates/part/set_category.html:14 -#: templates/InvenTree/search.html:147 templates/js/bom.js:147 -#: templates/js/bom.js:486 templates/js/build.js:56 templates/js/company.js:56 -#: templates/js/order.js:167 templates/js/order.js:249 templates/js/part.js:120 -#: templates/js/part.js:203 templates/js/part.js:345 templates/js/part.js:526 +#: templates/InvenTree/search.html:147 templates/js/bom.js:165 +#: templates/js/bom.js:504 templates/js/build.js:56 templates/js/company.js:56 +#: templates/js/order.js:167 templates/js/order.js:249 templates/js/part.js:149 +#: templates/js/part.js:232 templates/js/part.js:384 templates/js/part.js:565 #: templates/js/stock.js:445 templates/js/stock.js:672 msgid "Description" msgstr "" @@ -329,9 +329,9 @@ msgstr "" #: order/templates/order/receive_parts.html:19 part/models.py:293 #: part/templates/part/part_app_base.html:7 #: part/templates/part/set_category.html:13 templates/InvenTree/search.html:133 -#: templates/js/barcode.js:336 templates/js/bom.js:124 templates/js/bom.js:471 -#: templates/js/build.js:61 templates/js/company.js:137 -#: templates/js/part.js:184 templates/js/part.js:289 templates/js/stock.js:421 +#: templates/js/barcode.js:336 templates/js/bom.js:124 templates/js/bom.js:489 +#: templates/js/build.js:61 templates/js/company.js:138 +#: templates/js/part.js:213 templates/js/part.js:318 templates/js/stock.js:421 #: templates/js/stock.js:978 msgid "Part" msgstr "" @@ -400,7 +400,7 @@ msgstr "" #: order/templates/order/so_tabs.html:23 part/templates/part/tabs.html:70 #: stock/forms.py:306 stock/forms.py:338 stock/forms.py:366 stock/models.py:453 #: stock/models.py:1404 stock/templates/stock/tabs.html:26 -#: templates/js/barcode.js:391 templates/js/bom.js:223 +#: templates/js/barcode.js:391 templates/js/bom.js:241 #: templates/js/stock.js:116 templates/js/stock.js:544 msgid "Notes" msgstr "" @@ -492,7 +492,7 @@ msgstr "" #: stock/templates/stock/item_base.html:32 #: stock/templates/stock/item_base.html:184 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:338 -#: templates/js/bom.js:162 templates/js/build.js:72 templates/js/stock.js:691 +#: templates/js/bom.js:180 templates/js/build.js:72 templates/js/stock.js:691 #: templates/js/stock.js:906 msgid "Quantity" msgstr "" @@ -516,12 +516,12 @@ msgstr "" msgid "Delete stock allocation" msgstr "" -#: build/templates/build/allocate.html:238 templates/js/bom.js:334 +#: build/templates/build/allocate.html:238 templates/js/bom.js:352 msgid "No BOM items found" msgstr "" #: build/templates/build/allocate.html:347 part/models.py:1401 -#: templates/js/part.js:530 templates/js/table_filters.js:145 +#: templates/js/part.js:569 templates/js/table_filters.js:167 msgid "Required" msgstr "" @@ -693,8 +693,8 @@ msgstr "" #: build/templates/build/detail.html:48 #: stock/templates/stock/item_base.html:238 templates/js/stock.js:514 -#: templates/js/stock.js:921 templates/js/table_filters.js:58 -#: templates/js/table_filters.js:124 +#: templates/js/stock.js:921 templates/js/table_filters.js:80 +#: templates/js/table_filters.js:146 msgid "Batch" msgstr "" @@ -1104,7 +1104,7 @@ msgstr "" #: company/templates/company/detail.html:16 #: company/templates/company/supplier_part_base.html:84 #: company/templates/company/supplier_part_detail.html:30 part/bom.py:172 -#: templates/js/company.js:44 templates/js/company.js:186 +#: templates/js/company.js:44 templates/js/company.js:188 msgid "Manufacturer" msgstr "" @@ -1114,7 +1114,7 @@ msgstr "" #: order/templates/order/order_base.html:79 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:170 #: stock/templates/stock/item_base.html:273 templates/js/company.js:48 -#: templates/js/company.js:162 templates/js/order.js:154 +#: templates/js/company.js:164 templates/js/order.js:154 msgid "Supplier" msgstr "" @@ -1159,30 +1159,30 @@ msgstr "" msgid "Delete Parts" msgstr "" -#: company/templates/company/detail_part.html:60 +#: company/templates/company/detail_part.html:63 #: part/templates/part/category.html:116 templates/js/stock.js:792 msgid "New Part" msgstr "" -#: company/templates/company/detail_part.html:61 +#: company/templates/company/detail_part.html:64 msgid "Create new Part" msgstr "" -#: company/templates/company/detail_part.html:66 company/views.py:53 +#: company/templates/company/detail_part.html:69 company/views.py:53 #: part/templates/part/supplier.html:47 msgid "New Supplier" msgstr "" -#: company/templates/company/detail_part.html:67 company/views.py:192 +#: company/templates/company/detail_part.html:70 company/views.py:192 msgid "Create new Supplier" msgstr "" -#: company/templates/company/detail_part.html:72 company/views.py:60 +#: company/templates/company/detail_part.html:75 company/views.py:60 #: part/templates/part/supplier.html:53 msgid "New Manufacturer" msgstr "" -#: company/templates/company/detail_part.html:73 company/views.py:195 +#: company/templates/company/detail_part.html:76 company/views.py:195 msgid "Create new Manufacturer" msgstr "" @@ -1253,7 +1253,7 @@ msgstr "" #: company/templates/company/supplier_part_base.html:6 #: company/templates/company/supplier_part_base.html:19 stock/models.py:344 -#: stock/templates/stock/item_base.html:278 templates/js/company.js:178 +#: stock/templates/stock/item_base.html:278 templates/js/company.js:180 msgid "Supplier Part" msgstr "" @@ -1287,7 +1287,7 @@ msgstr "" #: company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:31 part/bom.py:173 -#: templates/js/company.js:202 +#: templates/js/company.js:204 msgid "MPN" msgstr "" @@ -1310,7 +1310,7 @@ msgid "Pricing Information" msgstr "" #: company/templates/company/supplier_part_pricing.html:17 company/views.py:410 -#: part/templates/part/sale_prices.html:13 part/views.py:2228 +#: part/templates/part/sale_prices.html:13 part/views.py:2229 msgid "Add Price Break" msgstr "" @@ -1320,7 +1320,7 @@ msgid "No price break information found" msgstr "" #: company/templates/company/supplier_part_pricing.html:80 -#: part/templates/part/sale_prices.html:85 templates/js/bom.js:207 +#: part/templates/part/sale_prices.html:85 templates/js/bom.js:225 msgid "Price" msgstr "" @@ -1345,8 +1345,8 @@ msgstr "" #: company/templates/company/supplier_part_tabs.html:8 #: company/templates/company/tabs.html:12 part/templates/part/tabs.html:18 #: stock/templates/stock/location.html:17 templates/InvenTree/search.html:155 -#: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:124 -#: templates/js/part.js:372 templates/js/stock.js:453 templates/navbar.html:22 +#: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:153 +#: templates/js/part.js:411 templates/js/stock.js:453 templates/navbar.html:22 #: users/models.py:29 msgid "Stock" msgstr "" @@ -1437,15 +1437,15 @@ msgstr "" msgid "Delete Supplier Part" msgstr "" -#: company/views.py:416 part/views.py:2234 +#: company/views.py:416 part/views.py:2235 msgid "Added new price break" msgstr "" -#: company/views.py:453 part/views.py:2279 +#: company/views.py:453 part/views.py:2280 msgid "Edit Price Break" msgstr "" -#: company/views.py:469 part/views.py:2295 +#: company/views.py:469 part/views.py:2296 msgid "Delete Price Break" msgstr "" @@ -1538,7 +1538,7 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:185 order/models.py:259 part/views.py:1345 +#: order/models.py:185 order/models.py:259 part/views.py:1346 #: stock/models.py:241 stock/models.py:805 msgid "Quantity must be greater than zero" msgstr "" @@ -1785,7 +1785,7 @@ msgid "Select parts to receive against this order" msgstr "" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:145 templates/js/part.js:388 +#: part/templates/part/part_base.html:145 templates/js/part.js:427 msgid "On Order" msgstr "" @@ -2257,7 +2257,7 @@ msgstr "" msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:1389 templates/js/part.js:521 templates/js/stock.js:92 +#: part/models.py:1389 templates/js/part.js:560 templates/js/stock.js:92 msgid "Test Name" msgstr "" @@ -2277,7 +2277,7 @@ msgstr "" msgid "Is this test required to pass?" msgstr "" -#: part/models.py:1407 templates/js/part.js:538 +#: part/models.py:1407 templates/js/part.js:577 msgid "Requires Value" msgstr "" @@ -2285,7 +2285,7 @@ msgstr "" msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:1413 templates/js/part.js:545 +#: part/models.py:1413 templates/js/part.js:584 msgid "Requires Attachment" msgstr "" @@ -2349,7 +2349,7 @@ msgstr "" msgid "BOM line checksum" msgstr "" -#: part/models.py:1612 part/views.py:1351 part/views.py:1403 +#: part/models.py:1612 part/views.py:1352 part/views.py:1404 #: stock/models.py:231 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -2432,7 +2432,7 @@ msgstr "" msgid "Validate" msgstr "" -#: part/templates/part/bom.html:61 part/views.py:1642 +#: part/templates/part/bom.html:61 part/views.py:1643 msgid "Export Bill of Materials" msgstr "" @@ -2524,7 +2524,7 @@ msgstr "" msgid "All parts" msgstr "" -#: part/templates/part/category.html:24 part/views.py:2045 +#: part/templates/part/category.html:24 part/views.py:2046 msgid "Create new part category" msgstr "" @@ -2604,16 +2604,28 @@ msgstr "" msgid "Parametric Table" msgstr "" +#: part/templates/part/create_part.html:11 +msgid "Possible Matching Parts" +msgstr "" + +#: part/templates/part/create_part.html:12 +msgid "The new part may be a duplicate of these existing parts" +msgstr "" + +#: part/templates/part/create_part.html:16 +msgid "match" +msgstr "" + #: part/templates/part/detail.html:9 msgid "Part Details" msgstr "" #: part/templates/part/detail.html:25 part/templates/part/part_base.html:95 -#: templates/js/part.js:112 +#: templates/js/part.js:141 msgid "IPN" msgstr "" -#: part/templates/part/detail.html:32 templates/js/part.js:116 +#: part/templates/part/detail.html:32 templates/js/part.js:145 msgid "Revision" msgstr "" @@ -2630,7 +2642,7 @@ msgid "Variant Of" msgstr "" #: part/templates/part/detail.html:70 part/templates/part/set_category.html:15 -#: templates/js/part.js:359 +#: templates/js/part.js:398 msgid "Category" msgstr "" @@ -2658,7 +2670,7 @@ msgstr "" msgid "Responsible User" msgstr "" -#: part/templates/part/detail.html:136 +#: part/templates/part/detail.html:136 templates/js/table_filters.js:27 msgid "Virtual" msgstr "" @@ -2671,7 +2683,7 @@ msgid "Part is not a virtual part" msgstr "" #: part/templates/part/detail.html:145 stock/forms.py:248 -#: templates/js/table_filters.js:212 +#: templates/js/table_filters.js:23 templates/js/table_filters.js:243 msgid "Template" msgstr "" @@ -2683,7 +2695,7 @@ msgstr "" msgid "Part is not a template part" msgstr "" -#: part/templates/part/detail.html:154 templates/js/table_filters.js:224 +#: part/templates/part/detail.html:154 templates/js/table_filters.js:255 msgid "Assembly" msgstr "" @@ -2695,7 +2707,7 @@ msgstr "" msgid "Part cannot be assembled from other parts" msgstr "" -#: part/templates/part/detail.html:163 templates/js/table_filters.js:228 +#: part/templates/part/detail.html:163 templates/js/table_filters.js:259 msgid "Component" msgstr "" @@ -2707,7 +2719,8 @@ msgstr "" msgid "Part cannot be used in assemblies" msgstr "" -#: part/templates/part/detail.html:172 templates/js/table_filters.js:240 +#: part/templates/part/detail.html:172 templates/js/table_filters.js:31 +#: templates/js/table_filters.js:271 msgid "Trackable" msgstr "" @@ -2727,7 +2740,7 @@ msgstr "" msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/detail.html:190 templates/js/table_filters.js:236 +#: part/templates/part/detail.html:190 templates/js/table_filters.js:267 msgid "Salable" msgstr "" @@ -2739,8 +2752,8 @@ msgstr "" msgid "Part cannot be sold to customers" msgstr "" -#: part/templates/part/detail.html:199 templates/js/table_filters.js:33 -#: templates/js/table_filters.js:207 +#: part/templates/part/detail.html:199 templates/js/table_filters.js:19 +#: templates/js/table_filters.js:55 templates/js/table_filters.js:238 msgid "Active" msgstr "" @@ -2794,8 +2807,9 @@ msgstr "" msgid "This part is a variant of" msgstr "" -#: part/templates/part/part_base.html:36 templates/js/company.js:153 -#: templates/js/part.js:336 +#: part/templates/part/part_base.html:36 templates/js/bom.js:152 +#: templates/js/company.js:155 templates/js/part.js:133 +#: templates/js/part.js:375 msgid "Inactive" msgstr "" @@ -2845,7 +2859,7 @@ msgstr "" msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:124 templates/js/table_filters.js:89 +#: part/templates/part/part_base.html:124 templates/js/table_filters.js:111 msgid "In Stock" msgstr "" @@ -2905,8 +2919,8 @@ msgstr "" msgid "Part Stock" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/bom.js:197 -#: templates/js/part.js:396 +#: part/templates/part/stock_count.html:7 templates/js/bom.js:215 +#: templates/js/part.js:435 msgid "No Stock" msgstr "" @@ -2962,11 +2976,11 @@ msgstr "" msgid "Part Variants" msgstr "" -#: part/templates/part/variants.html:21 +#: part/templates/part/variants.html:22 msgid "Create new variant" msgstr "" -#: part/templates/part/variants.html:21 +#: part/templates/part/variants.html:23 msgid "New Variant" msgstr "" @@ -3023,127 +3037,127 @@ msgstr "" msgid "Copied part" msgstr "" -#: part/views.py:513 templates/js/stock.js:793 +#: part/views.py:514 templates/js/stock.js:793 msgid "Create New Part" msgstr "" -#: part/views.py:520 +#: part/views.py:521 msgid "Created new part" msgstr "" -#: part/views.py:735 +#: part/views.py:736 msgid "Part QR Code" msgstr "" -#: part/views.py:754 +#: part/views.py:755 msgid "Upload Part Image" msgstr "" -#: part/views.py:762 part/views.py:799 +#: part/views.py:763 part/views.py:800 msgid "Updated part image" msgstr "" -#: part/views.py:771 +#: part/views.py:772 msgid "Select Part Image" msgstr "" -#: part/views.py:802 +#: part/views.py:803 msgid "Part image not found" msgstr "" -#: part/views.py:813 +#: part/views.py:814 msgid "Edit Part Properties" msgstr "" -#: part/views.py:837 +#: part/views.py:838 msgid "Validate BOM" msgstr "" -#: part/views.py:1004 +#: part/views.py:1005 msgid "No BOM file provided" msgstr "" -#: part/views.py:1354 +#: part/views.py:1355 msgid "Enter a valid quantity" msgstr "" -#: part/views.py:1379 part/views.py:1382 +#: part/views.py:1380 part/views.py:1383 msgid "Select valid part" msgstr "" -#: part/views.py:1388 +#: part/views.py:1389 msgid "Duplicate part selected" msgstr "" -#: part/views.py:1426 +#: part/views.py:1427 msgid "Select a part" msgstr "" -#: part/views.py:1432 +#: part/views.py:1433 msgid "Selected part creates a circular BOM" msgstr "" -#: part/views.py:1436 +#: part/views.py:1437 msgid "Specify quantity" msgstr "" -#: part/views.py:1692 +#: part/views.py:1693 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1701 +#: part/views.py:1702 msgid "Part was deleted" msgstr "" -#: part/views.py:1710 +#: part/views.py:1711 msgid "Part Pricing" msgstr "" -#: part/views.py:1836 +#: part/views.py:1837 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1846 +#: part/views.py:1847 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1855 +#: part/views.py:1856 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1865 +#: part/views.py:1866 msgid "Create Part Parameter" msgstr "" -#: part/views.py:1917 +#: part/views.py:1918 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:1933 +#: part/views.py:1934 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:1992 +#: part/views.py:1993 msgid "Edit Part Category" msgstr "" -#: part/views.py:2029 +#: part/views.py:2030 msgid "Delete Part Category" msgstr "" -#: part/views.py:2037 +#: part/views.py:2038 msgid "Part category was deleted" msgstr "" -#: part/views.py:2100 -msgid "Create BOM item" +#: part/views.py:2101 +msgid "Create BOM Item" msgstr "" -#: part/views.py:2168 +#: part/views.py:2169 msgid "Edit BOM item" msgstr "" -#: part/views.py:2218 +#: part/views.py:2219 msgid "Confim BOM item deletion" msgstr "" @@ -3447,7 +3461,7 @@ msgstr "" msgid "Result" msgstr "" -#: stock/models.py:1386 templates/js/table_filters.js:135 +#: stock/models.py:1386 templates/js/table_filters.js:157 msgid "Test result" msgstr "" @@ -4313,51 +4327,63 @@ msgstr "" msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/bom.js:132 +#: templates/js/bom.js:133 templates/js/part.js:117 templates/js/part.js:344 +msgid "Trackable part" +msgstr "" + +#: templates/js/bom.js:137 templates/js/part.js:121 templates/js/part.js:348 +msgid "Virtual part" +msgstr "" + +#: templates/js/bom.js:141 +msgid "Templat part" +msgstr "" + +#: templates/js/bom.js:146 msgid "Open subassembly" msgstr "" -#: templates/js/bom.js:173 +#: templates/js/bom.js:191 msgid "Optional" msgstr "" -#: templates/js/bom.js:188 templates/js/build.js:133 +#: templates/js/bom.js:206 templates/js/build.js:133 msgid "Available" msgstr "" -#: templates/js/bom.js:213 +#: templates/js/bom.js:231 msgid "No pricing available" msgstr "" -#: templates/js/bom.js:232 +#: templates/js/bom.js:250 msgid "Actions" msgstr "" -#: templates/js/bom.js:240 +#: templates/js/bom.js:258 msgid "Validate BOM Item" msgstr "" -#: templates/js/bom.js:242 +#: templates/js/bom.js:260 msgid "This line has been validated" msgstr "" -#: templates/js/bom.js:244 +#: templates/js/bom.js:262 msgid "Edit BOM Item" msgstr "" -#: templates/js/bom.js:246 +#: templates/js/bom.js:264 msgid "Delete BOM Item" msgstr "" -#: templates/js/bom.js:478 +#: templates/js/bom.js:496 msgid "INACTIVE" msgstr "" -#: templates/js/bom.js:492 +#: templates/js/bom.js:510 msgid "Uses" msgstr "" -#: templates/js/bom.js:503 +#: templates/js/bom.js:521 msgid "No matching parts found" msgstr "" @@ -4381,19 +4407,21 @@ msgstr "" msgid "No company information found" msgstr "" -#: templates/js/company.js:128 +#: templates/js/company.js:129 msgid "No supplier parts found" msgstr "" -#: templates/js/company.js:145 templates/js/part.js:314 +#: templates/js/company.js:147 templates/js/part.js:125 +#: templates/js/part.js:353 msgid "Template part" msgstr "" -#: templates/js/company.js:149 templates/js/part.js:318 +#: templates/js/company.js:151 templates/js/part.js:129 +#: templates/js/part.js:357 msgid "Assembled part" msgstr "" -#: templates/js/company.js:206 +#: templates/js/company.js:208 msgid "Link" msgstr "" @@ -4413,59 +4441,59 @@ msgstr "" msgid "Shipment Date" msgstr "" -#: templates/js/part.js:137 +#: templates/js/part.js:166 msgid "No variants found" msgstr "" -#: templates/js/part.js:223 templates/js/part.js:411 +#: templates/js/part.js:252 templates/js/part.js:450 msgid "No parts found" msgstr "" -#: templates/js/part.js:275 templates/js/stock.js:409 templates/js/stock.js:966 +#: templates/js/part.js:304 templates/js/stock.js:409 templates/js/stock.js:966 msgid "Select" msgstr "" -#: templates/js/part.js:322 +#: templates/js/part.js:361 msgid "Starred part" msgstr "" -#: templates/js/part.js:326 +#: templates/js/part.js:365 msgid "Salable part" msgstr "" -#: templates/js/part.js:365 +#: templates/js/part.js:404 msgid "No category" msgstr "" -#: templates/js/part.js:383 templates/js/table_filters.js:220 +#: templates/js/part.js:422 templates/js/table_filters.js:251 msgid "Low stock" msgstr "" -#: templates/js/part.js:392 +#: templates/js/part.js:431 msgid "Building" msgstr "" -#: templates/js/part.js:471 +#: templates/js/part.js:510 msgid "YES" msgstr "" -#: templates/js/part.js:473 +#: templates/js/part.js:512 msgid "NO" msgstr "" -#: templates/js/part.js:507 +#: templates/js/part.js:546 msgid "No test templates matching query" msgstr "" -#: templates/js/part.js:558 templates/js/stock.js:63 +#: templates/js/part.js:597 templates/js/stock.js:63 msgid "Edit test result" msgstr "" -#: templates/js/part.js:559 templates/js/stock.js:64 +#: templates/js/part.js:598 templates/js/stock.js:64 msgid "Delete test result" msgstr "" -#: templates/js/part.js:565 +#: templates/js/part.js:604 msgid "This test is defined for a parent part" msgstr "" @@ -4529,7 +4557,7 @@ msgstr "" msgid "Stock item is lost" msgstr "" -#: templates/js/stock.js:498 templates/js/table_filters.js:84 +#: templates/js/stock.js:498 templates/js/table_filters.js:106 msgid "Depleted" msgstr "" @@ -4553,7 +4581,7 @@ msgstr "" msgid "Serial" msgstr "" -#: templates/js/stock.js:997 templates/js/table_filters.js:94 +#: templates/js/stock.js:997 templates/js/table_filters.js:116 msgid "Installed" msgstr "" @@ -4561,132 +4589,132 @@ msgstr "" msgid "Install item" msgstr "" -#: templates/js/table_filters.js:19 +#: templates/js/table_filters.js:41 msgid "Trackable Part" msgstr "" -#: templates/js/table_filters.js:23 +#: templates/js/table_filters.js:45 msgid "Validated" msgstr "" -#: templates/js/table_filters.js:43 templates/js/table_filters.js:104 +#: templates/js/table_filters.js:65 templates/js/table_filters.js:126 msgid "Is Serialized" msgstr "" -#: templates/js/table_filters.js:46 templates/js/table_filters.js:111 +#: templates/js/table_filters.js:68 templates/js/table_filters.js:133 msgid "Serial number GTE" msgstr "" -#: templates/js/table_filters.js:47 templates/js/table_filters.js:112 +#: templates/js/table_filters.js:69 templates/js/table_filters.js:134 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/table_filters.js:50 templates/js/table_filters.js:115 +#: templates/js/table_filters.js:72 templates/js/table_filters.js:137 msgid "Serial number LTE" msgstr "" -#: templates/js/table_filters.js:51 templates/js/table_filters.js:116 +#: templates/js/table_filters.js:73 templates/js/table_filters.js:138 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/table_filters.js:54 templates/js/table_filters.js:55 -#: templates/js/table_filters.js:107 templates/js/table_filters.js:108 +#: templates/js/table_filters.js:76 templates/js/table_filters.js:77 +#: templates/js/table_filters.js:129 templates/js/table_filters.js:130 msgid "Serial number" msgstr "" -#: templates/js/table_filters.js:59 templates/js/table_filters.js:125 +#: templates/js/table_filters.js:81 templates/js/table_filters.js:147 msgid "Batch code" msgstr "" -#: templates/js/table_filters.js:69 +#: templates/js/table_filters.js:91 templates/js/table_filters.js:218 msgid "Active parts" msgstr "" -#: templates/js/table_filters.js:70 +#: templates/js/table_filters.js:92 msgid "Show stock for active parts" msgstr "" -#: templates/js/table_filters.js:74 +#: templates/js/table_filters.js:96 msgid "Is allocated" msgstr "" -#: templates/js/table_filters.js:75 +#: templates/js/table_filters.js:97 msgid "Item has been alloacted" msgstr "" -#: templates/js/table_filters.js:79 +#: templates/js/table_filters.js:101 msgid "Include sublocations" msgstr "" -#: templates/js/table_filters.js:80 +#: templates/js/table_filters.js:102 msgid "Include stock in sublocations" msgstr "" -#: templates/js/table_filters.js:85 +#: templates/js/table_filters.js:107 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/table_filters.js:90 +#: templates/js/table_filters.js:112 msgid "Show items which are in stock" msgstr "" -#: templates/js/table_filters.js:95 +#: templates/js/table_filters.js:117 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/table_filters.js:99 +#: templates/js/table_filters.js:121 msgid "Sent to customer" msgstr "" -#: templates/js/table_filters.js:100 +#: templates/js/table_filters.js:122 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/table_filters.js:120 templates/js/table_filters.js:121 +#: templates/js/table_filters.js:142 templates/js/table_filters.js:143 msgid "Stock status" msgstr "" -#: templates/js/table_filters.js:154 +#: templates/js/table_filters.js:176 msgid "Build status" msgstr "" -#: templates/js/table_filters.js:169 templates/js/table_filters.js:182 +#: templates/js/table_filters.js:191 templates/js/table_filters.js:204 msgid "Order status" msgstr "" -#: templates/js/table_filters.js:174 templates/js/table_filters.js:187 +#: templates/js/table_filters.js:196 templates/js/table_filters.js:209 msgid "Outstanding" msgstr "" -#: templates/js/table_filters.js:197 +#: templates/js/table_filters.js:228 msgid "Include subcategories" msgstr "" -#: templates/js/table_filters.js:198 +#: templates/js/table_filters.js:229 msgid "Include parts in subcategories" msgstr "" -#: templates/js/table_filters.js:202 +#: templates/js/table_filters.js:233 msgid "Has IPN" msgstr "" -#: templates/js/table_filters.js:203 +#: templates/js/table_filters.js:234 msgid "Part has internal part number" msgstr "" -#: templates/js/table_filters.js:208 +#: templates/js/table_filters.js:239 msgid "Show active parts" msgstr "" -#: templates/js/table_filters.js:216 +#: templates/js/table_filters.js:247 msgid "Stock available" msgstr "" -#: templates/js/table_filters.js:232 +#: templates/js/table_filters.js:263 msgid "Starred" msgstr "" -#: templates/js/table_filters.js:244 +#: templates/js/table_filters.js:275 msgid "Purchasable" msgstr "" diff --git a/InvenTree/part/api.py b/InvenTree/part/api.py index 60c391c1e1..975a8af31d 100644 --- a/InvenTree/part/api.py +++ b/InvenTree/part/api.py @@ -461,8 +461,8 @@ class PartList(generics.ListCreateAPIView): else: queryset = queryset.exclude(pk__in=starred_parts) - # Cascade? - cascade = str2bool(params.get('cascade', None)) + # Cascade? (Default = True) + cascade = str2bool(params.get('cascade', True)) # Does the user wish to filter by category? cat_id = params.get('category', None) diff --git a/InvenTree/part/models.py b/InvenTree/part/models.py index 25d53c7496..2d654de129 100644 --- a/InvenTree/part/models.py +++ b/InvenTree/part/models.py @@ -245,7 +245,7 @@ def match_part_names(match, threshold=80, reverse=True, compare_length=False): if ratio >= threshold: matches.append({ 'part': part, - 'ratio': ratio + 'ratio': round(ratio, 1) }) matches = sorted(matches, key=lambda item: item['ratio'], reverse=reverse) diff --git a/InvenTree/part/templates/part/create_part.html b/InvenTree/part/templates/part/create_part.html index 4f1fcfb03a..d0e322d887 100644 --- a/InvenTree/part/templates/part/create_part.html +++ b/InvenTree/part/templates/part/create_part.html @@ -1,19 +1,23 @@ {% extends "modal_form.html" %} +{% load inventree_extras %} +{% load i18n %} {% block pre_form_content %} {{ block.super }} {% if matches %} -Possible Matching Parts -

The new part may be a duplicate of these existing parts:

-
    -{% for match in matches %} -
  • - {{ match.part.full_name }} - {{ match.part.description }} ({{ match.ratio }}%) -
  • -{% endfor %} +
    + {% trans "Possible Matching Parts" %} +

    {% trans "The new part may be a duplicate of these existing parts" %}:

    +
      + {% for match in matches %} +
    • + {{ match.part.full_name }} - {{ match.part.description }} ({% decimal match.ratio %}% {% trans "match" %}) +
    • + {% endfor %}
    +
    {% endif %} {% endblock %} \ No newline at end of file diff --git a/InvenTree/part/templates/part/detail.html b/InvenTree/part/templates/part/detail.html index 2714347414..7e14184b30 100644 --- a/InvenTree/part/templates/part/detail.html +++ b/InvenTree/part/templates/part/detail.html @@ -15,7 +15,7 @@ - + @@ -28,7 +28,7 @@ {% endif %} {% if part.revision %} - + @@ -132,7 +132,9 @@
    {% trans "Part name" %} {{ part.name }}
    {% trans "Revision" %} {{ part.revision }}
    + + {% if part.virtual %} @@ -142,6 +144,7 @@ {% endif %} + {% if part.is_template %} @@ -151,6 +154,7 @@ {% endif %} + {% if part.assembly %} @@ -160,6 +164,7 @@ {% endif %} + {% if part.component %} @@ -169,6 +174,7 @@ {% endif %} + {% if part.trackable %} @@ -178,6 +184,7 @@ {% endif %} + {% if part.purchaseable %} @@ -187,6 +194,7 @@ {% endif %} + {% if part.salable %} @@ -196,6 +204,13 @@ {% endif %} + {% if part.active %} diff --git a/InvenTree/part/templates/part/variants.html b/InvenTree/part/templates/part/variants.html index e31d6deee2..56aacdd1dc 100644 --- a/InvenTree/part/templates/part/variants.html +++ b/InvenTree/part/templates/part/variants.html @@ -16,10 +16,17 @@
    -
    - {% if part.is_template and part.active %} - - {% endif %} +
    +
    + {% if part.is_template and part.active %} + + {% endif %} +
    +
    + +
    diff --git a/InvenTree/part/views.py b/InvenTree/part/views.py index bf30798458..bf6a4688ff 100644 --- a/InvenTree/part/views.py +++ b/InvenTree/part/views.py @@ -436,7 +436,8 @@ class PartDuplicate(AjaxCreateView): matches = match_part_names(name) if len(matches) > 0: - context['matches'] = matches + # Display the first five closest matches + context['matches'] = matches[:5] # Enforce display of the checkbox form.fields['confirm_creation'].widget = CheckboxInput() @@ -2097,7 +2098,7 @@ class BomItemCreate(AjaxCreateView): model = BomItem form_class = part_forms.EditBomItemForm ajax_template_name = 'modal_form.html' - ajax_form_title = _('Create BOM item') + ajax_form_title = _('Create BOM Item') role_required = 'part.add' diff --git a/InvenTree/stock/templates/stock/item_base.html b/InvenTree/stock/templates/stock/item_base.html index d7eb987aab..e98ff37d93 100644 --- a/InvenTree/stock/templates/stock/item_base.html +++ b/InvenTree/stock/templates/stock/item_base.html @@ -234,7 +234,7 @@ InvenTree | {% trans "Stock Item" %} - {{ item }} {% endif %} {% if item.batch %}
    - + @@ -248,7 +248,7 @@ InvenTree | {% trans "Stock Item" %} - {{ item }} {% endif %} {% if item.purchase_order %} - + diff --git a/InvenTree/templates/js/bom.js b/InvenTree/templates/js/bom.js index 59c7acbb7b..d1d7d91346 100644 --- a/InvenTree/templates/js/bom.js +++ b/InvenTree/templates/js/bom.js @@ -127,13 +127,31 @@ function loadBomTable(table, options) { var url = `/part/${row.sub_part}/`; var html = imageHoverIcon(row.sub_part_detail.thumbnail) + renderLink(row.sub_part_detail.full_name, url); + var sub_part = row.sub_part_detail; + + if (sub_part.trackable) { + html += makeIconBadge('fa-directions', '{% trans "Trackable part" %}'); + } + + if (sub_part.virtual) { + html += makeIconBadge('fa-ghost', '{% trans "Virtual part" %}'); + } + + if (sub_part.is_template) { + html += makeIconBadge('fa-clone', '{% trans "Templat part" %}'); + } + // Display an extra icon if this part is an assembly - if (row.sub_part_detail.assembly) { + if (sub_part.assembly) { var text = ``; html += renderLink(text, `/part/${row.sub_part}/bom/`); } + if (!sub_part.active) { + html += `{% trans "Inactive" %}`; + } + return html; } } diff --git a/InvenTree/templates/js/company.js b/InvenTree/templates/js/company.js index f904c0f506..164329aee4 100644 --- a/InvenTree/templates/js/company.js +++ b/InvenTree/templates/js/company.js @@ -110,7 +110,7 @@ function loadSupplierPartTable(table, url, options) { // Query parameters var params = options.params || {}; - // Load 'user' filters + // Load filters var filters = loadTableFilters("supplier-part"); for (var key in params) { @@ -122,6 +122,7 @@ function loadSupplierPartTable(table, url, options) { $(table).inventreeTable({ url: url, method: 'get', + original: params, queryParams: filters, name: 'supplierparts', groupBy: false, @@ -135,6 +136,7 @@ function loadSupplierPartTable(table, url, options) { sortable: true, field: 'part_detail.full_name', title: '{% trans "Part" %}', + switchable: false, formatter: function(value, row, index, field) { var url = `/part/${row.part}/`; diff --git a/InvenTree/templates/js/part.js b/InvenTree/templates/js/part.js index e5fafef070..f95f353582 100644 --- a/InvenTree/templates/js/part.js +++ b/InvenTree/templates/js/part.js @@ -61,13 +61,22 @@ function toggleStar(options) { } -function loadPartVariantTable(table, partId, options) { +function loadPartVariantTable(table, partId, options={}) { /* Load part variant table */ - var params = { - ancestor: partId, - }; + var params = options.params || {}; + + params.ancestor = partId; + + // Load filters + var filters = loadTableFilters("variants"); + + for (var key in params) { + filters[key] = params[key]; + } + + setupFilterList("variants", $(table)); var cols = [ { @@ -104,16 +113,36 @@ function loadPartVariantTable(table, partId, options) { html += imageHoverIcon(row.thumbnail); html += renderLink(name, `/part/${row.pk}/`); + if (row.trackable) { + html += makeIconBadge('fa-directions', '{% trans "Trackable part" %}'); + } + + if (row.virtual) { + html += makeIconBadge('fa-ghost', '{% trans "Virtual part" %}'); + } + + if (row.is_template) { + html += makeIconBadge('fa-clone', '{% trans "Template part" %}'); + } + + if (row.assembly) { + html += makeIconBadge('fa-tools', '{% trans "Assembled part" %}'); + } + + if (!row.active) { + html += `{% trans "Inactive" %}`; + } + return html; }, }, { field: 'IPN', - title: '{% trans 'IPN' %}', + title: '{% trans "IPN" %}', }, { field: 'revision', - title: '{% trans 'Revision' %}', + title: '{% trans "Revision" %}', }, { field: 'description', @@ -133,7 +162,7 @@ function loadPartVariantTable(table, partId, options) { name: 'partvariants', showColumns: true, original: params, - queryParams: params, + queryParams: filters, formatNoMatches: function() { return "{% trans "No variants found" %}"; }, columns: cols, treeEnable: true, @@ -272,7 +301,7 @@ function loadPartTable(table, url, options={}) { if (options.checkbox) { columns.push({ checkbox: true, - title: '{% trans 'Select' %}', + title: '{% trans "Select" %}', searchable: false, switchable: false, }); @@ -286,8 +315,9 @@ function loadPartTable(table, url, options={}) { columns.push({ field: 'name', - title: '{% trans 'Part' %}', + title: '{% trans "Part" %}', sortable: true, + switchable: false, formatter: function(value, row, index, field) { var name = ''; @@ -310,20 +340,29 @@ function loadPartTable(table, url, options={}) { var display = imageHoverIcon(row.thumbnail) + renderLink(name, '/part/' + row.pk + '/'); + if (row.trackable) { + display += makeIconBadge('fa-directions', '{% trans "Trackable part" %}'); + } + + if (row.virtual) { + display += makeIconBadge('fa-ghost', '{% trans "Virtual part" %}'); + } + + if (row.is_template) { - display += ``; + display += makeIconBadge('fa-clone', '{% trans "Template part" %}'); } if (row.assembly) { - display += ``; + display += makeIconBadge('fa-tools', '{% trans "Assembled part" %}'); } if (row.starred) { - display += ``; + display += makeIconBadge('fa-star', '{% trans "Starred part" %}'); } if (row.salable) { - display += ``; + display += makeIconBadge('fa-dollar-sign', title='{% trans "Salable part" %}'); } /* @@ -342,7 +381,7 @@ function loadPartTable(table, url, options={}) { columns.push({ sortable: true, field: 'description', - title: '{% trans 'Description' %}', + title: '{% trans "Description" %}', formatter: function(value, row, index, field) { if (row.is_template) { @@ -356,7 +395,7 @@ function loadPartTable(table, url, options={}) { columns.push({ sortable: true, field: 'category_detail', - title: '{% trans 'Category' %}', + title: '{% trans "Category" %}', formatter: function(value, row, index, field) { if (row.category) { return renderLink(value.pathstring, "/part/category/" + row.category + "/"); diff --git a/InvenTree/templates/js/table_filters.js b/InvenTree/templates/js/table_filters.js index c05f01d37f..639e31a542 100644 --- a/InvenTree/templates/js/table_filters.js +++ b/InvenTree/templates/js/table_filters.js @@ -11,6 +11,28 @@ function getAvailableTableFilters(tableKey) { tableKey = tableKey.toLowerCase(); + // Filters for "variant" table + if (tableKey == "variants") { + return { + active: { + type: 'bool', + title: '{% trans "Active" %}', + }, + template: { + type: 'bool', + title: '{% trans "Template" %}', + }, + virtual: { + type: 'bool', + title: '{% trans "Virtual" %}', + }, + trackable: { + type: 'bool', + title: '{% trans "Trackable" %}', + }, + }; + } + // Filters for Bill of Materials table if (tableKey == "bom") { return { @@ -189,6 +211,15 @@ function getAvailableTableFilters(tableKey) { }; } + if (tableKey == 'supplier-part') { + return { + active: { + type: 'bool', + title: '{% trans "Active parts" %}', + } + }; + } + // Filters for the "Parts" table if (tableKey == "parts") { return {
    {% trans "Virtual" %} {% include "slide.html" with state=part.virtual field='virtual' %}
    {% trans "Template" %} {% include "slide.html" with state=part.is_template field='is_template' %}
    {% trans "Assembly" %} {% include "slide.html" with state=part.assembly field='assembly' %}
    {% trans "Component" %} {% include "slide.html" with state=part.component field='component' %}
    {% trans "Trackable" %} {% include "slide.html" with state=part.trackable field='trackable' %}
    {% trans "Purchaseable" %} {% include "slide.html" with state=part.purchaseable field='purchaseable' %}
    {% trans "Salable" %} {% include "slide.html" with state=part.salable field='salable' %}
    + {% if part.active %} + + {% else %} + + {% endif %} + {% trans "Active" %} {% include "slide.html" with state=part.active field='active' disabled=False %}
    {% trans "Batch" %} {{ item.batch }}
    {% trans "Purchase Order" %} {{ item.purchase_order }}