2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-12-16 17:28:11 +00:00

Merge branch 'generic-parameters' of https://github.com/schrodingersgat/inventree into pr/SchrodingersGat/10699

This commit is contained in:
Matthias Mair
2025-11-26 01:45:31 +01:00
5 changed files with 27 additions and 16 deletions

View File

@@ -626,7 +626,7 @@ jobs:
pip-dependency: psycopg2 pip-dependency: psycopg2
- name: Set up test data - name: Set up test data
run: | run: |
invoke dev.setup-test -iv invoke dev.setup-test -iv -b generic-parameters
invoke int.rebuild-thumbnails invoke int.rebuild-thumbnails
- name: Install dependencies - name: Install dependencies
run: | run: |

View File

@@ -318,7 +318,7 @@ class CategoryTree(ListAPI):
return queryset return queryset
class CategoryParameterList(DataExportViewMixin, ListCreateAPI): class CategoryParameterList(DataExportViewMixin, OutputOptionsMixin, ListCreateAPI):
"""API endpoint for accessing a list of PartCategoryParameterTemplate objects. """API endpoint for accessing a list of PartCategoryParameterTemplate objects.
- GET: Return a list of PartCategoryParameterTemplate objects - GET: Return a list of PartCategoryParameterTemplate objects

View File

@@ -1745,7 +1745,9 @@ class BomItemSerializer(
@register_importer() @register_importer()
class CategoryParameterTemplateSerializer( class CategoryParameterTemplateSerializer(
DataImportExportSerializerMixin, InvenTree.serializers.InvenTreeModelSerializer InvenTree.serializers.FilterableSerializerMixin,
DataImportExportSerializerMixin,
InvenTree.serializers.InvenTreeModelSerializer,
): ):
"""Serializer for the PartCategoryParameterTemplate model.""" """Serializer for the PartCategoryParameterTemplate model."""
@@ -1758,17 +1760,22 @@ class CategoryParameterTemplateSerializer(
'category', 'category',
'category_detail', 'category_detail',
'template', 'template',
# 'parameter_template_detail', 'template_detail',
'default_value', 'default_value',
] ]
# TODO: Re-implement this, but point to the ParameterTemplate model template_detail = enable_filter(
# parameter_template_detail = PartParameterTemplateSerializer( common.serializers.ParameterTemplateSerializer(
# source='parameter_template', many=False, read_only=True source='template', many=False, read_only=True
# ) ),
True,
)
category_detail = CategorySerializer( category_detail = enable_filter(
source='category', many=False, read_only=True, allow_null=True CategorySerializer(
source='category', many=False, read_only=True, allow_null=True
),
True,
) )

View File

@@ -37,7 +37,7 @@ export default function PartCategoryTemplateTable({
value: categoryId, value: categoryId,
disabled: categoryId !== undefined disabled: categoryId !== undefined
}, },
parameter_template: {}, template: {},
default_value: {} default_value: {}
}; };
}, [categoryId]); }, [categoryId]);
@@ -83,7 +83,7 @@ export default function PartCategoryTemplateTable({
accessor: 'category_detail.pathstring' accessor: 'category_detail.pathstring'
}, },
{ {
accessor: 'parameter_template_detail.name', accessor: 'template_detail.name',
title: t`Parameter Template`, title: t`Parameter Template`,
sortable: true, sortable: true,
switchable: false switchable: false
@@ -99,8 +99,8 @@ export default function PartCategoryTemplateTable({
let units = ''; let units = '';
if (record?.parameter_template_detail?.units) { if (record?.template_detail?.units) {
units = `[${record.parameter_template_detail.units}]`; units = `[${record.template_detail.units}]`;
} }
return ( return (
@@ -162,7 +162,9 @@ export default function PartCategoryTemplateTable({
tableActions: tableActions, tableActions: tableActions,
enableDownload: true, enableDownload: true,
params: { params: {
category: categoryId category: categoryId,
template_detail: true,
category_detail: true
} }
}} }}
/> />

View File

@@ -1355,6 +1355,7 @@ def test(
'dev': 'Set up development environment at the end', 'dev': 'Set up development environment at the end',
'validate_files': 'Validate media files are correctly copied', 'validate_files': 'Validate media files are correctly copied',
'use_ssh': 'Use SSH protocol for cloning the demo dataset (requires SSH key)', 'use_ssh': 'Use SSH protocol for cloning the demo dataset (requires SSH key)',
'branch': 'Specify branch of demo-dataset to clone (default = main)',
} }
) )
def setup_test( def setup_test(
@@ -1364,6 +1365,7 @@ def setup_test(
validate_files=False, validate_files=False,
use_ssh=False, use_ssh=False,
path='inventree-demo-dataset', path='inventree-demo-dataset',
branch='main',
): ):
"""Setup a testing environment.""" """Setup a testing environment."""
from src.backend.InvenTree.InvenTree.config import ( # type: ignore[import] from src.backend.InvenTree.InvenTree.config import ( # type: ignore[import]
@@ -1388,7 +1390,7 @@ def setup_test(
# Get test data # Get test data
info('Cloning demo dataset ...') info('Cloning demo dataset ...')
run(c, f'git clone {URL} {template_dir} -v --depth=1') run(c, f'git clone {URL} {template_dir} -b {branch} -v --depth=1')
# Make sure migrations are done - might have just deleted sqlite database # Make sure migrations are done - might have just deleted sqlite database
if not ignore_update: if not ignore_update: