diff --git a/.vscode/PythonImportHelper-v2-Completion.json b/.vscode/PythonImportHelper-v2-Completion.json
index e2a2e23..e7de6ff 100644
--- a/.vscode/PythonImportHelper-v2-Completion.json
+++ b/.vscode/PythonImportHelper-v2-Completion.json
@@ -1,4 +1,39 @@
[
+ {
+ "label": "annotations",
+ "importPath": "__future__",
+ "description": "__future__",
+ "isExtraImport": true,
+ "detail": "__future__",
+ "documentation": {}
+ },
+ {
+ "label": "os",
+ "kind": 6,
+ "isExtraImport": true,
+ "importPath": "os",
+ "description": "os",
+ "detail": "os",
+ "documentation": {}
+ },
+ {
+ "label": "site",
+ "kind": 6,
+ "isExtraImport": true,
+ "importPath": "site",
+ "description": "site",
+ "detail": "site",
+ "documentation": {}
+ },
+ {
+ "label": "sys",
+ "kind": 6,
+ "isExtraImport": true,
+ "importPath": "sys",
+ "description": "sys",
+ "detail": "sys",
+ "documentation": {}
+ },
{
"label": "json",
"kind": 6,
@@ -97,15 +132,6 @@
"detail": "gyp.common",
"documentation": {}
},
- {
- "label": "os",
- "kind": 6,
- "isExtraImport": true,
- "importPath": "os",
- "description": "os",
- "detail": "os",
- "documentation": {}
- },
{
"label": "posixpath",
"kind": 6,
@@ -249,15 +275,6 @@
"detail": "code",
"documentation": {}
},
- {
- "label": "sys",
- "kind": 6,
- "isExtraImport": true,
- "importPath": "sys",
- "description": "sys",
- "detail": "sys",
- "documentation": {}
- },
{
"label": "hashlib",
"kind": 6,
@@ -1517,119 +1534,6 @@
"detail": "time",
"documentation": {}
},
- {
- "label": "migrations",
- "importPath": "django.db",
- "description": "django.db",
- "isExtraImport": true,
- "detail": "django.db",
- "documentation": {}
- },
- {
- "label": "models",
- "importPath": "django.db",
- "description": "django.db",
- "isExtraImport": true,
- "detail": "django.db",
- "documentation": {}
- },
- {
- "label": "migrations",
- "importPath": "django.db",
- "description": "django.db",
- "isExtraImport": true,
- "detail": "django.db",
- "documentation": {}
- },
- {
- "label": "models",
- "importPath": "django.db",
- "description": "django.db",
- "isExtraImport": true,
- "detail": "django.db",
- "documentation": {}
- },
- {
- "label": "migrations",
- "importPath": "django.db",
- "description": "django.db",
- "isExtraImport": true,
- "detail": "django.db",
- "documentation": {}
- },
- {
- "label": "models",
- "importPath": "django.db",
- "description": "django.db",
- "isExtraImport": true,
- "detail": "django.db",
- "documentation": {}
- },
- {
- "label": "migrations",
- "importPath": "django.db",
- "description": "django.db",
- "isExtraImport": true,
- "detail": "django.db",
- "documentation": {}
- },
- {
- "label": "models",
- "importPath": "django.db",
- "description": "django.db",
- "isExtraImport": true,
- "detail": "django.db",
- "documentation": {}
- },
- {
- "label": "migrations",
- "importPath": "django.db",
- "description": "django.db",
- "isExtraImport": true,
- "detail": "django.db",
- "documentation": {}
- },
- {
- "label": "models",
- "importPath": "django.db",
- "description": "django.db",
- "isExtraImport": true,
- "detail": "django.db",
- "documentation": {}
- },
- {
- "label": "migrations",
- "importPath": "django.db",
- "description": "django.db",
- "isExtraImport": true,
- "detail": "django.db",
- "documentation": {}
- },
- {
- "label": "models",
- "importPath": "django.db",
- "description": "django.db",
- "isExtraImport": true,
- "detail": "django.db",
- "documentation": {}
- },
- {
- "label": "models",
- "importPath": "django.db",
- "description": "django.db",
- "isExtraImport": true,
- "detail": "django.db",
- "documentation": {}
- },
- {
- "label": "django.db.models.deletion",
- "kind": 6,
- "isExtraImport": true,
- "importPath": "django.db.models.deletion",
- "description": "django.db.models.deletion",
- "detail": "django.db.models.deletion",
- "documentation": {}
- },
{
"label": "admin",
"importPath": "django.contrib",
@@ -1654,6 +1558,14 @@
"detail": "django.apps",
"documentation": {}
},
+ {
+ "label": "models",
+ "importPath": "django.db",
+ "description": "django.db",
+ "isExtraImport": true,
+ "detail": "django.db",
+ "documentation": {}
+ },
{
"label": "routers",
"importPath": "rest_framework",
@@ -1849,6 +1761,87 @@
"detail": "django.core.wsgi",
"documentation": {}
},
+ {
+ "label": "bin_dir",
+ "kind": 5,
+ "importPath": ".venv.bin.activate_this",
+ "description": ".venv.bin.activate_this",
+ "peekOfCode": "bin_dir = os.path.dirname(abs_file)\nbase = bin_dir[: -len(\"bin\") - 1] # strip away the bin part from the __file__, plus the path separator\n# prepend bin to PATH (this file is inside the bin directory)\nos.environ[\"PATH\"] = os.pathsep.join([bin_dir, *os.environ.get(\"PATH\", \"\").split(os.pathsep)])\nos.environ[\"VIRTUAL_ENV\"] = base # virtual env is right above bin directory\nos.environ[\"VIRTUAL_ENV_PROMPT\"] = \"interactive-table-py3.10\" or os.path.basename(base) # noqa: SIM222\n# add the virtual environments libraries to the host python import mechanism\nprev_length = len(sys.path)\nfor lib in \"../lib/python3.10/site-packages\".split(os.pathsep):\n path = os.path.realpath(os.path.join(bin_dir, lib))",
+ "detail": ".venv.bin.activate_this",
+ "documentation": {}
+ },
+ {
+ "label": "base",
+ "kind": 5,
+ "importPath": ".venv.bin.activate_this",
+ "description": ".venv.bin.activate_this",
+ "peekOfCode": "base = bin_dir[: -len(\"bin\") - 1] # strip away the bin part from the __file__, plus the path separator\n# prepend bin to PATH (this file is inside the bin directory)\nos.environ[\"PATH\"] = os.pathsep.join([bin_dir, *os.environ.get(\"PATH\", \"\").split(os.pathsep)])\nos.environ[\"VIRTUAL_ENV\"] = base # virtual env is right above bin directory\nos.environ[\"VIRTUAL_ENV_PROMPT\"] = \"interactive-table-py3.10\" or os.path.basename(base) # noqa: SIM222\n# add the virtual environments libraries to the host python import mechanism\nprev_length = len(sys.path)\nfor lib in \"../lib/python3.10/site-packages\".split(os.pathsep):\n path = os.path.realpath(os.path.join(bin_dir, lib))\n site.addsitedir(path.decode(\"utf-8\") if \"\" else path)",
+ "detail": ".venv.bin.activate_this",
+ "documentation": {}
+ },
+ {
+ "label": "os.environ[\"PATH\"]",
+ "kind": 5,
+ "importPath": ".venv.bin.activate_this",
+ "description": ".venv.bin.activate_this",
+ "peekOfCode": "os.environ[\"PATH\"] = os.pathsep.join([bin_dir, *os.environ.get(\"PATH\", \"\").split(os.pathsep)])\nos.environ[\"VIRTUAL_ENV\"] = base # virtual env is right above bin directory\nos.environ[\"VIRTUAL_ENV_PROMPT\"] = \"interactive-table-py3.10\" or os.path.basename(base) # noqa: SIM222\n# add the virtual environments libraries to the host python import mechanism\nprev_length = len(sys.path)\nfor lib in \"../lib/python3.10/site-packages\".split(os.pathsep):\n path = os.path.realpath(os.path.join(bin_dir, lib))\n site.addsitedir(path.decode(\"utf-8\") if \"\" else path)\nsys.path[:] = sys.path[prev_length:] + sys.path[0:prev_length]\nsys.real_prefix = sys.prefix",
+ "detail": ".venv.bin.activate_this",
+ "documentation": {}
+ },
+ {
+ "label": "os.environ[\"VIRTUAL_ENV\"]",
+ "kind": 5,
+ "importPath": ".venv.bin.activate_this",
+ "description": ".venv.bin.activate_this",
+ "peekOfCode": "os.environ[\"VIRTUAL_ENV\"] = base # virtual env is right above bin directory\nos.environ[\"VIRTUAL_ENV_PROMPT\"] = \"interactive-table-py3.10\" or os.path.basename(base) # noqa: SIM222\n# add the virtual environments libraries to the host python import mechanism\nprev_length = len(sys.path)\nfor lib in \"../lib/python3.10/site-packages\".split(os.pathsep):\n path = os.path.realpath(os.path.join(bin_dir, lib))\n site.addsitedir(path.decode(\"utf-8\") if \"\" else path)\nsys.path[:] = sys.path[prev_length:] + sys.path[0:prev_length]\nsys.real_prefix = sys.prefix\nsys.prefix = base",
+ "detail": ".venv.bin.activate_this",
+ "documentation": {}
+ },
+ {
+ "label": "os.environ[\"VIRTUAL_ENV_PROMPT\"]",
+ "kind": 5,
+ "importPath": ".venv.bin.activate_this",
+ "description": ".venv.bin.activate_this",
+ "peekOfCode": "os.environ[\"VIRTUAL_ENV_PROMPT\"] = \"interactive-table-py3.10\" or os.path.basename(base) # noqa: SIM222\n# add the virtual environments libraries to the host python import mechanism\nprev_length = len(sys.path)\nfor lib in \"../lib/python3.10/site-packages\".split(os.pathsep):\n path = os.path.realpath(os.path.join(bin_dir, lib))\n site.addsitedir(path.decode(\"utf-8\") if \"\" else path)\nsys.path[:] = sys.path[prev_length:] + sys.path[0:prev_length]\nsys.real_prefix = sys.prefix\nsys.prefix = base",
+ "detail": ".venv.bin.activate_this",
+ "documentation": {}
+ },
+ {
+ "label": "prev_length",
+ "kind": 5,
+ "importPath": ".venv.bin.activate_this",
+ "description": ".venv.bin.activate_this",
+ "peekOfCode": "prev_length = len(sys.path)\nfor lib in \"../lib/python3.10/site-packages\".split(os.pathsep):\n path = os.path.realpath(os.path.join(bin_dir, lib))\n site.addsitedir(path.decode(\"utf-8\") if \"\" else path)\nsys.path[:] = sys.path[prev_length:] + sys.path[0:prev_length]\nsys.real_prefix = sys.prefix\nsys.prefix = base",
+ "detail": ".venv.bin.activate_this",
+ "documentation": {}
+ },
+ {
+ "label": "sys.path[:]",
+ "kind": 5,
+ "importPath": ".venv.bin.activate_this",
+ "description": ".venv.bin.activate_this",
+ "peekOfCode": "sys.path[:] = sys.path[prev_length:] + sys.path[0:prev_length]\nsys.real_prefix = sys.prefix\nsys.prefix = base",
+ "detail": ".venv.bin.activate_this",
+ "documentation": {}
+ },
+ {
+ "label": "sys.real_prefix",
+ "kind": 5,
+ "importPath": ".venv.bin.activate_this",
+ "description": ".venv.bin.activate_this",
+ "peekOfCode": "sys.real_prefix = sys.prefix\nsys.prefix = base",
+ "detail": ".venv.bin.activate_this",
+ "documentation": {}
+ },
+ {
+ "label": "sys.prefix",
+ "kind": 5,
+ "importPath": ".venv.bin.activate_this",
+ "description": ".venv.bin.activate_this",
+ "peekOfCode": "sys.prefix = base",
+ "detail": ".venv.bin.activate_this",
+ "documentation": {}
+ },
{
"label": "_Known",
"kind": 6,
@@ -8338,60 +8331,6 @@
"detail": "admin_front.node_modules.node-gyp.gyp.test_gyp",
"documentation": {}
},
- {
- "label": "Migration",
- "kind": 6,
- "importPath": "back.api.migrations.0001_initial",
- "description": "back.api.migrations.0001_initial",
- "peekOfCode": "class Migration(migrations.Migration):\n initial = True\n dependencies = [\n ]\n operations = [\n migrations.CreateModel(\n name='Floorplan',\n fields=[\n ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),\n ('title', models.CharField(max_length=200)),",
- "detail": "back.api.migrations.0001_initial",
- "documentation": {}
- },
- {
- "label": "Migration",
- "kind": 6,
- "importPath": "back.api.migrations.0002_floorplan_d_border_floorplan_d_size_floorplan_paths",
- "description": "back.api.migrations.0002_floorplan_d_border_floorplan_d_size_floorplan_paths",
- "peekOfCode": "class Migration(migrations.Migration):\n dependencies = [\n ('api', '0001_initial'),\n ]\n operations = [\n migrations.AddField(\n model_name='floorplan',\n name='d_border',\n field=models.IntegerField(default=1),\n preserve_default=False,",
- "detail": "back.api.migrations.0002_floorplan_d_border_floorplan_d_size_floorplan_paths",
- "documentation": {}
- },
- {
- "label": "Migration",
- "kind": 6,
- "importPath": "back.api.migrations.0003_alter_floorplan_paths",
- "description": "back.api.migrations.0003_alter_floorplan_paths",
- "peekOfCode": "class Migration(migrations.Migration):\n dependencies = [\n ('api', '0002_floorplan_d_border_floorplan_d_size_floorplan_paths'),\n ]\n operations = [\n migrations.AlterField(\n model_name='floorplan',\n name='paths',\n field=models.TextField(),\n ),",
- "detail": "back.api.migrations.0003_alter_floorplan_paths",
- "documentation": {}
- },
- {
- "label": "Migration",
- "kind": 6,
- "importPath": "back.api.migrations.0004_alter_floorplan_d_border_alter_floorplan_d_size",
- "description": "back.api.migrations.0004_alter_floorplan_d_border_alter_floorplan_d_size",
- "peekOfCode": "class Migration(migrations.Migration):\n dependencies = [\n ('api', '0003_alter_floorplan_paths'),\n ]\n operations = [\n migrations.AlterField(\n model_name='floorplan',\n name='d_border',\n field=models.IntegerField(blank=True, null=True),\n ),",
- "detail": "back.api.migrations.0004_alter_floorplan_d_border_alter_floorplan_d_size",
- "documentation": {}
- },
- {
- "label": "Migration",
- "kind": 6,
- "importPath": "back.api.migrations.0005_floorplanpoints",
- "description": "back.api.migrations.0005_floorplanpoints",
- "peekOfCode": "class Migration(migrations.Migration):\n dependencies = [\n ('api', '0004_alter_floorplan_d_border_alter_floorplan_d_size'),\n ]\n operations = [\n migrations.CreateModel(\n name='FloorplanPoints',\n fields=[\n ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),\n ('points', models.JSONField()),",
- "detail": "back.api.migrations.0005_floorplanpoints",
- "documentation": {}
- },
- {
- "label": "Migration",
- "kind": 6,
- "importPath": "back.api.migrations.0006_remove_floorplanpoints_id_alter_floorplanpoints_plan",
- "description": "back.api.migrations.0006_remove_floorplanpoints_id_alter_floorplanpoints_plan",
- "peekOfCode": "class Migration(migrations.Migration):\n dependencies = [\n ('api', '0005_floorplanpoints'),\n ]\n operations = [\n migrations.RemoveField(\n model_name='floorplanpoints',\n name='id',\n ),\n migrations.AlterField(",
- "detail": "back.api.migrations.0006_remove_floorplanpoints_id_alter_floorplanpoints_plan",
- "documentation": {}
- },
{
"label": "ApiConfig",
"kind": 6,
diff --git a/front/package-lock.json b/front/package-lock.json
index 8e471c0..38e4615 100644
--- a/front/package-lock.json
+++ b/front/package-lock.json
@@ -35,6 +35,7 @@
"unplugin-icons": "^0.18.5",
"unplugin-vue-components": "^0.26.0",
"vite": "^5.2.0",
+ "vite-plugin-static-copy": "^1.0.5",
"vue-tsc": "^2.0.6"
}
},
@@ -2231,6 +2232,20 @@
"resolved": "https://registry.npmjs.org/fireworks-js/-/fireworks-js-2.10.7.tgz",
"integrity": "sha512-FyRNiqlgu9ZeFCjfN0UiGUlj5dUWNYLyFaWN/Q8sOMf0E+KGA4dMROaBZpCtym85fChgCspoa3jHoLTRZiy74A=="
},
+ "node_modules/fs-extra": {
+ "version": "11.2.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
+ "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=14.14"
+ }
+ },
"node_modules/fsevents": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
@@ -2296,6 +2311,12 @@
"through2": "^0.6.3"
}
},
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "dev": true
+ },
"node_modules/hasown": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
@@ -2438,6 +2459,18 @@
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
"dev": true
},
+ "node_modules/jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "dev": true,
+ "dependencies": {
+ "universalify": "^2.0.0"
+ },
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
"node_modules/kolorist": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz",
@@ -3244,6 +3277,15 @@
"integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==",
"dev": true
},
+ "node_modules/universalify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
"node_modules/unplugin": {
"version": "1.10.1",
"resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.10.1.tgz",
@@ -3405,6 +3447,24 @@
}
}
},
+ "node_modules/vite-plugin-static-copy": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-1.0.5.tgz",
+ "integrity": "sha512-02k0Rox+buYdEOfeilKZSgs1gXfPf9RjVztZEIYZgVIxjsVZi6AXssjzdi+qW6zYt00d3bq+tpP2voVXN2fKLw==",
+ "dev": true,
+ "dependencies": {
+ "chokidar": "^3.5.3",
+ "fast-glob": "^3.2.11",
+ "fs-extra": "^11.1.0",
+ "picocolors": "^1.0.0"
+ },
+ "engines": {
+ "node": "^18.0.0 || >=20.0.0"
+ },
+ "peerDependencies": {
+ "vite": "^5.0.0"
+ }
+ },
"node_modules/vite-svg-loader": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/vite-svg-loader/-/vite-svg-loader-5.1.0.tgz",
diff --git a/front/package.json b/front/package.json
index dd38b67..83a668a 100644
--- a/front/package.json
+++ b/front/package.json
@@ -37,6 +37,7 @@
"unplugin-icons": "^0.18.5",
"unplugin-vue-components": "^0.26.0",
"vite": "^5.2.0",
+ "vite-plugin-static-copy": "^1.0.5",
"vue-tsc": "^2.0.6"
}
}
diff --git a/front/src/assets/promo/bg_0.jpg b/front/src/assets/promo/bg/bg_0.jpg
similarity index 100%
rename from front/src/assets/promo/bg_0.jpg
rename to front/src/assets/promo/bg/bg_0.jpg
diff --git a/front/src/assets/promo/bg_1.jpg b/front/src/assets/promo/bg/bg_1.jpg
similarity index 100%
rename from front/src/assets/promo/bg_1.jpg
rename to front/src/assets/promo/bg/bg_1.jpg
diff --git a/front/src/assets/promo/bg_10.jpg b/front/src/assets/promo/bg/bg_10.jpg
similarity index 100%
rename from front/src/assets/promo/bg_10.jpg
rename to front/src/assets/promo/bg/bg_10.jpg
diff --git a/front/src/assets/promo/bg_11.jpg b/front/src/assets/promo/bg/bg_11.jpg
similarity index 100%
rename from front/src/assets/promo/bg_11.jpg
rename to front/src/assets/promo/bg/bg_11.jpg
diff --git a/front/src/assets/promo/bg_12.jpg b/front/src/assets/promo/bg/bg_12.jpg
similarity index 100%
rename from front/src/assets/promo/bg_12.jpg
rename to front/src/assets/promo/bg/bg_12.jpg
diff --git a/front/src/assets/promo/bg_13.jpg b/front/src/assets/promo/bg/bg_13.jpg
similarity index 100%
rename from front/src/assets/promo/bg_13.jpg
rename to front/src/assets/promo/bg/bg_13.jpg
diff --git a/front/src/assets/promo/bg_14.jpg b/front/src/assets/promo/bg/bg_14.jpg
similarity index 100%
rename from front/src/assets/promo/bg_14.jpg
rename to front/src/assets/promo/bg/bg_14.jpg
diff --git a/front/src/assets/promo/bg_15.jpg b/front/src/assets/promo/bg/bg_15.jpg
similarity index 100%
rename from front/src/assets/promo/bg_15.jpg
rename to front/src/assets/promo/bg/bg_15.jpg
diff --git a/front/src/assets/promo/bg_16.jpg b/front/src/assets/promo/bg/bg_16.jpg
similarity index 100%
rename from front/src/assets/promo/bg_16.jpg
rename to front/src/assets/promo/bg/bg_16.jpg
diff --git a/front/src/assets/promo/bg_17.jpg b/front/src/assets/promo/bg/bg_17.jpg
similarity index 100%
rename from front/src/assets/promo/bg_17.jpg
rename to front/src/assets/promo/bg/bg_17.jpg
diff --git a/front/src/assets/promo/bg_2.jpg b/front/src/assets/promo/bg/bg_2.jpg
similarity index 100%
rename from front/src/assets/promo/bg_2.jpg
rename to front/src/assets/promo/bg/bg_2.jpg
diff --git a/front/src/assets/promo/bg_3.jpg b/front/src/assets/promo/bg/bg_3.jpg
similarity index 100%
rename from front/src/assets/promo/bg_3.jpg
rename to front/src/assets/promo/bg/bg_3.jpg
diff --git a/front/src/assets/promo/bg_4.jpg b/front/src/assets/promo/bg/bg_4.jpg
similarity index 100%
rename from front/src/assets/promo/bg_4.jpg
rename to front/src/assets/promo/bg/bg_4.jpg
diff --git a/front/src/assets/promo/bg_5.jpg b/front/src/assets/promo/bg/bg_5.jpg
similarity index 100%
rename from front/src/assets/promo/bg_5.jpg
rename to front/src/assets/promo/bg/bg_5.jpg
diff --git a/front/src/assets/promo/bg_6.jpg b/front/src/assets/promo/bg/bg_6.jpg
similarity index 100%
rename from front/src/assets/promo/bg_6.jpg
rename to front/src/assets/promo/bg/bg_6.jpg
diff --git a/front/src/assets/promo/bg_7.jpg b/front/src/assets/promo/bg/bg_7.jpg
similarity index 100%
rename from front/src/assets/promo/bg_7.jpg
rename to front/src/assets/promo/bg/bg_7.jpg
diff --git a/front/src/assets/promo/bg_8.jpg b/front/src/assets/promo/bg/bg_8.jpg
similarity index 100%
rename from front/src/assets/promo/bg_8.jpg
rename to front/src/assets/promo/bg/bg_8.jpg
diff --git a/front/src/assets/promo/bg_9.jpg b/front/src/assets/promo/bg/bg_9.jpg
similarity index 100%
rename from front/src/assets/promo/bg_9.jpg
rename to front/src/assets/promo/bg/bg_9.jpg
diff --git a/front/src/assets/promo/models/quadro/Floor_diffuse.jpg b/front/src/assets/promo/models/quadro/Floor_diffuse.jpg
new file mode 100644
index 0000000..c5c50be
Binary files /dev/null and b/front/src/assets/promo/models/quadro/Floor_diffuse.jpg differ
diff --git a/front/src/assets/promo/models/quadro/Perforated_alpha.jpg b/front/src/assets/promo/models/quadro/Perforated_alpha.jpg
new file mode 100644
index 0000000..5375f56
Binary files /dev/null and b/front/src/assets/promo/models/quadro/Perforated_alpha.jpg differ
diff --git a/front/src/assets/promo/models/quadro/Perforated_normal.jpg b/front/src/assets/promo/models/quadro/Perforated_normal.jpg
new file mode 100644
index 0000000..aab8634
Binary files /dev/null and b/front/src/assets/promo/models/quadro/Perforated_normal.jpg differ
diff --git a/front/src/assets/promo/models/quadro/Perforated_roughness.jpg b/front/src/assets/promo/models/quadro/Perforated_roughness.jpg
new file mode 100644
index 0000000..a5e270a
Binary files /dev/null and b/front/src/assets/promo/models/quadro/Perforated_roughness.jpg differ
diff --git a/front/src/assets/promo/models/quadro/Sky_emission.jpg b/front/src/assets/promo/models/quadro/Sky_emission.jpg
new file mode 100644
index 0000000..563e7b4
Binary files /dev/null and b/front/src/assets/promo/models/quadro/Sky_emission.jpg differ
diff --git a/front/src/assets/promo/models/quadro/Wood_diffuse.jpg b/front/src/assets/promo/models/quadro/Wood_diffuse.jpg
new file mode 100644
index 0000000..777caee
Binary files /dev/null and b/front/src/assets/promo/models/quadro/Wood_diffuse.jpg differ
diff --git a/front/src/assets/promo/models/quadro/Wood_roughness.jpg b/front/src/assets/promo/models/quadro/Wood_roughness.jpg
new file mode 100644
index 0000000..95d1d0b
Binary files /dev/null and b/front/src/assets/promo/models/quadro/Wood_roughness.jpg differ
diff --git a/front/src/assets/promo/models/quadro/net_alpha.jpg b/front/src/assets/promo/models/quadro/net_alpha.jpg
new file mode 100644
index 0000000..5ad1dc0
Binary files /dev/null and b/front/src/assets/promo/models/quadro/net_alpha.jpg differ
diff --git a/front/src/assets/promo/models/quadro/net_normal.jpg b/front/src/assets/promo/models/quadro/net_normal.jpg
new file mode 100644
index 0000000..48169ac
Binary files /dev/null and b/front/src/assets/promo/models/quadro/net_normal.jpg differ
diff --git a/front/src/assets/promo/models/quadro/privetandrey_diffuse.jpg b/front/src/assets/promo/models/quadro/privetandrey_diffuse.jpg
new file mode 100644
index 0000000..0c21f52
Binary files /dev/null and b/front/src/assets/promo/models/quadro/privetandrey_diffuse.jpg differ
diff --git a/front/src/assets/promo/models/quadro/scene.fbx b/front/src/assets/promo/models/quadro/scene.fbx
new file mode 100644
index 0000000..66a963a
Binary files /dev/null and b/front/src/assets/promo/models/quadro/scene.fbx differ
diff --git a/front/src/assets/promo/models/quadro/solar_basecolor.jpg b/front/src/assets/promo/models/quadro/solar_basecolor.jpg
new file mode 100644
index 0000000..174b3ca
Binary files /dev/null and b/front/src/assets/promo/models/quadro/solar_basecolor.jpg differ
diff --git a/front/src/assets/promo/models/quadro/solar_metallic.jpg b/front/src/assets/promo/models/quadro/solar_metallic.jpg
new file mode 100644
index 0000000..80e7bc3
Binary files /dev/null and b/front/src/assets/promo/models/quadro/solar_metallic.jpg differ
diff --git a/front/src/assets/promo/models/quadro/solar_normal.jpg b/front/src/assets/promo/models/quadro/solar_normal.jpg
new file mode 100644
index 0000000..94fced6
Binary files /dev/null and b/front/src/assets/promo/models/quadro/solar_normal.jpg differ
diff --git a/front/src/assets/promo/models/quadro/solar_roughness.jpg b/front/src/assets/promo/models/quadro/solar_roughness.jpg
new file mode 100644
index 0000000..3f0b16a
Binary files /dev/null and b/front/src/assets/promo/models/quadro/solar_roughness.jpg differ
diff --git a/front/src/components/Promo/gallery.vue b/front/src/components/Promo/gallery.vue
index c842333..df7402e 100644
--- a/front/src/components/Promo/gallery.vue
+++ b/front/src/components/Promo/gallery.vue
@@ -2,7 +2,7 @@
import * as d3 from "d3";
import { onMounted } from "vue";
-const componentFiles = import.meta.glob('../../assets/promo/bg_*.jpg', { eager: true })
+const componentFiles = import.meta.glob('../../assets/promo/bg/bg_*.jpg', { eager: true })
const componentFilesEntries = Object.entries(componentFiles);
onMounted(() => {
diff --git a/front/src/components/Promo/main.vue b/front/src/components/Promo/main.vue
index 861e5e3..a23935e 100644
--- a/front/src/components/Promo/main.vue
+++ b/front/src/components/Promo/main.vue
@@ -8,6 +8,12 @@ import { Vector3 } from 'three';
import modelUrl from '../../assets/promo/models/sea_fbx/source/Stronghold.fbx'
import jeepUrl from '../../assets/promo/models/jeep.fbx'
+import quadroUrl from '../../assets/promo/models/quadro/scene.fbx'
+// const img = import.meta.glob('../../assets/promo/models/quadro/*.jpg')
+// Object.keys(img).forEach(element => {
+// import(element)
+// });
+
import audioUrl from '../../assets/promo/sounds/sea.ogg'
const router = useRouter()
@@ -76,7 +82,7 @@ onLoop(() => {
-
+
diff --git a/front/vite.config.ts b/front/vite.config.ts
index fb740cc..c3dabac 100644
--- a/front/vite.config.ts
+++ b/front/vite.config.ts
@@ -5,6 +5,7 @@ import IconsResolver from 'unplugin-icons/resolver'
import Icons from 'unplugin-icons/vite'
import svgLoader from 'vite-svg-loader';
import { templateCompilerOptions } from '@tresjs/core'
+import { viteStaticCopy } from 'vite-plugin-static-copy'
// https://vitejs.dev/config/
export default defineConfig({
@@ -19,6 +20,14 @@ export default defineConfig({
}),
Icons(),
svgLoader(),
+ viteStaticCopy({
+ targets: [
+ {
+ src: 'src/assets/promo/models/quadro/*.jpg',
+ dest: 'assets'
+ }
+ ]
+ })
],
assetsInclude: ['**/*.fbx', '**/*.gltf'],
})