mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Add forms / views for ManufacturerPartParameter CRUD
This commit is contained in:
parent
04b216253d
commit
e0e560352e
@ -16,7 +16,7 @@ from djmoney.forms.fields import MoneyField
|
|||||||
|
|
||||||
from common.settings import currency_code_default
|
from common.settings import currency_code_default
|
||||||
|
|
||||||
from .models import Company
|
from .models import Company, ManufacturerPartParameter
|
||||||
from .models import ManufacturerPart
|
from .models import ManufacturerPart
|
||||||
from .models import SupplierPart
|
from .models import SupplierPart
|
||||||
from .models import SupplierPriceBreak
|
from .models import SupplierPriceBreak
|
||||||
@ -105,6 +105,21 @@ class EditManufacturerPartForm(HelperForm):
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
class EditManufacturerPartParameterForm(HelperForm):
|
||||||
|
"""
|
||||||
|
Form for creating / editing a ManufacturerPartParameter object
|
||||||
|
"""
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = ManufacturerPartParameter
|
||||||
|
fields = [
|
||||||
|
'manufacturer_part',
|
||||||
|
'name',
|
||||||
|
'value',
|
||||||
|
'units',
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
class EditSupplierPartForm(HelperForm):
|
class EditSupplierPartForm(HelperForm):
|
||||||
""" Form for editing a SupplierPart object """
|
""" Form for editing a SupplierPart object """
|
||||||
|
|
||||||
|
@ -57,6 +57,17 @@
|
|||||||
{% block js_ready %}
|
{% block js_ready %}
|
||||||
{{ block.super }}
|
{{ block.super }}
|
||||||
|
|
||||||
|
$('#parameter-create').click(function() {
|
||||||
|
launchModalForm(
|
||||||
|
"{% url 'manufacturer-part-parameter-create' %}",
|
||||||
|
{
|
||||||
|
data: {
|
||||||
|
manufacturer_part: {{ part.id }},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
$('#supplier-create').click(function () {
|
$('#supplier-create').click(function () {
|
||||||
launchModalForm(
|
launchModalForm(
|
||||||
"{% url 'supplier-part-create' %}",
|
"{% url 'supplier-part-create' %}",
|
||||||
|
@ -53,20 +53,25 @@ price_break_urls = [
|
|||||||
url(r'^(?P<pk>\d+)/delete/', views.PriceBreakDelete.as_view(), name='price-break-delete'),
|
url(r'^(?P<pk>\d+)/delete/', views.PriceBreakDelete.as_view(), name='price-break-delete'),
|
||||||
]
|
]
|
||||||
|
|
||||||
manufacturer_part_detail_urls = [
|
|
||||||
url(r'^edit/?', views.ManufacturerPartEdit.as_view(), name='manufacturer-part-edit'),
|
|
||||||
|
|
||||||
url(r'^suppliers/', views.ManufacturerPartDetail.as_view(template_name='company/manufacturer_part_suppliers.html'), name='manufacturer-part-suppliers'),
|
|
||||||
|
|
||||||
url('^.*$', views.ManufacturerPartDetail.as_view(template_name='company/manufacturer_part_suppliers.html'), name='manufacturer-part-detail'),
|
|
||||||
]
|
|
||||||
|
|
||||||
manufacturer_part_urls = [
|
manufacturer_part_urls = [
|
||||||
url(r'^new/?', views.ManufacturerPartCreate.as_view(), name='manufacturer-part-create'),
|
url(r'^new/?', views.ManufacturerPartCreate.as_view(), name='manufacturer-part-create'),
|
||||||
|
|
||||||
url(r'delete/', views.ManufacturerPartDelete.as_view(), name='manufacturer-part-delete'),
|
url(r'^delete/', views.ManufacturerPartDelete.as_view(), name='manufacturer-part-delete'),
|
||||||
|
|
||||||
url(r'^(?P<pk>\d+)/', include(manufacturer_part_detail_urls)),
|
# URLs for ManufacturerPartParameter views (create / edit / delete)
|
||||||
|
url(r'^parameter/', include([
|
||||||
|
url(r'^new/', views.ManufacturerPartParameterCreate.as_view(), name='manufacturer-part-parameter-create'),
|
||||||
|
url(r'^(?P<pk>\d)/', include([
|
||||||
|
url(r'^edit/', views.ManufacturerPartParameterEdit.as_view(), name='manufacturer-part-parameter-edit'),
|
||||||
|
url(r'^delete/', views.ManufacturerPartParameterDelete.as_view(), name='manufacturer-part-parameter-delete'),
|
||||||
|
])),
|
||||||
|
])),
|
||||||
|
|
||||||
|
url(r'^(?P<pk>\d+)/', include([
|
||||||
|
url(r'^edit/?', views.ManufacturerPartEdit.as_view(), name='manufacturer-part-edit'),
|
||||||
|
url(r'^suppliers/', views.ManufacturerPartDetail.as_view(template_name='company/manufacturer_part_suppliers.html'), name='manufacturer-part-suppliers'),
|
||||||
|
url('^.*$', views.ManufacturerPartDetail.as_view(template_name='company/manufacturer_part_suppliers.html'), name='manufacturer-part-detail'),
|
||||||
|
])),
|
||||||
]
|
]
|
||||||
|
|
||||||
supplier_part_detail_urls = [
|
supplier_part_detail_urls = [
|
||||||
|
@ -23,14 +23,14 @@ from InvenTree.views import AjaxCreateView, AjaxUpdateView, AjaxDeleteView
|
|||||||
from InvenTree.helpers import str2bool
|
from InvenTree.helpers import str2bool
|
||||||
from InvenTree.views import InvenTreeRoleMixin
|
from InvenTree.views import InvenTreeRoleMixin
|
||||||
|
|
||||||
from .models import Company
|
from .models import Company, ManufacturerPartParameter
|
||||||
from .models import ManufacturerPart
|
from .models import ManufacturerPart
|
||||||
from .models import SupplierPart
|
from .models import SupplierPart
|
||||||
from .models import SupplierPriceBreak
|
from .models import SupplierPriceBreak
|
||||||
|
|
||||||
from part.models import Part
|
from part.models import Part
|
||||||
|
|
||||||
from .forms import EditCompanyForm
|
from .forms import EditCompanyForm, EditManufacturerPartParameterForm
|
||||||
from .forms import CompanyImageForm
|
from .forms import CompanyImageForm
|
||||||
from .forms import EditManufacturerPartForm
|
from .forms import EditManufacturerPartForm
|
||||||
from .forms import EditSupplierPartForm
|
from .forms import EditSupplierPartForm
|
||||||
@ -504,6 +504,66 @@ class ManufacturerPartDelete(AjaxDeleteView):
|
|||||||
return self.renderJsonResponse(self.request, data=data, form=self.get_form())
|
return self.renderJsonResponse(self.request, data=data, form=self.get_form())
|
||||||
|
|
||||||
|
|
||||||
|
class ManufacturerPartParameterCreate(AjaxCreateView):
|
||||||
|
"""
|
||||||
|
View for creating a new ManufacturerPartParameter object
|
||||||
|
"""
|
||||||
|
|
||||||
|
model = ManufacturerPartParameter
|
||||||
|
form_class = EditManufacturerPartParameterForm
|
||||||
|
ajax_form_title = _('Add Manufacturer Part Parameter')
|
||||||
|
|
||||||
|
def get_form(self):
|
||||||
|
|
||||||
|
form = super().get_form()
|
||||||
|
|
||||||
|
# Hide the manufacturer_part field if specified
|
||||||
|
if form.initial.get('manufacturer_part', None):
|
||||||
|
form.fields['manufacturer_part'].widget = HiddenInput()
|
||||||
|
|
||||||
|
return form
|
||||||
|
|
||||||
|
def get_initial(self):
|
||||||
|
|
||||||
|
initials = super().get_initial().copy()
|
||||||
|
|
||||||
|
manufacturer_part = self.get_param('manufacturer_part')
|
||||||
|
|
||||||
|
if manufacturer_part:
|
||||||
|
try:
|
||||||
|
initials['manufacturer_part'] = ManufacturerPartParameter.objects.get(pk=manufacturer_part)
|
||||||
|
except (ValueError, ManufacturerPartParameter.DoesNotExist):
|
||||||
|
pass
|
||||||
|
|
||||||
|
return initials
|
||||||
|
|
||||||
|
|
||||||
|
class ManufacturerPartParameterEdit(AjaxUpdateView):
|
||||||
|
"""
|
||||||
|
View for editing a ManufacturerPartParameter object
|
||||||
|
"""
|
||||||
|
|
||||||
|
model = ManufacturerPartParameter
|
||||||
|
form_class = EditManufacturerPartParameterForm
|
||||||
|
ajax_form_title = _('Edit Manufacturer Part Parameter')
|
||||||
|
|
||||||
|
def get_form(self):
|
||||||
|
|
||||||
|
form = super().get_form()
|
||||||
|
|
||||||
|
form.fields['manufacturer_part'].widget = HiddenInput()
|
||||||
|
|
||||||
|
return form
|
||||||
|
|
||||||
|
|
||||||
|
class ManufacturerPartParameterDelete(AjaxDeleteView):
|
||||||
|
"""
|
||||||
|
View for deleting a ManufacturerPartParameter object
|
||||||
|
"""
|
||||||
|
|
||||||
|
model = ManufacturerPartParameter
|
||||||
|
|
||||||
|
|
||||||
class SupplierPartDetail(DetailView):
|
class SupplierPartDetail(DetailView):
|
||||||
""" Detail view for SupplierPart """
|
""" Detail view for SupplierPart """
|
||||||
model = SupplierPart
|
model = SupplierPart
|
||||||
|
@ -228,6 +228,7 @@ function loadManufacturerPartParameterTable(table, url, options) {
|
|||||||
{
|
{
|
||||||
checkbox: true,
|
checkbox: true,
|
||||||
switchable: false,
|
switchable: false,
|
||||||
|
visible: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
field: 'name',
|
field: 'name',
|
||||||
@ -246,8 +247,55 @@ function loadManufacturerPartParameterTable(table, url, options) {
|
|||||||
title: '{% trans "Units" %}',
|
title: '{% trans "Units" %}',
|
||||||
switchable: true,
|
switchable: true,
|
||||||
sortable: true,
|
sortable: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'actions',
|
||||||
|
title: '',
|
||||||
|
switchable: false,
|
||||||
|
sortable: false,
|
||||||
|
formatter: function(value, row) {
|
||||||
|
|
||||||
|
var pk = row.pk;
|
||||||
|
|
||||||
|
var html = `<div class='btn-group float-right' role='group'>`;
|
||||||
|
|
||||||
|
html += makeIconButton('fa-edit icon-blue', 'button-parameter-edit', pk, '{% trans "Edit parameter" %}');
|
||||||
|
html += makeIconButton('fa-trash-alt icon-red', 'button-parameter-delete', pk, '{% trans "Delete parameter" %}');
|
||||||
|
|
||||||
|
html += `</div>`;
|
||||||
|
|
||||||
|
return html;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
onPostBody: function() {
|
||||||
|
// Setup callback functions
|
||||||
|
$(table).find('.button-parameter-edit').click(function() {
|
||||||
|
var pk = $(this).attr('pk');
|
||||||
|
|
||||||
|
launchModalForm(
|
||||||
|
`/manufacturer-part/parameter/${pk}/edit/`,
|
||||||
|
{
|
||||||
|
success: function() {
|
||||||
|
$(table).bootstrapTable('refresh');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
});
|
||||||
|
$(table).find('.button-parameter-delete').click(function() {
|
||||||
|
var pk = $(this).attr('pk');
|
||||||
|
|
||||||
|
launchModalForm(
|
||||||
|
`/manufacturer-part/parameter/${pk}/delete/`,
|
||||||
|
{
|
||||||
|
success: function() {
|
||||||
|
$(table).bootstrapTable('refresh');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user