{% load i18n %}
/* globals
blankImage,
select2Thumbnail
*/
/* exported
renderBuild,
renderCompany,
renderManufacturerPart,
renderOwner,
renderPartCategory,
renderStockLocation,
renderSupplierPart,
*/
/*
* This file contains functions for rendering various InvenTree database models,
* in particular for displaying them in modal forms in a 'select2' context.
*
* Each renderer is provided with three arguments:
*
* - name: The 'name' of the model instance in the referring model
* - data: JSON data which represents the model instance. Returned via a GET request.
* - parameters: The field parameters provided via an OPTIONS request to the endpoint.
* - options: User options provided by the client
*/
// Renderer for "Company" model
// eslint-disable-next-line no-unused-vars
function renderCompany(name, data, parameters, options) {
var html = select2Thumbnail(data.image);
html += `${data.name} - ${data.description}`;
html += `{% trans "Company ID" %}: ${data.pk}`;
return html;
}
// Renderer for "StockItem" model
// eslint-disable-next-line no-unused-vars
function renderStockItem(name, data, parameters, options) {
var image = blankImage();
if (data.part_detail) {
image = data.part_detail.thumbnail || data.part_detail.image || blankImage();
}
var render_part_detail = true;
if ('render_part_detail' in parameters) {
render_part_detail = parameters['render_part_detail'];
}
var part_detail = '';
if (render_part_detail) {
part_detail = `${data.part_detail.full_name} - `;
}
var render_stock_id = true;
if ('render_stock_id' in parameters) {
render_stock_id = parameters['render_stock_id'];
}
var stock_id = '';
if (render_stock_id) {
stock_id = `{% trans "Stock ID" %}: ${data.pk}`;
}
var render_location_detail = false;
if ('render_location_detail' in parameters) {
render_location_detail = parameters['render_location_detail'];
}
var location_detail = '';
if (render_location_detail && data.location_detail) {
location_detail = ` - (${data.location_detail.name})`;
}
var stock_detail = '';
if (data.serial && data.quantity == 1) {
stock_detail = `{% trans "Serial Number" %}: ${data.serial}`;
} else if (data.quantity == 0) {
stock_detail = `{% trans "No Stock"% }`;
} else {
stock_detail = `{% trans "Quantity" %}: ${data.quantity}`;
}
var html = `
${part_detail}${stock_detail}${location_detail}${stock_id}
`;
return html;
}
// Renderer for "StockLocation" model
// eslint-disable-next-line no-unused-vars
function renderStockLocation(name, data, parameters, options) {
var level = '- '.repeat(data.level);
var html = `${level}${data.pathstring}`;
var render_description = true;
if ('render_description' in parameters) {
render_description = parameters['render_description'];
}
if (render_description && data.description) {
html += ` - ${data.description}`;
}
html += `{% trans "Location ID" %}: ${data.pk}`;
return html;
}
// eslint-disable-next-line no-unused-vars
function renderBuild(name, data, parameters, options) {
var image = null;
if (data.part_detail && data.part_detail.thumbnail) {
image = data.part_detail.thumbnail;
}
var html = select2Thumbnail(image);
html += `${data.reference} - ${data.quantity} x ${data.part_detail.full_name}`;
html += `{% trans "Build ID" %}: ${data.pk}`;
html += `
${data.title}
`; return html; } // Renderer for "Part" model // eslint-disable-next-line no-unused-vars function renderPart(name, data, parameters, options) { var html = select2Thumbnail(data.image); html += ` ${data.full_name || data.name}`; if (data.description) { html += ` - ${data.description}`; } var extra = ''; // Display available part quantity if (user_settings.PART_SHOW_QUANTITY_IN_FORMS) { extra += partStockLabel(data); } if (!data.active) { extra += `{% trans "Inactive" %}`; } html += ` ${extra} {% trans "Part ID" %}: ${data.pk} `; return html; } // Renderer for "User" model // eslint-disable-next-line no-unused-vars function renderUser(name, data, parameters, options) { var html = `${data.username}`; if (data.first_name && data.last_name) { html += ` - ${data.first_name} ${data.last_name}`; } return html; } // Renderer for "Owner" model // eslint-disable-next-line no-unused-vars function renderOwner(name, data, parameters, options) { var html = `${data.name}`; switch (data.label) { case 'user': html += ``; break; case 'group': html += ``; break; default: break; } return html; } // Renderer for "SalesOrder" model // eslint-disable-next-line no-unused-vars function renderSalesOrder(name, data, parameters, options) { var html = `${data.reference}`; if (data.description) { html += ` - ${data.description}`; } html += ` {% trans "Order ID" %}: ${data.pk} `; return html; } // Renderer for "SalesOrderShipment" model // eslint-disable-next-line no-unused-vars function renderSalesOrderShipment(name, data, parameters, options) { var so_prefix = global_settings.SALESORDER_REFERENCE_PREFIX; var html = ` ${so_prefix}${data.order_detail.reference} - {% trans "Shipment" %} ${data.reference} {% trans "Shipment ID" %}: ${data.pk} `; return html; } // Renderer for "PartCategory" model // eslint-disable-next-line no-unused-vars function renderPartCategory(name, data, parameters, options) { var level = '- '.repeat(data.level); var html = `${level}${data.pathstring}`; if (data.description) { html += ` - ${data.description}`; } html += `{% trans "Category ID" %}: ${data.pk}`; return html; } // eslint-disable-next-line no-unused-vars function renderPartParameterTemplate(name, data, parameters, options) { var html = `${data.name} - [${data.units}]`; return html; } // Renderer for "ManufacturerPart" model // eslint-disable-next-line no-unused-vars function renderManufacturerPart(name, data, parameters, options) { var manufacturer_image = null; var part_image = null; if (data.manufacturer_detail) { manufacturer_image = data.manufacturer_detail.image; } if (data.part_detail) { part_image = data.part_detail.thumbnail || data.part_detail.image; } var html = ''; html += select2Thumbnail(manufacturer_image); html += select2Thumbnail(part_image); html += ` ${data.manufacturer_detail.name} - ${data.MPN}`; html += ` - ${data.part_detail.full_name}`; html += `{% trans "Manufacturer Part ID" %}: ${data.pk}`; return html; } // Renderer for "SupplierPart" model // eslint-disable-next-line no-unused-vars function renderSupplierPart(name, data, parameters, options) { var supplier_image = null; var part_image = null; if (data.supplier_detail) { supplier_image = data.supplier_detail.image; } if (data.part_detail) { part_image = data.part_detail.thumbnail || data.part_detail.image; } var html = ''; html += select2Thumbnail(supplier_image); html += select2Thumbnail(part_image); html += ` ${data.supplier_detail.name} - ${data.SKU}`; html += ` - ${data.part_detail.full_name}`; html += `{% trans "Supplier Part ID" %}: ${data.pk}`; return html; }