2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-04-30 04:26:44 +00:00

Merge pull request #776 from SchrodingersGat/dynamic-js

Add endpoint for dynamic javascript files
This commit is contained in:
Oliver 2020-05-02 22:16:35 +10:00 committed by GitHub
commit 1a4f5cf719
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 738 additions and 329 deletions

View File

@ -35,6 +35,7 @@ from rest_framework.documentation import include_docs_urls
from .views import IndexView, SearchView, DatabaseStatsView from .views import IndexView, SearchView, DatabaseStatsView
from .views import SettingsView, EditUserView, SetPasswordView from .views import SettingsView, EditUserView, SetPasswordView
from .views import DynamicJsView
from .api import InfoView, BarcodePluginView, ActionPluginView from .api import InfoView, BarcodePluginView, ActionPluginView
@ -74,6 +75,12 @@ settings_urls = [
] ]
dynamic_javascript_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 = [ urlpatterns = [

View File

@ -514,6 +514,17 @@ class SearchView(TemplateView):
return super(TemplateView, self).render_to_response(context) 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): class SettingsView(TemplateView):
""" View for configuring User settings """ View for configuring User settings
""" """

View File

@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2020-02-02 08:07+0100\n"
"Last-Translator: Christian Schlüter <chschlue@gmail.com>\n" "Last-Translator: Christian Schlüter <chschlue@gmail.com>\n"
"Language-Team: C <kde-i18n-doc@kde.org>\n" "Language-Team: C <kde-i18n-doc@kde.org>\n"
@ -81,19 +81,19 @@ msgstr "Datei zum Anhängen auswählen"
msgid "File comment" msgid "File comment"
msgstr "Datei-Kommentar" msgstr "Datei-Kommentar"
#: InvenTree/settings.py:274 #: InvenTree/settings.py:295
msgid "English" msgid "English"
msgstr "Englisch" msgstr "Englisch"
#: InvenTree/settings.py:275 #: InvenTree/settings.py:296
msgid "German" msgid "German"
msgstr "Deutsch" msgstr "Deutsch"
#: InvenTree/settings.py:276 #: InvenTree/settings.py:297
msgid "French" msgid "French"
msgstr "Französisch" msgstr "Französisch"
#: InvenTree/settings.py:277 #: InvenTree/settings.py:298
msgid "Polish" msgid "Polish"
msgstr "Polnisch" msgstr "Polnisch"
@ -158,7 +158,7 @@ msgstr "Lagerobjekt bearbeiten"
#: InvenTree/status_codes.py:214 build/templates/build/allocate.html:349 #: InvenTree/status_codes.py:214 build/templates/build/allocate.html:349
#: order/templates/order/sales_order_detail.html:220 #: 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" msgid "Allocated"
msgstr "Zugeordnet" msgstr "Zugeordnet"
@ -187,7 +187,7 @@ msgstr "Überschuss darf 100% nicht überschreiten"
msgid "Overage must be an integer value or a percentage" msgid "Overage must be an integer value or a percentage"
msgstr "Überschuss muss eine Ganzzahl oder ein Prozentwert sein" msgstr "Überschuss muss eine Ganzzahl oder ein Prozentwert sein"
#: InvenTree/views.py:536 #: InvenTree/views.py:547
msgid "Database Statistics" msgid "Database Statistics"
msgstr "" msgstr ""
@ -230,7 +230,9 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:30
#: order/templates/order/purchase_order_detail.html:145 #: order/templates/order/purchase_order_detail.html:145
#: part/templates/part/part_app_base.html:7 #: 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" msgid "Part"
msgstr "Teil" msgstr "Teil"
@ -272,7 +274,7 @@ msgstr "Anzahl"
msgid "Number of parts to build" msgid "Number of parts to build"
msgstr "Anzahl der zu bauenden Teile" 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" msgid "Build Status"
msgstr "Bau-Status" msgstr "Bau-Status"
@ -293,7 +295,7 @@ msgid "Batch code for this build output"
msgstr "Chargennummer für diese Bau-Ausgabe" msgstr "Chargennummer für diese Bau-Ausgabe"
#: build/models.py:139 build/templates/build/detail.html:55 #: 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 #: company/templates/company/supplier_part_detail.html:24
#: part/templates/part/detail.html:67 part/templates/part/part_base.html:85 #: part/templates/part/detail.html:67 part/templates/part/part_base.html:85
#: stock/models.py:371 stock/templates/stock/item_base.html:189 #: 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/purchase_order_detail.html:200
#: order/templates/order/so_tabs.html:23 part/templates/part/tabs.html:63 #: order/templates/order/so_tabs.html:23 part/templates/part/tabs.html:63
#: stock/models.py:439 stock/templates/stock/tabs.html:17 #: stock/models.py:439 stock/templates/stock/tabs.html:17
#: templates/js/bom.html:229
msgid "Notes" msgid "Notes"
msgstr "Notizen" msgstr "Notizen"
@ -403,7 +406,8 @@ msgstr "Seriennummer"
#: stock/templates/stock/item_base.html:20 #: stock/templates/stock/item_base.html:20
#: stock/templates/stock/item_base.html:26 #: stock/templates/stock/item_base.html:26
#: stock/templates/stock/item_base.html:154 #: 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" msgid "Quantity"
msgstr "Anzahl" msgstr "Anzahl"
@ -415,35 +419,39 @@ msgid "Location"
msgstr "Standort" msgstr "Standort"
#: build/templates/build/allocate.html:201 #: 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 #, fuzzy
#| msgid "Edit Stock Location" #| msgid "Edit Stock Location"
msgid "Edit stock allocation" msgid "Edit stock allocation"
msgstr "Lagerobjekt-Standort bearbeiten" msgstr "Lagerobjekt-Standort bearbeiten"
#: build/templates/build/allocate.html:202 #: 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 #, fuzzy
#| msgid "Delete Stock Location" #| msgid "Delete Stock Location"
msgid "Delete stock allocation" msgid "Delete stock allocation"
msgstr "Standort löschen" msgstr "Standort löschen"
#: build/templates/build/allocate.html:229 #: build/templates/build/allocate.html:229 templates/js/bom.html:288
#, fuzzy #, fuzzy
#| msgid "No serial numbers found" #| msgid "No serial numbers found"
msgid "No BOM items found" msgid "No BOM items found"
msgstr "Keine Seriennummern gefunden" msgstr "Keine Seriennummern gefunden"
#: build/templates/build/allocate.html:328 #: 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 #: company/templates/company/supplier_part_detail.html:27
#: order/templates/order/purchase_order_detail.html:157 #: order/templates/order/purchase_order_detail.html:157
#: part/templates/part/detail.html:38 part/templates/part/set_category.html:14 #: 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" msgid "Description"
msgstr "Beschreibung" msgstr "Beschreibung"
#: build/templates/build/allocate.html:333 #: build/templates/build/allocate.html:333
#: order/templates/order/purchase_order_detail.html:170 #: order/templates/order/purchase_order_detail.html:170
#: templates/js/bom.html:164
msgid "Reference" msgid "Reference"
msgstr "Referenz" msgstr "Referenz"
@ -504,7 +512,8 @@ msgstr "Lagerobjekt dem Bau zuweisen"
#: build/templates/build/build_base.html:8 #: build/templates/build/build_base.html:8
#: build/templates/build/build_base.html:34 #: build/templates/build/build_base.html:34
#: build/templates/build/complete.html:6 #: 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" msgid "Build"
msgstr "Bau" msgstr "Bau"
@ -526,7 +535,8 @@ msgstr "Bau-Status"
#: build/templates/build/build_base.html:80 #: build/templates/build/build_base.html:80
#: build/templates/build/detail.html:42 #: 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" msgid "Status"
msgstr "Status" msgstr "Status"
@ -536,7 +546,7 @@ msgstr "Status"
#: order/templates/order/sales_order_notes.html:10 #: order/templates/order/sales_order_notes.html:10
#: order/templates/order/sales_order_ship.html:25 #: order/templates/order/sales_order_ship.html:25
#: part/templates/part/allocation.html:27 #: 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 #, fuzzy
#| msgid "Sales Orders" #| msgid "Sales Orders"
msgid "Sales Order" msgid "Sales Order"
@ -622,7 +632,7 @@ msgstr "Los"
#: build/templates/build/detail.html:61 #: build/templates/build/detail.html:61
#: order/templates/order/order_base.html:93 #: 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" msgid "Created"
msgstr "Erstellt" msgstr "Erstellt"
@ -638,7 +648,7 @@ msgstr "Ja"
msgid "No" msgid "No"
msgstr "Nein" msgstr "Nein"
#: build/templates/build/detail.html:80 #: build/templates/build/detail.html:80 templates/js/build.html:70
msgid "Completed" msgid "Completed"
msgstr "Fertig" msgstr "Fertig"
@ -951,7 +961,7 @@ msgid "Part packaging"
msgstr "Teile-Packaging" msgstr "Teile-Packaging"
#: company/templates/company/company_base.html:7 #: 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" msgid "Company"
msgstr "Firma" msgstr "Firma"
@ -962,7 +972,7 @@ msgstr "Firma"
msgid "Company Details" msgid "Company Details"
msgstr "Firmenbemerkungen" msgstr "Firmenbemerkungen"
#: company/templates/company/company_base.html:48 #: company/templates/company/company_base.html:48 templates/js/company.html:65
msgid "Website" msgid "Website"
msgstr "" msgstr ""
@ -983,22 +993,25 @@ msgid "Contact"
msgstr "" msgstr ""
#: company/templates/company/detail.html:16 #: 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 #: company/templates/company/supplier_part_detail.html:30
#: templates/js/company.html:48 templates/js/company.html:158
msgid "Manufacturer" msgid "Manufacturer"
msgstr "Hersteller" msgstr "Hersteller"
#: company/templates/company/detail.html:21 #: 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 #: company/templates/company/supplier_part_detail.html:21 order/models.py:111
#: order/templates/order/order_base.html:74 #: order/templates/order/order_base.html:74
#: order/templates/order/order_wizard/select_pos.html:30 #: 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" msgid "Supplier"
msgstr "Zulieferer" msgstr "Zulieferer"
#: company/templates/company/detail.html:26 order/models.py:275 #: 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" msgid "Customer"
msgstr "Kunde" msgstr "Kunde"
@ -1137,49 +1150,57 @@ msgstr "Bestellungen"
#: company/templates/company/supplier_part_base.html:6 #: company/templates/company/supplier_part_base.html:6
#: company/templates/company/supplier_part_base.html:19 stock/models.py:344 #: 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" msgid "Supplier Part"
msgstr "Zulieferer-Teil" msgstr "Zulieferer-Teil"
#: company/templates/company/supplier_part_base.html:23 #: 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 #, fuzzy
#| msgid "Supplier Part" #| msgid "Supplier Part"
msgid "Edit supplier part" msgid "Edit supplier part"
msgstr "Zulieferer-Teil" msgstr "Zulieferer-Teil"
#: company/templates/company/supplier_part_base.html:26 #: company/templates/company/supplier_part_base.html:29
#, fuzzy #, fuzzy
#| msgid "Supplier Part" #| msgid "Supplier Part"
msgid "Delete supplier part" msgid "Delete supplier part"
msgstr "Zulieferer-Teil" 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 #: company/templates/company/supplier_part_detail.html:11
#, fuzzy #, fuzzy
#| msgid "Supplier Parts" #| msgid "Supplier Parts"
msgid "Supplier Part Details" msgid "Supplier Part Details"
msgstr "Zulieferer-Teile" 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 #: company/templates/company/supplier_part_detail.html:14
#, fuzzy #, fuzzy
#| msgid "Internal Part Number" #| msgid "Internal Part Number"
msgid "Internal Part" msgid "Internal Part"
msgstr "Interne Teilenummer" 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 #: company/templates/company/supplier_part_detail.html:22
msgid "SKU" msgid "SKU"
msgstr "" 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 #: company/templates/company/supplier_part_detail.html:31
#: templates/js/company.html:174
#, fuzzy #, fuzzy
#| msgid "IPN" #| msgid "IPN"
msgid "MPN" msgid "MPN"
msgstr "IPN (Interne Produktnummer)" 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 #: company/templates/company/supplier_part_detail.html:34
msgid "Note" msgid "Note"
msgstr "Notiz" msgstr "Notiz"
@ -1215,6 +1236,7 @@ msgid "New Price Break"
msgstr "" msgstr ""
#: company/templates/company/supplier_part_pricing.html:28 #: company/templates/company/supplier_part_pricing.html:28
#: templates/js/bom.html:213
msgid "Price" msgid "Price"
msgstr "" msgstr ""
@ -1252,7 +1274,8 @@ msgstr "Teile-Packaging"
#: company/templates/company/supplier_part_tabs.html:8 #: company/templates/company/supplier_part_tabs.html:8
#: company/templates/company/tabs.html:12 part/templates/part/tabs.html:17 #: 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" msgid "Stock"
msgstr "Lagerbestand" msgstr "Lagerbestand"
@ -1466,7 +1489,7 @@ msgstr "Position - Notizen"
#: order/models.py:427 order/templates/order/order_base.html:9 #: order/models.py:427 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:23 #: 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" msgid "Purchase Order"
msgstr "Kaufvertrag" msgstr "Kaufvertrag"
@ -1537,7 +1560,7 @@ msgstr "Bestell-Referenz"
msgid "Order Status" msgid "Order Status"
msgstr "Teile bestellen" msgstr "Teile bestellen"
#: order/templates/order/order_base.html:80 #: order/templates/order/order_base.html:80 templates/js/order.html:151
#, fuzzy #, fuzzy
#| msgid "Reference" #| msgid "Reference"
msgid "Supplier Reference" msgid "Supplier Reference"
@ -1602,7 +1625,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr "" msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31 #: 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" msgid "Items"
msgstr "Positionen" msgstr "Positionen"
@ -1660,8 +1684,8 @@ msgid "Attachments"
msgstr "Anhänge" msgstr "Anhänge"
#: order/templates/order/purchase_order_detail.html:16 #: order/templates/order/purchase_order_detail.html:16
#: order/templates/order/sales_order_detail.html:17 order/views.py:1042 #: order/templates/order/sales_order_detail.html:17 order/views.py:1051
#: order/views.py:1156 #: order/views.py:1165
msgid "Add Line Item" msgid "Add Line Item"
msgstr "Position hinzufügen" msgstr "Position hinzufügen"
@ -1730,7 +1754,7 @@ msgstr "Teile"
msgid "Sales Order Details" msgid "Sales Order Details"
msgstr "Bestelldetails" msgstr "Bestelldetails"
#: order/templates/order/sales_order_base.html:79 #: order/templates/order/sales_order_base.html:79 templates/js/order.html:224
#, fuzzy #, fuzzy
#| msgid "Reference" #| msgid "Reference"
msgid "Customer Reference" msgid "Customer Reference"
@ -1952,49 +1976,49 @@ msgstr "Anzahl kleiner null empfangen"
msgid "No lines specified" msgid "No lines specified"
msgstr "Keine Zeilen angegeben" msgstr "Keine Zeilen angegeben"
#: order/views.py:1062 #: order/views.py:1071
msgid "Invalid Purchase Order" msgid "Invalid Purchase Order"
msgstr "Ungültige Bestellung" msgstr "Ungültige Bestellung"
#: order/views.py:1070 #: order/views.py:1079
msgid "Supplier must match for Part and Order" msgid "Supplier must match for Part and Order"
msgstr "Zulieferer muss zum Teil und zur Bestellung passen" msgstr "Zulieferer muss zum Teil und zur Bestellung passen"
#: order/views.py:1075 #: order/views.py:1084
msgid "Invalid SupplierPart selection" msgid "Invalid SupplierPart selection"
msgstr "Ungültige Wahl des Zulieferer-Teils" msgstr "Ungültige Wahl des Zulieferer-Teils"
#: order/views.py:1207 order/views.py:1225 #: order/views.py:1216 order/views.py:1234
#, fuzzy #, fuzzy
#| msgid "Add Line Item" #| msgid "Add Line Item"
msgid "Edit Line Item" msgid "Edit Line Item"
msgstr "Position hinzufügen" msgstr "Position hinzufügen"
#: order/views.py:1241 order/views.py:1253 #: order/views.py:1250 order/views.py:1262
#, fuzzy #, fuzzy
#| msgid "Delete Stock Item" #| msgid "Delete Stock Item"
msgid "Delete Line Item" msgid "Delete Line Item"
msgstr "Lagerobjekt löschen" msgstr "Lagerobjekt löschen"
#: order/views.py:1246 order/views.py:1258 #: order/views.py:1255 order/views.py:1267
#, fuzzy #, fuzzy
#| msgid "Deleted {n} stock items" #| msgid "Deleted {n} stock items"
msgid "Deleted line item" msgid "Deleted line item"
msgstr "{n} Teile im Lager gelöscht" msgstr "{n} Teile im Lager gelöscht"
#: order/views.py:1267 #: order/views.py:1276
#, fuzzy #, fuzzy
#| msgid "Allocate Stock to Build" #| msgid "Allocate Stock to Build"
msgid "Allocate Stock to Order" msgid "Allocate Stock to Order"
msgstr "Lagerbestand dem Bau zuweisen" msgstr "Lagerbestand dem Bau zuweisen"
#: order/views.py:1336 #: order/views.py:1345
#, fuzzy #, fuzzy
#| msgid "Edit Stock Location" #| msgid "Edit Stock Location"
msgid "Edit Allocation Quantity" msgid "Edit Allocation Quantity"
msgstr "Lagerobjekt-Standort bearbeiten" msgstr "Lagerobjekt-Standort bearbeiten"
#: order/views.py:1351 #: order/views.py:1360
#, fuzzy #, fuzzy
#| msgid "Receive parts to this location" #| msgid "Receive parts to this location"
msgid "Remove allocation" msgid "Remove allocation"
@ -2250,7 +2274,7 @@ msgstr "bestellt"
#: stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:52 #: stock/templates/stock/item_base.html:52
#: stock/templates/stock/item_base.html:183 #: 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" msgid "Stock Item"
msgstr "Lagerobjekt" msgstr "Lagerobjekt"
@ -2357,6 +2381,7 @@ msgid "Variant Of"
msgstr "Variante von" msgstr "Variante von"
#: part/templates/part/detail.html:57 part/templates/part/set_category.html:15 #: part/templates/part/detail.html:57 part/templates/part/set_category.html:15
#: templates/js/part.html:181
msgid "Category" msgid "Category"
msgstr "Kategorie" msgstr "Kategorie"
@ -2372,7 +2397,7 @@ msgstr "Einheiten"
msgid "Minimum Stock" msgid "Minimum Stock"
msgstr "Minimaler Lagerbestand" msgstr "Minimaler Lagerbestand"
#: part/templates/part/detail.html:101 #: part/templates/part/detail.html:101 templates/js/order.html:243
#, fuzzy #, fuzzy
#| msgid "Create new Stock Item" #| msgid "Create new Stock Item"
msgid "Creation Date" msgid "Creation Date"
@ -2462,12 +2487,6 @@ msgstr "Teil kann nicht an Kunden verkauft werden"
msgid "Part Notes" msgid "Part Notes"
msgstr "Teil-Bemerkungen" 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 #: part/templates/part/orders.html:14
#, fuzzy #, fuzzy
#| msgid "Order Parts" #| msgid "Order Parts"
@ -2538,7 +2557,8 @@ msgstr ""
msgid "This part is a variant of" msgid "This part is a variant of"
msgstr "Dieses Teil ist nicht aktiv" 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" msgid "Inactive"
msgstr "" msgstr ""
@ -2558,15 +2578,27 @@ msgstr "Verfügbarer Lagerbestand"
msgid "In Stock" msgid "In Stock"
msgstr "Auf Lager" 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 #: 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" msgid "On Order"
msgstr "bestellt" msgstr "bestellt"
#: part/templates/part/part_base.html:136 #: part/templates/part/part_base.html:143
msgid "Can Build" msgid "Can Build"
msgstr "Herstellbar?" msgstr "Herstellbar?"
#: part/templates/part/part_base.html:142 #: part/templates/part/part_base.html:149
msgid "Underway" msgid "Underway"
msgstr "unterwegs" msgstr "unterwegs"
@ -2616,7 +2648,8 @@ msgstr "Zulieferer-Teil"
msgid "Create New Part" msgid "Create New Part"
msgstr "Neues Lagerobjekt hinzufügen" 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 #, fuzzy
#| msgid "Stock" #| msgid "Stock"
msgid "No Stock" msgid "No Stock"
@ -3450,6 +3483,142 @@ msgstr "Code auf GitHub ansehen"
msgid "Submit Bug Report" msgid "Submit Bug Report"
msgstr "" 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 #: templates/navbar.html:14
msgid "Buy" msgid "Buy"
msgstr "" msgstr ""
@ -3610,12 +3779,6 @@ msgstr "Parameter Vorlage"
msgid "Stock available" msgid "Stock available"
msgstr "verfügbar" msgstr "verfügbar"
#: templates/table_filters.html:95
#, fuzzy
#| msgid "Stock"
msgid "Low stock"
msgstr "Lagerbestand"
#: templates/table_filters.html:107 #: templates/table_filters.html:107
msgid "Starred" msgid "Starred"
msgstr "" msgstr ""
@ -3629,9 +3792,6 @@ msgstr "Kaufbar"
#~ msgid "Allocate Stock to Build" #~ msgid "Allocate Stock to Build"
#~ msgstr "Lagerbestand dem Bau zuweisen" #~ msgstr "Lagerbestand dem Bau zuweisen"
#~ msgid "Available"
#~ msgstr "verfügbar"
#~ msgid "Required Parts" #~ msgid "Required Parts"
#~ msgstr "benötigte Teile" #~ msgstr "benötigte Teile"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -78,19 +78,19 @@ msgstr ""
msgid "File comment" msgid "File comment"
msgstr "" msgstr ""
#: InvenTree/settings.py:274 #: InvenTree/settings.py:295
msgid "English" msgid "English"
msgstr "" msgstr ""
#: InvenTree/settings.py:275 #: InvenTree/settings.py:296
msgid "German" msgid "German"
msgstr "" msgstr ""
#: InvenTree/settings.py:276 #: InvenTree/settings.py:297
msgid "French" msgid "French"
msgstr "" msgstr ""
#: InvenTree/settings.py:277 #: InvenTree/settings.py:298
msgid "Polish" msgid "Polish"
msgstr "" msgstr ""
@ -153,7 +153,7 @@ msgstr ""
#: InvenTree/status_codes.py:214 build/templates/build/allocate.html:349 #: InvenTree/status_codes.py:214 build/templates/build/allocate.html:349
#: order/templates/order/sales_order_detail.html:220 #: 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" msgid "Allocated"
msgstr "" msgstr ""
@ -182,7 +182,7 @@ msgstr ""
msgid "Overage must be an integer value or a percentage" msgid "Overage must be an integer value or a percentage"
msgstr "" msgstr ""
#: InvenTree/views.py:536 #: InvenTree/views.py:547
msgid "Database Statistics" msgid "Database Statistics"
msgstr "" msgstr ""
@ -221,7 +221,9 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:30
#: order/templates/order/purchase_order_detail.html:145 #: order/templates/order/purchase_order_detail.html:145
#: part/templates/part/part_app_base.html:7 #: 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" msgid "Part"
msgstr "" msgstr ""
@ -255,7 +257,7 @@ msgstr ""
msgid "Number of parts to build" msgid "Number of parts to build"
msgstr "" 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" msgid "Build Status"
msgstr "" msgstr ""
@ -272,7 +274,7 @@ msgid "Batch code for this build output"
msgstr "" msgstr ""
#: build/models.py:139 build/templates/build/detail.html:55 #: 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 #: company/templates/company/supplier_part_detail.html:24
#: part/templates/part/detail.html:67 part/templates/part/part_base.html:85 #: part/templates/part/detail.html:67 part/templates/part/part_base.html:85
#: stock/models.py:371 stock/templates/stock/item_base.html:189 #: 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/purchase_order_detail.html:200
#: order/templates/order/so_tabs.html:23 part/templates/part/tabs.html:63 #: order/templates/order/so_tabs.html:23 part/templates/part/tabs.html:63
#: stock/models.py:439 stock/templates/stock/tabs.html:17 #: stock/models.py:439 stock/templates/stock/tabs.html:17
#: templates/js/bom.html:229
msgid "Notes" msgid "Notes"
msgstr "" msgstr ""
@ -371,7 +374,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:20 #: stock/templates/stock/item_base.html:20
#: stock/templates/stock/item_base.html:26 #: stock/templates/stock/item_base.html:26
#: stock/templates/stock/item_base.html:154 #: 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" msgid "Quantity"
msgstr "" msgstr ""
@ -383,29 +387,33 @@ msgid "Location"
msgstr "" msgstr ""
#: build/templates/build/allocate.html:201 #: 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" msgid "Edit stock allocation"
msgstr "" msgstr ""
#: build/templates/build/allocate.html:202 #: 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" msgid "Delete stock allocation"
msgstr "" msgstr ""
#: build/templates/build/allocate.html:229 #: build/templates/build/allocate.html:229 templates/js/bom.html:288
msgid "No BOM items found" msgid "No BOM items found"
msgstr "" msgstr ""
#: build/templates/build/allocate.html:328 #: 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 #: company/templates/company/supplier_part_detail.html:27
#: order/templates/order/purchase_order_detail.html:157 #: order/templates/order/purchase_order_detail.html:157
#: part/templates/part/detail.html:38 part/templates/part/set_category.html:14 #: 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" msgid "Description"
msgstr "" msgstr ""
#: build/templates/build/allocate.html:333 #: build/templates/build/allocate.html:333
#: order/templates/order/purchase_order_detail.html:170 #: order/templates/order/purchase_order_detail.html:170
#: templates/js/bom.html:164
msgid "Reference" msgid "Reference"
msgstr "" msgstr ""
@ -452,7 +460,8 @@ msgstr ""
#: build/templates/build/build_base.html:8 #: build/templates/build/build_base.html:8
#: build/templates/build/build_base.html:34 #: build/templates/build/build_base.html:34
#: build/templates/build/complete.html:6 #: 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" msgid "Build"
msgstr "" msgstr ""
@ -470,7 +479,8 @@ msgstr ""
#: build/templates/build/build_base.html:80 #: build/templates/build/build_base.html:80
#: build/templates/build/detail.html:42 #: 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" msgid "Status"
msgstr "" msgstr ""
@ -480,7 +490,7 @@ msgstr ""
#: order/templates/order/sales_order_notes.html:10 #: order/templates/order/sales_order_notes.html:10
#: order/templates/order/sales_order_ship.html:25 #: order/templates/order/sales_order_ship.html:25
#: part/templates/part/allocation.html:27 #: 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" msgid "Sales Order"
msgstr "" msgstr ""
@ -553,7 +563,7 @@ msgstr ""
#: build/templates/build/detail.html:61 #: build/templates/build/detail.html:61
#: order/templates/order/order_base.html:93 #: 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" msgid "Created"
msgstr "" msgstr ""
@ -569,7 +579,7 @@ msgstr ""
msgid "No" msgid "No"
msgstr "" msgstr ""
#: build/templates/build/detail.html:80 #: build/templates/build/detail.html:80 templates/js/build.html:70
msgid "Completed" msgid "Completed"
msgstr "" msgstr ""
@ -840,7 +850,7 @@ msgid "Part packaging"
msgstr "" msgstr ""
#: company/templates/company/company_base.html:7 #: 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" msgid "Company"
msgstr "" msgstr ""
@ -849,7 +859,7 @@ msgstr ""
msgid "Company Details" msgid "Company Details"
msgstr "" msgstr ""
#: company/templates/company/company_base.html:48 #: company/templates/company/company_base.html:48 templates/js/company.html:65
msgid "Website" msgid "Website"
msgstr "" msgstr ""
@ -870,22 +880,25 @@ msgid "Contact"
msgstr "" msgstr ""
#: company/templates/company/detail.html:16 #: 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 #: company/templates/company/supplier_part_detail.html:30
#: templates/js/company.html:48 templates/js/company.html:158
msgid "Manufacturer" msgid "Manufacturer"
msgstr "" msgstr ""
#: company/templates/company/detail.html:21 #: 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 #: company/templates/company/supplier_part_detail.html:21 order/models.py:111
#: order/templates/order/order_base.html:74 #: order/templates/order/order_base.html:74
#: order/templates/order/order_wizard/select_pos.html:30 #: 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" msgid "Supplier"
msgstr "" msgstr ""
#: company/templates/company/detail.html:26 order/models.py:275 #: 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" msgid "Customer"
msgstr "" msgstr ""
@ -995,39 +1008,45 @@ msgstr ""
#: company/templates/company/supplier_part_base.html:6 #: company/templates/company/supplier_part_base.html:6
#: company/templates/company/supplier_part_base.html:19 stock/models.py:344 #: 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" msgid "Supplier Part"
msgstr "" msgstr ""
#: company/templates/company/supplier_part_base.html:23 #: company/templates/company/supplier_part_base.html:23
msgid "Edit supplier part" #: part/templates/part/orders.html:14
msgid "Order part"
msgstr "" msgstr ""
#: company/templates/company/supplier_part_base.html:26 #: 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" msgid "Delete supplier part"
msgstr "" 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 #: company/templates/company/supplier_part_detail.html:11
msgid "Supplier Part Details" msgid "Supplier Part Details"
msgstr "" 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 #: company/templates/company/supplier_part_detail.html:14
msgid "Internal Part" msgid "Internal Part"
msgstr "" 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 #: company/templates/company/supplier_part_detail.html:22
msgid "SKU" msgid "SKU"
msgstr "" 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 #: company/templates/company/supplier_part_detail.html:31
#: templates/js/company.html:174
msgid "MPN" msgid "MPN"
msgstr "" 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 #: company/templates/company/supplier_part_detail.html:34
msgid "Note" msgid "Note"
msgstr "" msgstr ""
@ -1057,6 +1076,7 @@ msgid "New Price Break"
msgstr "" msgstr ""
#: company/templates/company/supplier_part_pricing.html:28 #: company/templates/company/supplier_part_pricing.html:28
#: templates/js/bom.html:213
msgid "Price" msgid "Price"
msgstr "" msgstr ""
@ -1086,7 +1106,8 @@ msgstr ""
#: company/templates/company/supplier_part_tabs.html:8 #: company/templates/company/supplier_part_tabs.html:8
#: company/templates/company/tabs.html:12 part/templates/part/tabs.html:17 #: 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" msgid "Stock"
msgstr "" msgstr ""
@ -1260,7 +1281,7 @@ msgstr ""
#: order/models.py:427 order/templates/order/order_base.html:9 #: order/models.py:427 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:23 #: 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" msgid "Purchase Order"
msgstr "" msgstr ""
@ -1315,7 +1336,7 @@ msgstr ""
msgid "Order Status" msgid "Order Status"
msgstr "" msgstr ""
#: order/templates/order/order_base.html:80 #: order/templates/order/order_base.html:80 templates/js/order.html:151
msgid "Supplier Reference" msgid "Supplier Reference"
msgstr "" msgstr ""
@ -1370,7 +1391,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr "" msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31 #: 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" msgid "Items"
msgstr "" msgstr ""
@ -1422,8 +1444,8 @@ msgid "Attachments"
msgstr "" msgstr ""
#: order/templates/order/purchase_order_detail.html:16 #: order/templates/order/purchase_order_detail.html:16
#: order/templates/order/sales_order_detail.html:17 order/views.py:1042 #: order/templates/order/sales_order_detail.html:17 order/views.py:1051
#: order/views.py:1156 #: order/views.py:1165
msgid "Add Line Item" msgid "Add Line Item"
msgstr "" msgstr ""
@ -1474,7 +1496,7 @@ msgstr ""
msgid "Sales Order Details" msgid "Sales Order Details"
msgstr "" 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" msgid "Customer Reference"
msgstr "" msgstr ""
@ -1645,39 +1667,39 @@ msgstr ""
msgid "No lines specified" msgid "No lines specified"
msgstr "" msgstr ""
#: order/views.py:1062 #: order/views.py:1071
msgid "Invalid Purchase Order" msgid "Invalid Purchase Order"
msgstr "" msgstr ""
#: order/views.py:1070 #: order/views.py:1079
msgid "Supplier must match for Part and Order" msgid "Supplier must match for Part and Order"
msgstr "" msgstr ""
#: order/views.py:1075 #: order/views.py:1084
msgid "Invalid SupplierPart selection" msgid "Invalid SupplierPart selection"
msgstr "" msgstr ""
#: order/views.py:1207 order/views.py:1225 #: order/views.py:1216 order/views.py:1234
msgid "Edit Line Item" msgid "Edit Line Item"
msgstr "" msgstr ""
#: order/views.py:1241 order/views.py:1253 #: order/views.py:1250 order/views.py:1262
msgid "Delete Line Item" msgid "Delete Line Item"
msgstr "" msgstr ""
#: order/views.py:1246 order/views.py:1258 #: order/views.py:1255 order/views.py:1267
msgid "Deleted line item" msgid "Deleted line item"
msgstr "" msgstr ""
#: order/views.py:1267 #: order/views.py:1276
msgid "Allocate Stock to Order" msgid "Allocate Stock to Order"
msgstr "" msgstr ""
#: order/views.py:1336 #: order/views.py:1345
msgid "Edit Allocation Quantity" msgid "Edit Allocation Quantity"
msgstr "" msgstr ""
#: order/views.py:1351 #: order/views.py:1360
msgid "Remove allocation" msgid "Remove allocation"
msgstr "" msgstr ""
@ -1923,7 +1945,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:52 #: stock/templates/stock/item_base.html:52
#: stock/templates/stock/item_base.html:183 #: 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" msgid "Stock Item"
msgstr "" msgstr ""
@ -2022,6 +2044,7 @@ msgid "Variant Of"
msgstr "" msgstr ""
#: part/templates/part/detail.html:57 part/templates/part/set_category.html:15 #: part/templates/part/detail.html:57 part/templates/part/set_category.html:15
#: templates/js/part.html:181
msgid "Category" msgid "Category"
msgstr "" msgstr ""
@ -2037,7 +2060,7 @@ msgstr ""
msgid "Minimum Stock" msgid "Minimum Stock"
msgstr "" msgstr ""
#: part/templates/part/detail.html:101 #: part/templates/part/detail.html:101 templates/js/order.html:243
msgid "Creation Date" msgid "Creation Date"
msgstr "" msgstr ""
@ -2121,10 +2144,6 @@ msgstr ""
msgid "Part Notes" msgid "Part Notes"
msgstr "" msgstr ""
#: part/templates/part/orders.html:14
msgid "Order part"
msgstr ""
#: part/templates/part/orders.html:14 #: part/templates/part/orders.html:14
msgid "Order Part" msgid "Order Part"
msgstr "" msgstr ""
@ -2177,7 +2196,8 @@ msgstr ""
msgid "This part is a variant of" msgid "This part is a variant of"
msgstr "" 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" msgid "Inactive"
msgstr "" msgstr ""
@ -2197,15 +2217,23 @@ msgstr ""
msgid "In Stock" msgid "In Stock"
msgstr "" msgstr ""
#: part/templates/part/part_base.html:114
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:121 #: 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" msgid "On Order"
msgstr "" msgstr ""
#: part/templates/part/part_base.html:136 #: part/templates/part/part_base.html:143
msgid "Can Build" msgid "Can Build"
msgstr "" msgstr ""
#: part/templates/part/part_base.html:142 #: part/templates/part/part_base.html:149
msgid "Underway" msgid "Underway"
msgstr "" msgstr ""
@ -2241,7 +2269,8 @@ msgstr ""
msgid "Create New Part" msgid "Create New Part"
msgstr "" 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" msgid "No Stock"
msgstr "" msgstr ""
@ -2949,6 +2978,106 @@ msgstr ""
msgid "Submit Bug Report" msgid "Submit Bug Report"
msgstr "" 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 #: templates/navbar.html:14
msgid "Buy" msgid "Buy"
msgstr "" msgstr ""
@ -3069,10 +3198,6 @@ msgstr ""
msgid "Stock available" msgid "Stock available"
msgstr "" msgstr ""
#: templates/table_filters.html:95
msgid "Low stock"
msgstr ""
#: templates/table_filters.html:107 #: templates/table_filters.html:107
msgid "Starred" msgid "Starred"
msgstr "" msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -78,19 +78,19 @@ msgstr ""
msgid "File comment" msgid "File comment"
msgstr "" msgstr ""
#: InvenTree/settings.py:274 #: InvenTree/settings.py:295
msgid "English" msgid "English"
msgstr "" msgstr ""
#: InvenTree/settings.py:275 #: InvenTree/settings.py:296
msgid "German" msgid "German"
msgstr "" msgstr ""
#: InvenTree/settings.py:276 #: InvenTree/settings.py:297
msgid "French" msgid "French"
msgstr "" msgstr ""
#: InvenTree/settings.py:277 #: InvenTree/settings.py:298
msgid "Polish" msgid "Polish"
msgstr "" msgstr ""
@ -153,7 +153,7 @@ msgstr ""
#: InvenTree/status_codes.py:214 build/templates/build/allocate.html:349 #: InvenTree/status_codes.py:214 build/templates/build/allocate.html:349
#: order/templates/order/sales_order_detail.html:220 #: 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" msgid "Allocated"
msgstr "" msgstr ""
@ -182,7 +182,7 @@ msgstr ""
msgid "Overage must be an integer value or a percentage" msgid "Overage must be an integer value or a percentage"
msgstr "" msgstr ""
#: InvenTree/views.py:536 #: InvenTree/views.py:547
msgid "Database Statistics" msgid "Database Statistics"
msgstr "" msgstr ""
@ -221,7 +221,9 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:30
#: order/templates/order/purchase_order_detail.html:145 #: order/templates/order/purchase_order_detail.html:145
#: part/templates/part/part_app_base.html:7 #: 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" msgid "Part"
msgstr "" msgstr ""
@ -255,7 +257,7 @@ msgstr ""
msgid "Number of parts to build" msgid "Number of parts to build"
msgstr "" 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" msgid "Build Status"
msgstr "" msgstr ""
@ -272,7 +274,7 @@ msgid "Batch code for this build output"
msgstr "" msgstr ""
#: build/models.py:139 build/templates/build/detail.html:55 #: 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 #: company/templates/company/supplier_part_detail.html:24
#: part/templates/part/detail.html:67 part/templates/part/part_base.html:85 #: part/templates/part/detail.html:67 part/templates/part/part_base.html:85
#: stock/models.py:371 stock/templates/stock/item_base.html:189 #: 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/purchase_order_detail.html:200
#: order/templates/order/so_tabs.html:23 part/templates/part/tabs.html:63 #: order/templates/order/so_tabs.html:23 part/templates/part/tabs.html:63
#: stock/models.py:439 stock/templates/stock/tabs.html:17 #: stock/models.py:439 stock/templates/stock/tabs.html:17
#: templates/js/bom.html:229
msgid "Notes" msgid "Notes"
msgstr "" msgstr ""
@ -371,7 +374,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:20 #: stock/templates/stock/item_base.html:20
#: stock/templates/stock/item_base.html:26 #: stock/templates/stock/item_base.html:26
#: stock/templates/stock/item_base.html:154 #: 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" msgid "Quantity"
msgstr "" msgstr ""
@ -383,29 +387,33 @@ msgid "Location"
msgstr "" msgstr ""
#: build/templates/build/allocate.html:201 #: 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" msgid "Edit stock allocation"
msgstr "" msgstr ""
#: build/templates/build/allocate.html:202 #: 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" msgid "Delete stock allocation"
msgstr "" msgstr ""
#: build/templates/build/allocate.html:229 #: build/templates/build/allocate.html:229 templates/js/bom.html:288
msgid "No BOM items found" msgid "No BOM items found"
msgstr "" msgstr ""
#: build/templates/build/allocate.html:328 #: 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 #: company/templates/company/supplier_part_detail.html:27
#: order/templates/order/purchase_order_detail.html:157 #: order/templates/order/purchase_order_detail.html:157
#: part/templates/part/detail.html:38 part/templates/part/set_category.html:14 #: 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" msgid "Description"
msgstr "" msgstr ""
#: build/templates/build/allocate.html:333 #: build/templates/build/allocate.html:333
#: order/templates/order/purchase_order_detail.html:170 #: order/templates/order/purchase_order_detail.html:170
#: templates/js/bom.html:164
msgid "Reference" msgid "Reference"
msgstr "" msgstr ""
@ -452,7 +460,8 @@ msgstr ""
#: build/templates/build/build_base.html:8 #: build/templates/build/build_base.html:8
#: build/templates/build/build_base.html:34 #: build/templates/build/build_base.html:34
#: build/templates/build/complete.html:6 #: 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" msgid "Build"
msgstr "" msgstr ""
@ -470,7 +479,8 @@ msgstr ""
#: build/templates/build/build_base.html:80 #: build/templates/build/build_base.html:80
#: build/templates/build/detail.html:42 #: 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" msgid "Status"
msgstr "" msgstr ""
@ -480,7 +490,7 @@ msgstr ""
#: order/templates/order/sales_order_notes.html:10 #: order/templates/order/sales_order_notes.html:10
#: order/templates/order/sales_order_ship.html:25 #: order/templates/order/sales_order_ship.html:25
#: part/templates/part/allocation.html:27 #: 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" msgid "Sales Order"
msgstr "" msgstr ""
@ -553,7 +563,7 @@ msgstr ""
#: build/templates/build/detail.html:61 #: build/templates/build/detail.html:61
#: order/templates/order/order_base.html:93 #: 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" msgid "Created"
msgstr "" msgstr ""
@ -569,7 +579,7 @@ msgstr ""
msgid "No" msgid "No"
msgstr "" msgstr ""
#: build/templates/build/detail.html:80 #: build/templates/build/detail.html:80 templates/js/build.html:70
msgid "Completed" msgid "Completed"
msgstr "" msgstr ""
@ -840,7 +850,7 @@ msgid "Part packaging"
msgstr "" msgstr ""
#: company/templates/company/company_base.html:7 #: 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" msgid "Company"
msgstr "" msgstr ""
@ -849,7 +859,7 @@ msgstr ""
msgid "Company Details" msgid "Company Details"
msgstr "" msgstr ""
#: company/templates/company/company_base.html:48 #: company/templates/company/company_base.html:48 templates/js/company.html:65
msgid "Website" msgid "Website"
msgstr "" msgstr ""
@ -870,22 +880,25 @@ msgid "Contact"
msgstr "" msgstr ""
#: company/templates/company/detail.html:16 #: 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 #: company/templates/company/supplier_part_detail.html:30
#: templates/js/company.html:48 templates/js/company.html:158
msgid "Manufacturer" msgid "Manufacturer"
msgstr "" msgstr ""
#: company/templates/company/detail.html:21 #: 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 #: company/templates/company/supplier_part_detail.html:21 order/models.py:111
#: order/templates/order/order_base.html:74 #: order/templates/order/order_base.html:74
#: order/templates/order/order_wizard/select_pos.html:30 #: 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" msgid "Supplier"
msgstr "" msgstr ""
#: company/templates/company/detail.html:26 order/models.py:275 #: 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" msgid "Customer"
msgstr "" msgstr ""
@ -995,39 +1008,45 @@ msgstr ""
#: company/templates/company/supplier_part_base.html:6 #: company/templates/company/supplier_part_base.html:6
#: company/templates/company/supplier_part_base.html:19 stock/models.py:344 #: 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" msgid "Supplier Part"
msgstr "" msgstr ""
#: company/templates/company/supplier_part_base.html:23 #: company/templates/company/supplier_part_base.html:23
msgid "Edit supplier part" #: part/templates/part/orders.html:14
msgid "Order part"
msgstr "" msgstr ""
#: company/templates/company/supplier_part_base.html:26 #: 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" msgid "Delete supplier part"
msgstr "" 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 #: company/templates/company/supplier_part_detail.html:11
msgid "Supplier Part Details" msgid "Supplier Part Details"
msgstr "" 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 #: company/templates/company/supplier_part_detail.html:14
msgid "Internal Part" msgid "Internal Part"
msgstr "" 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 #: company/templates/company/supplier_part_detail.html:22
msgid "SKU" msgid "SKU"
msgstr "" 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 #: company/templates/company/supplier_part_detail.html:31
#: templates/js/company.html:174
msgid "MPN" msgid "MPN"
msgstr "" 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 #: company/templates/company/supplier_part_detail.html:34
msgid "Note" msgid "Note"
msgstr "" msgstr ""
@ -1057,6 +1076,7 @@ msgid "New Price Break"
msgstr "" msgstr ""
#: company/templates/company/supplier_part_pricing.html:28 #: company/templates/company/supplier_part_pricing.html:28
#: templates/js/bom.html:213
msgid "Price" msgid "Price"
msgstr "" msgstr ""
@ -1086,7 +1106,8 @@ msgstr ""
#: company/templates/company/supplier_part_tabs.html:8 #: company/templates/company/supplier_part_tabs.html:8
#: company/templates/company/tabs.html:12 part/templates/part/tabs.html:17 #: 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" msgid "Stock"
msgstr "" msgstr ""
@ -1260,7 +1281,7 @@ msgstr ""
#: order/models.py:427 order/templates/order/order_base.html:9 #: order/models.py:427 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:23 #: 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" msgid "Purchase Order"
msgstr "" msgstr ""
@ -1315,7 +1336,7 @@ msgstr ""
msgid "Order Status" msgid "Order Status"
msgstr "" msgstr ""
#: order/templates/order/order_base.html:80 #: order/templates/order/order_base.html:80 templates/js/order.html:151
msgid "Supplier Reference" msgid "Supplier Reference"
msgstr "" msgstr ""
@ -1370,7 +1391,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr "" msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31 #: 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" msgid "Items"
msgstr "" msgstr ""
@ -1422,8 +1444,8 @@ msgid "Attachments"
msgstr "" msgstr ""
#: order/templates/order/purchase_order_detail.html:16 #: order/templates/order/purchase_order_detail.html:16
#: order/templates/order/sales_order_detail.html:17 order/views.py:1042 #: order/templates/order/sales_order_detail.html:17 order/views.py:1051
#: order/views.py:1156 #: order/views.py:1165
msgid "Add Line Item" msgid "Add Line Item"
msgstr "" msgstr ""
@ -1474,7 +1496,7 @@ msgstr ""
msgid "Sales Order Details" msgid "Sales Order Details"
msgstr "" 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" msgid "Customer Reference"
msgstr "" msgstr ""
@ -1645,39 +1667,39 @@ msgstr ""
msgid "No lines specified" msgid "No lines specified"
msgstr "" msgstr ""
#: order/views.py:1062 #: order/views.py:1071
msgid "Invalid Purchase Order" msgid "Invalid Purchase Order"
msgstr "" msgstr ""
#: order/views.py:1070 #: order/views.py:1079
msgid "Supplier must match for Part and Order" msgid "Supplier must match for Part and Order"
msgstr "" msgstr ""
#: order/views.py:1075 #: order/views.py:1084
msgid "Invalid SupplierPart selection" msgid "Invalid SupplierPart selection"
msgstr "" msgstr ""
#: order/views.py:1207 order/views.py:1225 #: order/views.py:1216 order/views.py:1234
msgid "Edit Line Item" msgid "Edit Line Item"
msgstr "" msgstr ""
#: order/views.py:1241 order/views.py:1253 #: order/views.py:1250 order/views.py:1262
msgid "Delete Line Item" msgid "Delete Line Item"
msgstr "" msgstr ""
#: order/views.py:1246 order/views.py:1258 #: order/views.py:1255 order/views.py:1267
msgid "Deleted line item" msgid "Deleted line item"
msgstr "" msgstr ""
#: order/views.py:1267 #: order/views.py:1276
msgid "Allocate Stock to Order" msgid "Allocate Stock to Order"
msgstr "" msgstr ""
#: order/views.py:1336 #: order/views.py:1345
msgid "Edit Allocation Quantity" msgid "Edit Allocation Quantity"
msgstr "" msgstr ""
#: order/views.py:1351 #: order/views.py:1360
msgid "Remove allocation" msgid "Remove allocation"
msgstr "" msgstr ""
@ -1923,7 +1945,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:52 #: stock/templates/stock/item_base.html:52
#: stock/templates/stock/item_base.html:183 #: 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" msgid "Stock Item"
msgstr "" msgstr ""
@ -2022,6 +2044,7 @@ msgid "Variant Of"
msgstr "" msgstr ""
#: part/templates/part/detail.html:57 part/templates/part/set_category.html:15 #: part/templates/part/detail.html:57 part/templates/part/set_category.html:15
#: templates/js/part.html:181
msgid "Category" msgid "Category"
msgstr "" msgstr ""
@ -2037,7 +2060,7 @@ msgstr ""
msgid "Minimum Stock" msgid "Minimum Stock"
msgstr "" msgstr ""
#: part/templates/part/detail.html:101 #: part/templates/part/detail.html:101 templates/js/order.html:243
msgid "Creation Date" msgid "Creation Date"
msgstr "" msgstr ""
@ -2121,10 +2144,6 @@ msgstr ""
msgid "Part Notes" msgid "Part Notes"
msgstr "" msgstr ""
#: part/templates/part/orders.html:14
msgid "Order part"
msgstr ""
#: part/templates/part/orders.html:14 #: part/templates/part/orders.html:14
msgid "Order Part" msgid "Order Part"
msgstr "" msgstr ""
@ -2177,7 +2196,8 @@ msgstr ""
msgid "This part is a variant of" msgid "This part is a variant of"
msgstr "" 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" msgid "Inactive"
msgstr "" msgstr ""
@ -2197,15 +2217,23 @@ msgstr ""
msgid "In Stock" msgid "In Stock"
msgstr "" msgstr ""
#: part/templates/part/part_base.html:114
msgid "Allocated to Build Orders"
msgstr ""
#: part/templates/part/part_base.html:121 #: 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" msgid "On Order"
msgstr "" msgstr ""
#: part/templates/part/part_base.html:136 #: part/templates/part/part_base.html:143
msgid "Can Build" msgid "Can Build"
msgstr "" msgstr ""
#: part/templates/part/part_base.html:142 #: part/templates/part/part_base.html:149
msgid "Underway" msgid "Underway"
msgstr "" msgstr ""
@ -2241,7 +2269,8 @@ msgstr ""
msgid "Create New Part" msgid "Create New Part"
msgstr "" 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" msgid "No Stock"
msgstr "" msgstr ""
@ -2949,6 +2978,106 @@ msgstr ""
msgid "Submit Bug Report" msgid "Submit Bug Report"
msgstr "" 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 #: templates/navbar.html:14
msgid "Buy" msgid "Buy"
msgstr "" msgstr ""
@ -3069,10 +3198,6 @@ msgstr ""
msgid "Stock available" msgid "Stock available"
msgstr "" msgstr ""
#: templates/table_filters.html:95
msgid "Low stock"
msgstr ""
#: templates/table_filters.html:107 #: templates/table_filters.html:107
msgid "Starred" msgid "Starred"
msgstr "" msgstr ""

View File

@ -102,18 +102,19 @@ InvenTree
<script type='text/javascript' src="{% static 'script/inventree/inventree.js' %}"></script> <script type='text/javascript' src="{% static 'script/inventree/inventree.js' %}"></script>
<script type='text/javascript' src="{% static 'script/inventree/api.js' %}"></script> <script type='text/javascript' src="{% static 'script/inventree/api.js' %}"></script>
<script type='text/javascript' src="{% static 'script/inventree/part.js' %}"></script>
<script type='text/javascript' src="{% static 'script/inventree/bom.js' %}"></script>
<script type='text/javascript' src="{% static 'script/inventree/filters.js' %}"></script> <script type='text/javascript' src="{% static 'script/inventree/filters.js' %}"></script>
<script type='text/javascript' src="{% static 'script/inventree/tables.js' %}"></script> <script type='text/javascript' src="{% static 'script/inventree/tables.js' %}"></script>
<script type='text/javascript' src="{% static 'script/inventree/build.js' %}"></script>
<script type='text/javascript' src="{% static 'script/inventree/stock.js' %}"></script>
<script type='text/javascript' src="{% static 'script/inventree/modals.js' %}"></script> <script type='text/javascript' src="{% static 'script/inventree/modals.js' %}"></script>
<script type='text/javascript' src="{% static 'script/inventree/order.js' %}"></script>
<script type='text/javascript' src="{% static 'script/inventree/company.js' %}"></script>
<script type='text/javascript' src="{% static 'script/inventree/notification.js' %}"></script> <script type='text/javascript' src="{% static 'script/inventree/notification.js' %}"></script>
<script type='text/javascript' src="{% static 'script/inventree/sidenav.js' %}"></script> <script type='text/javascript' src="{% static 'script/inventree/sidenav.js' %}"></script>
<script type='text/javascript' src="{% url 'bom.js' %}"></script>
<script type='text/javascript' src="{% url 'company.js' %}"></script>
<script type='text/javascript' src="{% url 'part.js' %}"></script>
<script type='text/javascript' src="{% url 'stock.js' %}"></script>
<script type='text/javascript' src="{% url 'build.js' %}"></script>
<script type='text/javascript' src="{% url 'order.js' %}"></script>
<script type='text/javascript' src="{% static 'fontawesome/js/solid.js' %}"></script> <script type='text/javascript' src="{% static 'fontawesome/js/solid.js' %}"></script>
<script type='text/javascript' src="{% static 'fontawesome/js/brands.js' %}"></script> <script type='text/javascript' src="{% static 'fontawesome/js/brands.js' %}"></script>
<script type='text/javascript' src="{% static 'fontawesome/js/fontawesome.js' %}"></script> <script type='text/javascript' src="{% static 'fontawesome/js/fontawesome.js' %}"></script>

View File

@ -1,3 +1,5 @@
{% load i18n %}
/* BOM management functions. /* BOM management functions.
* Requires follwing files to be loaded first: * Requires follwing files to be loaded first:
* - api.js * - api.js
@ -130,7 +132,7 @@ function loadBomTable(table, options) {
cols.push( cols.push(
{ {
field: 'sub_part_detail.full_name', field: 'sub_part_detail.full_name',
title: 'Part', title: '{% trans "Part" %}',
sortable: true, sortable: true,
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
var url = `/part/${row.sub_part}/`; var url = `/part/${row.sub_part}/`;
@ -138,7 +140,7 @@ function loadBomTable(table, options) {
// Display an extra icon if this part is an assembly // Display an extra icon if this part is an assembly
if (row.sub_part_detail.assembly) { if (row.sub_part_detail.assembly) {
var text = `<span title='Open subassembly' class='fas fa-stream label-right'></span>`; var text = `<span title='{% trans "Open subassembly" %}' class='fas fa-stream label-right'></span>`;
html += renderLink(text, `/part/${row.sub_part}/bom/`); html += renderLink(text, `/part/${row.sub_part}/bom/`);
} }
@ -152,14 +154,14 @@ function loadBomTable(table, options) {
cols.push( cols.push(
{ {
field: 'sub_part_detail.description', field: 'sub_part_detail.description',
title: 'Description', title: '{% trans "Description" %}',
} }
); );
// Part reference // Part reference
cols.push({ cols.push({
field: 'reference', field: 'reference',
title: 'Reference', title: '{% trans "Reference" %}',
searchable: true, searchable: true,
sortable: true, sortable: true,
}); });
@ -167,7 +169,7 @@ function loadBomTable(table, options) {
// Part quantity // Part quantity
cols.push({ cols.push({
field: 'quantity', field: 'quantity',
title: 'Quantity', title: '{% trans "Quantity" %}',
searchable: false, searchable: false,
sortable: true, sortable: true,
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
@ -189,7 +191,7 @@ function loadBomTable(table, options) {
cols.push( cols.push(
{ {
field: 'sub_part_detail.stock', field: 'sub_part_detail.stock',
title: 'Available', title: '{% trans "Available" %}',
searchable: false, searchable: false,
sortable: true, sortable: true,
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
@ -198,7 +200,7 @@ function loadBomTable(table, options) {
var text = value; var text = value;
if (value == null || value <= 0) { if (value == null || value <= 0) {
text = `<span class='label label-warning'>No Stock</span>`; text = `<span class='label label-warning'>{% trans "No Stock" %}</span>`;
} }
return renderLink(text, url); return renderLink(text, url);
@ -208,13 +210,13 @@ function loadBomTable(table, options) {
cols.push( cols.push(
{ {
field: 'price_range', field: 'price_range',
title: 'Price', title: '{% trans "Price" %}',
sortable: true, sortable: true,
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
if (value) { if (value) {
return value; return value;
} else { } else {
return "<span class='warning-msg'>No pricing available</span>"; return "<span class='warning-msg'>{% trans "No pricing available" %}</span>";
} }
} }
}); });
@ -224,7 +226,7 @@ function loadBomTable(table, options) {
cols.push( cols.push(
{ {
field: 'note', field: 'note',
title: 'Notes', title: '{% trans "Notes" %}',
searchable: true, searchable: true,
sortable: true, sortable: true,
} }
@ -234,11 +236,11 @@ function loadBomTable(table, options) {
cols.push({ cols.push({
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
var bValidate = "<button title='Validate BOM Item' class='bom-validate-button btn btn-default btn-glyph' type='button' pk='" + row.pk + "'><span class='fas fa-check-circle icon-blue'/></button>"; var bValidate = "<button title='{% trans "Validate BOM Item" %}' class='bom-validate-button btn btn-default btn-glyph' type='button' pk='" + row.pk + "'><span class='fas fa-check-circle icon-blue'/></button>";
var bValid = "<span title='This line has been validated' class='fas fa-check-double icon-green'/>"; var bValid = "<span title='{% trans "This line has been validated" %}' class='fas fa-check-double icon-green'/>";
var bEdit = "<button title='Edit BOM Item' class='bom-edit-button btn btn-default btn-glyph' type='button' url='/part/bom/" + row.pk + "/edit'><span class='fas fa-edit'/></button>"; var bEdit = "<button title='{% trans "Edit BOM Item" %}' class='bom-edit-button btn btn-default btn-glyph' type='button' url='/part/bom/" + row.pk + "/edit'><span class='fas fa-edit'/></button>";
var bDelt = "<button title='Delete BOM Item' class='bom-delete-button btn btn-default btn-glyph' type='button' url='/part/bom/" + row.pk + "/delete'><span class='fas fa-trash-alt icon-red'/></button>"; var bDelt = "<button title='{% trans "Delete BOM Item" %}' class='bom-delete-button btn btn-default btn-glyph' type='button' url='/part/bom/" + row.pk + "/delete'><span class='fas fa-trash-alt icon-red'/></button>";
var html = "<div class='btn-group' role='group'>"; var html = "<div class='btn-group' role='group'>";
@ -283,7 +285,7 @@ function loadBomTable(table, options) {
return {classes: 'rowinvalid'}; return {classes: 'rowinvalid'};
} }
}, },
formatNoMatches: function() { return "No BOM items found"; }, formatNoMatches: function() { return "{% trans "No BOM items found" %}"; },
clickToSelect: true, clickToSelect: true,
queryParams: function(p) { queryParams: function(p) {
return params; return params;

View File

@ -1,3 +1,5 @@
{% load i18n %}
function loadBuildTable(table, options) { function loadBuildTable(table, options) {
// Display a table of Build objects // Display a table of Build objects
@ -14,7 +16,7 @@ function loadBuildTable(table, options) {
table.inventreeTable({ table.inventreeTable({
method: 'get', method: 'get',
formatNoMatches: function() { formatNoMatches: function() {
return "No builds matching query"; return "{% trans "No builds matching query" %}";
}, },
url: options.url, url: options.url,
queryParams: filters, queryParams: filters,
@ -28,7 +30,7 @@ function loadBuildTable(table, options) {
}, },
{ {
field: 'title', field: 'title',
title: 'Build', title: '{% trans "Build" %}',
sortable: true, sortable: true,
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
return renderLink(value, '/build/' + row.pk + '/'); return renderLink(value, '/build/' + row.pk + '/');
@ -36,7 +38,7 @@ function loadBuildTable(table, options) {
}, },
{ {
field: 'part', field: 'part',
title: 'Part', title: '{% trans "Part" %}',
sortable: true, sortable: true,
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
@ -47,12 +49,12 @@ function loadBuildTable(table, options) {
}, },
{ {
field: 'quantity', field: 'quantity',
title: 'Quantity', title: '{% trans "Quantity" %}',
sortable: true, sortable: true,
}, },
{ {
field: 'status', field: 'status',
title: 'Status', title: '{% trans "Status" %}',
sortable: true, sortable: true,
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
return buildStatusDisplay(value); return buildStatusDisplay(value);
@ -60,12 +62,12 @@ function loadBuildTable(table, options) {
}, },
{ {
field: 'creation_date', field: 'creation_date',
title: 'Created', title: '{% trans "Created" %}',
sortable: true, sortable: true,
}, },
{ {
field: 'completion_date', field: 'completion_date',
title: 'Completed', title: '{% trans "Completed" %}',
sortable: true, sortable: true,
}, },
], ],
@ -97,30 +99,30 @@ function loadAllocationTable(table, part_id, part, url, required, button) {
table.bootstrapTable({ table.bootstrapTable({
url: url, url: url,
sortable: false, sortable: false,
formatNoMatches: function() { return 'No parts allocated for ' + part; }, formatNoMatches: function() { return '{% trans "No parts allocated for" %} ' + part; },
columns: [ columns: [
{ {
field: 'stock_item_detail', field: 'stock_item_detail',
title: 'Stock Item', title: '{% trans "Stock Item" %}',
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
return '' + parseFloat(value.quantity) + ' x ' + value.part_name + ' @ ' + value.location_name; return '' + parseFloat(value.quantity) + ' x ' + value.part_name + ' @ ' + value.location_name;
} }
}, },
{ {
field: 'stock_item_detail.quantity', field: 'stock_item_detail.quantity',
title: 'Available', title: '{% trans "Available" %}',
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
return parseFloat(value); return parseFloat(value);
} }
}, },
{ {
field: 'quantity', field: 'quantity',
title: 'Allocated', title: '{% trans "Allocated" %}',
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
var html = parseFloat(value); var html = parseFloat(value);
var bEdit = "<button class='btn item-edit-button btn-sm' type='button' title='Edit stock allocation' url='/build/item/" + row.pk + "/edit/'><span class='fas fa-edit'></span></button>"; var bEdit = "<button class='btn item-edit-button btn-sm' type='button' title='{% trans "Edit stock allocation" %}' url='/build/item/" + row.pk + "/edit/'><span class='fas fa-edit'></span></button>";
var bDel = "<button class='btn item-del-button btn-sm' type='button' title='Delete stock allocation' url='/build/item/" + row.pk + "/delete/'><span class='fas fa-trash-alt icon-red'></span></button>"; var bDel = "<button class='btn item-del-button btn-sm' type='button' title='{% trans "Delete stock allocation" %}' url='/build/item/" + row.pk + "/delete/'><span class='fas fa-trash-alt icon-red'></span></button>";
html += "<div class='btn-group' style='float: right;'>" + bEdit + bDel + "</div>"; html += "<div class='btn-group' style='float: right;'>" + bEdit + bDel + "</div>";

View File

@ -1,3 +1,4 @@
{% load i18n %}
function loadCompanyTable(table, url, options={}) { function loadCompanyTable(table, url, options={}) {
/* /*
@ -25,7 +26,7 @@ function loadCompanyTable(table, url, options={}) {
method: 'get', method: 'get',
queryParams: filters, queryParams: filters,
groupBy: false, groupBy: false,
formatNoMatches: function() { return "No company information found"; }, formatNoMatches: function() { return "{% trans "No company information found" %}"; },
columns: [ columns: [
{ {
field: 'pk', field: 'pk',
@ -34,21 +35,21 @@ function loadCompanyTable(table, url, options={}) {
}, },
{ {
field: 'name', field: 'name',
title: 'Company', title: '{% trans "Company" %}',
sortable: true, sortable: true,
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
var html = imageHoverIcon(row.image) + renderLink(value, row.url); var html = imageHoverIcon(row.image) + renderLink(value, row.url);
if (row.is_customer) { if (row.is_customer) {
html += `<span title='Customer' class='fas fa-user-tie label-right'></span>`; html += `<span title='{% trans "Customer" %}' class='fas fa-user-tie label-right'></span>`;
} }
if (row.is_manufacturer) { if (row.is_manufacturer) {
html += `<span title='Manufacturer' class='fas fa-industry label-right'></span>`; html += `<span title='{% trans "Manufacturer" %}' class='fas fa-industry label-right'></span>`;
} }
if (row.is_supplier) { if (row.is_supplier) {
html += `<span title='Supplier' class='fas fa-building label-right'></span>`; html += `<span title='{% trans "Supplier" %}' class='fas fa-building label-right'></span>`;
} }
return html; return html;
@ -56,12 +57,12 @@ function loadCompanyTable(table, url, options={}) {
}, },
{ {
field: 'description', field: 'description',
title: 'Description', title: '{% trans "Description" %}',
sortable: true, sortable: true,
}, },
{ {
field: 'website', field: 'website',
title: 'Website', title: '{% trans "Website" %}',
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
if (value) { if (value) {
return renderLink(value, value); return renderLink(value, value);
@ -97,7 +98,7 @@ function loadSupplierPartTable(table, url, options) {
method: 'get', method: 'get',
queryParams: filters, queryParams: filters,
groupBy: false, groupBy: false,
formatNoMatches: function() { return "No supplier parts found"; }, formatNoMatches: function() { return "{% trans "No supplier parts found" %}"; },
columns: [ columns: [
{ {
checkbox: true, checkbox: true,
@ -105,7 +106,7 @@ function loadSupplierPartTable(table, url, options) {
{ {
sortable: true, sortable: true,
field: 'part_detail.full_name', field: 'part_detail.full_name',
title: 'Part', title: '{% trans "Part" %}',
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
var url = `/part/${row.part}/`; var url = `/part/${row.part}/`;
@ -113,15 +114,15 @@ function loadSupplierPartTable(table, url, options) {
var html = imageHoverIcon(row.part_detail.thumbnail) + renderLink(value, url); var html = imageHoverIcon(row.part_detail.thumbnail) + renderLink(value, url);
if (row.part_detail.is_template) { if (row.part_detail.is_template) {
html += `<span class='fas fa-clone label-right' title='Template part'></span>`; html += `<span class='fas fa-clone label-right' title='{% trans "Template part" %}'></span>`;
} }
if (row.part_detail.assembly) { if (row.part_detail.assembly) {
html += `<span class='fas fa-tools label-right' title='Assembled part'></span>`; html += `<span class='fas fa-tools label-right' title='{% trans "Assembled part" %}'></span>`;
} }
if (!row.part_detail.active) { if (!row.part_detail.active) {
html += `<span class='label label-warning label-right'>INACTIVE</span>`; html += `<span class='label label-warning label-right'>{% trans "Inactive" %}</span>`;
} }
return html; return html;
@ -130,7 +131,7 @@ function loadSupplierPartTable(table, url, options) {
{ {
sortable: true, sortable: true,
field: 'supplier', field: 'supplier',
title: "Supplier", title: "{% trans "Supplier" %}",
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
if (value) { if (value) {
var name = row.supplier_detail.name; var name = row.supplier_detail.name;
@ -146,7 +147,7 @@ function loadSupplierPartTable(table, url, options) {
{ {
sortable: true, sortable: true,
field: 'SKU', field: 'SKU',
title: "Supplier Part", title: "{% trans "Supplier Part" %}",
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
return renderLink(value, `/supplier-part/${row.pk}/`); return renderLink(value, `/supplier-part/${row.pk}/`);
} }
@ -154,7 +155,7 @@ function loadSupplierPartTable(table, url, options) {
{ {
sortable: true, sortable: true,
field: 'manufacturer', field: 'manufacturer',
title: 'Manufacturer', title: '{% trans "Manufacturer" %}',
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
if (value) { if (value) {
var name = row.manufacturer_detail.name; var name = row.manufacturer_detail.name;
@ -170,11 +171,11 @@ function loadSupplierPartTable(table, url, options) {
{ {
sortable: true, sortable: true,
field: 'MPN', field: 'MPN',
title: 'MPN', title: '{% trans "MPN" %}',
}, },
{ {
field: 'link', field: 'link',
title: 'Link', title: '{% trans "Link" %}',
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
if (value) { if (value) {
return renderLink(value, value); return renderLink(value, value);

View File

@ -1,3 +1,5 @@
{% load i18n %}
function removeOrderRowFromOrderWizard(e) { function removeOrderRowFromOrderWizard(e) {
/* Remove a part selection from an order form. */ /* Remove a part selection from an order form. */
@ -121,7 +123,7 @@ function loadPurchaseOrderTable(table, options) {
queryParams: filters, queryParams: filters,
groupBy: false, groupBy: false,
original: options.params, original: options.params,
formatNoMatches: function() { return "No purchase orders found"; }, formatNoMatches: function() { return "{% trans "No purchase orders found" %}"; },
columns: [ columns: [
{ {
field: 'pk', field: 'pk',
@ -131,7 +133,7 @@ function loadPurchaseOrderTable(table, options) {
{ {
sortable: true, sortable: true,
field: 'reference', field: 'reference',
title: 'Purchase Order', title: '{% trans "Purchase Order" %}',
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
return renderLink(value, `/order/purchase-order/${row.pk}/`); return renderLink(value, `/order/purchase-order/${row.pk}/`);
} }
@ -139,25 +141,25 @@ function loadPurchaseOrderTable(table, options) {
{ {
sortable: true, sortable: true,
field: 'supplier_detail', field: 'supplier_detail',
title: 'Supplier', title: '{% trans "Supplier" %}',
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
return imageHoverIcon(row.supplier_detail.image) + renderLink(row.supplier_detail.name, `/company/${row.supplier}/purchase-orders/`); return imageHoverIcon(row.supplier_detail.image) + renderLink(row.supplier_detail.name, `/company/${row.supplier}/purchase-orders/`);
} }
}, },
{ {
field: 'supplier_reference', field: 'supplier_reference',
title: 'Supplier Reference', title: '{% trans "Supplier Reference" %}',
sortable: true, sortable: true,
}, },
{ {
sortable: true, sortable: true,
field: 'description', field: 'description',
title: 'Description', title: '{% trans "Description" %}',
}, },
{ {
sortable: true, sortable: true,
field: 'status', field: 'status',
title: 'Status', title: '{% trans "Status" %}',
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
return purchaseOrderStatusDisplay(row.status, row.status_text); return purchaseOrderStatusDisplay(row.status, row.status_text);
} }
@ -165,12 +167,12 @@ function loadPurchaseOrderTable(table, options) {
{ {
sortable: true, sortable: true,
field: 'creation_date', field: 'creation_date',
title: 'Date', title: '{% trans "Date" %}',
}, },
{ {
sortable: true, sortable: true,
field: 'line_items', field: 'line_items',
title: 'Items' title: '{% trans "Items" %}'
}, },
], ],
}); });
@ -194,7 +196,7 @@ function loadSalesOrderTable(table, options) {
queryParams: filters, queryParams: filters,
groupBy: false, groupBy: false,
original: options.params, original: options.params,
formatNoMatches: function() { return "No sales orders found"; }, formatNoMatches: function() { return "{% trans "No sales orders found" %}"; },
columns: [ columns: [
{ {
field: 'pk', field: 'pk',
@ -204,7 +206,7 @@ function loadSalesOrderTable(table, options) {
{ {
sortable: true, sortable: true,
field: 'reference', field: 'reference',
title: 'Sales Order', title: '{% trans "Sales Order" %}',
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
return renderLink(value, `/order/sales-order/${row.pk}/`); return renderLink(value, `/order/sales-order/${row.pk}/`);
}, },
@ -212,25 +214,25 @@ function loadSalesOrderTable(table, options) {
{ {
sortable: true, sortable: true,
field: 'customer_detail', field: 'customer_detail',
title: 'Customer', title: '{% trans "Customer" %}',
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
return imageHoverIcon(row.customer_detail.image) + renderLink(row.customer_detail.name, `/company/${row.customer}/sales-orders/`); return imageHoverIcon(row.customer_detail.image) + renderLink(row.customer_detail.name, `/company/${row.customer}/sales-orders/`);
} }
}, },
{ {
field: 'customer_reference', field: 'customer_reference',
title: 'Customer Reference', title: '{% trans "Customer Reference" %}',
sotrable: true, sotrable: true,
}, },
{ {
sortable: true, sortable: true,
field: 'description', field: 'description',
title: 'Description', title: '{% trans "Description" %}',
}, },
{ {
sortable: true, sortable: true,
field: 'status', field: 'status',
title: 'Status', title: '{% trans "Status" %}',
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
return salesOrderStatusDisplay(row.status, row.status_text); return salesOrderStatusDisplay(row.status, row.status_text);
} }
@ -238,17 +240,17 @@ function loadSalesOrderTable(table, options) {
{ {
sortable: true, sortable: true,
field: 'creation_date', field: 'creation_date',
title: 'Creation Date', title: '{% trans "Creation Date" %}',
}, },
{ {
sortable: true, sortable: true,
field: 'shipment_date', field: 'shipment_date',
title: "Shipment Date", title: "{% trans "Shipment Date" %}",
}, },
{ {
sortable: true, sortable: true,
field: 'line_items', field: 'line_items',
title: 'Items' title: '{% trans "Items" %}'
}, },
], ],
}); });

View File

@ -1,23 +1,9 @@
{% load i18n %}
/* Part API functions /* Part API functions
* Requires api.js to be loaded first * 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) { function toggleStar(options) {
/* Toggle the 'starred' status of a part. /* Toggle the 'starred' status of a part.
* Performs AJAX queries and updates the display on the button. * Performs AJAX queries and updates the display on the button.
@ -115,14 +101,14 @@ function loadPartTable(table, url, options={}) {
if (options.checkbox) { if (options.checkbox) {
columns.push({ columns.push({
checkbox: true, checkbox: true,
title: 'Select', title: '{% trans 'Select' %}',
searchable: false, searchable: false,
}); });
} }
columns.push({ columns.push({
field: 'name', field: 'name',
title: 'Part', title: '{% trans 'Part' %}',
sortable: true, sortable: true,
formatter: function(value, row, index, field) { 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 + '/'); var display = imageHoverIcon(row.thumbnail) + renderLink(name, '/part/' + row.pk + '/');
if (row.is_template) { if (row.is_template) {
display += `<span class='fas fa-clone label-right' title='Template part'></span>`; display += `<span class='fas fa-clone label-right' title='{% trans "Template part" %}'></span>`;
} }
if (row.assembly) { if (row.assembly) {
display += `<span class='fas fa-tools label-right' title='Assembled part'></span>`; display += `<span class='fas fa-tools label-right' title='{% trans "Assembled part" %}'></span>`;
} }
if (row.starred) { if (row.starred) {
display += `<span class='fas fa-star label-right' title='Starred part'></span>`; display += `<span class='fas fa-star label-right' title='{% trans "Starred part" %}'></span>`;
} }
if (row.salable) { if (row.salable) {
display += `<span class='fas fa-dollar-sign label-right' title='Salable part'></span>`; display += `<span class='fas fa-dollar-sign label-right' title='{% trans "Salable part" %}'></span>`;
} }
/* /*
@ -169,7 +155,7 @@ function loadPartTable(table, url, options={}) {
*/ */
if (!row.active) { if (!row.active) {
display += `<span class='label label-warning label-right'>INACTIVE</span>`; display += `<span class='label label-warning label-right'>{% trans "Inactive" %}</span>`;
} }
return display; return display;
} }
@ -178,7 +164,7 @@ function loadPartTable(table, url, options={}) {
columns.push({ columns.push({
sortable: true, sortable: true,
field: 'description', field: 'description',
title: 'Description', title: '{% trans 'Description' %}',
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
if (row.is_template) { if (row.is_template) {
@ -192,20 +178,20 @@ function loadPartTable(table, url, options={}) {
columns.push({ columns.push({
sortable: true, sortable: true,
field: 'category_detail', field: 'category_detail',
title: 'Category', title: '{% trans 'Category' %}',
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
if (row.category) { if (row.category) {
return renderLink(value.pathstring, "/part/category/" + row.category + "/"); return renderLink(value.pathstring, "/part/category/" + row.category + "/");
} }
else { else {
return 'No category'; return '{% trans "No category" %}';
} }
} }
}); });
columns.push({ columns.push({
field: 'in_stock', field: 'in_stock',
title: 'Stock', title: '{% trans "Stock" %}',
searchable: false, searchable: false,
sortable: true, sortable: true,
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
@ -216,20 +202,20 @@ function loadPartTable(table, url, options={}) {
// Is stock "low" (below the 'minimum_stock' quantity)? // Is stock "low" (below the 'minimum_stock' quantity)?
if (row.minimum_stock && row.minimum_stock > value) { if (row.minimum_stock && row.minimum_stock > value) {
value += "<span class='label label-right label-warning'>Low stock</span>"; value += "<span class='label label-right label-warning'>{% trans "Low stock" %}</span>";
} }
} else if (row.on_order) { } else if (row.on_order) {
// There is no stock available, but stock is on order // There is no stock available, but stock is on order
value = "0<span class='label label-right label-primary'>On Order : " + row.on_order + "</span>"; value = "0<span class='label label-right label-primary'>{% trans "On Order" %}: " + row.on_order + "</span>";
link = "orders"; link = "orders";
} else if (row.building) { } else if (row.building) {
// There is no stock available, but stock is being built // There is no stock available, but stock is being built
value = "0<span class='label label-right label-info'>Building : " + row.building + "</span>"; value = "0<span class='label label-right label-info'>{% trans "Building" %}: " + row.building + "</span>";
link = "builds"; link = "builds";
} else { } else {
// There is no stock available // There is no stock available
value = "0<span class='label label-right label-danger'>No Stock</span>"; value = "0<span class='label label-right label-danger'>{% trans "No Stock" %}</span>";
} }
return renderLink(value, '/part/' + row.pk + "/" + link + "/"); return renderLink(value, '/part/' + row.pk + "/" + link + "/");
@ -243,7 +229,7 @@ function loadPartTable(table, url, options={}) {
queryParams: filters, queryParams: filters,
groupBy: false, groupBy: false,
original: params, original: params,
formatNoMatches: function() { return "No parts found"; }, formatNoMatches: function() { return "{% trans "No parts found" %}"; },
columns: columns, columns: columns,
}); });

View File

@ -1,20 +1,9 @@
{% load i18n %}
/* Stock API functions /* Stock API functions
* Requires api.js to be loaded first * 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 /* Functions for interacting with stock management forms
*/ */
@ -29,7 +18,6 @@ function removeStockRow(e) {
$('#' + row).remove(); $('#' + row).remove();
} }
function loadStockTable(table, options) { function loadStockTable(table, options) {
/* Load data into a stock table with adjustable options. /* Load data into a stock table with adjustable options.
* Fetches data (via AJAX) and loads into a bootstrap table. * Fetches data (via AJAX) and loads into a bootstrap table.
@ -75,7 +63,7 @@ function loadStockTable(table, options) {
table.inventreeTable({ table.inventreeTable({
method: 'get', method: 'get',
formatNoMatches: function() { formatNoMatches: function() {
return 'No stock items matching query'; return '{% trans "No stock items matching query" %}';
}, },
url: options.url, url: options.url,
queryParams: filters, queryParams: filters,
@ -205,7 +193,7 @@ function loadStockTable(table, options) {
columns: [ columns: [
{ {
checkbox: true, checkbox: true,
title: 'Select', title: '{% trans "Select" %}',
searchable: false, searchable: false,
}, },
{ {
@ -215,7 +203,7 @@ function loadStockTable(table, options) {
}, },
{ {
field: 'part_name', field: 'part_name',
title: 'Part', title: '{% trans "Part" %}',
sortable: true, sortable: true,
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
@ -236,7 +224,7 @@ function loadStockTable(table, options) {
}, },
{ {
field: 'part_description', field: 'part_description',
title: 'Description', title: '{% trans "Description" %}',
sortable: true, sortable: true,
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
return row.part_detail.description; return row.part_detail.description;
@ -244,7 +232,7 @@ function loadStockTable(table, options) {
}, },
{ {
field: 'quantity', field: 'quantity',
title: 'Stock', title: '{% trans "Stock" %}',
sortable: true, sortable: true,
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
@ -260,12 +248,12 @@ function loadStockTable(table, options) {
var html = renderLink(val, `/stock/item/${row.pk}/`); var html = renderLink(val, `/stock/item/${row.pk}/`);
if (row.allocated) { if (row.allocated) {
html += `<span class='fas fa-bookmark label-right' title='StockItem has been allocated'></span>`; html += `<span class='fas fa-bookmark label-right' title='{% trans "StockItem has been allocated" %}'></span>`;
} }
// 70 = "LOST" // 70 = "LOST"
if (row.status == 70) { if (row.status == 70) {
html += `<span class='fas fa-question-circle label-right' title='StockItem is lost'></span>`; html += `<span class='fas fa-question-circle label-right' title='{% trans "StockItem is lost" %}'></span>`;
} }
return html; return html;
@ -273,7 +261,7 @@ function loadStockTable(table, options) {
}, },
{ {
field: 'status', field: 'status',
title: 'Status', title: '{% trans "Status" %}',
sortable: 'true', sortable: 'true',
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
return stockStatusDisplay(value); return stockStatusDisplay(value);
@ -281,25 +269,25 @@ function loadStockTable(table, options) {
}, },
{ {
field: 'batch', field: 'batch',
title: 'Batch', title: '{% trans "Batch" %}',
sortable: true, sortable: true,
}, },
{ {
field: 'location_detail.pathstring', field: 'location_detail.pathstring',
title: 'Location', title: '{% trans "Location" %}',
sortable: true, sortable: true,
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
if (value) { if (value) {
return renderLink(value, '/stock/location/' + row.location + '/'); return renderLink(value, '/stock/location/' + row.location + '/');
} }
else { else {
return '<i>No stock location set</i>'; return '<i>{% trans "No stock location set" %}</i>';
} }
} }
}, },
{ {
field: 'notes', field: 'notes',
title: 'Notes', title: '{% trans "Notes" %}',
} }
], ],
}); });
@ -389,7 +377,6 @@ function loadStockTable(table, options) {
}); });
} }
function loadStockTrackingTable(table, options) { function loadStockTrackingTable(table, options) {
var cols = [ var cols = [
@ -399,7 +386,7 @@ function loadStockTrackingTable(table, options) {
}, },
{ {
field: 'date', field: 'date',
title: 'Date', title: '{% trans "Date" %}',
sortable: true, sortable: true,
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
var m = moment(value); var m = moment(value);
@ -417,7 +404,7 @@ function loadStockTrackingTable(table, options) {
if (options.partColumn) { if (options.partColumn) {
cols.push({ cols.push({
field: 'item', field: 'item',
title: 'Stock Item', title: '{% trans "Stock Item" %}',
sortable: true, sortable: true,
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
return renderLink(value.part_name, value.url); return renderLink(value.part_name, value.url);
@ -428,7 +415,7 @@ function loadStockTrackingTable(table, options) {
// Stock transaction description // Stock transaction description
cols.push({ cols.push({
field: 'title', field: 'title',
title: 'Description', title: '{% trans "Description" %}',
sortable: true, sortable: true,
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
var html = "<b>" + value + "</b>"; var html = "<b>" + value + "</b>";
@ -447,7 +434,7 @@ function loadStockTrackingTable(table, options) {
cols.push({ cols.push({
field: 'quantity', field: 'quantity',
title: 'Quantity', title: '{% trans "Quantity" %}',
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
return parseFloat(value); return parseFloat(value);
}, },
@ -456,7 +443,7 @@ function loadStockTrackingTable(table, options) {
cols.push({ cols.push({
sortable: true, sortable: true,
field: 'user', field: 'user',
title: 'User', title: '{% trans "User" %}',
formatter: function(value, row, index, field) { formatter: function(value, row, index, field) {
if (value) if (value)
{ {
@ -465,7 +452,7 @@ function loadStockTrackingTable(table, options) {
} }
else else
{ {
return "No user information"; return "{% trans "No user information" %}";
} }
} }
}); });