2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-06-21 06:16:29 +00:00

Added setting, checkbox (PartCreateView only) and hook to create part parameters from category templates

This commit is contained in:
eeintech
2020-11-02 13:14:31 -05:00
parent 978b5f869d
commit 34b784d1e4
4 changed files with 32 additions and 0 deletions

View File

@ -186,6 +186,11 @@ class EditPartForm(HelperForm):
help_text=_('Confirm part creation'),
widget=forms.HiddenInput())
category_templates = forms.BooleanField(required=False,
initial=False,
help_text=_('Create parameters from category templates'),
widget=forms.HiddenInput())
class Meta:
model = Part
fields = [
@ -193,6 +198,7 @@ class EditPartForm(HelperForm):
'parameters_copy',
'confirm_creation',
'category',
'category_templates',
'name',
'IPN',
'description',

View File

@ -555,6 +555,9 @@ class PartCreate(AjaxCreateView):
# Hide the default_supplier field (there are no matching supplier parts yet!)
form.fields['default_supplier'].widget = HiddenInput()
# Force display of the 'category_templates' widget
form.fields['category_templates'].widget = CheckboxInput()
return form
def post(self, request, *args, **kwargs):
@ -607,6 +610,18 @@ class PartCreate(AjaxCreateView):
except AttributeError:
pass
# Create part parameters
category_templates = form.cleaned_data['category_templates']
if category_templates:
# Get category parent
category = form.cleaned_data['category'].get_root()
for template in category.get_parameter_templates():
PartParameter.create(part=part,
template=template.parameter_template,
data=template.default_value,
save=True)
return self.renderJsonResponse(request, form, data, context=context)
def get_initial(self):
@ -630,6 +645,9 @@ class PartCreate(AjaxCreateView):
if label in self.request.GET:
initials[label] = self.request.GET.get(label)
# Automatically create part parameters from category templates
initials['category_templates'] = str2bool(InvenTreeSetting.get_setting('PART_CATEGORY_PARAMETERS', False))
return initials