diff --git a/back/object/models.py b/back/object/models.py
index f4444d5..37f31b3 100644
--- a/back/object/models.py
+++ b/back/object/models.py
@@ -18,14 +18,10 @@ class Element3D(models.Model):
name = models.CharField(max_length=255)
description = models.TextField()
min_distance = models.IntegerField(
- validators=[MinValueValidator(1), MaxValueValidator(200)],
- blank=True,
- null=True
+ validators=[MinValueValidator(1), MaxValueValidator(200)], blank=True, null=True
)
max_distance = models.IntegerField(
- validators=[MinValueValidator(2), MaxValueValidator(200)],
- blank=True,
- null=True
+ validators=[MinValueValidator(2), MaxValueValidator(200)], blank=True, null=True
)
def __str__(self):
@@ -37,7 +33,15 @@ class ClickableArea(models.Model):
description = models.TextField()
object_name = models.CharField(max_length=255)
target = models.ForeignKey(
- Element3D, on_delete=models.CASCADE, related_name="clickable_areas"
+ Element3D,
+ on_delete=models.PROTECT,
+ related_name="clickable_areas",
+ blank=True,
+ null=True,
+ )
+ source = models.ForeignKey(
+ Element3D,
+ on_delete=models.PROTECT,
)
def __str__(self):
diff --git a/back/object/views.py b/back/object/views.py
index f647f1c..504b507 100644
--- a/back/object/views.py
+++ b/back/object/views.py
@@ -12,7 +12,10 @@ class NumberInFilter(django_filters.BaseInFilter, django_filters.NumberFilter):
class ClickableAreaViewSet(viewsets.ModelViewSet):
queryset = ClickableArea.objects.all()
serializer_class = ClickableAreaSerializer
- filterset_fields = ("target",)
+ filterset_fields = (
+ "target",
+ "object_name",
+ )
class Element3DFilter(django_filters.rest_framework.FilterSet):
diff --git a/front/src/components/Promo/load_models.vue b/front/src/components/Promo/load_models.vue
index ca06dfe..d0e6f49 100644
--- a/front/src/components/Promo/load_models.vue
+++ b/front/src/components/Promo/load_models.vue
@@ -1,7 +1,7 @@
-
-
-
+
\ No newline at end of file
diff --git a/front/src/components/Promo/modelItem.vue b/front/src/components/Promo/modelItem.vue
index 02d2ef3..a053fa5 100644
--- a/front/src/components/Promo/modelItem.vue
+++ b/front/src/components/Promo/modelItem.vue
@@ -6,9 +6,9 @@ const props = defineProps(['modelUrl', 'modelFile', 'onClick'])
let scene: any
if (props.modelUrl) {
let { scene: loaded_scene } = await useGLTF(props.modelUrl)
- scene = loaded_scene
+ scene = loaded_scene.clone()
} else if (props.modelFile) {
- scene = props.modelFile
+ scene = props.modelFile.clone()
}
function shadows_and_pos(scene: any) {
scene.children.forEach((el: any) => {
@@ -21,7 +21,7 @@ function shadows_and_pos(scene: any) {
shadows_and_pos(scene)
-
-
+
+
\ No newline at end of file