diff --git a/InvenTree/part/templates/part/params.html b/InvenTree/part/templates/part/params.html index 8909d2bbbd..365003b052 100644 --- a/InvenTree/part/templates/part/params.html +++ b/InvenTree/part/templates/part/params.html @@ -43,14 +43,21 @@ {% if roles.part.add %} $('#param-create').click(function() { - launchModalForm("{% url 'part-param-create' %}?part={{ part.id }}", { - reload: true, - secondary: [{ - field: 'template', - label: '{% trans "New Template" %}', - title: '{% trans "Create New Parameter Template" %}', - url: "{% url 'part-param-template-create' %}" - }], + + constructForm('{% url "api-part-parameter-list" %}', { + method: 'POST', + fields: { + part: { + value: {{ part.pk }}, + hidden: true, + }, + template: {}, + data: {}, + }, + title: '{% trans "Add Parameter" %}', + onSuccess: function() { + $('#parameter-table').bootstrapTable('refresh'); + } }); }); {% endif %} diff --git a/InvenTree/part/urls.py b/InvenTree/part/urls.py index 41880d9878..6bd8d02601 100644 --- a/InvenTree/part/urls.py +++ b/InvenTree/part/urls.py @@ -33,8 +33,6 @@ part_parameter_urls = [ url(r'^template/new/', views.PartParameterTemplateCreate.as_view(), name='part-param-template-create'), url(r'^template/(?P\d+)/edit/', views.PartParameterTemplateEdit.as_view(), name='part-param-template-edit'), url(r'^template/(?P\d+)/delete/', views.PartParameterTemplateDelete.as_view(), name='part-param-template-edit'), - - url(r'^new/', views.PartParameterCreate.as_view(), name='part-param-create'), ] part_detail_urls = [ diff --git a/InvenTree/part/views.py b/InvenTree/part/views.py index 360a47ac1e..d349557816 100644 --- a/InvenTree/part/views.py +++ b/InvenTree/part/views.py @@ -32,7 +32,7 @@ from rapidfuzz import fuzz from decimal import Decimal, InvalidOperation from .models import PartCategory, Part, PartRelated -from .models import PartParameterTemplate, PartParameter +from .models import PartParameterTemplate from .models import PartCategoryParameterTemplate from .models import BomItem from .models import match_part_names @@ -2257,56 +2257,6 @@ class PartParameterTemplateDelete(AjaxDeleteView): ajax_form_title = _("Delete Part Parameter Template") -class PartParameterCreate(AjaxCreateView): - """ View for creating a new PartParameter """ - - model = PartParameter - form_class = part_forms.EditPartParameterForm - ajax_form_title = _('Create Part Parameter') - - def get_initial(self): - - initials = {} - - part_id = self.request.GET.get('part', None) - - if part_id: - try: - initials['part'] = Part.objects.get(pk=part_id) - except (Part.DoesNotExist, ValueError): - pass - - return initials - - def get_form(self): - """ Return the form object. - - - Hide the 'Part' field (specified in URL) - - Limit the 'Template' options (to avoid duplicates) - """ - - form = super().get_form() - - part_id = self.request.GET.get('part', None) - - if part_id: - try: - part = Part.objects.get(pk=part_id) - - form.fields['part'].widget = HiddenInput() - - query = form.fields['template'].queryset - - query = query.exclude(id__in=[param.template.id for param in part.parameters.all()]) - - form.fields['template'].queryset = query - - except (Part.DoesNotExist, ValueError): - pass - - return form - - class CategoryDetail(InvenTreeRoleMixin, DetailView): """ Detail view for PartCategory """ diff --git a/InvenTree/templates/js/forms.js b/InvenTree/templates/js/forms.js index 9c67622753..b7af665393 100644 --- a/InvenTree/templates/js/forms.js +++ b/InvenTree/templates/js/forms.js @@ -1228,6 +1228,9 @@ function renderModelData(name, model, data, parameters, options) { case 'partcategory': renderer = renderPartCategory; break; + case 'partparametertemplate': + renderer = renderPartParameterTemplate; + break; case 'supplierpart': renderer = renderSupplierPart; break; diff --git a/InvenTree/templates/js/model_renderers.js b/InvenTree/templates/js/model_renderers.js index 91736e0b5a..9e98199bfa 100644 --- a/InvenTree/templates/js/model_renderers.js +++ b/InvenTree/templates/js/model_renderers.js @@ -166,6 +166,14 @@ function renderPartCategory(name, data, parameters, options) { } +function renderPartParameterTemplate(name, data, parameters, options) { + + var html = `${data.name} - [${data.units}]`; + + return html; +} + + // Rendered for "SupplierPart" model function renderSupplierPart(name, data, parameters, options) {