diff --git a/InvenTree/InvenTree/static/css/inventree.css b/InvenTree/InvenTree/static/css/inventree.css
index f95f81ec1e..784828969e 100644
--- a/InvenTree/InvenTree/static/css/inventree.css
+++ b/InvenTree/InvenTree/static/css/inventree.css
@@ -325,6 +325,12 @@
padding-bottom: 2px;
}
+.btn-large {
+ font-size: 150%;
+ align-content: center;
+ vertical-align: middle;
+}
+
.badge {
float: right;
background-color: #777;
diff --git a/InvenTree/order/templates/order/order_base.html b/InvenTree/order/templates/order/order_base.html
index 64026f2c5f..3840457a5e 100644
--- a/InvenTree/order/templates/order/order_base.html
+++ b/InvenTree/order/templates/order/order_base.html
@@ -27,27 +27,27 @@ src="{% static 'img/blank_image.png' %}"
-
diff --git a/InvenTree/order/templates/order/sales_order_base.html b/InvenTree/order/templates/order/sales_order_base.html
index a3b38b1f90..7ada7751d0 100644
--- a/InvenTree/order/templates/order/sales_order_base.html
+++ b/InvenTree/order/templates/order/sales_order_base.html
@@ -34,8 +34,8 @@ src="{% static 'img/blank_image.png' %}"
{{ order.description }}
diff --git a/InvenTree/order/templates/order/sales_order_detail.html b/InvenTree/order/templates/order/sales_order_detail.html
index 801669c1d7..272a99af4e 100644
--- a/InvenTree/order/templates/order/sales_order_detail.html
+++ b/InvenTree/order/templates/order/sales_order_detail.html
@@ -55,7 +55,11 @@ $("#so-lines-table").inventreeTable({
element.html(html);
- $(`#allocation-table-${row.pk}`).bootstrapTable({
+ var lineItem = row;
+
+ var table = $(`#allocation-table-${row.pk}`);
+
+ table.bootstrapTable({
data: row.allocations,
showHeader: false,
columns: [
@@ -64,7 +68,7 @@ $("#so-lines-table").inventreeTable({
field: 'allocated',
title: 'Quantity',
formatter: function(value, row, index, field) {
- return renderLink(value, `/stock/item/${row.pk}/`);
+ return renderLink(value, `/stock/item/${row.item}/`);
},
},
{
@@ -78,11 +82,37 @@ $("#so-lines-table").inventreeTable({
field: 'buttons',
title: 'Actions',
formatter: function(value, row, index, field) {
- return '';
+
+ var html = "
";
+ var pk = row.pk;
+
+ html += makeIconButton('fa-edit', 'button-allocation-edit', pk, '{% trans "Edit stock allocation" %}');
+ html += makeIconButton('fa-trash-alt', 'button-allocation-delete', pk, '{% trans "Delete stock allocation" %}');
+
+ html += "
";
+
+ return html;
},
},
],
});
+
+ table.find(".button-allocation-edit").click(function() {
+
+ var pk = $(this).attr('pk');
+
+ launchModalForm(`/order/sales-order/allocation/${pk}/edit/`, {
+ success: reloadTable,
+ });
+ });
+
+ table.find(".button-allocation-delete").click(function() {
+ var pk = $(this).attr('pk');
+
+ launchModalForm(`/order/sales-order/allocation/${pk}/delete/`, {
+ success: reloadTable,
+ });
+ });
},
columns: [
{
@@ -202,7 +232,6 @@ $("#so-lines-table").on('load-success.bs.table', function() {
line: pk,
},
});
-
});
table.find(".button-build").click(function() {
diff --git a/InvenTree/order/urls.py b/InvenTree/order/urls.py
index b61dd445aa..f390c23f54 100644
--- a/InvenTree/order/urls.py
+++ b/InvenTree/order/urls.py
@@ -98,6 +98,7 @@ sales_order_urls = [
url(r'^new/', views.SalesOrderAllocationCreate.as_view(), name='so-allocation-create'),
url(r'(?P
\d+)/', include([
url(r'^edit/', views.SalesOrderAllocationEdit.as_view(), name='so-allocation-edit'),
+ url(r'^delete/', views.SalesOrderAllocationDelete.as_view(), name='so-allocation-delete'),
])),
])),
diff --git a/InvenTree/order/views.py b/InvenTree/order/views.py
index 549bf1f496..1b91f6e9b4 100644
--- a/InvenTree/order/views.py
+++ b/InvenTree/order/views.py
@@ -1248,6 +1248,7 @@ class SalesOrderAllocationCreate(AjaxCreateView):
class SalesOrderAllocationEdit(AjaxUpdateView):
model = SalesOrderAllocation
+ form_class = order_forms.EditSalesOrderAllocationForm
ajax_form_title = _('Edit Allocation Quantity')
def get_form(self):
@@ -1258,3 +1259,9 @@ class SalesOrderAllocationEdit(AjaxUpdateView):
form.fields.pop('line')
return form
+
+
+class SalesOrderAllocationDelete(AjaxDeleteView):
+
+ model = SalesOrderAllocation
+ ajax_form_title = _("Remove allocation")