diff --git a/back/api/settings.py b/back/api/settings.py
index 9f6fc10..6c77a83 100644
--- a/back/api/settings.py
+++ b/back/api/settings.py
@@ -58,6 +58,7 @@ INSTALLED_APPS = [
"django.contrib.messages",
"django.contrib.staticfiles",
"tmc",
+ "djangoviz",
]
MIDDLEWARE = [
diff --git a/back/poetry.lock b/back/poetry.lock
index 7e286dd..ec9d46e 100644
--- a/back/poetry.lock
+++ b/back/poetry.lock
@@ -246,6 +246,34 @@ files = [
[package.dependencies]
django = ">=4.2"
+[[package]]
+name = "djangoviz"
+version = "0.1.1"
+description = "A visualization tool."
+optional = false
+python-versions = ">=3.6.0"
+files = [
+ {file = "djangoviz-0.1.1-py3-none-any.whl", hash = "sha256:2a5ec1a25d94607c898f9236f0f1c72fbaf83e4ac818e38b205d6976e805ad8d"},
+ {file = "djangoviz-0.1.1.tar.gz", hash = "sha256:028970923d8d65e210dc10ab80a51e3e69169cc06894c45b8b14554f12aec06c"},
+]
+
+[package.dependencies]
+django = ">=2.2.0"
+graphqlclient = ">=0.2.0"
+
+[[package]]
+name = "graphqlclient"
+version = "0.2.4"
+description = "Simple GraphQL client for Python 2.7+"
+optional = false
+python-versions = "*"
+files = [
+ {file = "graphqlclient-0.2.4.tar.gz", hash = "sha256:b3305f3df88c04839195754d409a49a2dc3adbcba4ebf9133b5663749e1dd92c"},
+]
+
+[package.dependencies]
+six = "*"
+
[[package]]
name = "h11"
version = "0.14.0"
@@ -742,4 +770,4 @@ zstd = ["zstandard (>=0.18.0)"]
[metadata]
lock-version = "2.0"
python-versions = "^3.11"
-content-hash = "55d9caf79405dd626d2ca38e6603af8bd7fbf754a8b86ba7f03a43b03a13b932"
+content-hash = "e032592fbe04dbdaffbb40512f6dfa13bcd6f0673c9923e79ba0d852205e2c19"
diff --git a/back/pyproject.toml b/back/pyproject.toml
index 1545bc8..f539f8f 100644
--- a/back/pyproject.toml
+++ b/back/pyproject.toml
@@ -18,6 +18,7 @@ requests = "^2.32.2"
django-cors-headers = "^4.3.1"
python-telegram-bot = {extras = ["job-queue"], version = "^21.3"}
more-itertools = "^10.3.0"
+djangoviz = "^0.1.1"
[tool.poetry.group.dev.dependencies]
taskipy = "^1.12.2"
diff --git a/back/tmc/models.py b/back/tmc/models.py
index a042e75..f2868f2 100644
--- a/back/tmc/models.py
+++ b/back/tmc/models.py
@@ -3,12 +3,8 @@ from django.db import models
class BaseCustomField(models.Model):
name = models.CharField(max_length=120, )
- text = models.TextField(null=True, blank=True)
- scan = models.TextField(null=True, blank=True)
comment = models.TextField(null=True, blank=True)
- Image = models.ImageField(upload_to='images/', blank=True, null=True)
-
def __str__(self):
return self.name
diff --git a/front/assets/main.scss b/front/assets/main.scss
index d052622..b169770 100644
--- a/front/assets/main.scss
+++ b/front/assets/main.scss
@@ -16,7 +16,7 @@
}
a[href]:not([class*=text]) {
- @apply text-primary-500 hover:text-primary-600
+ // @apply text-primary-500 hover:text-primary-600
}
.container {
@@ -24,10 +24,9 @@
}
.header {
- @apply col-span-12 flex gap-2 p-2.5;
-
+ @apply col-span-12 flex gap-2 p-2.5 border-b border-primary-700 bg-gradient-to-l from-primary-700;
.logo {
- @apply text-primary text-2xl
+ @apply text-2xl;
}
}
@@ -39,6 +38,10 @@
@apply col-span-10
}
+ .page-header {
+ @apply border-b border-primary-200 dark:border-primary-950 py-4 bg-gradient-to-l from-primary-200 dark:from-primary-950;
+ }
+
dl {
@apply grid grid-cols-12;
dt {
diff --git a/front/components/sidebar.vue b/front/components/sidebar.vue
index e3f260f..1989676 100644
--- a/front/components/sidebar.vue
+++ b/front/components/sidebar.vue
@@ -3,18 +3,18 @@ const route = useRoute()
const links = [
{
- label: 'Организации',
- icon: 'i-heroicons-archive-box',
+ label: 'DEV Связь с 1с',
+ icon: 'i-heroicons-beaker',
to: '/organization'
},
{
- label: 'TMC',
+ label: 'Список ТМЦ (шаблоны)',
icon: 'i-heroicons-archive-box',
to: '/tmc'
},
{
- label: 'Tablr',
- icon: 'i-heroicons-archive-box',
+ label: 'Инвентаризации',
+ icon: 'i-heroicons-pencil',
to: '/table'
}
]
diff --git a/front/nuxt.config.ts b/front/nuxt.config.ts
index 3f65c32..e44cbb5 100644
--- a/front/nuxt.config.ts
+++ b/front/nuxt.config.ts
@@ -2,7 +2,11 @@
export default defineNuxtConfig({
ssr: false,
devtools: { enabled: true },
- modules: ["@nuxt/ui", "nuxt-svgo"],
+ modules: [
+ "@nuxt/ui",
+ "nuxt-svgo",
+ "@pinia/nuxt",
+ ],
runtimeConfig: {
public: {
apiBase: '/api',
diff --git a/front/package-lock.json b/front/package-lock.json
index ca4ede3..32ab316 100644
--- a/front/package-lock.json
+++ b/front/package-lock.json
@@ -8,8 +8,10 @@
"hasInstallScript": true,
"dependencies": {
"@nuxt/ui": "^2.16.0",
+ "@pinia/nuxt": "^0.5.1",
"nuxt": "^3.11.2",
"nuxt-svgo": "^4.0.1",
+ "pinia": "^2.1.7",
"vue": "^3.4.27",
"vue-router": "^4.3.2",
"yup": "^1.4.0"
@@ -2553,6 +2555,18 @@
"node": ">=0.10"
}
},
+ "node_modules/@pinia/nuxt": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/@pinia/nuxt/-/nuxt-0.5.1.tgz",
+ "integrity": "sha512-6wT6TqY81n+7/x3Yhf0yfaJVKkZU42AGqOR0T3+UvChcaOJhSma7OWPN64v+ptYlznat+fS1VTwNAcbi2lzHnw==",
+ "dependencies": {
+ "@nuxt/kit": "^3.5.0",
+ "pinia": ">=2.1.7"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/posva"
+ }
+ },
"node_modules/@pkgjs/parseargs": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
@@ -8863,6 +8877,56 @@
"node": ">=0.10.0"
}
},
+ "node_modules/pinia": {
+ "version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.1.7.tgz",
+ "integrity": "sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==",
+ "dependencies": {
+ "@vue/devtools-api": "^6.5.0",
+ "vue-demi": ">=0.14.5"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/posva"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.4.0",
+ "typescript": ">=4.4.4",
+ "vue": "^2.6.14 || ^3.3.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ },
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/pinia/node_modules/vue-demi": {
+ "version": "0.14.8",
+ "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz",
+ "integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==",
+ "hasInstallScript": true,
+ "bin": {
+ "vue-demi-fix": "bin/vue-demi-fix.js",
+ "vue-demi-switch": "bin/vue-demi-switch.js"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.0.0-rc.1",
+ "vue": "^3.0.0-0 || ^2.6.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ }
+ }
+ },
"node_modules/pirates": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
@@ -12119,9 +12183,9 @@
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
},
"node_modules/ws": {
- "version": "8.17.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz",
- "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==",
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
+ "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
"engines": {
"node": ">=10.0.0"
},
diff --git a/front/package.json b/front/package.json
index 9f1dccf..2e12b11 100644
--- a/front/package.json
+++ b/front/package.json
@@ -11,8 +11,10 @@
},
"dependencies": {
"@nuxt/ui": "^2.16.0",
+ "@pinia/nuxt": "^0.5.1",
"nuxt": "^3.11.2",
"nuxt-svgo": "^4.0.1",
+ "pinia": "^2.1.7",
"vue": "^3.4.27",
"vue-router": "^4.3.2",
"yup": "^1.4.0"
diff --git a/front/pages/table/index.vue b/front/pages/table/index.vue
index c648c93..2176920 100644
--- a/front/pages/table/index.vue
+++ b/front/pages/table/index.vue
@@ -1,11 +1,7 @@
-
-
- Создано: {{ new Date(row.created_at).toLocaleString('ru-RU') }}
- Обновлено: {{ new Date(row.updated_at).toLocaleString('ru-RU') }}
-
-
-
- {{ item.tmc.name }}
-
- -
- {{ el.field.name }}
-
-
-
+
+
+
+
+ Создано: {{ new Date(row.created_at).toLocaleString('ru-RU') }}
+ Обновлено: {{ new Date(row.updated_at).toLocaleString('ru-RU') }}
-
-
+
+
+ {{ item.tmc.name }}
+
+ -
+ {{ el.field.name }}
+
+
+
+
+
+
+