2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-05-04 14:28:48 +00:00

Translation layer for bom.js

This commit is contained in:
Oliver Walters 2020-05-02 22:07:24 +10:00
parent 6c3dc2a25d
commit 853ba825c0
3 changed files with 19 additions and 16 deletions

View File

@ -80,6 +80,7 @@ dynamic_javascript_urls = [
url(r'^build.js', DynamicJsView.as_view(template_name='js/build.js'), name='build.js'), url(r'^build.js', DynamicJsView.as_view(template_name='js/build.js'), name='build.js'),
url(r'^order.js', DynamicJsView.as_view(template_name='js/order.js'), name='order.js'), url(r'^order.js', DynamicJsView.as_view(template_name='js/order.js'), name='order.js'),
url(r'^company.js', DynamicJsView.as_view(template_name='js/company.js'), name='company.js'), url(r'^company.js', DynamicJsView.as_view(template_name='js/company.js'), name='company.js'),
url(r'^bom.js', DynamicJsView.as_view(template_name='js/bom.js'), name='bom.js'),
] ]
urlpatterns = [ urlpatterns = [

View File

@ -105,10 +105,10 @@ InvenTree
<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/modals.js' %}"></script> <script type='text/javascript' src="{% static 'script/inventree/modals.js' %}"></script>
<script type='text/javascript' src="{% static 'script/inventree/bom.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 'company.js' %}"></script>
<script type='text/javascript' src="{% url 'part.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 'stock.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;