diff --git a/InvenTree/InvenTree/urls.py b/InvenTree/InvenTree/urls.py index cf53667fb9..e7530035d6 100644 --- a/InvenTree/InvenTree/urls.py +++ b/InvenTree/InvenTree/urls.py @@ -35,6 +35,7 @@ from rest_framework.documentation import include_docs_urls from .views import IndexView, SearchView, DatabaseStatsView from .views import SettingsView, EditUserView, SetPasswordView +from .views import DynamicJsView from .api import InfoView, BarcodePluginView, ActionPluginView @@ -74,6 +75,12 @@ settings_urls = [ ] dynamic_javascript_urls = [ + url(r'^part.js', DynamicJsView.as_view(template_name='js/part.html'), name='part.js'), + url(r'^stock.js', DynamicJsView.as_view(template_name='js/stock.html'), name='stock.js'), + url(r'^build.js', DynamicJsView.as_view(template_name='js/build.html'), name='build.js'), + url(r'^order.js', DynamicJsView.as_view(template_name='js/order.html'), name='order.js'), + url(r'^company.js', DynamicJsView.as_view(template_name='js/company.html'), name='company.js'), + url(r'^bom.js', DynamicJsView.as_view(template_name='js/bom.html'), name='bom.js'), ] urlpatterns = [ diff --git a/InvenTree/InvenTree/views.py b/InvenTree/InvenTree/views.py index 943a18d35c..c988859042 100644 --- a/InvenTree/InvenTree/views.py +++ b/InvenTree/InvenTree/views.py @@ -514,6 +514,17 @@ class SearchView(TemplateView): return super(TemplateView, self).render_to_response(context) +class DynamicJsView(TemplateView): + """ + View for returning javacsript files, + which instead of being served dynamically, + are passed through the django translation engine! + """ + + template_name = "" + content_type = 'text/javascript' + + class SettingsView(TemplateView): """ View for configuring User settings """ diff --git a/InvenTree/locale/de/LC_MESSAGES/django.mo b/InvenTree/locale/de/LC_MESSAGES/django.mo index 84a39a22c6..83b96a9ff9 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 f4f0d4757d..f39f917874 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-05-02 04:54+0000\n" +"POT-Creation-Date: 2020-05-02 12:11+0000\n" "PO-Revision-Date: 2020-02-02 08:07+0100\n" "Last-Translator: Christian Schlüter \n" "Language-Team: C \n" @@ -81,19 +81,19 @@ msgstr "Datei zum Anhängen auswählen" msgid "File comment" msgstr "Datei-Kommentar" -#: InvenTree/settings.py:274 +#: InvenTree/settings.py:295 msgid "English" msgstr "Englisch" -#: InvenTree/settings.py:275 +#: InvenTree/settings.py:296 msgid "German" msgstr "Deutsch" -#: InvenTree/settings.py:276 +#: InvenTree/settings.py:297 msgid "French" msgstr "Französisch" -#: InvenTree/settings.py:277 +#: InvenTree/settings.py:298 msgid "Polish" msgstr "Polnisch" @@ -158,7 +158,7 @@ msgstr "Lagerobjekt bearbeiten" #: InvenTree/status_codes.py:214 build/templates/build/allocate.html:349 #: order/templates/order/sales_order_detail.html:220 -#: part/templates/part/part_base.html:114 part/templates/part/tabs.html:21 +#: part/templates/part/tabs.html:21 templates/js/build.html:120 msgid "Allocated" msgstr "Zugeordnet" @@ -187,7 +187,7 @@ msgstr "Überschuss darf 100% nicht überschreiten" msgid "Overage must be an integer value or a percentage" msgstr "Überschuss muss eine Ganzzahl oder ein Prozentwert sein" -#: InvenTree/views.py:536 +#: InvenTree/views.py:547 msgid "Database Statistics" msgstr "" @@ -230,7 +230,9 @@ msgstr "" #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:145 #: part/templates/part/part_app_base.html:7 -#: part/templates/part/set_category.html:13 +#: part/templates/part/set_category.html:13 templates/js/bom.html:135 +#: templates/js/build.html:41 templates/js/company.html:109 +#: templates/js/part.html:111 msgid "Part" msgstr "Teil" @@ -272,7 +274,7 @@ msgstr "Anzahl" msgid "Number of parts to build" msgstr "Anzahl der zu bauenden Teile" -#: build/models.py:112 part/templates/part/part_base.html:131 +#: build/models.py:112 part/templates/part/part_base.html:138 msgid "Build Status" msgstr "Bau-Status" @@ -293,7 +295,7 @@ msgid "Batch code for this build output" msgstr "Chargennummer für diese Bau-Ausgabe" #: build/models.py:139 build/templates/build/detail.html:55 -#: company/templates/company/supplier_part_base.html:57 +#: company/templates/company/supplier_part_base.html:60 #: company/templates/company/supplier_part_detail.html:24 #: part/templates/part/detail.html:67 part/templates/part/part_base.html:85 #: stock/models.py:371 stock/templates/stock/item_base.html:189 @@ -309,6 +311,7 @@ msgstr "Link zu einer externen URL" #: order/templates/order/purchase_order_detail.html:200 #: order/templates/order/so_tabs.html:23 part/templates/part/tabs.html:63 #: stock/models.py:439 stock/templates/stock/tabs.html:17 +#: templates/js/bom.html:229 msgid "Notes" msgstr "Notizen" @@ -403,7 +406,8 @@ msgstr "Seriennummer" #: stock/templates/stock/item_base.html:20 #: stock/templates/stock/item_base.html:26 #: stock/templates/stock/item_base.html:154 -#: stock/templates/stock/stock_adjust.html:18 +#: stock/templates/stock/stock_adjust.html:18 templates/js/bom.html:172 +#: templates/js/build.html:52 msgid "Quantity" msgstr "Anzahl" @@ -415,35 +419,39 @@ msgid "Location" msgstr "Standort" #: build/templates/build/allocate.html:201 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:92 templates/js/build.html:124 #, fuzzy #| msgid "Edit Stock Location" msgid "Edit stock allocation" msgstr "Lagerobjekt-Standort bearbeiten" #: build/templates/build/allocate.html:202 -#: order/templates/order/sales_order_detail.html:93 +#: order/templates/order/sales_order_detail.html:93 templates/js/build.html:125 #, fuzzy #| msgid "Delete Stock Location" msgid "Delete stock allocation" msgstr "Standort löschen" -#: build/templates/build/allocate.html:229 +#: build/templates/build/allocate.html:229 templates/js/bom.html:288 #, fuzzy #| msgid "No serial numbers found" msgid "No BOM items found" msgstr "Keine Seriennummern gefunden" #: build/templates/build/allocate.html:328 -#: company/templates/company/supplier_part_base.html:50 +#: company/templates/company/supplier_part_base.html:53 #: company/templates/company/supplier_part_detail.html:27 #: order/templates/order/purchase_order_detail.html:157 #: part/templates/part/detail.html:38 part/templates/part/set_category.html:14 +#: templates/js/bom.html:157 templates/js/company.html:60 +#: templates/js/order.html:157 templates/js/order.html:230 +#: templates/js/part.html:167 msgid "Description" msgstr "Beschreibung" #: build/templates/build/allocate.html:333 #: order/templates/order/purchase_order_detail.html:170 +#: templates/js/bom.html:164 msgid "Reference" msgstr "Referenz" @@ -504,7 +512,8 @@ msgstr "Lagerobjekt dem Bau zuweisen" #: build/templates/build/build_base.html:8 #: build/templates/build/build_base.html:34 #: build/templates/build/complete.html:6 -#: stock/templates/stock/item_base.html:168 templates/navbar.html:12 +#: stock/templates/stock/item_base.html:168 templates/js/build.html:33 +#: templates/navbar.html:12 msgid "Build" msgstr "Bau" @@ -526,7 +535,8 @@ msgstr "Bau-Status" #: build/templates/build/build_base.html:80 #: build/templates/build/detail.html:42 -#: stock/templates/stock/item_base.html:221 +#: stock/templates/stock/item_base.html:221 templates/js/build.html:57 +#: templates/js/order.html:162 templates/js/order.html:235 msgid "Status" msgstr "Status" @@ -536,7 +546,7 @@ msgstr "Status" #: order/templates/order/sales_order_notes.html:10 #: order/templates/order/sales_order_ship.html:25 #: part/templates/part/allocation.html:27 -#: stock/templates/stock/item_base.html:122 +#: stock/templates/stock/item_base.html:122 templates/js/order.html:209 #, fuzzy #| msgid "Sales Orders" msgid "Sales Order" @@ -622,7 +632,7 @@ msgstr "Los" #: build/templates/build/detail.html:61 #: order/templates/order/order_base.html:93 -#: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:92 templates/js/build.html:65 msgid "Created" msgstr "Erstellt" @@ -638,7 +648,7 @@ msgstr "Ja" msgid "No" msgstr "Nein" -#: build/templates/build/detail.html:80 +#: build/templates/build/detail.html:80 templates/js/build.html:70 msgid "Completed" msgstr "Fertig" @@ -951,7 +961,7 @@ msgid "Part packaging" msgstr "Teile-Packaging" #: company/templates/company/company_base.html:7 -#: company/templates/company/company_base.html:22 +#: company/templates/company/company_base.html:22 templates/js/company.html:38 msgid "Company" msgstr "Firma" @@ -962,7 +972,7 @@ msgstr "Firma" msgid "Company Details" msgstr "Firmenbemerkungen" -#: company/templates/company/company_base.html:48 +#: company/templates/company/company_base.html:48 templates/js/company.html:65 msgid "Website" msgstr "" @@ -983,22 +993,25 @@ msgid "Contact" msgstr "" #: company/templates/company/detail.html:16 -#: company/templates/company/supplier_part_base.html:73 +#: company/templates/company/supplier_part_base.html:76 #: company/templates/company/supplier_part_detail.html:30 +#: templates/js/company.html:48 templates/js/company.html:158 msgid "Manufacturer" msgstr "Hersteller" #: company/templates/company/detail.html:21 -#: company/templates/company/supplier_part_base.html:63 +#: company/templates/company/supplier_part_base.html:66 #: company/templates/company/supplier_part_detail.html:21 order/models.py:111 #: order/templates/order/order_base.html:74 #: order/templates/order/order_wizard/select_pos.html:30 -#: stock/templates/stock/item_base.html:196 +#: stock/templates/stock/item_base.html:196 templates/js/company.html:52 +#: templates/js/company.html:134 templates/js/order.html:144 msgid "Supplier" msgstr "Zulieferer" #: company/templates/company/detail.html:26 order/models.py:275 -#: order/templates/order/sales_order_base.html:73 +#: order/templates/order/sales_order_base.html:73 templates/js/company.html:44 +#: templates/js/order.html:217 msgid "Customer" msgstr "Kunde" @@ -1137,49 +1150,57 @@ msgstr "Bestellungen" #: 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:201 +#: stock/templates/stock/item_base.html:201 templates/js/company.html:150 msgid "Supplier Part" msgstr "Zulieferer-Teil" #: company/templates/company/supplier_part_base.html:23 +#: part/templates/part/orders.html:14 +#, fuzzy +#| msgid "Order Parts" +msgid "Order part" +msgstr "Teile bestellen" + +#: company/templates/company/supplier_part_base.html:26 #, fuzzy #| msgid "Supplier Part" msgid "Edit supplier part" msgstr "Zulieferer-Teil" -#: company/templates/company/supplier_part_base.html:26 +#: company/templates/company/supplier_part_base.html:29 #, fuzzy #| msgid "Supplier Part" msgid "Delete supplier part" msgstr "Zulieferer-Teil" -#: company/templates/company/supplier_part_base.html:35 +#: company/templates/company/supplier_part_base.html:38 #: company/templates/company/supplier_part_detail.html:11 #, fuzzy #| msgid "Supplier Parts" msgid "Supplier Part Details" msgstr "Zulieferer-Teile" -#: company/templates/company/supplier_part_base.html:40 +#: company/templates/company/supplier_part_base.html:43 #: company/templates/company/supplier_part_detail.html:14 #, fuzzy #| msgid "Internal Part Number" msgid "Internal Part" msgstr "Interne Teilenummer" -#: company/templates/company/supplier_part_base.html:67 +#: company/templates/company/supplier_part_base.html:70 #: company/templates/company/supplier_part_detail.html:22 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part_base.html:77 +#: company/templates/company/supplier_part_base.html:80 #: company/templates/company/supplier_part_detail.html:31 +#: templates/js/company.html:174 #, fuzzy #| msgid "IPN" msgid "MPN" msgstr "IPN (Interne Produktnummer)" -#: company/templates/company/supplier_part_base.html:84 +#: company/templates/company/supplier_part_base.html:87 #: company/templates/company/supplier_part_detail.html:34 msgid "Note" msgstr "Notiz" @@ -1215,6 +1236,7 @@ msgid "New Price Break" msgstr "" #: company/templates/company/supplier_part_pricing.html:28 +#: templates/js/bom.html:213 msgid "Price" msgstr "" @@ -1252,7 +1274,8 @@ msgstr "Teile-Packaging" #: company/templates/company/supplier_part_tabs.html:8 #: company/templates/company/tabs.html:12 part/templates/part/tabs.html:17 -#: stock/templates/stock/location.html:12 templates/navbar.html:11 +#: stock/templates/stock/location.html:12 templates/js/part.html:194 +#: templates/navbar.html:11 msgid "Stock" msgstr "Lagerbestand" @@ -1466,7 +1489,7 @@ msgstr "Position - Notizen" #: order/models.py:427 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:23 -#: stock/templates/stock/item_base.html:175 +#: stock/templates/stock/item_base.html:175 templates/js/order.html:136 msgid "Purchase Order" msgstr "Kaufvertrag" @@ -1537,7 +1560,7 @@ msgstr "Bestell-Referenz" msgid "Order Status" msgstr "Teile bestellen" -#: order/templates/order/order_base.html:80 +#: order/templates/order/order_base.html:80 templates/js/order.html:151 #, fuzzy #| msgid "Reference" msgid "Supplier Reference" @@ -1602,7 +1625,8 @@ msgid "Select existing purchase orders, or create new orders." msgstr "" #: order/templates/order/order_wizard/select_pos.html:31 -#: order/templates/order/po_tabs.html:5 +#: order/templates/order/po_tabs.html:5 templates/js/order.html:175 +#: templates/js/order.html:253 msgid "Items" msgstr "Positionen" @@ -1660,8 +1684,8 @@ msgid "Attachments" msgstr "Anhänge" #: order/templates/order/purchase_order_detail.html:16 -#: order/templates/order/sales_order_detail.html:17 order/views.py:1042 -#: order/views.py:1156 +#: order/templates/order/sales_order_detail.html:17 order/views.py:1051 +#: order/views.py:1165 msgid "Add Line Item" msgstr "Position hinzufügen" @@ -1730,7 +1754,7 @@ msgstr "Teile" msgid "Sales Order Details" msgstr "Bestelldetails" -#: order/templates/order/sales_order_base.html:79 +#: order/templates/order/sales_order_base.html:79 templates/js/order.html:224 #, fuzzy #| msgid "Reference" msgid "Customer Reference" @@ -1952,49 +1976,49 @@ msgstr "Anzahl kleiner null empfangen" msgid "No lines specified" msgstr "Keine Zeilen angegeben" -#: order/views.py:1062 +#: order/views.py:1071 msgid "Invalid Purchase Order" msgstr "Ungültige Bestellung" -#: order/views.py:1070 +#: order/views.py:1079 msgid "Supplier must match for Part and Order" msgstr "Zulieferer muss zum Teil und zur Bestellung passen" -#: order/views.py:1075 +#: order/views.py:1084 msgid "Invalid SupplierPart selection" msgstr "Ungültige Wahl des Zulieferer-Teils" -#: order/views.py:1207 order/views.py:1225 +#: order/views.py:1216 order/views.py:1234 #, fuzzy #| msgid "Add Line Item" msgid "Edit Line Item" msgstr "Position hinzufügen" -#: order/views.py:1241 order/views.py:1253 +#: order/views.py:1250 order/views.py:1262 #, fuzzy #| msgid "Delete Stock Item" msgid "Delete Line Item" msgstr "Lagerobjekt löschen" -#: order/views.py:1246 order/views.py:1258 +#: order/views.py:1255 order/views.py:1267 #, fuzzy #| msgid "Deleted {n} stock items" msgid "Deleted line item" msgstr "{n} Teile im Lager gelöscht" -#: order/views.py:1267 +#: order/views.py:1276 #, fuzzy #| msgid "Allocate Stock to Build" msgid "Allocate Stock to Order" msgstr "Lagerbestand dem Bau zuweisen" -#: order/views.py:1336 +#: order/views.py:1345 #, fuzzy #| msgid "Edit Stock Location" msgid "Edit Allocation Quantity" msgstr "Lagerobjekt-Standort bearbeiten" -#: order/views.py:1351 +#: order/views.py:1360 #, fuzzy #| msgid "Receive parts to this location" msgid "Remove allocation" @@ -2250,7 +2274,7 @@ msgstr "bestellt" #: stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:52 #: stock/templates/stock/item_base.html:183 -#: stock/templates/stock/stock_adjust.html:16 +#: stock/templates/stock/stock_adjust.html:16 templates/js/build.html:106 msgid "Stock Item" msgstr "Lagerobjekt" @@ -2357,6 +2381,7 @@ msgid "Variant Of" msgstr "Variante von" #: part/templates/part/detail.html:57 part/templates/part/set_category.html:15 +#: templates/js/part.html:181 msgid "Category" msgstr "Kategorie" @@ -2372,7 +2397,7 @@ msgstr "Einheiten" msgid "Minimum Stock" msgstr "Minimaler Lagerbestand" -#: part/templates/part/detail.html:101 +#: part/templates/part/detail.html:101 templates/js/order.html:243 #, fuzzy #| msgid "Create new Stock Item" msgid "Creation Date" @@ -2462,12 +2487,6 @@ msgstr "Teil kann nicht an Kunden verkauft werden" msgid "Part Notes" msgstr "Teil-Bemerkungen" -#: part/templates/part/orders.html:14 -#, fuzzy -#| msgid "Order Parts" -msgid "Order part" -msgstr "Teile bestellen" - #: part/templates/part/orders.html:14 #, fuzzy #| msgid "Order Parts" @@ -2538,7 +2557,8 @@ msgstr "" msgid "This part is a variant of" msgstr "Dieses Teil ist nicht aktiv" -#: part/templates/part/part_base.html:30 +#: part/templates/part/part_base.html:30 templates/js/company.html:125 +#: templates/js/part.html:158 msgid "Inactive" msgstr "" @@ -2558,15 +2578,27 @@ msgstr "Verfügbarer Lagerbestand" msgid "In Stock" msgstr "Auf Lager" +#: part/templates/part/part_base.html:114 +#, fuzzy +#| msgid "Allocate Stock to Build" +msgid "Allocated to Build Orders" +msgstr "Lagerbestand dem Bau zuweisen" + #: part/templates/part/part_base.html:121 +#, fuzzy +#| msgid "Allocate Stock to Build" +msgid "Allocated to Sales Orders" +msgstr "Lagerbestand dem Bau zuweisen" + +#: part/templates/part/part_base.html:128 templates/js/part.html:210 msgid "On Order" msgstr "bestellt" -#: part/templates/part/part_base.html:136 +#: part/templates/part/part_base.html:143 msgid "Can Build" msgstr "Herstellbar?" -#: part/templates/part/part_base.html:142 +#: part/templates/part/part_base.html:149 msgid "Underway" msgstr "unterwegs" @@ -2616,7 +2648,8 @@ msgstr "Zulieferer-Teil" msgid "Create New Part" msgstr "Neues Lagerobjekt hinzufügen" -#: part/templates/part/stock_count.html:7 +#: part/templates/part/stock_count.html:7 templates/js/bom.html:203 +#: templates/js/part.html:218 #, fuzzy #| msgid "Stock" msgid "No Stock" @@ -3450,6 +3483,142 @@ msgstr "Code auf GitHub ansehen" msgid "Submit Bug Report" msgstr "" +#: templates/js/bom.html:143 +msgid "Open subassembly" +msgstr "" + +#: templates/js/bom.html:194 templates/js/build.html:113 +msgid "Available" +msgstr "verfügbar" + +#: templates/js/bom.html:219 +#, fuzzy +#| msgid "Available" +msgid "No pricing available" +msgstr "verfügbar" + +#: templates/js/bom.html:239 +#, fuzzy +#| msgid "Stock Item" +msgid "Validate BOM Item" +msgstr "Lagerobjekt" + +#: templates/js/bom.html:240 +msgid "This line has been validated" +msgstr "" + +#: templates/js/bom.html:242 +#, fuzzy +#| msgid "Edit Stock Item" +msgid "Edit BOM Item" +msgstr "Lagerobjekt bearbeiten" + +#: templates/js/bom.html:243 +#, fuzzy +#| msgid "Delete Stock Item" +msgid "Delete BOM Item" +msgstr "Lagerobjekt löschen" + +#: templates/js/build.html:19 +msgid "No builds matching query" +msgstr "" + +#: templates/js/build.html:102 +#, fuzzy +#| msgid "Allocated" +msgid "No parts allocated for" +msgstr "Zugeordnet" + +#: templates/js/company.html:29 +#, fuzzy +#| msgid "Link to external company information" +msgid "No company information found" +msgstr "Link auf externe Firmeninformation" + +#: templates/js/company.html:101 +#, fuzzy +#| msgid "No serial numbers found" +msgid "No supplier parts found" +msgstr "Keine Seriennummern gefunden" + +#: templates/js/company.html:117 templates/js/part.html:136 +#, fuzzy +#| msgid "Parameter Template" +msgid "Template part" +msgstr "Parameter Vorlage" + +#: templates/js/company.html:121 templates/js/part.html:140 +#, fuzzy +#| msgid "Assembly" +msgid "Assembled part" +msgstr "Baugruppe" + +#: templates/js/company.html:178 +msgid "Link" +msgstr "" + +#: templates/js/order.html:126 +#, fuzzy +#| msgid "Purchase Order" +msgid "No purchase orders found" +msgstr "Kaufvertrag" + +#: templates/js/order.html:170 +msgid "Date" +msgstr "" + +#: templates/js/order.html:199 +#, fuzzy +#| msgid "No serial numbers found" +msgid "No sales orders found" +msgstr "Keine Seriennummern gefunden" + +#: templates/js/order.html:248 +msgid "Shipment Date" +msgstr "" + +#: templates/js/part.html:104 +#, fuzzy +#| msgid "Select part" +msgid "Select" +msgstr "Teil auswählen" + +#: templates/js/part.html:144 +#, fuzzy +#| msgid "Required Parts" +msgid "Starred part" +msgstr "benötigte Teile" + +#: templates/js/part.html:148 +#, fuzzy +#| msgid "Sellable" +msgid "Salable part" +msgstr "Verkaufbar" + +#: templates/js/part.html:187 +#, fuzzy +#| msgid "Part category" +msgid "No category" +msgstr "Teile-Kategorie" + +#: templates/js/part.html:205 templates/table_filters.html:95 +#, fuzzy +#| msgid "Stock" +msgid "Low stock" +msgstr "Lagerbestand" + +#: templates/js/part.html:214 +#, fuzzy +#| msgid "Build" +msgid "Building" +msgstr "Bau" + +#: templates/js/part.html:232 +#, fuzzy +#| msgid "No serial numbers found" +msgid "No parts found" +msgstr "Keine Seriennummern gefunden" + #: templates/navbar.html:14 msgid "Buy" msgstr "" @@ -3610,12 +3779,6 @@ msgstr "Parameter Vorlage" msgid "Stock available" msgstr "verfügbar" -#: templates/table_filters.html:95 -#, fuzzy -#| msgid "Stock" -msgid "Low stock" -msgstr "Lagerbestand" - #: templates/table_filters.html:107 msgid "Starred" msgstr "" @@ -3629,9 +3792,6 @@ msgstr "Kaufbar" #~ msgid "Allocate Stock to Build" #~ msgstr "Lagerbestand dem Bau zuweisen" -#~ msgid "Available" -#~ msgstr "verfügbar" - #~ msgid "Required Parts" #~ msgstr "benötigte Teile" diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po index a5073b2006..85ebc1e513 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-05-02 04:54+0000\n" +"POT-Creation-Date: 2020-05-02 12:11+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -78,19 +78,19 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/settings.py:274 +#: InvenTree/settings.py:295 msgid "English" msgstr "" -#: InvenTree/settings.py:275 +#: InvenTree/settings.py:296 msgid "German" msgstr "" -#: InvenTree/settings.py:276 +#: InvenTree/settings.py:297 msgid "French" msgstr "" -#: InvenTree/settings.py:277 +#: InvenTree/settings.py:298 msgid "Polish" msgstr "" @@ -153,7 +153,7 @@ msgstr "" #: InvenTree/status_codes.py:214 build/templates/build/allocate.html:349 #: order/templates/order/sales_order_detail.html:220 -#: part/templates/part/part_base.html:114 part/templates/part/tabs.html:21 +#: part/templates/part/tabs.html:21 templates/js/build.html:120 msgid "Allocated" msgstr "" @@ -182,7 +182,7 @@ msgstr "" msgid "Overage must be an integer value or a percentage" msgstr "" -#: InvenTree/views.py:536 +#: InvenTree/views.py:547 msgid "Database Statistics" msgstr "" @@ -221,7 +221,9 @@ msgstr "" #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:145 #: part/templates/part/part_app_base.html:7 -#: part/templates/part/set_category.html:13 +#: part/templates/part/set_category.html:13 templates/js/bom.html:135 +#: templates/js/build.html:41 templates/js/company.html:109 +#: templates/js/part.html:111 msgid "Part" msgstr "" @@ -255,7 +257,7 @@ msgstr "" msgid "Number of parts to build" msgstr "" -#: build/models.py:112 part/templates/part/part_base.html:131 +#: build/models.py:112 part/templates/part/part_base.html:138 msgid "Build Status" msgstr "" @@ -272,7 +274,7 @@ msgid "Batch code for this build output" msgstr "" #: build/models.py:139 build/templates/build/detail.html:55 -#: company/templates/company/supplier_part_base.html:57 +#: company/templates/company/supplier_part_base.html:60 #: company/templates/company/supplier_part_detail.html:24 #: part/templates/part/detail.html:67 part/templates/part/part_base.html:85 #: stock/models.py:371 stock/templates/stock/item_base.html:189 @@ -288,6 +290,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:200 #: order/templates/order/so_tabs.html:23 part/templates/part/tabs.html:63 #: stock/models.py:439 stock/templates/stock/tabs.html:17 +#: templates/js/bom.html:229 msgid "Notes" msgstr "" @@ -371,7 +374,8 @@ msgstr "" #: stock/templates/stock/item_base.html:20 #: stock/templates/stock/item_base.html:26 #: stock/templates/stock/item_base.html:154 -#: stock/templates/stock/stock_adjust.html:18 +#: stock/templates/stock/stock_adjust.html:18 templates/js/bom.html:172 +#: templates/js/build.html:52 msgid "Quantity" msgstr "" @@ -383,29 +387,33 @@ msgid "Location" msgstr "" #: build/templates/build/allocate.html:201 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:92 templates/js/build.html:124 msgid "Edit stock allocation" msgstr "" #: build/templates/build/allocate.html:202 -#: order/templates/order/sales_order_detail.html:93 +#: order/templates/order/sales_order_detail.html:93 templates/js/build.html:125 msgid "Delete stock allocation" msgstr "" -#: build/templates/build/allocate.html:229 +#: build/templates/build/allocate.html:229 templates/js/bom.html:288 msgid "No BOM items found" msgstr "" #: build/templates/build/allocate.html:328 -#: company/templates/company/supplier_part_base.html:50 +#: company/templates/company/supplier_part_base.html:53 #: company/templates/company/supplier_part_detail.html:27 #: order/templates/order/purchase_order_detail.html:157 #: part/templates/part/detail.html:38 part/templates/part/set_category.html:14 +#: templates/js/bom.html:157 templates/js/company.html:60 +#: templates/js/order.html:157 templates/js/order.html:230 +#: templates/js/part.html:167 msgid "Description" msgstr "" #: build/templates/build/allocate.html:333 #: order/templates/order/purchase_order_detail.html:170 +#: templates/js/bom.html:164 msgid "Reference" msgstr "" @@ -452,7 +460,8 @@ msgstr "" #: build/templates/build/build_base.html:8 #: build/templates/build/build_base.html:34 #: build/templates/build/complete.html:6 -#: stock/templates/stock/item_base.html:168 templates/navbar.html:12 +#: stock/templates/stock/item_base.html:168 templates/js/build.html:33 +#: templates/navbar.html:12 msgid "Build" msgstr "" @@ -470,7 +479,8 @@ msgstr "" #: build/templates/build/build_base.html:80 #: build/templates/build/detail.html:42 -#: stock/templates/stock/item_base.html:221 +#: stock/templates/stock/item_base.html:221 templates/js/build.html:57 +#: templates/js/order.html:162 templates/js/order.html:235 msgid "Status" msgstr "" @@ -480,7 +490,7 @@ msgstr "" #: order/templates/order/sales_order_notes.html:10 #: order/templates/order/sales_order_ship.html:25 #: part/templates/part/allocation.html:27 -#: stock/templates/stock/item_base.html:122 +#: stock/templates/stock/item_base.html:122 templates/js/order.html:209 msgid "Sales Order" msgstr "" @@ -553,7 +563,7 @@ msgstr "" #: build/templates/build/detail.html:61 #: order/templates/order/order_base.html:93 -#: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:92 templates/js/build.html:65 msgid "Created" msgstr "" @@ -569,7 +579,7 @@ msgstr "" msgid "No" msgstr "" -#: build/templates/build/detail.html:80 +#: build/templates/build/detail.html:80 templates/js/build.html:70 msgid "Completed" msgstr "" @@ -840,7 +850,7 @@ msgid "Part packaging" msgstr "" #: company/templates/company/company_base.html:7 -#: company/templates/company/company_base.html:22 +#: company/templates/company/company_base.html:22 templates/js/company.html:38 msgid "Company" msgstr "" @@ -849,7 +859,7 @@ msgstr "" msgid "Company Details" msgstr "" -#: company/templates/company/company_base.html:48 +#: company/templates/company/company_base.html:48 templates/js/company.html:65 msgid "Website" msgstr "" @@ -870,22 +880,25 @@ msgid "Contact" msgstr "" #: company/templates/company/detail.html:16 -#: company/templates/company/supplier_part_base.html:73 +#: company/templates/company/supplier_part_base.html:76 #: company/templates/company/supplier_part_detail.html:30 +#: templates/js/company.html:48 templates/js/company.html:158 msgid "Manufacturer" msgstr "" #: company/templates/company/detail.html:21 -#: company/templates/company/supplier_part_base.html:63 +#: company/templates/company/supplier_part_base.html:66 #: company/templates/company/supplier_part_detail.html:21 order/models.py:111 #: order/templates/order/order_base.html:74 #: order/templates/order/order_wizard/select_pos.html:30 -#: stock/templates/stock/item_base.html:196 +#: stock/templates/stock/item_base.html:196 templates/js/company.html:52 +#: templates/js/company.html:134 templates/js/order.html:144 msgid "Supplier" msgstr "" #: company/templates/company/detail.html:26 order/models.py:275 -#: order/templates/order/sales_order_base.html:73 +#: order/templates/order/sales_order_base.html:73 templates/js/company.html:44 +#: templates/js/order.html:217 msgid "Customer" msgstr "" @@ -995,39 +1008,45 @@ 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:201 +#: stock/templates/stock/item_base.html:201 templates/js/company.html:150 msgid "Supplier Part" msgstr "" #: company/templates/company/supplier_part_base.html:23 -msgid "Edit supplier part" +#: part/templates/part/orders.html:14 +msgid "Order part" msgstr "" #: company/templates/company/supplier_part_base.html:26 +msgid "Edit supplier part" +msgstr "" + +#: company/templates/company/supplier_part_base.html:29 msgid "Delete supplier part" msgstr "" -#: company/templates/company/supplier_part_base.html:35 +#: company/templates/company/supplier_part_base.html:38 #: company/templates/company/supplier_part_detail.html:11 msgid "Supplier Part Details" msgstr "" -#: company/templates/company/supplier_part_base.html:40 +#: company/templates/company/supplier_part_base.html:43 #: company/templates/company/supplier_part_detail.html:14 msgid "Internal Part" msgstr "" -#: company/templates/company/supplier_part_base.html:67 +#: company/templates/company/supplier_part_base.html:70 #: company/templates/company/supplier_part_detail.html:22 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part_base.html:77 +#: company/templates/company/supplier_part_base.html:80 #: company/templates/company/supplier_part_detail.html:31 +#: templates/js/company.html:174 msgid "MPN" msgstr "" -#: company/templates/company/supplier_part_base.html:84 +#: company/templates/company/supplier_part_base.html:87 #: company/templates/company/supplier_part_detail.html:34 msgid "Note" msgstr "" @@ -1057,6 +1076,7 @@ msgid "New Price Break" msgstr "" #: company/templates/company/supplier_part_pricing.html:28 +#: templates/js/bom.html:213 msgid "Price" msgstr "" @@ -1086,7 +1106,8 @@ msgstr "" #: company/templates/company/supplier_part_tabs.html:8 #: company/templates/company/tabs.html:12 part/templates/part/tabs.html:17 -#: stock/templates/stock/location.html:12 templates/navbar.html:11 +#: stock/templates/stock/location.html:12 templates/js/part.html:194 +#: templates/navbar.html:11 msgid "Stock" msgstr "" @@ -1260,7 +1281,7 @@ msgstr "" #: order/models.py:427 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:23 -#: stock/templates/stock/item_base.html:175 +#: stock/templates/stock/item_base.html:175 templates/js/order.html:136 msgid "Purchase Order" msgstr "" @@ -1315,7 +1336,7 @@ msgstr "" msgid "Order Status" msgstr "" -#: order/templates/order/order_base.html:80 +#: order/templates/order/order_base.html:80 templates/js/order.html:151 msgid "Supplier Reference" msgstr "" @@ -1370,7 +1391,8 @@ msgid "Select existing purchase orders, or create new orders." msgstr "" #: order/templates/order/order_wizard/select_pos.html:31 -#: order/templates/order/po_tabs.html:5 +#: order/templates/order/po_tabs.html:5 templates/js/order.html:175 +#: templates/js/order.html:253 msgid "Items" msgstr "" @@ -1422,8 +1444,8 @@ msgid "Attachments" msgstr "" #: order/templates/order/purchase_order_detail.html:16 -#: order/templates/order/sales_order_detail.html:17 order/views.py:1042 -#: order/views.py:1156 +#: order/templates/order/sales_order_detail.html:17 order/views.py:1051 +#: order/views.py:1165 msgid "Add Line Item" msgstr "" @@ -1474,7 +1496,7 @@ msgstr "" msgid "Sales Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:79 +#: order/templates/order/sales_order_base.html:79 templates/js/order.html:224 msgid "Customer Reference" msgstr "" @@ -1645,39 +1667,39 @@ msgstr "" msgid "No lines specified" msgstr "" -#: order/views.py:1062 +#: order/views.py:1071 msgid "Invalid Purchase Order" msgstr "" -#: order/views.py:1070 +#: order/views.py:1079 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1075 +#: order/views.py:1084 msgid "Invalid SupplierPart selection" msgstr "" -#: order/views.py:1207 order/views.py:1225 +#: order/views.py:1216 order/views.py:1234 msgid "Edit Line Item" msgstr "" -#: order/views.py:1241 order/views.py:1253 +#: order/views.py:1250 order/views.py:1262 msgid "Delete Line Item" msgstr "" -#: order/views.py:1246 order/views.py:1258 +#: order/views.py:1255 order/views.py:1267 msgid "Deleted line item" msgstr "" -#: order/views.py:1267 +#: order/views.py:1276 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1336 +#: order/views.py:1345 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1351 +#: order/views.py:1360 msgid "Remove allocation" msgstr "" @@ -1923,7 +1945,7 @@ msgstr "" #: stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:52 #: stock/templates/stock/item_base.html:183 -#: stock/templates/stock/stock_adjust.html:16 +#: stock/templates/stock/stock_adjust.html:16 templates/js/build.html:106 msgid "Stock Item" msgstr "" @@ -2022,6 +2044,7 @@ msgid "Variant Of" msgstr "" #: part/templates/part/detail.html:57 part/templates/part/set_category.html:15 +#: templates/js/part.html:181 msgid "Category" msgstr "" @@ -2037,7 +2060,7 @@ msgstr "" msgid "Minimum Stock" msgstr "" -#: part/templates/part/detail.html:101 +#: part/templates/part/detail.html:101 templates/js/order.html:243 msgid "Creation Date" msgstr "" @@ -2121,10 +2144,6 @@ msgstr "" msgid "Part Notes" msgstr "" -#: part/templates/part/orders.html:14 -msgid "Order part" -msgstr "" - #: part/templates/part/orders.html:14 msgid "Order Part" msgstr "" @@ -2177,7 +2196,8 @@ msgstr "" msgid "This part is a variant of" msgstr "" -#: part/templates/part/part_base.html:30 +#: part/templates/part/part_base.html:30 templates/js/company.html:125 +#: templates/js/part.html:158 msgid "Inactive" msgstr "" @@ -2197,15 +2217,23 @@ msgstr "" msgid "In Stock" msgstr "" +#: part/templates/part/part_base.html:114 +msgid "Allocated to Build Orders" +msgstr "" + #: part/templates/part/part_base.html:121 +msgid "Allocated to Sales Orders" +msgstr "" + +#: part/templates/part/part_base.html:128 templates/js/part.html:210 msgid "On Order" msgstr "" -#: part/templates/part/part_base.html:136 +#: part/templates/part/part_base.html:143 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:142 +#: part/templates/part/part_base.html:149 msgid "Underway" msgstr "" @@ -2241,7 +2269,8 @@ msgstr "" msgid "Create New Part" msgstr "" -#: part/templates/part/stock_count.html:7 +#: part/templates/part/stock_count.html:7 templates/js/bom.html:203 +#: templates/js/part.html:218 msgid "No Stock" msgstr "" @@ -2949,6 +2978,106 @@ msgstr "" msgid "Submit Bug Report" msgstr "" +#: templates/js/bom.html:143 +msgid "Open subassembly" +msgstr "" + +#: templates/js/bom.html:194 templates/js/build.html:113 +msgid "Available" +msgstr "" + +#: templates/js/bom.html:219 +msgid "No pricing available" +msgstr "" + +#: templates/js/bom.html:239 +msgid "Validate BOM Item" +msgstr "" + +#: templates/js/bom.html:240 +msgid "This line has been validated" +msgstr "" + +#: templates/js/bom.html:242 +msgid "Edit BOM Item" +msgstr "" + +#: templates/js/bom.html:243 +msgid "Delete BOM Item" +msgstr "" + +#: templates/js/build.html:19 +msgid "No builds matching query" +msgstr "" + +#: templates/js/build.html:102 +msgid "No parts allocated for" +msgstr "" + +#: templates/js/company.html:29 +msgid "No company information found" +msgstr "" + +#: templates/js/company.html:101 +msgid "No supplier parts found" +msgstr "" + +#: templates/js/company.html:117 templates/js/part.html:136 +msgid "Template part" +msgstr "" + +#: templates/js/company.html:121 templates/js/part.html:140 +msgid "Assembled part" +msgstr "" + +#: templates/js/company.html:178 +msgid "Link" +msgstr "" + +#: templates/js/order.html:126 +msgid "No purchase orders found" +msgstr "" + +#: templates/js/order.html:170 +msgid "Date" +msgstr "" + +#: templates/js/order.html:199 +msgid "No sales orders found" +msgstr "" + +#: templates/js/order.html:248 +msgid "Shipment Date" +msgstr "" + +#: templates/js/part.html:104 +msgid "Select" +msgstr "" + +#: templates/js/part.html:144 +msgid "Starred part" +msgstr "" + +#: templates/js/part.html:148 +msgid "Salable part" +msgstr "" + +#: templates/js/part.html:187 +msgid "No category" +msgstr "" + +#: templates/js/part.html:205 templates/table_filters.html:95 +msgid "Low stock" +msgstr "" + +#: templates/js/part.html:214 +msgid "Building" +msgstr "" + +#: templates/js/part.html:232 +msgid "No parts found" +msgstr "" + #: templates/navbar.html:14 msgid "Buy" msgstr "" @@ -3069,10 +3198,6 @@ msgstr "" msgid "Stock available" msgstr "" -#: templates/table_filters.html:95 -msgid "Low stock" -msgstr "" - #: templates/table_filters.html:107 msgid "Starred" msgstr "" diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po index a5073b2006..85ebc1e513 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-05-02 04:54+0000\n" +"POT-Creation-Date: 2020-05-02 12:11+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -78,19 +78,19 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/settings.py:274 +#: InvenTree/settings.py:295 msgid "English" msgstr "" -#: InvenTree/settings.py:275 +#: InvenTree/settings.py:296 msgid "German" msgstr "" -#: InvenTree/settings.py:276 +#: InvenTree/settings.py:297 msgid "French" msgstr "" -#: InvenTree/settings.py:277 +#: InvenTree/settings.py:298 msgid "Polish" msgstr "" @@ -153,7 +153,7 @@ msgstr "" #: InvenTree/status_codes.py:214 build/templates/build/allocate.html:349 #: order/templates/order/sales_order_detail.html:220 -#: part/templates/part/part_base.html:114 part/templates/part/tabs.html:21 +#: part/templates/part/tabs.html:21 templates/js/build.html:120 msgid "Allocated" msgstr "" @@ -182,7 +182,7 @@ msgstr "" msgid "Overage must be an integer value or a percentage" msgstr "" -#: InvenTree/views.py:536 +#: InvenTree/views.py:547 msgid "Database Statistics" msgstr "" @@ -221,7 +221,9 @@ msgstr "" #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:145 #: part/templates/part/part_app_base.html:7 -#: part/templates/part/set_category.html:13 +#: part/templates/part/set_category.html:13 templates/js/bom.html:135 +#: templates/js/build.html:41 templates/js/company.html:109 +#: templates/js/part.html:111 msgid "Part" msgstr "" @@ -255,7 +257,7 @@ msgstr "" msgid "Number of parts to build" msgstr "" -#: build/models.py:112 part/templates/part/part_base.html:131 +#: build/models.py:112 part/templates/part/part_base.html:138 msgid "Build Status" msgstr "" @@ -272,7 +274,7 @@ msgid "Batch code for this build output" msgstr "" #: build/models.py:139 build/templates/build/detail.html:55 -#: company/templates/company/supplier_part_base.html:57 +#: company/templates/company/supplier_part_base.html:60 #: company/templates/company/supplier_part_detail.html:24 #: part/templates/part/detail.html:67 part/templates/part/part_base.html:85 #: stock/models.py:371 stock/templates/stock/item_base.html:189 @@ -288,6 +290,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:200 #: order/templates/order/so_tabs.html:23 part/templates/part/tabs.html:63 #: stock/models.py:439 stock/templates/stock/tabs.html:17 +#: templates/js/bom.html:229 msgid "Notes" msgstr "" @@ -371,7 +374,8 @@ msgstr "" #: stock/templates/stock/item_base.html:20 #: stock/templates/stock/item_base.html:26 #: stock/templates/stock/item_base.html:154 -#: stock/templates/stock/stock_adjust.html:18 +#: stock/templates/stock/stock_adjust.html:18 templates/js/bom.html:172 +#: templates/js/build.html:52 msgid "Quantity" msgstr "" @@ -383,29 +387,33 @@ msgid "Location" msgstr "" #: build/templates/build/allocate.html:201 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:92 templates/js/build.html:124 msgid "Edit stock allocation" msgstr "" #: build/templates/build/allocate.html:202 -#: order/templates/order/sales_order_detail.html:93 +#: order/templates/order/sales_order_detail.html:93 templates/js/build.html:125 msgid "Delete stock allocation" msgstr "" -#: build/templates/build/allocate.html:229 +#: build/templates/build/allocate.html:229 templates/js/bom.html:288 msgid "No BOM items found" msgstr "" #: build/templates/build/allocate.html:328 -#: company/templates/company/supplier_part_base.html:50 +#: company/templates/company/supplier_part_base.html:53 #: company/templates/company/supplier_part_detail.html:27 #: order/templates/order/purchase_order_detail.html:157 #: part/templates/part/detail.html:38 part/templates/part/set_category.html:14 +#: templates/js/bom.html:157 templates/js/company.html:60 +#: templates/js/order.html:157 templates/js/order.html:230 +#: templates/js/part.html:167 msgid "Description" msgstr "" #: build/templates/build/allocate.html:333 #: order/templates/order/purchase_order_detail.html:170 +#: templates/js/bom.html:164 msgid "Reference" msgstr "" @@ -452,7 +460,8 @@ msgstr "" #: build/templates/build/build_base.html:8 #: build/templates/build/build_base.html:34 #: build/templates/build/complete.html:6 -#: stock/templates/stock/item_base.html:168 templates/navbar.html:12 +#: stock/templates/stock/item_base.html:168 templates/js/build.html:33 +#: templates/navbar.html:12 msgid "Build" msgstr "" @@ -470,7 +479,8 @@ msgstr "" #: build/templates/build/build_base.html:80 #: build/templates/build/detail.html:42 -#: stock/templates/stock/item_base.html:221 +#: stock/templates/stock/item_base.html:221 templates/js/build.html:57 +#: templates/js/order.html:162 templates/js/order.html:235 msgid "Status" msgstr "" @@ -480,7 +490,7 @@ msgstr "" #: order/templates/order/sales_order_notes.html:10 #: order/templates/order/sales_order_ship.html:25 #: part/templates/part/allocation.html:27 -#: stock/templates/stock/item_base.html:122 +#: stock/templates/stock/item_base.html:122 templates/js/order.html:209 msgid "Sales Order" msgstr "" @@ -553,7 +563,7 @@ msgstr "" #: build/templates/build/detail.html:61 #: order/templates/order/order_base.html:93 -#: order/templates/order/sales_order_base.html:92 +#: order/templates/order/sales_order_base.html:92 templates/js/build.html:65 msgid "Created" msgstr "" @@ -569,7 +579,7 @@ msgstr "" msgid "No" msgstr "" -#: build/templates/build/detail.html:80 +#: build/templates/build/detail.html:80 templates/js/build.html:70 msgid "Completed" msgstr "" @@ -840,7 +850,7 @@ msgid "Part packaging" msgstr "" #: company/templates/company/company_base.html:7 -#: company/templates/company/company_base.html:22 +#: company/templates/company/company_base.html:22 templates/js/company.html:38 msgid "Company" msgstr "" @@ -849,7 +859,7 @@ msgstr "" msgid "Company Details" msgstr "" -#: company/templates/company/company_base.html:48 +#: company/templates/company/company_base.html:48 templates/js/company.html:65 msgid "Website" msgstr "" @@ -870,22 +880,25 @@ msgid "Contact" msgstr "" #: company/templates/company/detail.html:16 -#: company/templates/company/supplier_part_base.html:73 +#: company/templates/company/supplier_part_base.html:76 #: company/templates/company/supplier_part_detail.html:30 +#: templates/js/company.html:48 templates/js/company.html:158 msgid "Manufacturer" msgstr "" #: company/templates/company/detail.html:21 -#: company/templates/company/supplier_part_base.html:63 +#: company/templates/company/supplier_part_base.html:66 #: company/templates/company/supplier_part_detail.html:21 order/models.py:111 #: order/templates/order/order_base.html:74 #: order/templates/order/order_wizard/select_pos.html:30 -#: stock/templates/stock/item_base.html:196 +#: stock/templates/stock/item_base.html:196 templates/js/company.html:52 +#: templates/js/company.html:134 templates/js/order.html:144 msgid "Supplier" msgstr "" #: company/templates/company/detail.html:26 order/models.py:275 -#: order/templates/order/sales_order_base.html:73 +#: order/templates/order/sales_order_base.html:73 templates/js/company.html:44 +#: templates/js/order.html:217 msgid "Customer" msgstr "" @@ -995,39 +1008,45 @@ 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:201 +#: stock/templates/stock/item_base.html:201 templates/js/company.html:150 msgid "Supplier Part" msgstr "" #: company/templates/company/supplier_part_base.html:23 -msgid "Edit supplier part" +#: part/templates/part/orders.html:14 +msgid "Order part" msgstr "" #: company/templates/company/supplier_part_base.html:26 +msgid "Edit supplier part" +msgstr "" + +#: company/templates/company/supplier_part_base.html:29 msgid "Delete supplier part" msgstr "" -#: company/templates/company/supplier_part_base.html:35 +#: company/templates/company/supplier_part_base.html:38 #: company/templates/company/supplier_part_detail.html:11 msgid "Supplier Part Details" msgstr "" -#: company/templates/company/supplier_part_base.html:40 +#: company/templates/company/supplier_part_base.html:43 #: company/templates/company/supplier_part_detail.html:14 msgid "Internal Part" msgstr "" -#: company/templates/company/supplier_part_base.html:67 +#: company/templates/company/supplier_part_base.html:70 #: company/templates/company/supplier_part_detail.html:22 msgid "SKU" msgstr "" -#: company/templates/company/supplier_part_base.html:77 +#: company/templates/company/supplier_part_base.html:80 #: company/templates/company/supplier_part_detail.html:31 +#: templates/js/company.html:174 msgid "MPN" msgstr "" -#: company/templates/company/supplier_part_base.html:84 +#: company/templates/company/supplier_part_base.html:87 #: company/templates/company/supplier_part_detail.html:34 msgid "Note" msgstr "" @@ -1057,6 +1076,7 @@ msgid "New Price Break" msgstr "" #: company/templates/company/supplier_part_pricing.html:28 +#: templates/js/bom.html:213 msgid "Price" msgstr "" @@ -1086,7 +1106,8 @@ msgstr "" #: company/templates/company/supplier_part_tabs.html:8 #: company/templates/company/tabs.html:12 part/templates/part/tabs.html:17 -#: stock/templates/stock/location.html:12 templates/navbar.html:11 +#: stock/templates/stock/location.html:12 templates/js/part.html:194 +#: templates/navbar.html:11 msgid "Stock" msgstr "" @@ -1260,7 +1281,7 @@ msgstr "" #: order/models.py:427 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:23 -#: stock/templates/stock/item_base.html:175 +#: stock/templates/stock/item_base.html:175 templates/js/order.html:136 msgid "Purchase Order" msgstr "" @@ -1315,7 +1336,7 @@ msgstr "" msgid "Order Status" msgstr "" -#: order/templates/order/order_base.html:80 +#: order/templates/order/order_base.html:80 templates/js/order.html:151 msgid "Supplier Reference" msgstr "" @@ -1370,7 +1391,8 @@ msgid "Select existing purchase orders, or create new orders." msgstr "" #: order/templates/order/order_wizard/select_pos.html:31 -#: order/templates/order/po_tabs.html:5 +#: order/templates/order/po_tabs.html:5 templates/js/order.html:175 +#: templates/js/order.html:253 msgid "Items" msgstr "" @@ -1422,8 +1444,8 @@ msgid "Attachments" msgstr "" #: order/templates/order/purchase_order_detail.html:16 -#: order/templates/order/sales_order_detail.html:17 order/views.py:1042 -#: order/views.py:1156 +#: order/templates/order/sales_order_detail.html:17 order/views.py:1051 +#: order/views.py:1165 msgid "Add Line Item" msgstr "" @@ -1474,7 +1496,7 @@ msgstr "" msgid "Sales Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:79 +#: order/templates/order/sales_order_base.html:79 templates/js/order.html:224 msgid "Customer Reference" msgstr "" @@ -1645,39 +1667,39 @@ msgstr "" msgid "No lines specified" msgstr "" -#: order/views.py:1062 +#: order/views.py:1071 msgid "Invalid Purchase Order" msgstr "" -#: order/views.py:1070 +#: order/views.py:1079 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1075 +#: order/views.py:1084 msgid "Invalid SupplierPart selection" msgstr "" -#: order/views.py:1207 order/views.py:1225 +#: order/views.py:1216 order/views.py:1234 msgid "Edit Line Item" msgstr "" -#: order/views.py:1241 order/views.py:1253 +#: order/views.py:1250 order/views.py:1262 msgid "Delete Line Item" msgstr "" -#: order/views.py:1246 order/views.py:1258 +#: order/views.py:1255 order/views.py:1267 msgid "Deleted line item" msgstr "" -#: order/views.py:1267 +#: order/views.py:1276 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1336 +#: order/views.py:1345 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1351 +#: order/views.py:1360 msgid "Remove allocation" msgstr "" @@ -1923,7 +1945,7 @@ msgstr "" #: stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:52 #: stock/templates/stock/item_base.html:183 -#: stock/templates/stock/stock_adjust.html:16 +#: stock/templates/stock/stock_adjust.html:16 templates/js/build.html:106 msgid "Stock Item" msgstr "" @@ -2022,6 +2044,7 @@ msgid "Variant Of" msgstr "" #: part/templates/part/detail.html:57 part/templates/part/set_category.html:15 +#: templates/js/part.html:181 msgid "Category" msgstr "" @@ -2037,7 +2060,7 @@ msgstr "" msgid "Minimum Stock" msgstr "" -#: part/templates/part/detail.html:101 +#: part/templates/part/detail.html:101 templates/js/order.html:243 msgid "Creation Date" msgstr "" @@ -2121,10 +2144,6 @@ msgstr "" msgid "Part Notes" msgstr "" -#: part/templates/part/orders.html:14 -msgid "Order part" -msgstr "" - #: part/templates/part/orders.html:14 msgid "Order Part" msgstr "" @@ -2177,7 +2196,8 @@ msgstr "" msgid "This part is a variant of" msgstr "" -#: part/templates/part/part_base.html:30 +#: part/templates/part/part_base.html:30 templates/js/company.html:125 +#: templates/js/part.html:158 msgid "Inactive" msgstr "" @@ -2197,15 +2217,23 @@ msgstr "" msgid "In Stock" msgstr "" +#: part/templates/part/part_base.html:114 +msgid "Allocated to Build Orders" +msgstr "" + #: part/templates/part/part_base.html:121 +msgid "Allocated to Sales Orders" +msgstr "" + +#: part/templates/part/part_base.html:128 templates/js/part.html:210 msgid "On Order" msgstr "" -#: part/templates/part/part_base.html:136 +#: part/templates/part/part_base.html:143 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:142 +#: part/templates/part/part_base.html:149 msgid "Underway" msgstr "" @@ -2241,7 +2269,8 @@ msgstr "" msgid "Create New Part" msgstr "" -#: part/templates/part/stock_count.html:7 +#: part/templates/part/stock_count.html:7 templates/js/bom.html:203 +#: templates/js/part.html:218 msgid "No Stock" msgstr "" @@ -2949,6 +2978,106 @@ msgstr "" msgid "Submit Bug Report" msgstr "" +#: templates/js/bom.html:143 +msgid "Open subassembly" +msgstr "" + +#: templates/js/bom.html:194 templates/js/build.html:113 +msgid "Available" +msgstr "" + +#: templates/js/bom.html:219 +msgid "No pricing available" +msgstr "" + +#: templates/js/bom.html:239 +msgid "Validate BOM Item" +msgstr "" + +#: templates/js/bom.html:240 +msgid "This line has been validated" +msgstr "" + +#: templates/js/bom.html:242 +msgid "Edit BOM Item" +msgstr "" + +#: templates/js/bom.html:243 +msgid "Delete BOM Item" +msgstr "" + +#: templates/js/build.html:19 +msgid "No builds matching query" +msgstr "" + +#: templates/js/build.html:102 +msgid "No parts allocated for" +msgstr "" + +#: templates/js/company.html:29 +msgid "No company information found" +msgstr "" + +#: templates/js/company.html:101 +msgid "No supplier parts found" +msgstr "" + +#: templates/js/company.html:117 templates/js/part.html:136 +msgid "Template part" +msgstr "" + +#: templates/js/company.html:121 templates/js/part.html:140 +msgid "Assembled part" +msgstr "" + +#: templates/js/company.html:178 +msgid "Link" +msgstr "" + +#: templates/js/order.html:126 +msgid "No purchase orders found" +msgstr "" + +#: templates/js/order.html:170 +msgid "Date" +msgstr "" + +#: templates/js/order.html:199 +msgid "No sales orders found" +msgstr "" + +#: templates/js/order.html:248 +msgid "Shipment Date" +msgstr "" + +#: templates/js/part.html:104 +msgid "Select" +msgstr "" + +#: templates/js/part.html:144 +msgid "Starred part" +msgstr "" + +#: templates/js/part.html:148 +msgid "Salable part" +msgstr "" + +#: templates/js/part.html:187 +msgid "No category" +msgstr "" + +#: templates/js/part.html:205 templates/table_filters.html:95 +msgid "Low stock" +msgstr "" + +#: templates/js/part.html:214 +msgid "Building" +msgstr "" + +#: templates/js/part.html:232 +msgid "No parts found" +msgstr "" + #: templates/navbar.html:14 msgid "Buy" msgstr "" @@ -3069,10 +3198,6 @@ msgstr "" msgid "Stock available" msgstr "" -#: templates/table_filters.html:95 -msgid "Low stock" -msgstr "" - #: templates/table_filters.html:107 msgid "Starred" msgstr "" diff --git a/InvenTree/templates/base.html b/InvenTree/templates/base.html index bf5fa4a1c3..fbe8398f27 100644 --- a/InvenTree/templates/base.html +++ b/InvenTree/templates/base.html @@ -102,18 +102,19 @@ InvenTree - - - - - - + + + + + + + diff --git a/InvenTree/InvenTree/static/script/inventree/bom.js b/InvenTree/templates/js/bom.html similarity index 83% rename from InvenTree/InvenTree/static/script/inventree/bom.js rename to InvenTree/templates/js/bom.html index e4b90a9f26..518df74d61 100644 --- a/InvenTree/InvenTree/static/script/inventree/bom.js +++ b/InvenTree/templates/js/bom.html @@ -1,3 +1,5 @@ +{% load i18n %} + /* BOM management functions. * Requires follwing files to be loaded first: * - api.js @@ -130,7 +132,7 @@ function loadBomTable(table, options) { cols.push( { field: 'sub_part_detail.full_name', - title: 'Part', + title: '{% trans "Part" %}', sortable: true, formatter: function(value, row, index, field) { var url = `/part/${row.sub_part}/`; @@ -138,7 +140,7 @@ function loadBomTable(table, options) { // Display an extra icon if this part is an assembly if (row.sub_part_detail.assembly) { - var text = ``; + var text = ``; html += renderLink(text, `/part/${row.sub_part}/bom/`); } @@ -152,14 +154,14 @@ function loadBomTable(table, options) { cols.push( { field: 'sub_part_detail.description', - title: 'Description', + title: '{% trans "Description" %}', } ); // Part reference cols.push({ field: 'reference', - title: 'Reference', + title: '{% trans "Reference" %}', searchable: true, sortable: true, }); @@ -167,7 +169,7 @@ function loadBomTable(table, options) { // Part quantity cols.push({ field: 'quantity', - title: 'Quantity', + title: '{% trans "Quantity" %}', searchable: false, sortable: true, formatter: function(value, row, index, field) { @@ -189,7 +191,7 @@ function loadBomTable(table, options) { cols.push( { field: 'sub_part_detail.stock', - title: 'Available', + title: '{% trans "Available" %}', searchable: false, sortable: true, formatter: function(value, row, index, field) { @@ -198,7 +200,7 @@ function loadBomTable(table, options) { var text = value; if (value == null || value <= 0) { - text = `No Stock`; + text = `{% trans "No Stock" %}`; } return renderLink(text, url); @@ -208,13 +210,13 @@ function loadBomTable(table, options) { cols.push( { field: 'price_range', - title: 'Price', + title: '{% trans "Price" %}', sortable: true, formatter: function(value, row, index, field) { if (value) { return value; } else { - return "No pricing available"; + return "{% trans "No pricing available" %}"; } } }); @@ -224,7 +226,7 @@ function loadBomTable(table, options) { cols.push( { field: 'note', - title: 'Notes', + title: '{% trans "Notes" %}', searchable: true, sortable: true, } @@ -234,11 +236,11 @@ function loadBomTable(table, options) { cols.push({ formatter: function(value, row, index, field) { - var bValidate = ""; - var bValid = ""; + var bValidate = ""; + var bValid = ""; - var bEdit = ""; - var bDelt = ""; + var bEdit = ""; + var bDelt = ""; var html = "
"; @@ -283,7 +285,7 @@ function loadBomTable(table, options) { return {classes: 'rowinvalid'}; } }, - formatNoMatches: function() { return "No BOM items found"; }, + formatNoMatches: function() { return "{% trans "No BOM items found" %}"; }, clickToSelect: true, queryParams: function(p) { return params; diff --git a/InvenTree/InvenTree/static/script/inventree/build.js b/InvenTree/templates/js/build.html similarity index 83% rename from InvenTree/InvenTree/static/script/inventree/build.js rename to InvenTree/templates/js/build.html index bb2de7fb81..b48e6a2a09 100644 --- a/InvenTree/InvenTree/static/script/inventree/build.js +++ b/InvenTree/templates/js/build.html @@ -1,3 +1,5 @@ +{% load i18n %} + function loadBuildTable(table, options) { // Display a table of Build objects @@ -14,7 +16,7 @@ function loadBuildTable(table, options) { table.inventreeTable({ method: 'get', formatNoMatches: function() { - return "No builds matching query"; + return "{% trans "No builds matching query" %}"; }, url: options.url, queryParams: filters, @@ -28,7 +30,7 @@ function loadBuildTable(table, options) { }, { field: 'title', - title: 'Build', + title: '{% trans "Build" %}', sortable: true, formatter: function(value, row, index, field) { return renderLink(value, '/build/' + row.pk + '/'); @@ -36,7 +38,7 @@ function loadBuildTable(table, options) { }, { field: 'part', - title: 'Part', + title: '{% trans "Part" %}', sortable: true, formatter: function(value, row, index, field) { @@ -47,12 +49,12 @@ function loadBuildTable(table, options) { }, { field: 'quantity', - title: 'Quantity', + title: '{% trans "Quantity" %}', sortable: true, }, { field: 'status', - title: 'Status', + title: '{% trans "Status" %}', sortable: true, formatter: function(value, row, index, field) { return buildStatusDisplay(value); @@ -60,12 +62,12 @@ function loadBuildTable(table, options) { }, { field: 'creation_date', - title: 'Created', + title: '{% trans "Created" %}', sortable: true, }, { field: 'completion_date', - title: 'Completed', + title: '{% trans "Completed" %}', sortable: true, }, ], @@ -97,30 +99,30 @@ function loadAllocationTable(table, part_id, part, url, required, button) { table.bootstrapTable({ url: url, sortable: false, - formatNoMatches: function() { return 'No parts allocated for ' + part; }, + formatNoMatches: function() { return '{% trans "No parts allocated for" %} ' + part; }, columns: [ { field: 'stock_item_detail', - title: 'Stock Item', + title: '{% trans "Stock Item" %}', formatter: function(value, row, index, field) { return '' + parseFloat(value.quantity) + ' x ' + value.part_name + ' @ ' + value.location_name; } }, { field: 'stock_item_detail.quantity', - title: 'Available', + title: '{% trans "Available" %}', formatter: function(value, row, index, field) { return parseFloat(value); } }, { field: 'quantity', - title: 'Allocated', + title: '{% trans "Allocated" %}', formatter: function(value, row, index, field) { var html = parseFloat(value); - var bEdit = ""; - var bDel = ""; + var bEdit = ""; + var bDel = ""; html += "
" + bEdit + bDel + "
"; diff --git a/InvenTree/InvenTree/static/script/inventree/company.js b/InvenTree/templates/js/company.html similarity index 80% rename from InvenTree/InvenTree/static/script/inventree/company.js rename to InvenTree/templates/js/company.html index d5c37ce363..8b278e2a21 100644 --- a/InvenTree/InvenTree/static/script/inventree/company.js +++ b/InvenTree/templates/js/company.html @@ -1,3 +1,4 @@ +{% load i18n %} function loadCompanyTable(table, url, options={}) { /* @@ -25,7 +26,7 @@ function loadCompanyTable(table, url, options={}) { method: 'get', queryParams: filters, groupBy: false, - formatNoMatches: function() { return "No company information found"; }, + formatNoMatches: function() { return "{% trans "No company information found" %}"; }, columns: [ { field: 'pk', @@ -34,21 +35,21 @@ function loadCompanyTable(table, url, options={}) { }, { field: 'name', - title: 'Company', + title: '{% trans "Company" %}', sortable: true, formatter: function(value, row, index, field) { var html = imageHoverIcon(row.image) + renderLink(value, row.url); if (row.is_customer) { - html += ``; + html += ``; } if (row.is_manufacturer) { - html += ``; + html += ``; } if (row.is_supplier) { - html += ``; + html += ``; } return html; @@ -56,12 +57,12 @@ function loadCompanyTable(table, url, options={}) { }, { field: 'description', - title: 'Description', + title: '{% trans "Description" %}', sortable: true, }, { field: 'website', - title: 'Website', + title: '{% trans "Website" %}', formatter: function(value, row, index, field) { if (value) { return renderLink(value, value); @@ -97,7 +98,7 @@ function loadSupplierPartTable(table, url, options) { method: 'get', queryParams: filters, groupBy: false, - formatNoMatches: function() { return "No supplier parts found"; }, + formatNoMatches: function() { return "{% trans "No supplier parts found" %}"; }, columns: [ { checkbox: true, @@ -105,7 +106,7 @@ function loadSupplierPartTable(table, url, options) { { sortable: true, field: 'part_detail.full_name', - title: 'Part', + title: '{% trans "Part" %}', formatter: function(value, row, index, field) { var url = `/part/${row.part}/`; @@ -113,15 +114,15 @@ function loadSupplierPartTable(table, url, options) { var html = imageHoverIcon(row.part_detail.thumbnail) + renderLink(value, url); if (row.part_detail.is_template) { - html += ``; + html += ``; } if (row.part_detail.assembly) { - html += ``; + html += ``; } if (!row.part_detail.active) { - html += `INACTIVE`; + html += `{% trans "Inactive" %}`; } return html; @@ -130,7 +131,7 @@ function loadSupplierPartTable(table, url, options) { { sortable: true, field: 'supplier', - title: "Supplier", + title: "{% trans "Supplier" %}", formatter: function(value, row, index, field) { if (value) { var name = row.supplier_detail.name; @@ -146,7 +147,7 @@ function loadSupplierPartTable(table, url, options) { { sortable: true, field: 'SKU', - title: "Supplier Part", + title: "{% trans "Supplier Part" %}", formatter: function(value, row, index, field) { return renderLink(value, `/supplier-part/${row.pk}/`); } @@ -154,7 +155,7 @@ function loadSupplierPartTable(table, url, options) { { sortable: true, field: 'manufacturer', - title: 'Manufacturer', + title: '{% trans "Manufacturer" %}', formatter: function(value, row, index, field) { if (value) { var name = row.manufacturer_detail.name; @@ -170,11 +171,11 @@ function loadSupplierPartTable(table, url, options) { { sortable: true, field: 'MPN', - title: 'MPN', + title: '{% trans "MPN" %}', }, { field: 'link', - title: 'Link', + title: '{% trans "Link" %}', formatter: function(value, row, index, field) { if (value) { return renderLink(value, value); diff --git a/InvenTree/InvenTree/static/script/inventree/order.js b/InvenTree/templates/js/order.html similarity index 86% rename from InvenTree/InvenTree/static/script/inventree/order.js rename to InvenTree/templates/js/order.html index c4e39d9e1d..17bd67cabb 100644 --- a/InvenTree/InvenTree/static/script/inventree/order.js +++ b/InvenTree/templates/js/order.html @@ -1,3 +1,5 @@ +{% load i18n %} + function removeOrderRowFromOrderWizard(e) { /* Remove a part selection from an order form. */ @@ -121,7 +123,7 @@ function loadPurchaseOrderTable(table, options) { queryParams: filters, groupBy: false, original: options.params, - formatNoMatches: function() { return "No purchase orders found"; }, + formatNoMatches: function() { return "{% trans "No purchase orders found" %}"; }, columns: [ { field: 'pk', @@ -131,7 +133,7 @@ function loadPurchaseOrderTable(table, options) { { sortable: true, field: 'reference', - title: 'Purchase Order', + title: '{% trans "Purchase Order" %}', formatter: function(value, row, index, field) { return renderLink(value, `/order/purchase-order/${row.pk}/`); } @@ -139,25 +141,25 @@ function loadPurchaseOrderTable(table, options) { { sortable: true, field: 'supplier_detail', - title: 'Supplier', + title: '{% trans "Supplier" %}', formatter: function(value, row, index, field) { return imageHoverIcon(row.supplier_detail.image) + renderLink(row.supplier_detail.name, `/company/${row.supplier}/purchase-orders/`); } }, { field: 'supplier_reference', - title: 'Supplier Reference', + title: '{% trans "Supplier Reference" %}', sortable: true, }, { sortable: true, field: 'description', - title: 'Description', + title: '{% trans "Description" %}', }, { sortable: true, field: 'status', - title: 'Status', + title: '{% trans "Status" %}', formatter: function(value, row, index, field) { return purchaseOrderStatusDisplay(row.status, row.status_text); } @@ -165,12 +167,12 @@ function loadPurchaseOrderTable(table, options) { { sortable: true, field: 'creation_date', - title: 'Date', + title: '{% trans "Date" %}', }, { sortable: true, field: 'line_items', - title: 'Items' + title: '{% trans "Items" %}' }, ], }); @@ -194,7 +196,7 @@ function loadSalesOrderTable(table, options) { queryParams: filters, groupBy: false, original: options.params, - formatNoMatches: function() { return "No sales orders found"; }, + formatNoMatches: function() { return "{% trans "No sales orders found" %}"; }, columns: [ { field: 'pk', @@ -204,7 +206,7 @@ function loadSalesOrderTable(table, options) { { sortable: true, field: 'reference', - title: 'Sales Order', + title: '{% trans "Sales Order" %}', formatter: function(value, row, index, field) { return renderLink(value, `/order/sales-order/${row.pk}/`); }, @@ -212,25 +214,25 @@ function loadSalesOrderTable(table, options) { { sortable: true, field: 'customer_detail', - title: 'Customer', + title: '{% trans "Customer" %}', formatter: function(value, row, index, field) { return imageHoverIcon(row.customer_detail.image) + renderLink(row.customer_detail.name, `/company/${row.customer}/sales-orders/`); } }, { field: 'customer_reference', - title: 'Customer Reference', + title: '{% trans "Customer Reference" %}', sotrable: true, }, { sortable: true, field: 'description', - title: 'Description', + title: '{% trans "Description" %}', }, { sortable: true, field: 'status', - title: 'Status', + title: '{% trans "Status" %}', formatter: function(value, row, index, field) { return salesOrderStatusDisplay(row.status, row.status_text); } @@ -238,17 +240,17 @@ function loadSalesOrderTable(table, options) { { sortable: true, field: 'creation_date', - title: 'Creation Date', + title: '{% trans "Creation Date" %}', }, { sortable: true, field: 'shipment_date', - title: "Shipment Date", + title: "{% trans "Shipment Date" %}", }, { sortable: true, field: 'line_items', - title: 'Items' + title: '{% trans "Items" %}' }, ], }); diff --git a/InvenTree/InvenTree/static/script/inventree/part.js b/InvenTree/templates/js/part.html similarity index 88% rename from InvenTree/InvenTree/static/script/inventree/part.js rename to InvenTree/templates/js/part.html index 92460a51a7..57e7fa5798 100644 --- a/InvenTree/InvenTree/static/script/inventree/part.js +++ b/InvenTree/templates/js/part.html @@ -1,23 +1,9 @@ +{% load i18n %} + /* Part API functions * Requires api.js to be loaded first */ -function getPartCategoryList(filters={}, options={}) { - return inventreeGet('/api/part/category/', filters, options); -} - -function getSupplierPartList(filters={}, options={}) { - return inventreeGet('/api/part/supplier/', filters, options); -} - -function getPartList(filters={}, options={}) { - return inventreeGet('/api/part/', filters, options); -} - -function getBomList(filters={}, options={}) { - return inventreeGet('/api/bom/', filters, options); -} - function toggleStar(options) { /* Toggle the 'starred' status of a part. * Performs AJAX queries and updates the display on the button. @@ -115,14 +101,14 @@ function loadPartTable(table, url, options={}) { if (options.checkbox) { columns.push({ checkbox: true, - title: 'Select', + title: '{% trans 'Select' %}', searchable: false, }); } columns.push({ field: 'name', - title: 'Part', + title: '{% trans 'Part' %}', sortable: true, formatter: function(value, row, index, field) { @@ -147,19 +133,19 @@ function loadPartTable(table, url, options={}) { var display = imageHoverIcon(row.thumbnail) + renderLink(name, '/part/' + row.pk + '/'); if (row.is_template) { - display += ``; + display += ``; } if (row.assembly) { - display += ``; + display += ``; } if (row.starred) { - display += ``; + display += ``; } if (row.salable) { - display += ``; + display += ``; } /* @@ -169,7 +155,7 @@ function loadPartTable(table, url, options={}) { */ if (!row.active) { - display += `INACTIVE`; + display += `{% trans "Inactive" %}`; } return display; } @@ -178,7 +164,7 @@ function loadPartTable(table, url, options={}) { columns.push({ sortable: true, field: 'description', - title: 'Description', + title: '{% trans 'Description' %}', formatter: function(value, row, index, field) { if (row.is_template) { @@ -192,20 +178,20 @@ function loadPartTable(table, url, options={}) { columns.push({ sortable: true, field: 'category_detail', - title: 'Category', + title: '{% trans 'Category' %}', formatter: function(value, row, index, field) { if (row.category) { return renderLink(value.pathstring, "/part/category/" + row.category + "/"); } else { - return 'No category'; + return '{% trans "No category" %}'; } } }); columns.push({ field: 'in_stock', - title: 'Stock', + title: '{% trans "Stock" %}', searchable: false, sortable: true, formatter: function(value, row, index, field) { @@ -216,20 +202,20 @@ function loadPartTable(table, url, options={}) { // Is stock "low" (below the 'minimum_stock' quantity)? if (row.minimum_stock && row.minimum_stock > value) { - value += "Low stock"; + value += "{% trans "Low stock" %}"; } } else if (row.on_order) { // There is no stock available, but stock is on order - value = "0On Order : " + row.on_order + ""; + value = "0{% trans "On Order" %}: " + row.on_order + ""; link = "orders"; } else if (row.building) { // There is no stock available, but stock is being built - value = "0Building : " + row.building + ""; + value = "0{% trans "Building" %}: " + row.building + ""; link = "builds"; } else { // There is no stock available - value = "0No Stock"; + value = "0{% trans "No Stock" %}"; } return renderLink(value, '/part/' + row.pk + "/" + link + "/"); @@ -243,7 +229,7 @@ function loadPartTable(table, url, options={}) { queryParams: filters, groupBy: false, original: params, - formatNoMatches: function() { return "No parts found"; }, + formatNoMatches: function() { return "{% trans "No parts found" %}"; }, columns: columns, }); diff --git a/InvenTree/InvenTree/static/script/inventree/stock.js b/InvenTree/templates/js/stock.js similarity index 93% rename from InvenTree/InvenTree/static/script/inventree/stock.js rename to InvenTree/templates/js/stock.js index 4e4b61aa93..5645f9aa9c 100644 --- a/InvenTree/InvenTree/static/script/inventree/stock.js +++ b/InvenTree/templates/js/stock.js @@ -1,20 +1,9 @@ +{% load i18n %} + /* Stock API functions * Requires api.js to be loaded first */ -function getStockList(filters={}, options={}) { - return inventreeGet('/api/stock/', filters, options); -} - -function getStockDetail(pk, options={}) { - return inventreeGet('/api/stock/' + pk + '/', {}, options) -} - -function getStockLocations(filters={}, options={}) { - return inventreeGet('/api/stock/location/', filters, options) -} - - /* Functions for interacting with stock management forms */ @@ -29,7 +18,6 @@ function removeStockRow(e) { $('#' + row).remove(); } - function loadStockTable(table, options) { /* Load data into a stock table with adjustable options. * Fetches data (via AJAX) and loads into a bootstrap table. @@ -75,7 +63,7 @@ function loadStockTable(table, options) { table.inventreeTable({ method: 'get', formatNoMatches: function() { - return 'No stock items matching query'; + return '{% trans "No stock items matching query" %}'; }, url: options.url, queryParams: filters, @@ -205,7 +193,7 @@ function loadStockTable(table, options) { columns: [ { checkbox: true, - title: 'Select', + title: '{% trans "Select" %}', searchable: false, }, { @@ -215,7 +203,7 @@ function loadStockTable(table, options) { }, { field: 'part_name', - title: 'Part', + title: '{% trans "Part" %}', sortable: true, formatter: function(value, row, index, field) { @@ -236,7 +224,7 @@ function loadStockTable(table, options) { }, { field: 'part_description', - title: 'Description', + title: '{% trans "Description" %}', sortable: true, formatter: function(value, row, index, field) { return row.part_detail.description; @@ -244,7 +232,7 @@ function loadStockTable(table, options) { }, { field: 'quantity', - title: 'Stock', + title: '{% trans "Stock" %}', sortable: true, formatter: function(value, row, index, field) { @@ -260,12 +248,12 @@ function loadStockTable(table, options) { var html = renderLink(val, `/stock/item/${row.pk}/`); if (row.allocated) { - html += ``; + html += ``; } // 70 = "LOST" if (row.status == 70) { - html += ``; + html += ``; } return html; @@ -273,7 +261,7 @@ function loadStockTable(table, options) { }, { field: 'status', - title: 'Status', + title: '{% trans "Status" %}', sortable: 'true', formatter: function(value, row, index, field) { return stockStatusDisplay(value); @@ -281,25 +269,25 @@ function loadStockTable(table, options) { }, { field: 'batch', - title: 'Batch', + title: '{% trans "Batch" %}', sortable: true, }, { field: 'location_detail.pathstring', - title: 'Location', + title: '{% trans "Location" %}', sortable: true, formatter: function(value, row, index, field) { if (value) { return renderLink(value, '/stock/location/' + row.location + '/'); } else { - return 'No stock location set'; + return '{% trans "No stock location set" %}'; } } }, { field: 'notes', - title: 'Notes', + title: '{% trans "Notes" %}', } ], }); @@ -389,7 +377,6 @@ function loadStockTable(table, options) { }); } - function loadStockTrackingTable(table, options) { var cols = [ @@ -399,7 +386,7 @@ function loadStockTrackingTable(table, options) { }, { field: 'date', - title: 'Date', + title: '{% trans "Date" %}', sortable: true, formatter: function(value, row, index, field) { var m = moment(value); @@ -417,7 +404,7 @@ function loadStockTrackingTable(table, options) { if (options.partColumn) { cols.push({ field: 'item', - title: 'Stock Item', + title: '{% trans "Stock Item" %}', sortable: true, formatter: function(value, row, index, field) { return renderLink(value.part_name, value.url); @@ -428,7 +415,7 @@ function loadStockTrackingTable(table, options) { // Stock transaction description cols.push({ field: 'title', - title: 'Description', + title: '{% trans "Description" %}', sortable: true, formatter: function(value, row, index, field) { var html = "" + value + ""; @@ -447,7 +434,7 @@ function loadStockTrackingTable(table, options) { cols.push({ field: 'quantity', - title: 'Quantity', + title: '{% trans "Quantity" %}', formatter: function(value, row, index, field) { return parseFloat(value); }, @@ -456,7 +443,7 @@ function loadStockTrackingTable(table, options) { cols.push({ sortable: true, field: 'user', - title: 'User', + title: '{% trans "User" %}', formatter: function(value, row, index, field) { if (value) { @@ -465,7 +452,7 @@ function loadStockTrackingTable(table, options) { } else { - return "No user information"; + return "{% trans "No user information" %}"; } } });