From 438135e37c9abce4072aee848413eaa83caf61e4 Mon Sep 17 00:00:00 2001 From: Kseninia Mikhaylova Date: Wed, 26 Jun 2024 14:42:58 +0300 Subject: [PATCH] distance get --- .vscode/PythonImportHelper-v2-Completion.json | 20 +++++++++---------- back/object/views.py | 9 +++++---- front/src/components/Promo/main.vue | 13 +++++++++++- 3 files changed, 27 insertions(+), 15 deletions(-) diff --git a/.vscode/PythonImportHelper-v2-Completion.json b/.vscode/PythonImportHelper-v2-Completion.json index 51f5df4..0df0269 100644 --- a/.vscode/PythonImportHelper-v2-Completion.json +++ b/.vscode/PythonImportHelper-v2-Completion.json @@ -1090,21 +1090,21 @@ "detail": "back.object.serializers", "documentation": {} }, - { - "label": "ClickableAreaViewSet", - "kind": 6, - "importPath": "back.object.views", - "description": "back.object.views", - "peekOfCode": "class ClickableAreaViewSet(viewsets.ModelViewSet):\n queryset = ClickableArea.objects.all()\n serializer_class = ClickableAreaSerializer\n filterset_fields = ('target', )\nclass NumberInFilter(django_filters.BaseInFilter, django_filters.NumberFilter):\n pass\nclass Element3DFilter(django_filters.rest_framework.FilterSet):\n parent = NumberInFilter(\n field_name=\"parent\",\n lookup_expr=\"in\",", - "detail": "back.object.views", - "documentation": {} - }, { "label": "NumberInFilter", "kind": 6, "importPath": "back.object.views", "description": "back.object.views", - "peekOfCode": "class NumberInFilter(django_filters.BaseInFilter, django_filters.NumberFilter):\n pass\nclass Element3DFilter(django_filters.rest_framework.FilterSet):\n parent = NumberInFilter(\n field_name=\"parent\",\n lookup_expr=\"in\",\n )\n parent__isnull = django_filters.BooleanFilter(\n field_name=\"parent\",\n lookup_expr=\"isnull\",", + "peekOfCode": "class NumberInFilter(django_filters.BaseInFilter, django_filters.NumberFilter):\n pass\nclass ClickableAreaViewSet(viewsets.ModelViewSet):\n queryset = ClickableArea.objects.all()\n serializer_class = ClickableAreaSerializer\n filterset_fields = (\"target\",)\nclass Element3DFilter(django_filters.rest_framework.FilterSet):\n parent = NumberInFilter(\n field_name=\"parent\",\n lookup_expr=\"in\",", + "detail": "back.object.views", + "documentation": {} + }, + { + "label": "ClickableAreaViewSet", + "kind": 6, + "importPath": "back.object.views", + "description": "back.object.views", + "peekOfCode": "class ClickableAreaViewSet(viewsets.ModelViewSet):\n queryset = ClickableArea.objects.all()\n serializer_class = ClickableAreaSerializer\n filterset_fields = (\"target\",)\nclass Element3DFilter(django_filters.rest_framework.FilterSet):\n parent = NumberInFilter(\n field_name=\"parent\",\n lookup_expr=\"in\",\n )\n parent__isnull = django_filters.BooleanFilter(", "detail": "back.object.views", "documentation": {} }, diff --git a/back/object/views.py b/back/object/views.py index e51d676..f647f1c 100644 --- a/back/object/views.py +++ b/back/object/views.py @@ -5,13 +5,14 @@ from .models import ClickableArea, Element3D from .serializers import ClickableAreaSerializer, Element3DSerializer +class NumberInFilter(django_filters.BaseInFilter, django_filters.NumberFilter): + pass + + class ClickableAreaViewSet(viewsets.ModelViewSet): queryset = ClickableArea.objects.all() serializer_class = ClickableAreaSerializer - filterset_fields = ('target', ) - -class NumberInFilter(django_filters.BaseInFilter, django_filters.NumberFilter): - pass + filterset_fields = ("target",) class Element3DFilter(django_filters.rest_framework.FilterSet): diff --git a/front/src/components/Promo/main.vue b/front/src/components/Promo/main.vue index 44b7865..ae8a500 100644 --- a/front/src/components/Promo/main.vue +++ b/front/src/components/Promo/main.vue @@ -41,7 +41,9 @@ interface element3DType { model_file: string name: string description: string - parent?: number + parent?: number, + min_distance?: number, + max_distance?: number, } interface model3DType { modelUrl?: string, @@ -51,6 +53,10 @@ const models = ref([]) const loadModels = async () => { const res = await fetch(`${SERVER_URL}/api/obj/element/?parent__isnull=True`) const data = await res.json() as element3DType[] + const distance = { + min: controlsState.minDistance, + max: controlsState.maxDistance, + } for (let index = 0; index < data.length; index++) { const element = data[index]; const item = {} as model3DType @@ -60,7 +66,12 @@ const loadModels = async () => { item.modelFile = loaded_scene models.value.push(item) + + if (element.min_distance && element.min_distance > distance.min) distance.min = element.min_distance + if (element.max_distance && element.max_distance > distance.max) distance.max = element.max_distance } + controlsState.maxDistance = distance.max + controlsState.minDistance = distance.min } onMounted(() => { loadModels()