mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Added same level category checkbox and method when adding category template
This commit is contained in:
parent
e401bb8e3c
commit
324645b67c
@ -282,16 +282,21 @@ class EditCategoryForm(HelperForm):
|
|||||||
class EditCategoryParameterTemplateForm(HelperForm):
|
class EditCategoryParameterTemplateForm(HelperForm):
|
||||||
""" Form for editing a PartCategoryParameterTemplate object """
|
""" Form for editing a PartCategoryParameterTemplate object """
|
||||||
|
|
||||||
|
add_to_same_level_categories = forms.BooleanField(required=False,
|
||||||
|
initial=False,
|
||||||
|
help_text=_('Add parameter template to same level categories'))
|
||||||
|
|
||||||
add_to_all_categories = forms.BooleanField(required=False,
|
add_to_all_categories = forms.BooleanField(required=False,
|
||||||
initial=False,
|
initial=False,
|
||||||
help_text=_('Add parameter template to all categories'))
|
help_text=_('Add parameter template to all categories'))
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = PartCategoryParameterTemplate
|
model = PartCategoryParameterTemplate
|
||||||
fields = [
|
fields = [
|
||||||
'category',
|
'category',
|
||||||
'parameter_template',
|
'parameter_template',
|
||||||
'default_value',
|
'default_value',
|
||||||
|
'add_to_same_level_categories',
|
||||||
'add_to_all_categories',
|
'add_to_all_categories',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -2305,6 +2305,8 @@ class CategoryParameterTemplateCreate(AjaxCreateView):
|
|||||||
|
|
||||||
- If the add_to_all_categories object is set, link parameter template to
|
- If the add_to_all_categories object is set, link parameter template to
|
||||||
all categories
|
all categories
|
||||||
|
- If the add_to_same_level_categories object is set, link parameter template to
|
||||||
|
same level categories
|
||||||
"""
|
"""
|
||||||
|
|
||||||
form = self.get_form()
|
form = self.get_form()
|
||||||
@ -2312,17 +2314,26 @@ class CategoryParameterTemplateCreate(AjaxCreateView):
|
|||||||
valid = form.is_valid()
|
valid = form.is_valid()
|
||||||
|
|
||||||
if valid:
|
if valid:
|
||||||
all_categories = form.cleaned_data['add_to_all_categories']
|
add_to_same_level_categories = form.cleaned_data['add_to_same_level_categories']
|
||||||
|
add_to_all_categories = form.cleaned_data['add_to_all_categories']
|
||||||
|
|
||||||
if all_categories:
|
selected_category = PartCategory.objects.get(pk=int(self.kwargs['pk']))
|
||||||
selected_category = int(self.kwargs.get('pk', 0))
|
parameter_template = form.cleaned_data['parameter_template']
|
||||||
parameter_template = form.cleaned_data['parameter_template']
|
default_value = form.cleaned_data['default_value']
|
||||||
default_value = form.cleaned_data['default_value']
|
|
||||||
|
|
||||||
# Add parameter template and default value to all categories
|
categories = PartCategory.objects.all()
|
||||||
for category in PartCategory.objects.all():
|
|
||||||
|
if add_to_same_level_categories and not add_to_all_categories:
|
||||||
|
# Get level
|
||||||
|
level = selected_category.level
|
||||||
|
# Filter same level categories
|
||||||
|
categories = categories.filter(level=level)
|
||||||
|
|
||||||
|
if add_to_same_level_categories or add_to_all_categories:
|
||||||
|
# Add parameter template and default value to categories
|
||||||
|
for category in categories:
|
||||||
# Skip selected category (will be processed in the post call)
|
# Skip selected category (will be processed in the post call)
|
||||||
if category.pk != selected_category:
|
if category.pk != selected_category.pk:
|
||||||
try:
|
try:
|
||||||
cat_template = PartCategoryParameterTemplate.objects.create(category=category,
|
cat_template = PartCategoryParameterTemplate.objects.create(category=category,
|
||||||
parameter_template=parameter_template,
|
parameter_template=parameter_template,
|
||||||
@ -2362,6 +2373,7 @@ class CategoryParameterTemplateEdit(AjaxUpdateView):
|
|||||||
|
|
||||||
form.fields['category'].widget = HiddenInput()
|
form.fields['category'].widget = HiddenInput()
|
||||||
form.fields['add_to_all_categories'].widget = HiddenInput()
|
form.fields['add_to_all_categories'].widget = HiddenInput()
|
||||||
|
form.fields['add_to_same_level_categories'].widget = HiddenInput()
|
||||||
|
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
form.cleaned_data['category'] = self.kwargs.get('pk', None)
|
form.cleaned_data['category'] = self.kwargs.get('pk', None)
|
||||||
|
Loading…
Reference in New Issue
Block a user