diff options
author | Sunil Shetye | 2024-09-21 19:40:39 +0530 |
---|---|---|
committer | Sunil Shetye | 2024-09-22 16:40:18 +0530 |
commit | 3762d7316bfc215bc7b5ea44143c27445d022a4c (patch) | |
tree | 167973fd856b7717a453e338f790dc6e82affef7 | |
parent | 1f925cc9456de86a6a707249dc78cf8221a21cff (diff) | |
download | Common-Interface-Project-3762d7316bfc215bc7b5ea44143c27445d022a4c.tar.gz Common-Interface-Project-3762d7316bfc215bc7b5ea44143c27445d022a4c.tar.bz2 Common-Interface-Project-3762d7316bfc215bc7b5ea44143c27445d022a4c.zip |
use new urls for getting and setting the block parameters
-rw-r--r-- | blocks/blocks/xcosblocks/serializers.py | 301 | ||||
-rw-r--r-- | blocks/blocks/xcosblocks/tests.py | 12 | ||||
-rw-r--r-- | blocks/blocks/xcosblocks/urls.py | 7 | ||||
-rw-r--r-- | blocks/blocks/xcosblocks/views.py | 102 | ||||
-rw-r--r-- | blocks/eda-frontend/src/components/SchematicEditor/ComponentProperties.js | 26 | ||||
-rw-r--r-- | blocks/eda-frontend/src/redux/actions/componentPropertiesActions.js | 4 | ||||
-rw-r--r-- | blocks/eda-frontend/src/redux/reducers/componentPropertiesReducer.js | 2 |
7 files changed, 29 insertions, 425 deletions
diff --git a/blocks/blocks/xcosblocks/serializers.py b/blocks/blocks/xcosblocks/serializers.py index 628df21e..d361549d 100644 --- a/blocks/blocks/xcosblocks/serializers.py +++ b/blocks/blocks/xcosblocks/serializers.py @@ -2,7 +2,7 @@ from rest_framework import serializers from django.db.models import Prefetch from .models import BlockType, Category, ParameterDataType, BlockPrefix, \ - BlockPrefixParameter, Block, BlockParameter, BlockPort, \ + BlockPrefixParameter, \ NewBlock, NewBlockParameter, NewBlockPort from .xcosblocks import * @@ -55,305 +55,6 @@ class BlockPrefixParameterSerializer(serializers.ModelSerializer): ] -class BlockPortSerializer(serializers.ModelSerializer): - class Meta: - model = BlockPort - fields = [ - 'id', - 'block', - 'port_order', - 'port_name', - 'port_number', - 'port_x', - 'port_y', - 'port_orientation', - 'port_part', - 'port_dmg', - 'port_type', - ] - - -class BlockSerializer(serializers.ModelSerializer): - blockprefix = BlockPrefixSerializer() - main_category = CategorySerializer() - categories = CategorySerializer(many=True) - blockport_set = BlockPortSerializer(many=True) - - class Meta: - model = Block - fields = [ - 'id', - 'name', - 'blockprefix', - 'main_category', - 'categories', - 'block_name', - 'initial_display_parameter', - 'simulation_function', - 'block_image_path', - 'block_width', - 'block_height', - 'p000_value_initial', - 'p001_value_initial', - 'p002_value_initial', - 'p003_value_initial', - 'p004_value_initial', - 'p005_value_initial', - 'p006_value_initial', - 'p007_value_initial', - 'p008_value_initial', - 'p009_value_initial', - 'p010_value_initial', - 'p011_value_initial', - 'p012_value_initial', - 'p013_value_initial', - 'p014_value_initial', - 'p015_value_initial', - 'p016_value_initial', - 'p017_value_initial', - 'p018_value_initial', - 'p019_value_initial', - 'p020_value_initial', - 'p021_value_initial', - 'p022_value_initial', - 'p023_value_initial', - 'p024_value_initial', - 'p025_value_initial', - 'p026_value_initial', - 'p027_value_initial', - 'p028_value_initial', - 'p029_value_initial', - 'p030_value_initial', - 'p031_value_initial', - 'p032_value_initial', - 'p033_value_initial', - 'p034_value_initial', - 'p035_value_initial', - 'p036_value_initial', - 'p037_value_initial', - 'p038_value_initial', - 'p039_value_initial', - 'p040_value_initial', - 'p041_value_initial', - 'p042_value_initial', - 'p043_value_initial', - 'p044_value_initial', - 'p045_value_initial', - 'p046_value_initial', - 'p047_value_initial', - 'p048_value_initial', - 'p049_value_initial', - 'p050_value_initial', - 'p051_value_initial', - 'p052_value_initial', - 'p053_value_initial', - 'p054_value_initial', - 'p055_value_initial', - 'p056_value_initial', - 'p057_value_initial', - 'p058_value_initial', - 'p059_value_initial', - 'blockport_set', - ] - - @staticmethod - def prefetch_category(queryset): - return queryset.prefetch_related('categories') - - @staticmethod - def prefetch_blockport(queryset): - return queryset.prefetch_related('blockport_set') - - -class BlockParameterSerializer(serializers.ModelSerializer): - class Meta: - model = BlockParameter - fields = [ - 'id', - 'block', - 'p000', - 'p000_type', - 'p000_help', - 'p001', - 'p001_type', - 'p001_help', - 'p002', - 'p002_type', - 'p002_help', - 'p003', - 'p003_type', - 'p003_help', - 'p004', - 'p004_type', - 'p004_help', - 'p005', - 'p005_type', - 'p005_help', - 'p006', - 'p006_type', - 'p006_help', - 'p007', - 'p007_type', - 'p007_help', - 'p008', - 'p008_type', - 'p008_help', - 'p009', - 'p009_type', - 'p009_help', - 'p010', - 'p010_type', - 'p010_help', - 'p011', - 'p011_type', - 'p011_help', - 'p012', - 'p012_type', - 'p012_help', - 'p013', - 'p013_type', - 'p013_help', - 'p014', - 'p014_type', - 'p014_help', - 'p015', - 'p015_type', - 'p015_help', - 'p016', - 'p016_type', - 'p016_help', - 'p017', - 'p017_type', - 'p017_help', - 'p018', - 'p018_type', - 'p018_help', - 'p019', - 'p019_type', - 'p019_help', - 'p020', - 'p020_type', - 'p020_help', - 'p021', - 'p021_type', - 'p021_help', - 'p022', - 'p022_type', - 'p022_help', - 'p023', - 'p023_type', - 'p023_help', - 'p024', - 'p024_type', - 'p024_help', - 'p025', - 'p025_type', - 'p025_help', - 'p026', - 'p026_type', - 'p026_help', - 'p027', - 'p027_type', - 'p027_help', - 'p028', - 'p028_type', - 'p028_help', - 'p029', - 'p029_type', - 'p029_help', - 'p030', - 'p030_type', - 'p030_help', - 'p031', - 'p031_type', - 'p031_help', - 'p032', - 'p032_type', - 'p032_help', - 'p033', - 'p033_type', - 'p033_help', - 'p034', - 'p034_type', - 'p034_help', - 'p035', - 'p035_type', - 'p035_help', - 'p036', - 'p036_type', - 'p036_help', - 'p037', - 'p037_type', - 'p037_help', - 'p038', - 'p038_type', - 'p038_help', - 'p039', - 'p039_type', - 'p039_help', - 'p040', - 'p040_type', - 'p040_help', - 'p041', - 'p041_type', - 'p041_help', - 'p042', - 'p042_type', - 'p042_help', - 'p043', - 'p043_type', - 'p043_help', - 'p044', - 'p044_type', - 'p044_help', - 'p045', - 'p045_type', - 'p045_help', - 'p046', - 'p046_type', - 'p046_help', - 'p047', - 'p047_type', - 'p047_help', - 'p048', - 'p048_type', - 'p048_help', - 'p049', - 'p049_type', - 'p049_help', - 'p050', - 'p050_type', - 'p050_help', - 'p051', - 'p051_type', - 'p051_help', - 'p052', - 'p052_type', - 'p052_help', - 'p053', - 'p053_type', - 'p053_help', - 'p054', - 'p054_type', - 'p054_help', - 'p055', - 'p055_type', - 'p055_help', - 'p056', - 'p056_type', - 'p056_help', - 'p057', - 'p057_type', - 'p057_help', - 'p058', - 'p058_type', - 'p058_help', - 'p059', - 'p059_type', - 'p059_help', - ] - - class ErrorSerializer(serializers.Serializer): code = serializers.IntegerField() error = serializers.CharField( diff --git a/blocks/blocks/xcosblocks/tests.py b/blocks/blocks/xcosblocks/tests.py index c57aa1ce..1db766a0 100644 --- a/blocks/blocks/xcosblocks/tests.py +++ b/blocks/blocks/xcosblocks/tests.py @@ -1,6 +1,6 @@ from django.test import TestCase -from .models import Category, Block, BlockPort +from .models import Category, NewBlock, NewBlockPort PRINT_BLOCKS = False @@ -16,7 +16,7 @@ class CategoryTestCase(TestCase): self.assertEqual(str(category), 'Commonly Used Blocks') print() - block = Block.objects.get(id=66) + block = NewBlock.objects.get(id=66) print(block) self.assertEqual(str(block), 'POWBLK_f') if PRINT_PORTS: @@ -25,13 +25,13 @@ class CategoryTestCase(TestCase): print(blockport) print() - blockport = BlockPort.objects.get(id=88) + blockport = NewBlockPort.objects.get(id=88) print(blockport) self.assertEqual(str(blockport), 'INTRPLBLK_f 1') print() categories = Category.objects.all().order_by('sort_order') - allblocks = Block.objects.all().order_by('name') + allblocks = NewBlock.objects.all().order_by('name') for category in categories: blocks = allblocks.filter(categories=category) print(category.id, category, len(blocks)) @@ -43,8 +43,8 @@ class CategoryTestCase(TestCase): print() namestring = 'A' - allblocks = Block.objects.filter(name__istartswith=namestring) - categories = Category.objects.filter(block__in=allblocks).distinct().order_by('sort_order') + allblocks = NewBlock.objects.filter(name__istartswith=namestring) + categories = Category.objects.filter(newblock__in=allblocks).distinct().order_by('sort_order') for category in categories: blocks = allblocks.filter(categories=category).order_by('name') print(category.id, category, len(blocks)) diff --git a/blocks/blocks/xcosblocks/urls.py b/blocks/blocks/xcosblocks/urls.py index dc8cf94e..9a08e996 100644 --- a/blocks/blocks/xcosblocks/urls.py +++ b/blocks/blocks/xcosblocks/urls.py @@ -1,19 +1,16 @@ from django.urls import path from rest_framework.routers import DefaultRouter -from .views import CategoryViewSet, BlockViewSet, BlockParameterViewSet, \ +from .views import CategoryViewSet, \ NewBlockViewSet, NewBlockParameterViewSet, \ - get_block_images, set_block_parameter, set_newblockparameters + get_block_images, set_block_parameter router = DefaultRouter() router.register(r'categories', CategoryViewSet) -router.register(r'blocks', BlockViewSet) -router.register(r'block_parameters', BlockParameterViewSet) router.register(r'newblocks', NewBlockViewSet) router.register(r'newblockparameters', NewBlockParameterViewSet) urlpatterns = router.urls urlpatterns += [ path(r'setblockparameter', set_block_parameter), - path(r'setnewblockparameters', set_newblockparameters), path(r'block_images', get_block_images) ] diff --git a/blocks/blocks/xcosblocks/views.py b/blocks/blocks/xcosblocks/views.py index 50bc7c03..2d7c5a70 100644 --- a/blocks/blocks/xcosblocks/views.py +++ b/blocks/blocks/xcosblocks/views.py @@ -5,13 +5,12 @@ import io from rest_framework.parsers import JSONParser from rest_framework.viewsets import ReadOnlyModelViewSet -from .models import Category, Block, BlockParameter, BlockPort, \ +from .models import Category, \ NewBlock, NewBlockParameter, NewBlockPort -from .serializers import CategorySerializer, BlockSerializer, \ - BlockParameterSerializer, BlockPortSerializer, ErrorSerializer, \ +from .serializers import CategorySerializer, \ + ErrorSerializer, \ SetBlockParameterSerializer, \ - NewBlockSerializer, NewBlockParameterSerializer, NewBlockPortSerializer, \ - SetNewBlockParameterSerializer + NewBlockSerializer, NewBlockParameterSerializer, NewBlockPortSerializer class CategoryFilterSet(FilterSet): @@ -34,77 +33,12 @@ class CategoryViewSet(ReadOnlyModelViewSet): filterset_class = CategoryFilterSet -class BlockFilterSet(FilterSet): - class Meta: - model = Block - fields = { - 'id': ['exact'], - 'name': ['istartswith'], - 'categories': ['exact'], - } - - -class BlockViewSet(ReadOnlyModelViewSet): - """ - Listing All Block Details - """ - queryset = Block.objects.all().order_by('name') - queryset = BlockSerializer.prefetch_category(queryset) - queryset = BlockSerializer.prefetch_blockport(queryset) - serializer_class = BlockSerializer - filter_backends = [ - DjangoFilterBackend - ] - filterset_class = BlockFilterSet - - def get_block_images(request): if request.method == 'GET': - queryset = Block.objects.all().values_list('block_image_path', flat=True) + queryset = NewBlock.objects.all().values_list('block_image_path', flat=True) return JsonResponse(list(queryset), safe=False) -class BlockParameterFilterSet(FilterSet): - class Meta: - model = BlockParameter - fields = { - 'block': ['exact'], - 'block__name': ['exact'], - } - - -class BlockParameterViewSet(ReadOnlyModelViewSet): - """ - Listing All Block Parameter Details - """ - queryset = BlockParameter.objects.all() - serializer_class = BlockParameterSerializer - filter_backends = [ - DjangoFilterBackend - ] - filterset_class = BlockParameterFilterSet - - -class BlockPortFilterSet(FilterSet): - class Meta: - model = BlockPort - fields = { - 'block': ['exact'], - } - - -class BlockPortViewSet(ReadOnlyModelViewSet): - """ - Listing All Block Port Details - """ - queryset = BlockPort.objects.all() - serializer_class = BlockPortSerializer - filter_backends = [ - DjangoFilterBackend - ] - filterset_class = BlockPortFilterSet - - def set_block_parameter(request): if request.method == 'POST': stream = io.BytesIO(request.body) @@ -195,29 +129,3 @@ class NewBlockPortViewSet(ReadOnlyModelViewSet): DjangoFilterBackend ] filterset_class = NewBlockPortFilterSet - - -def set_newblockparameters(request): - if request.method == 'POST': - stream = io.BytesIO(request.body) - data = JSONParser().parse(stream) - serializer = SetNewBlockParameterSerializer(data=data) - if serializer.is_valid(): - # process the data to get port - try: - port = serializer.getblockportserializer() - return JsonResponse(port.initial_data) - except Exception as e: - error = 'getblockportserializer error: %s' % str(e) - errorserializer = ErrorSerializer(data={ - 'code': 500, 'error': error}) - return JsonResponse(errorserializer, safe=False) - else: - error = 'getblockportserializer errors: %s' % serializer.errors - errorserializer = ErrorSerializer(data={ - 'code': 500, 'error': error}) - return JsonResponse(errorserializer, safe=False) - else: - serializer = SetNewBlockParameterSerializer() - - return JsonResponse(serializer.data) diff --git a/blocks/eda-frontend/src/components/SchematicEditor/ComponentProperties.js b/blocks/eda-frontend/src/components/SchematicEditor/ComponentProperties.js index 196d75e4..87fd3653 100644 --- a/blocks/eda-frontend/src/components/SchematicEditor/ComponentProperties.js +++ b/blocks/eda-frontend/src/components/SchematicEditor/ComponentProperties.js @@ -278,25 +278,23 @@ export default function ComponentProperties () { /> <ListItem> - {compProperties !== undefined ? <ListItemText primary={link1} /> : isLoading ? <ListItemText primary={link4} /> : <ListItemText primary={link3} />} + {compProperties && compProperties.length > 0 ? <ListItemText primary={link1} /> : isLoading ? <ListItemText primary={link4} /> : <ListItemText primary={link3} />} </ListItem> { Object.keys(val).map((keyName, i) => { - if (keyName.match(/^p[0-9]*_value$/)) { - const rootKeyName = keyName.substr(0, 4) - const typeId = rootKeyName + '_type' - const helpId = rootKeyName + '_help' - const compType = compProperties && compProperties[typeId] - const compHelp = compProperties && compProperties[helpId] - const error = errorFields && errorFields[keyName] - const helperText = error - ? getErrorText(compType) - : compHelp - if (compProperties && compProperties[rootKeyName] !== null && compType !== null) { + const result = keyName.match(/^p0*([1-9]*[0-9])_value$/) + if (result && compProperties) { + const rootKeyId = parseInt(result[1]) + const compProperty = compProperties[rootKeyId] + if (compProperty) { + const error = errorFields[keyName] + const helperText = error + ? getErrorText(compProperty.p_type) + : compProperty.p_help return ( <ListItem key={i}> - <TextField id={keyName} label={compProperties[rootKeyName]} value={val[keyName] || ''} helperText={helperText} error={error} size='small' variant='outlined' onChange={getInputValues} /> + <TextField id={keyName} label={compProperty.p_label} value={val[keyName] || ''} helperText={helperText} error={error} size='small' variant='outlined' onChange={getInputValues} /> </ListItem> ) } @@ -306,7 +304,7 @@ export default function ComponentProperties () { } { - compProperties !== undefined && <ListItem> + compProperties && compProperties.length > 0 && <ListItem> <Button size='small' variant='contained' color='primary' onClick={setProps}>{link2}</Button> </ListItem> } diff --git a/blocks/eda-frontend/src/redux/actions/componentPropertiesActions.js b/blocks/eda-frontend/src/redux/actions/componentPropertiesActions.js index b1d40154..e2b5dc63 100644 --- a/blocks/eda-frontend/src/redux/actions/componentPropertiesActions.js +++ b/blocks/eda-frontend/src/redux/actions/componentPropertiesActions.js @@ -24,7 +24,7 @@ const loadingSetCompProperties = (isLoading) => (dispatch) => { // Actions for listing stored component properites on double click on component export const getCompProperties = (block) => (dispatch) => { dispatch(loadingGetCompProperties(block, true)) - const url = 'block_parameters/?block__name=' + block.style + const url = 'newblockparameters/?block__name=' + block.style api.get(url) .then( (res) => { @@ -36,7 +36,7 @@ export const getCompProperties = (block) => (dispatch) => { parameter_values: block.parameter_values, errorFields: block.errorFields, displayProperties: block.displayProperties, - compProperties: res.data[0] + compProperties: res.data } }) } diff --git a/blocks/eda-frontend/src/redux/reducers/componentPropertiesReducer.js b/blocks/eda-frontend/src/redux/reducers/componentPropertiesReducer.js index 0ea9c082..5b3815d0 100644 --- a/blocks/eda-frontend/src/redux/reducers/componentPropertiesReducer.js +++ b/blocks/eda-frontend/src/redux/reducers/componentPropertiesReducer.js @@ -7,7 +7,7 @@ const InitialState = { parameter_values: {}, errorFields: {}, isPropertiesWindowOpen: false, - compProperties: {}, + compProperties: [], displayProperties: {}, isLoading: false } |