Fixes for stockitem rendering in API forms

- Also improved rendering for other models
This commit is contained in:
Oliver 2021-10-04 17:41:09 +11:00
parent 49dc88abbc
commit cd657daf50
2 changed files with 29 additions and 15 deletions

View File

@ -1884,7 +1884,7 @@ function constructChoiceInput(name, parameters) {
*/ */
function constructRelatedFieldInput(name) { function constructRelatedFieldInput(name) {
var html = `<select id='id_${name}' class='select form-control' name='${name}'></select>`; var html = `<select id='id_${name}' class='select form-control' name='${name}' style='width: 100%;'></select>`;
// Don't load any options - they will be filled via an AJAX request // Don't load any options - they will be filled via an AJAX request

View File

@ -37,7 +37,7 @@ function renderCompany(name, data, parameters, options) {
html += `<span><b>${data.name}</b></span> - <i>${data.description}</i>`; html += `<span><b>${data.name}</b></span> - <i>${data.description}</i>`;
html += `<span class='float-right'>{% trans "Company ID" %}: ${data.pk}</span>`; html += `<span class='float-right'><small>{% trans "Company ID" %}: ${data.pk}</small></span>`;
return html; return html;
} }
@ -53,8 +53,8 @@ function renderStockItem(name, data, parameters, options) {
var render_part_detail = true; var render_part_detail = true;
if ("render_part_detail" in parameters) { if ('render_part_detail' in parameters) {
render_part_detail = parameters["render_part_detail"]; render_part_detail = parameters['render_part_detail'];
} }
if (render_part_detail) { if (render_part_detail) {
@ -62,24 +62,38 @@ function renderStockItem(name, data, parameters, options) {
html += ` <span>${data.part_detail.full_name || data.part_detail.name}</span>`; html += ` <span>${data.part_detail.full_name || data.part_detail.name}</span>`;
} }
html += '<span>';
if (data.serial && data.quantity == 1) { if (data.serial && data.quantity == 1) {
html += ` - <i>{% trans "Serial Number" %}: ${data.serial}`; html += `{% trans "Serial Number" %}: ${data.serial}`;
} else { } else {
html += ` - <i>{% trans "Quantity" %}: ${data.quantity}`; html += `{% trans "Quantity" %}: ${data.quantity}`;
} }
html += '</span>';
if (render_part_detail && data.part_detail.description) { if (render_part_detail && data.part_detail.description) {
html += `<p><small>${data.part_detail.description}</small></p>`; html += `<p><small>${data.part_detail.description}</small></p>`;
} }
var render_stock_id = true;
if ('render_stock_id' in parameters) {
render_stock_id = parameters['render_stock_id'];
}
if (render_stock_id) {
html += `<span class='float-right'><small>{% trans "Stock ID" %}: ${data.pk}</small></span>`;
}
var render_location_detail = false; var render_location_detail = false;
if ("render_location_detail" in parameters) { if ('render_location_detail' in parameters) {
render_location_detail = parameters["render_location_detail"]; render_location_detail = parameters['render_location_detail'];
} }
if (render_location_detail && data.location_detail) { if (render_location_detail && data.location_detail) {
html += `<p><small>${data.location_detail.pathstring}</small></p>`; html += `<span> - ${data.location_detail.name}</span>`;
} }
return html; return html;
@ -98,7 +112,7 @@ function renderStockLocation(name, data, parameters, options) {
html += ` - <i>${data.description}</i>`; html += ` - <i>${data.description}</i>`;
} }
html += `<span class='float-right'>{% trans "Location ID" %}: ${data.pk}</span>`; html += `<span class='float-right'><small>{% trans "Location ID" %}: ${data.pk}</small></span>`;
return html; return html;
} }
@ -115,7 +129,7 @@ function renderBuild(name, data, parameters, options) {
var html = select2Thumbnail(image); var html = select2Thumbnail(image);
html += `<span><b>${data.reference}</b></span> - ${data.quantity} x ${data.part_detail.full_name}`; html += `<span><b>${data.reference}</b></span> - ${data.quantity} x ${data.part_detail.full_name}`;
html += `<span class='float-right'>{% trans "Build ID" %}: ${data.pk}</span>`; html += `<span class='float-right'><small>{% trans "Build ID" %}: ${data.pk}</span></span>`;
html += `<p><i>${data.title}</i></p>`; html += `<p><i>${data.title}</i></p>`;
@ -135,7 +149,7 @@ function renderPart(name, data, parameters, options) {
html += ` - <i>${data.description}</i>`; html += ` - <i>${data.description}</i>`;
} }
html += `<span class='float-right'>{% trans "Part ID" %}: ${data.pk}</span>`; html += `<span class='float-right'><small>{% trans "Part ID" %}: ${data.pk}</small></span>`;
return html; return html;
} }
@ -187,7 +201,7 @@ function renderPartCategory(name, data, parameters, options) {
html += ` - <i>${data.description}</i>`; html += ` - <i>${data.description}</i>`;
} }
html += `<span class='float-right'>{% trans "Category ID" %}: ${data.pk}</span>`; html += `<span class='float-right'><small>{% trans "Category ID" %}: ${data.pk}</small></span>`;
return html; return html;
} }
@ -224,7 +238,7 @@ function renderManufacturerPart(name, data, parameters, options) {
html += ` <span><b>${data.manufacturer_detail.name}</b> - ${data.MPN}</span>`; html += ` <span><b>${data.manufacturer_detail.name}</b> - ${data.MPN}</span>`;
html += ` - <i>${data.part_detail.full_name}</i>`; html += ` - <i>${data.part_detail.full_name}</i>`;
html += `<span class='float-right'>{% trans "Manufacturer Part ID" %}: ${data.pk}</span>`; html += `<span class='float-right'><small>{% trans "Manufacturer Part ID" %}: ${data.pk}</small></span>`;
return html; return html;
} }
@ -253,7 +267,7 @@ function renderSupplierPart(name, data, parameters, options) {
html += ` <span><b>${data.supplier_detail.name}</b> - ${data.SKU}</span>`; html += ` <span><b>${data.supplier_detail.name}</b> - ${data.SKU}</span>`;
html += ` - <i>${data.part_detail.full_name}</i>`; html += ` - <i>${data.part_detail.full_name}</i>`;
html += `<span class='float-right'>{% trans "Supplier Part ID" %}: ${data.pk}</span>`; html += `<span class='float-right'><small>{% trans "Supplier Part ID" %}: ${data.pk}</small></span>`;
return html; return html;