mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Refactor forms for PartTestTemplate model:
- Remove old forms - Remove old views - Add detail endpoint for the API
This commit is contained in:
parent
9d1c1b98df
commit
bfc5a7dcf8
@ -241,6 +241,15 @@ class PartAttachmentDetail(generics.RetrieveUpdateDestroyAPIView, AttachmentMixi
|
|||||||
serializer_class = part_serializers.PartAttachmentSerializer
|
serializer_class = part_serializers.PartAttachmentSerializer
|
||||||
|
|
||||||
|
|
||||||
|
class PartTestTemplateDetail(generics.RetrieveUpdateDestroyAPIView):
|
||||||
|
"""
|
||||||
|
Detail endpoint for PartTestTemplate model
|
||||||
|
"""
|
||||||
|
|
||||||
|
queryset = PartTestTemplate.objects.all()
|
||||||
|
serializer_class = part_serializers.PartTestTemplateSerializer
|
||||||
|
|
||||||
|
|
||||||
class PartTestTemplateList(generics.ListCreateAPIView):
|
class PartTestTemplateList(generics.ListCreateAPIView):
|
||||||
"""
|
"""
|
||||||
API endpoint for listing (and creating) a PartTestTemplate.
|
API endpoint for listing (and creating) a PartTestTemplate.
|
||||||
@ -1036,6 +1045,7 @@ part_api_urls = [
|
|||||||
|
|
||||||
# Base URL for PartTestTemplate API endpoints
|
# Base URL for PartTestTemplate API endpoints
|
||||||
url(r'^test-template/', include([
|
url(r'^test-template/', include([
|
||||||
|
url(r'^(?P<pk>\d+)/', PartTestTemplateDetail.as_view(), name='api-part-test-template-detail'),
|
||||||
url(r'^$', PartTestTemplateList.as_view(), name='api-part-test-template-list'),
|
url(r'^$', PartTestTemplateList.as_view(), name='api-part-test-template-list'),
|
||||||
])),
|
])),
|
||||||
|
|
||||||
|
@ -5,21 +5,21 @@ Django Forms for interacting with Part objects
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django import forms
|
||||||
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
|
from mptt.fields import TreeNodeChoiceField
|
||||||
|
|
||||||
from InvenTree.forms import HelperForm
|
from InvenTree.forms import HelperForm
|
||||||
from InvenTree.helpers import GetExportFormats
|
from InvenTree.helpers import GetExportFormats
|
||||||
from InvenTree.fields import RoundingDecimalFormField
|
from InvenTree.fields import RoundingDecimalFormField
|
||||||
|
|
||||||
from mptt.fields import TreeNodeChoiceField
|
|
||||||
from django import forms
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
|
||||||
|
|
||||||
import common.models
|
import common.models
|
||||||
|
|
||||||
from .models import Part, PartCategory, PartRelated
|
from .models import Part, PartCategory, PartRelated
|
||||||
from .models import BomItem
|
from .models import BomItem
|
||||||
from .models import PartParameterTemplate, PartParameter
|
from .models import PartParameterTemplate, PartParameter
|
||||||
from .models import PartCategoryParameterTemplate
|
from .models import PartCategoryParameterTemplate
|
||||||
from .models import PartTestTemplate
|
|
||||||
from .models import PartSellPriceBreak, PartInternalPriceBreak
|
from .models import PartSellPriceBreak, PartInternalPriceBreak
|
||||||
|
|
||||||
|
|
||||||
@ -65,22 +65,6 @@ class PartImageForm(HelperForm):
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class EditPartTestTemplateForm(HelperForm):
|
|
||||||
""" Class for creating / editing a PartTestTemplate object """
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
model = PartTestTemplate
|
|
||||||
|
|
||||||
fields = [
|
|
||||||
'part',
|
|
||||||
'test_name',
|
|
||||||
'description',
|
|
||||||
'required',
|
|
||||||
'requires_value',
|
|
||||||
'requires_attachment',
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
class BomExportForm(forms.Form):
|
class BomExportForm(forms.Form):
|
||||||
""" Simple form to let user set BOM export options,
|
""" Simple form to let user set BOM export options,
|
||||||
before exporting a BOM (bill of materials) file.
|
before exporting a BOM (bill of materials) file.
|
||||||
|
@ -44,34 +44,52 @@ function reloadTable() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$("#add-test-template").click(function() {
|
$("#add-test-template").click(function() {
|
||||||
launchModalForm(
|
|
||||||
"{% url 'part-test-template-create' %}",
|
constructForm('{% url "api-part-test-template-list" %}', {
|
||||||
{
|
method: 'POST',
|
||||||
data: {
|
fields: {
|
||||||
part: {{ part.id }},
|
test_name: {},
|
||||||
},
|
description: {},
|
||||||
success: reloadTable,
|
required: {},
|
||||||
}
|
requires_value: {},
|
||||||
);
|
requires_attachment: {},
|
||||||
|
part: {
|
||||||
|
value: {{ part.pk }},
|
||||||
|
hidden: true,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
title: '{% trans "Add Test Result Template" %}',
|
||||||
|
onSuccess: reloadTable
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#test-template-table").on('click', '.button-test-edit', function() {
|
$("#test-template-table").on('click', '.button-test-edit', function() {
|
||||||
var button = $(this);
|
var pk = $(this).attr('pk');
|
||||||
|
|
||||||
var url = `/part/test-template/${button.attr('pk')}/edit/`;
|
var url = `/api/part/test-template/${pk}/`;
|
||||||
|
|
||||||
launchModalForm(url, {
|
constructForm(url, {
|
||||||
success: reloadTable,
|
fields: {
|
||||||
|
test_name: {},
|
||||||
|
description: {},
|
||||||
|
required: {},
|
||||||
|
requires_value: {},
|
||||||
|
requires_attachment: {},
|
||||||
|
},
|
||||||
|
title: '{% trans "Edit Test Result Template" %}',
|
||||||
|
onSuccess: reloadTable,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#test-template-table").on('click', '.button-test-delete', function() {
|
$("#test-template-table").on('click', '.button-test-delete', function() {
|
||||||
var button = $(this);
|
var pk = $(this).attr('pk');
|
||||||
|
|
||||||
var url = `/part/test-template/${button.attr('pk')}/delete/`;
|
var url = `/api/part/test-template/${pk}/`;
|
||||||
|
|
||||||
launchModalForm(url, {
|
constructForm(url, {
|
||||||
success: reloadTable,
|
method: 'DELETE',
|
||||||
|
title: '{% trans "Delete Test Result Template" %}',
|
||||||
|
onSuccess: reloadTable,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -148,13 +148,6 @@ part_urls = [
|
|||||||
# Part internal price breaks
|
# Part internal price breaks
|
||||||
url(r'^internal-price/', include(internal_price_break_urls)),
|
url(r'^internal-price/', include(internal_price_break_urls)),
|
||||||
|
|
||||||
# Part test templates
|
|
||||||
url(r'^test-template/', include([
|
|
||||||
url(r'^new/', views.PartTestTemplateCreate.as_view(), name='part-test-template-create'),
|
|
||||||
url(r'^(?P<pk>\d+)/edit/', views.PartTestTemplateEdit.as_view(), name='part-test-template-edit'),
|
|
||||||
url(r'^(?P<pk>\d+)/delete/', views.PartTestTemplateDelete.as_view(), name='part-test-template-delete'),
|
|
||||||
])),
|
|
||||||
|
|
||||||
# Part parameters
|
# Part parameters
|
||||||
url(r'^parameter/', include(part_parameter_urls)),
|
url(r'^parameter/', include(part_parameter_urls)),
|
||||||
|
|
||||||
|
@ -36,7 +36,6 @@ from .models import PartParameterTemplate, PartParameter
|
|||||||
from .models import PartCategoryParameterTemplate
|
from .models import PartCategoryParameterTemplate
|
||||||
from .models import BomItem
|
from .models import BomItem
|
||||||
from .models import match_part_names
|
from .models import match_part_names
|
||||||
from .models import PartTestTemplate
|
|
||||||
from .models import PartSellPriceBreak, PartInternalPriceBreak
|
from .models import PartSellPriceBreak, PartInternalPriceBreak
|
||||||
|
|
||||||
from common.models import InvenTreeSetting
|
from common.models import InvenTreeSetting
|
||||||
@ -154,55 +153,6 @@ class PartRelatedDelete(AjaxDeleteView):
|
|||||||
role_required = 'part.change'
|
role_required = 'part.change'
|
||||||
|
|
||||||
|
|
||||||
class PartTestTemplateCreate(AjaxCreateView):
|
|
||||||
""" View for creating a PartTestTemplate """
|
|
||||||
|
|
||||||
model = PartTestTemplate
|
|
||||||
form_class = part_forms.EditPartTestTemplateForm
|
|
||||||
ajax_form_title = _("Create Test Template")
|
|
||||||
|
|
||||||
def get_initial(self):
|
|
||||||
|
|
||||||
initials = super().get_initial()
|
|
||||||
|
|
||||||
try:
|
|
||||||
part_id = self.request.GET.get('part', None)
|
|
||||||
initials['part'] = Part.objects.get(pk=part_id)
|
|
||||||
except (ValueError, Part.DoesNotExist):
|
|
||||||
pass
|
|
||||||
|
|
||||||
return initials
|
|
||||||
|
|
||||||
def get_form(self):
|
|
||||||
|
|
||||||
form = super().get_form()
|
|
||||||
form.fields['part'].widget = HiddenInput()
|
|
||||||
|
|
||||||
return form
|
|
||||||
|
|
||||||
|
|
||||||
class PartTestTemplateEdit(AjaxUpdateView):
|
|
||||||
""" View for editing a PartTestTemplate """
|
|
||||||
|
|
||||||
model = PartTestTemplate
|
|
||||||
form_class = part_forms.EditPartTestTemplateForm
|
|
||||||
ajax_form_title = _("Edit Test Template")
|
|
||||||
|
|
||||||
def get_form(self):
|
|
||||||
|
|
||||||
form = super().get_form()
|
|
||||||
form.fields['part'].widget = HiddenInput()
|
|
||||||
|
|
||||||
return form
|
|
||||||
|
|
||||||
|
|
||||||
class PartTestTemplateDelete(AjaxDeleteView):
|
|
||||||
""" View for deleting a PartTestTemplate """
|
|
||||||
|
|
||||||
model = PartTestTemplate
|
|
||||||
ajax_form_title = _("Delete Test Template")
|
|
||||||
|
|
||||||
|
|
||||||
class PartSetCategory(AjaxUpdateView):
|
class PartSetCategory(AjaxUpdateView):
|
||||||
""" View for settings the part category for multiple parts at once """
|
""" View for settings the part category for multiple parts at once """
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user