bx-1379-redesign #15

Merged
ksenia_mikhailova merged 124 commits from bx-1379-redesign into dev 2024-09-06 15:39:13 +03:00
5 changed files with 21 additions and 36 deletions
Showing only changes of commit a38d1133b5 - Show all commits

View File

@ -47,6 +47,7 @@ class Element3D(models.Model):
class Scene3D(models.Model): class Scene3D(models.Model):
name = models.CharField(max_length=120) name = models.CharField(max_length=120)
description = models.TextField(blank=True, null=True)
elements = models.ManyToManyField(Element3D) elements = models.ManyToManyField(Element3D)
env = models.ForeignKey(Environment, models.RESTRICT, blank=True, null=True) env = models.ForeignKey(Environment, models.RESTRICT, blank=True, null=True)
@ -73,33 +74,33 @@ def maximum_size_validator(image):
class ClickableArea(models.Model): class ClickableArea(models.Model):
name = models.CharField("название", max_length=255) name = models.CharField(
description = models.TextField("описание") "Название",
object_name = models.CharField("название объекта", max_length=255) max_length=255,
target_name = models.CharField( help_text="Название кликабельной области",
max_length=200,
blank=True,
null=True,
) )
description = models.TextField(
"Описание",
help_text="Описание кликабельной области",
)
target = models.ForeignKey( target = models.ForeignKey(
Scene3D, Scene3D,
on_delete=models.PROTECT, on_delete=models.PROTECT,
related_name="clickable_areas", related_name="clickable_areas",
blank=True, blank=True,
null=True, null=True,
help_text="На какую сцену ведет клик",
) )
source = models.ForeignKey( source = models.ForeignKey(
Element3D, Element3D,
on_delete=models.PROTECT, on_delete=models.PROTECT,
help_text="В каком элементе искать object_name",
) )
image = models.ImageField( object_name = models.CharField(
"Картинка", "Название объекта",
upload_to=group_based_upload_to, max_length=255,
validators=[ help_text="Имя mesh или group в элементе 3D",
maximum_size_validator,
],
blank=True,
null=True,
) )
def __str__(self): def __str__(self):

View File

@ -23,21 +23,9 @@ console.log(router)
<i-mdi:video-3d /> <i-mdi:video-3d />
</RouterLink> </RouterLink>
</span> </span>
<span class="nav-icon" style="font-size: 1.375rem;" v-if="false"> <span class="nav-icon" style="font-size: 1.375rem;">
<i-mdi:vector-arrange-below /> <RouterLink :to="`/${page.slug}/gallery`">
</span> <i-mdi:vector-arrange-below />
</div>
<div class="nav-group">
<span class="nav-icon" :class="[{ disabled: router.options.history.state.back == null }]">
<RouterLink :to="(router.options.history.state.back as string) ?? '/'"
@click.native.prevent="router.back">
<i-mdi:arrow-left />
</RouterLink>
</span>
<span class="nav-icon" :class="[{ disabled: router.options.history.state.forward == null }]">
<RouterLink :to="(router.options.history.state.forward as string) ?? '/'"
@click.native.prevent="router.forward">
<i-mdi:arrow-right />
</RouterLink> </RouterLink>
</span> </span>
</div> </div>

View File

@ -53,13 +53,11 @@ interface clickableAreaType {
image?: string; image?: string;
source: number; source: number;
target: number; target: number;
target_name?: string
} }
interface PromoSidebarData { interface PromoSidebarData {
title?: string title?: string
description?: string description?: string
target?: string target?: string
target_name?: string
} }
interface PromoSidebar extends PromoSidebarData { interface PromoSidebar extends PromoSidebarData {
id_clickable?: number id_clickable?: number

View File

@ -10,7 +10,7 @@ import PromoMain from './components/Promo/main.vue'
const routes = [ const routes = [
{ path: '/', component: Promo, name: 'home_no' }, { path: '/', component: Promo, name: 'home_no' },
{ path: '/:item', component: Promo, name: 'home' }, { path: '/:item/gallery', component: Promo, name: 'gallery' },
{ path: '/:item/:target', component: PromoMain, name: 'scene' }, { path: '/:item/:target', component: PromoMain, name: 'scene' },
] ]

View File

@ -8,7 +8,6 @@ export const usePromoSidebar = defineStore('promo_sidebar', {
title: undefined, title: undefined,
description: undefined, description: undefined,
target: undefined, target: undefined,
target_name: undefined,
loading: true, loading: true,
is_open: false, is_open: false,
accordions: [], accordions: [],
@ -28,7 +27,6 @@ export const usePromoSidebar = defineStore('promo_sidebar', {
} as PromoSidebarData } as PromoSidebarData
if (target?.target) { if (target?.target) {
sidebar_data.target = target.target.toString() sidebar_data.target = target.target.toString()
sidebar_data.target_name = target.target_name
} }
this.accordions.push('desc') this.accordions.push('desc')
this.setData(sidebar_data) this.setData(sidebar_data)