diff options
author | Sunil Shetye | 2024-03-04 17:20:44 +0530 |
---|---|---|
committer | Sunil Shetye | 2024-03-05 17:19:07 +0530 |
commit | 9803de90c1301af77f43c393e571e8730ff820c1 (patch) | |
tree | b8da9d86bb828895adf66642a9121fdc10f0ec14 | |
parent | a73be3720eeff1b808708435c21bbf4164c16894 (diff) | |
download | Common-Interface-Project-9803de90c1301af77f43c393e571e8730ff820c1.tar.gz Common-Interface-Project-9803de90c1301af77f43c393e571e8730ff820c1.tar.bz2 Common-Interface-Project-9803de90c1301af77f43c393e571e8730ff820c1.zip |
refactor fix
-rw-r--r-- | blocks/blocks/xcosblocks/models.py | 56 | ||||
-rw-r--r-- | blocks/blocks/xcosblocks/serializers.py | 103 | ||||
-rw-r--r-- | blocks/blocks/xcosblocks/urls.py | 3 | ||||
-rw-r--r-- | blocks/blocks/xcosblocks/views.py | 99 | ||||
-rw-r--r-- | data/refactor.sql | 381 |
5 files changed, 615 insertions, 27 deletions
diff --git a/blocks/blocks/xcosblocks/models.py b/blocks/blocks/xcosblocks/models.py index d9e336b1..c6afd29f 100644 --- a/blocks/blocks/xcosblocks/models.py +++ b/blocks/blocks/xcosblocks/models.py @@ -1,5 +1,4 @@ from django.db import models -from django.core.validators import MaxValueValidator, MinValueValidator class BlockType(models.Model): @@ -491,7 +490,7 @@ class BlockPort(models.Model): ] -class BlockTemp(models.Model): +class NewBlock(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=100) blockprefix = models.ForeignKey(BlockPrefix, default=1, @@ -517,23 +516,50 @@ class BlockTemp(models.Model): class Meta: constraints = [ models.UniqueConstraint(fields=['main_category', 'name'], - name='unique_category_name') + name='unique_main_category_name') ] -class CommonBlockParameterTemp(models.Model): - block_param_id = models.IntegerField(validators=[MinValueValidator(0),MaxValueValidator(60)]) # 0 to 60 - label = models.CharField(max_length=100, blank=True, null=True) #p000 - type = models.ForeignKey(ParameterDataType, on_delete=models.PROTECT, - related_name='+', blank=True, null=True) #p000_type - help = models.CharField(max_length=100, blank=True, null=True) #p000_help - block = models.ForeignKey(BlockTemp, on_delete=models.CASCADE, related_name='+', blank=True, null=True) #p000_block - value = models.CharField(max_length=100, blank=True, null=True) #p000_value_initial + +class NewBlockParameter(models.Model): + id = models.AutoField(primary_key=True) + block = models.ForeignKey(NewBlock, on_delete=models.PROTECT) + p_order = models.IntegerField() + p_label = models.CharField(max_length=100, blank=False) + p_type = models.ForeignKey(ParameterDataType, on_delete=models.PROTECT, + related_name='+') + p_help = models.CharField(max_length=100, blank=True, null=True) + p_value_initial = models.CharField(max_length=100, blank=True) + def __str__(self): """String for representing the Model object.""" - return self.name - + return self.block.name + class Meta: constraints = [ - models.UniqueConstraint(fields=['block_id', 'block'], - name='unique_block_parameter_name') + models.UniqueConstraint(fields=['block', 'p_order'], + name='unique_block_p_order') + ] + + +class NewBlockPort(models.Model): + id = models.AutoField(primary_key=True) + block = models.ForeignKey(NewBlock, on_delete=models.PROTECT) + port_order = models.IntegerField() + port_name = models.CharField(max_length=100) + port_number = models.CharField(max_length=10) + port_x = models.IntegerField(default=1) + port_y = models.IntegerField(default=1) + port_orientation = models.CharField(max_length=100) + port_part = models.IntegerField(default=1) + port_dmg = models.IntegerField(default=1) + port_type = models.CharField(max_length=100) + + def __str__(self): + """String for representing the Model object.""" + return '%s %s' % (self.block.name, self.port_order) + + class Meta: + constraints = [ + models.UniqueConstraint(fields=['block', 'port_order'], + name='unique_blocktemp_port_order') ] diff --git a/blocks/blocks/xcosblocks/serializers.py b/blocks/blocks/xcosblocks/serializers.py index 2445dc56..7a08d32f 100644 --- a/blocks/blocks/xcosblocks/serializers.py +++ b/blocks/blocks/xcosblocks/serializers.py @@ -1,9 +1,9 @@ from rest_framework import serializers from .models import BlockType, Category, ParameterDataType, BlockPrefix, \ - BlockPrefixParameter, Block, BlockParameter, BlockPort + BlockPrefixParameter, Block, BlockParameter, BlockPort, \ + NewBlock, NewBlockParameter, NewBlockPort -from .models import CommonBlockParameterTemp, BlockTemp from .xcosblocks import * @@ -468,17 +468,100 @@ class SetBlockPortSerializer(serializers.Serializer): ports = serializers.StringRelatedField(many=True) -class CommonBlockParameterTemp(serializers.ModelSerializer): +class NewBlockPortSerializer(serializers.ModelSerializer): class Meta: - model = CommonBlockParameterTemp - fields = [ 'id', 'label', 'type', 'help','value', 'block', 'block_param_id'] + model = NewBlockPort + fields = [ + 'id', + 'block', + 'port_order', + 'port_name', + 'port_number', + 'port_x', + 'port_y', + 'port_orientation', + 'port_part', + 'port_dmg', + 'port_type', + ] + + +class NewBlockParameterSerializer(serializers.ModelSerializer): + class Meta: + model = NewBlockParameter + fields = [ + 'id', + 'block', + 'p_order', + 'p_label', + 'p_type', + 'p_help', + 'p_value_initial' + ] -class BlockTemp(serializers.ModelSerializer): + +class NewBlockSerializer(serializers.ModelSerializer): blockprefix = BlockPrefixSerializer() main_category = CategorySerializer() categories = CategorySerializer(many=True) - blockport_set = BlockPortSerializer(many=True) + newblockport_set = NewBlockPortSerializer(many=True) + newblockparameter_set = NewBlockParameterSerializer(many=True) + class Meta: - model = BlockTemp - fields = [ 'id','name', 'blockprefix', 'main_category', 'categories', 'block_name', 'initial_display_parameter', - 'simulation_function', 'block_image_path', 'block_width', 'block_height'] + model = NewBlock + fields = [ + 'id', + 'name', + 'blockprefix', + 'main_category', + 'categories', + 'block_name', + 'initial_display_parameter', + 'simulation_function', + 'block_image_path', + 'block_width', + 'block_height', + 'newblockport_set', + 'newblockparameter_set', + ] + + @staticmethod + def prefetch_category(queryset): + return queryset.prefetch_related('categories') + + @staticmethod + def prefetch_newblockport(queryset): + return queryset.prefetch_related('newblockport_set') + + @staticmethod + def prefetch_newblockparameter(queryset): + return queryset.prefetch_related('newblockparameter_set') + + +class SetNewBlockParameterSerializer(serializers.Serializer): + block = serializers.CharField(max_length=100, required=True, + allow_blank=False, trim_whitespace=True) + + def getnewblockportserializer(self): + data = self.data + name = data['block'] + + (parameters, display_parameter, ports) = \ + globals()['get_from_' + name](data) + simulation_function = '' + + return SetNewBlockPortSerializer(data={ + 'parameters': parameters, + 'display_parameter': display_parameter, + 'simulation_function': simulation_function, + 'ports': ports, + }) + + +class SetNewBlockPortSerializer(serializers.Serializer): + parameters = serializers.StringRelatedField(many=True) + display_parameter = serializers.CharField( + max_length=100, allow_blank=True, trim_whitespace=True) + simulation_function = serializers.CharField( + max_length=100, allow_blank=True, trim_whitespace=True) + ports = serializers.StringRelatedField(many=True) diff --git a/blocks/blocks/xcosblocks/urls.py b/blocks/blocks/xcosblocks/urls.py index 3e427b8d..0e49ba36 100644 --- a/blocks/blocks/xcosblocks/urls.py +++ b/blocks/blocks/xcosblocks/urls.py @@ -2,12 +2,15 @@ from django.urls import path from rest_framework.routers import DefaultRouter from .views import CategoryViewSet, BlockViewSet, BlockParameterViewSet, \ + NewBlockViewSet, NewBlockParameterViewSet, \ 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('setblockparameter', set_block_parameter), diff --git a/blocks/blocks/xcosblocks/views.py b/blocks/blocks/xcosblocks/views.py index bc7ae706..b6bcccbf 100644 --- a/blocks/blocks/xcosblocks/views.py +++ b/blocks/blocks/xcosblocks/views.py @@ -5,10 +5,13 @@ 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, Block, BlockParameter, BlockPort, \ + NewBlock, NewBlockParameter, NewBlockPort from .serializers import CategorySerializer, BlockSerializer, \ BlockParameterSerializer, BlockPortSerializer, ErrorSerializer, \ - SetBlockParameterSerializer + SetBlockParameterSerializer, \ + NewBlockSerializer, NewBlockParameterSerializer, NewBlockPortSerializer, \ + SetNewBlockParameterSerializer class CategoryFilterSet(FilterSet): @@ -126,3 +129,95 @@ def set_block_parameter(request): serializer = SetBlockParameterSerializer() return JsonResponse(serializer.data) + + +class NewBlockFilterSet(FilterSet): + class Meta: + model = NewBlock + fields = { + 'id': ['exact'], + 'name': ['istartswith'], + 'categories': ['exact'], + } + + +class NewBlockViewSet(ReadOnlyModelViewSet): + """ + Listing All Block Details + """ + queryset = NewBlock.objects.all().order_by('name') + queryset = NewBlockSerializer.prefetch_category(queryset) + queryset = NewBlockSerializer.prefetch_newblockport(queryset) + queryset = NewBlockSerializer.prefetch_newblockparameter(queryset) + serializer_class = NewBlockSerializer + filter_backends = [ + DjangoFilterBackend + ] + filterset_class = NewBlockFilterSet + + +class NewBlockParameterFilterSet(FilterSet): + class Meta: + model = NewBlockParameter + fields = { + 'block': ['exact'], + 'block__name': ['exact'], + } + + +class NewBlockParameterViewSet(ReadOnlyModelViewSet): + """ + Listing All Block Parameter Details + """ + queryset = NewBlockParameter.objects.all() + serializer_class = NewBlockParameterSerializer + filter_backends = [ + DjangoFilterBackend + ] + filterset_class = NewBlockParameterFilterSet + + +class NewBlockPortFilterSet(FilterSet): + class Meta: + model = NewBlockPort + fields = { + 'block': ['exact'], + } + + +class NewBlockPortViewSet(ReadOnlyModelViewSet): + """ + Listing All Block Port Details + """ + queryset = NewBlockPort.objects.all() + serializer_class = NewBlockPortSerializer + filter_backends = [ + DjangoFilterBackend + ] + filterset_class = NewBlockPortFilterSet + + +def set_newblockparameter(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.getnewblockportserializer() + return JsonResponse(port.initial_data) + except Exception as e: + error = 'getnewblockportserializer error: %s' % str(e) + errorserializer = ErrorSerializer(data={ + 'code': 500, 'error': error}) + return JsonResponse(errorserializer, safe=False) + else: + error = 'getnewblockportserializer 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/data/refactor.sql b/data/refactor.sql new file mode 100644 index 00000000..f65bcf6f --- /dev/null +++ b/data/refactor.sql @@ -0,0 +1,381 @@ +INSERT INTO xcosblocks_newblock ( + id, name, blockprefix_id, main_category_id, block_name, initial_display_parameter, simulation_function, block_image_path, block_width, block_height +) +SELECT id, name, blockprefix_id, main_category_id, block_name, initial_display_parameter, simulation_function, block_image_path, block_width, block_height +FROM xcosblocks_block; + +INSERT INTO xcosblocks_newblock_categories ( + id, newblock_id, category_id +) +SELECT id, block_id, category_id +FROM xcosblocks_block_categories; + +INSERT INTO xcosblocks_newblockparameter ( + block_id, p_order, p_label, p_type_id, p_help, p_value_initial +) +SELECT block_id, 0, p000, p000_type_id, p000_help, p000_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p000 IS NOT NULL +AND p000 != '' +UNION +SELECT block_id, 1, p001, p001_type_id, p001_help, p001_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p001 IS NOT NULL +AND p001 != '' +UNION +SELECT block_id, 2, p002, p002_type_id, p002_help, p002_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p002 IS NOT NULL +AND p002 != '' +UNION +SELECT block_id, 3, p003, p003_type_id, p003_help, p003_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p003 IS NOT NULL +AND p003 != '' +UNION +SELECT block_id, 4, p004, p004_type_id, p004_help, p004_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p004 IS NOT NULL +AND p004 != '' +UNION +SELECT block_id, 5, p005, p005_type_id, p005_help, p005_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p005 IS NOT NULL +AND p005 != '' +UNION +SELECT block_id, 6, p006, p006_type_id, p006_help, p006_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p006 IS NOT NULL +AND p006 != '' +UNION +SELECT block_id, 7, p007, p007_type_id, p007_help, p007_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p007 IS NOT NULL +AND p007 != '' +UNION +SELECT block_id, 8, p008, p008_type_id, p008_help, p008_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p008 IS NOT NULL +AND p008 != '' +UNION +SELECT block_id, 9, p009, p009_type_id, p009_help, p009_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p009 IS NOT NULL +AND p009 != '' +UNION +SELECT block_id, 10, p010, p010_type_id, p010_help, p010_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p010 IS NOT NULL +AND p010 != '' +UNION +SELECT block_id, 11, p011, p011_type_id, p011_help, p011_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p011 IS NOT NULL +AND p011 != '' +UNION +SELECT block_id, 12, p012, p012_type_id, p012_help, p012_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p012 IS NOT NULL +AND p012 != '' +UNION +SELECT block_id, 13, p013, p013_type_id, p013_help, p013_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p013 IS NOT NULL +AND p013 != '' +UNION +SELECT block_id, 14, p014, p014_type_id, p014_help, p014_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p014 IS NOT NULL +AND p014 != '' +UNION +SELECT block_id, 15, p015, p015_type_id, p015_help, p015_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p015 IS NOT NULL +AND p015 != '' +UNION +SELECT block_id, 16, p016, p016_type_id, p016_help, p016_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p016 IS NOT NULL +AND p016 != '' +UNION +SELECT block_id, 17, p017, p017_type_id, p017_help, p017_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p017 IS NOT NULL +AND p017 != '' +UNION +SELECT block_id, 18, p018, p018_type_id, p018_help, p018_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p018 IS NOT NULL +AND p018 != '' +UNION +SELECT block_id, 19, p019, p019_type_id, p019_help, p019_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p019 IS NOT NULL +AND p019 != '' +UNION +SELECT block_id, 20, p020, p020_type_id, p020_help, p020_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p020 IS NOT NULL +AND p020 != '' +UNION +SELECT block_id, 21, p021, p021_type_id, p021_help, p021_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p021 IS NOT NULL +AND p021 != '' +UNION +SELECT block_id, 22, p022, p022_type_id, p022_help, p022_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p022 IS NOT NULL +AND p022 != '' +UNION +SELECT block_id, 23, p023, p023_type_id, p023_help, p023_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p023 IS NOT NULL +AND p023 != '' +UNION +SELECT block_id, 24, p024, p024_type_id, p024_help, p024_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p024 IS NOT NULL +AND p024 != '' +UNION +SELECT block_id, 25, p025, p025_type_id, p025_help, p025_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p025 IS NOT NULL +AND p025 != '' +UNION +SELECT block_id, 26, p026, p026_type_id, p026_help, p026_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p026 IS NOT NULL +AND p026 != '' +UNION +SELECT block_id, 27, p027, p027_type_id, p027_help, p027_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p027 IS NOT NULL +AND p027 != '' +UNION +SELECT block_id, 28, p028, p028_type_id, p028_help, p028_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p028 IS NOT NULL +AND p028 != '' +UNION +SELECT block_id, 29, p029, p029_type_id, p029_help, p029_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p029 IS NOT NULL +AND p029 != '' +UNION +SELECT block_id, 30, p030, p030_type_id, p030_help, p030_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p030 IS NOT NULL +AND p030 != '' +UNION +SELECT block_id, 31, p031, p031_type_id, p031_help, p031_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p031 IS NOT NULL +AND p031 != '' +UNION +SELECT block_id, 32, p032, p032_type_id, p032_help, p032_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p032 IS NOT NULL +AND p032 != '' +UNION +SELECT block_id, 33, p033, p033_type_id, p033_help, p033_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p033 IS NOT NULL +AND p033 != '' +UNION +SELECT block_id, 34, p034, p034_type_id, p034_help, p034_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p034 IS NOT NULL +AND p034 != '' +UNION +SELECT block_id, 35, p035, p035_type_id, p035_help, p035_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p035 IS NOT NULL +AND p035 != '' +UNION +SELECT block_id, 36, p036, p036_type_id, p036_help, p036_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p036 IS NOT NULL +AND p036 != '' +UNION +SELECT block_id, 37, p037, p037_type_id, p037_help, p037_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p037 IS NOT NULL +AND p037 != '' +UNION +SELECT block_id, 38, p038, p038_type_id, p038_help, p038_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p038 IS NOT NULL +AND p038 != '' +UNION +SELECT block_id, 39, p039, p039_type_id, p039_help, p039_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p039 IS NOT NULL +AND p039 != '' +UNION +SELECT block_id, 40, p040, p040_type_id, p040_help, p040_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p040 IS NOT NULL +AND p040 != '' +UNION +SELECT block_id, 41, p041, p041_type_id, p041_help, p041_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p041 IS NOT NULL +AND p041 != '' +UNION +SELECT block_id, 42, p042, p042_type_id, p042_help, p042_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p042 IS NOT NULL +AND p042 != '' +UNION +SELECT block_id, 43, p043, p043_type_id, p043_help, p043_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p043 IS NOT NULL +AND p043 != '' +UNION +SELECT block_id, 44, p044, p044_type_id, p044_help, p044_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p044 IS NOT NULL +AND p044 != '' +UNION +SELECT block_id, 45, p045, p045_type_id, p045_help, p045_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p045 IS NOT NULL +AND p045 != '' +UNION +SELECT block_id, 46, p046, p046_type_id, p046_help, p046_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p046 IS NOT NULL +AND p046 != '' +UNION +SELECT block_id, 47, p047, p047_type_id, p047_help, p047_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p047 IS NOT NULL +AND p047 != '' +UNION +SELECT block_id, 48, p048, p048_type_id, p048_help, p048_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p048 IS NOT NULL +AND p048 != '' +UNION +SELECT block_id, 49, p049, p049_type_id, p049_help, p049_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p049 IS NOT NULL +AND p049 != '' +UNION +SELECT block_id, 50, p050, p050_type_id, p050_help, p050_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p050 IS NOT NULL +AND p050 != '' +UNION +SELECT block_id, 51, p051, p051_type_id, p051_help, p051_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p051 IS NOT NULL +AND p051 != '' +UNION +SELECT block_id, 52, p052, p052_type_id, p052_help, p052_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p052 IS NOT NULL +AND p052 != '' +UNION +SELECT block_id, 53, p053, p053_type_id, p053_help, p053_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p053 IS NOT NULL +AND p053 != '' +UNION +SELECT block_id, 54, p054, p054_type_id, p054_help, p054_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p054 IS NOT NULL +AND p054 != '' +UNION +SELECT block_id, 55, p055, p055_type_id, p055_help, p055_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p055 IS NOT NULL +AND p055 != '' +UNION +SELECT block_id, 56, p056, p056_type_id, p056_help, p056_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p056 IS NOT NULL +AND p056 != '' +UNION +SELECT block_id, 57, p057, p057_type_id, p057_help, p057_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p057 IS NOT NULL +AND p057 != '' +UNION +SELECT block_id, 58, p058, p058_type_id, p058_help, p058_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p058 IS NOT NULL +AND p058 != '' +UNION +SELECT block_id, 59, p059, p059_type_id, p059_help, p059_value_initial +FROM xcosblocks_block +JOIN xcosblocks_blockparameter ON xcosblocks_blockparameter.block_id = xcosblocks_block.id +WHERE p059 IS NOT NULL +AND p059 != '' +ORDER BY 1, 2; + +INSERT INTO xcosblocks_newblockport ( + id, block_id, port_order, port_name, port_number, port_x, port_y, port_orientation, port_part, port_dmg, port_type +) +SELECT id, block_id, port_order, port_name, port_number, port_x, port_y, port_orientation, port_part, port_dmg, port_type +FROM xcosblocks_blockport; |