Merge pull request #1997 from SchrodingersGat/new-po-from-order

Refactor buttons in "order parts" wizard
This commit is contained in:
Oliver 2021-08-23 00:49:27 +10:00 committed by GitHub
commit b6df623554
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -78,7 +78,13 @@ function createPurchaseOrder(options={}) {
} }
}, },
onSuccess: function(data) { onSuccess: function(data) {
location.href = `/order/purchase-order/${data.pk}/`;
if (options.onSuccess) {
options.onSuccess(data);
} else {
// Default action is to redirect browser to the new PO
location.href = `/order/purchase-order/${data.pk}/`;
}
}, },
title: '{% trans "Create Purchase Order" %}', title: '{% trans "Create Purchase Order" %}',
}); });
@ -109,27 +115,47 @@ function newSupplierPartFromOrderWizard(e) {
var part = $(src).attr('part'); var part = $(src).attr('part');
console.log('part: ' + part);
if (!part) { if (!part) {
part = $(src).closest('button').attr('part'); part = $(src).closest('button').attr('part');
console.log('parent: ' + part); console.log('parent: ' + part);
} }
launchModalForm("/supplier-part/new/", { createSupplierPart({
modal: '#modal-form-secondary', part: part,
data: { onSuccess: function(data) {
part: part,
}, // TODO: 2021-08-23 - This whole form wizard needs to be refactored.
success: function(response) { // In the future, use the API forms functionality to add the new item
/* A new supplier part has been created! */ // For now, this hack will have to do...
var dropdown = '#id_supplier_part_' + part; var dropdown = `#id_supplier_part_${part}`;
var option = new Option(response.text, response.pk, true, true); var pk = data.pk;
$('#modal-form').find(dropdown).append(option).trigger('change'); inventreeGet(
}, `/api/company/part/${pk}/`,
{
supplier_detail: true,
},
{
success: function(response) {
var text = '';
if (response.supplier_detail) {
text += response.supplier_detail.name;
text += " | ";
}
text += response.SKU;
var option = new Option(text, pk, true, true);
$('#modal-form').find(dropdown).append(option).trigger('change');
}
}
)
}
}); });
} }
@ -145,21 +171,41 @@ function newPurchaseOrderFromOrderWizard(e) {
var supplier = $(src).attr('supplierid'); var supplier = $(src).attr('supplierid');
launchModalForm("/order/purchase-order/new/", { createPurchaseOrder({
modal: '#modal-form-secondary', supplier: supplier,
data: { onSuccess: function(data) {
supplier: supplier,
},
success: function(response) {
/* A new purchase order has been created! */
var dropdown = '#id-purchase-order-' + supplier; // TODO: 2021-08-23 - The whole form wizard needs to be refactored
// In the future, the drop-down should be using a dynamic AJAX request
// to fill out the select2 options!
var option = new Option(response.text, response.pk, true, true); var pk = data.pk;
$('#modal-form').find(dropdown).append(option).trigger('change'); inventreeGet(
}, `/api/order/po/${pk}/`,
}); {
supplier_detail: true,
},
{
success: function(response) {
var text = global_settings.PURCHASEORDER_REFERENCE_PREFIX || '';
text += response.reference;
if (response.supplier_detail) {
text += ` ${response.supplier_detail.name}`;
}
var dropdown = `#id-purchase-order-${supplier}`;
var option = new Option(text, pk, true, true);
$('#modal-form').find(dropdown).append(option).trigger('change');
}
}
)
}
});
} }
function editPurchaseOrderLineItem(e) { function editPurchaseOrderLineItem(e) {