bx-865-apps #1

Merged
ksenia_mikhailova merged 140 commits from bx-865-apps into main 2024-06-27 15:03:27 +03:00
3 changed files with 27 additions and 15 deletions
Showing only changes of commit 9ba216c94c - Show all commits

View File

@ -1090,21 +1090,21 @@
"detail": "back.object.serializers", "detail": "back.object.serializers",
"documentation": {} "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", "label": "NumberInFilter",
"kind": 6, "kind": 6,
"importPath": "back.object.views", "importPath": "back.object.views",
"description": "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", "detail": "back.object.views",
"documentation": {} "documentation": {}
}, },

View File

@ -5,13 +5,14 @@ from .models import ClickableArea, Element3D
from .serializers import ClickableAreaSerializer, Element3DSerializer from .serializers import ClickableAreaSerializer, Element3DSerializer
class NumberInFilter(django_filters.BaseInFilter, django_filters.NumberFilter):
pass
class ClickableAreaViewSet(viewsets.ModelViewSet): class ClickableAreaViewSet(viewsets.ModelViewSet):
queryset = ClickableArea.objects.all() queryset = ClickableArea.objects.all()
serializer_class = ClickableAreaSerializer serializer_class = ClickableAreaSerializer
filterset_fields = ('target', ) filterset_fields = ("target",)
class NumberInFilter(django_filters.BaseInFilter, django_filters.NumberFilter):
pass
class Element3DFilter(django_filters.rest_framework.FilterSet): class Element3DFilter(django_filters.rest_framework.FilterSet):

View File

@ -41,7 +41,9 @@ interface element3DType {
model_file: string model_file: string
name: string name: string
description: string description: string
parent?: number parent?: number,
min_distance?: number,
max_distance?: number,
} }
interface model3DType { interface model3DType {
modelUrl?: string, modelUrl?: string,
@ -51,6 +53,10 @@ const models = ref<model3DType[]>([])
const loadModels = async () => { const loadModels = async () => {
const res = await fetch(`${SERVER_URL}/api/obj/element/?parent__isnull=True`) const res = await fetch(`${SERVER_URL}/api/obj/element/?parent__isnull=True`)
const data = await res.json() as element3DType[] const data = await res.json() as element3DType[]
const distance = {
min: controlsState.minDistance,
max: controlsState.maxDistance,
}
for (let index = 0; index < data.length; index++) { for (let index = 0; index < data.length; index++) {
const element = data[index]; const element = data[index];
const item = {} as model3DType const item = {} as model3DType
@ -60,7 +66,12 @@ const loadModels = async () => {
item.modelFile = loaded_scene item.modelFile = loaded_scene
models.value.push(item) 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(() => { onMounted(() => {
loadModels() loadModels()