{% load i18n %} // Returns a default form-set for creating / editing a Company object function companyFormFields(options={}) { return { name: {}, description: {}, website: { icon: 'fa-globe', }, address: { icon: 'fa-envelope', }, currency: { icon: 'fa-dollar-sign', }, phone: { icon: 'fa-phone', }, email: { icon: 'fa-at', }, contact: { icon: 'fa-address-card', }, is_supplier: {}, is_manufacturer: {}, is_customer: {} }; } function editCompany(pk, options={}) { var fields = options.fields || companyFormFields(); constructForm( `/api/company/${pk}/`, { method: 'PATCH', fields: fields, reload: true, title: '{% trans "Edit Company" %}', } ); }; /* * Launches a form to create a new company. * As this can be called from many different contexts, * we abstract it here! */ function createCompany(options={}) { // Default field set var fields = options.fields || companyFormFields(); constructForm( '{% url "api-company-list" %}', { method: 'POST', fields: fields, follow: true, title: '{% trans "Add new Company" %}', } ); } function loadCompanyTable(table, url, options={}) { /* * Load company listing data into specified table. * * Args: * - table: Table element on the page * - url: Base URL for the API query * - options: table options. */ // Query parameters var params = options.params || {}; var filters = loadTableFilters("company"); for (var key in params) { filters[key] = params[key]; } setupFilterList("company", $(table)); var columns = [ { field: 'pk', title: 'ID', visible: false, switchable: false, }, { field: 'name', title: '{% trans "Company" %}', sortable: true, switchable: false, formatter: function(value, row, index, field) { var html = imageHoverIcon(row.image) + renderLink(value, row.url); if (row.is_customer) { html += ``; } if (row.is_manufacturer) { html += ``; } if (row.is_supplier) { html += ``; } return html; } }, { field: 'description', title: '{% trans "Description" %}', }, { field: 'website', title: '{% trans "Website" %}', formatter: function(value, row, index, field) { if (value) { return renderLink(value, value); } return ''; } }, ]; if (options.pagetype == 'suppliers') { columns.push({ sortable: true, field: 'parts_supplied', title: '{% trans "Parts Supplied" %}', formatter: function(value, row) { return renderLink(value, `/company/${row.pk}/parts/`); } }); } else if (options.pagetype == 'manufacturers') { columns.push({ sortable: true, field: 'parts_manufactured', title: '{% trans "Parts Manufactured" %}', formatter: function(value, row) { return renderLink(value, `/company/${row.pk}/parts/`); } }); } $(table).inventreeTable({ url: url, method: 'get', queryParams: filters, groupBy: false, sidePagination: 'server', formatNoMatches: function() { return "{% trans "No company information found" %}"; }, showColumns: true, name: options.pagetype || 'company', columns: columns, }); } function deleteManufacturerParts(selections, options={}) { if (selections.length == 0) { return; } var parts = []; var text = `
{% trans "The following manufacturer parts will be deleted" %}:
${item.MPN} - ${item.part_detail.full_name}