From 65f54695d7f8a32d31bff7330beb94f06037b1e2 Mon Sep 17 00:00:00 2001 From: Kseninia Mikhaylova Date: Mon, 22 Jul 2024 15:51:21 +0300 Subject: [PATCH] front part --- back/api/urls.py | 2 + back/tgbot/pagination.py | 1 + back/tmc/serializers.py | 13 +- back/tmc/views.py | 26 +- front/assets/main.scss | 10 + front/components/getImage.vue | 20 +- front/nuxt.config.ts | 6 +- front/package-lock.json | 551 +++++++++++++++++++++++++++++++++- front/package.json | 1 + front/pages/table/[id].vue | 56 ++++ front/pages/table/index.vue | 4 +- 11 files changed, 666 insertions(+), 24 deletions(-) create mode 100644 front/pages/table/[id].vue diff --git a/back/api/urls.py b/back/api/urls.py index f9e2300..f4a5030 100644 --- a/back/api/urls.py +++ b/back/api/urls.py @@ -28,6 +28,8 @@ router.register(r'api/partner', views.PartnerViewSet) router.register(r'api/element', views.ElementViewSet) router.register(r'api/inventory', views.InventoryItemViewSet) router.register(r'api/tmc/fields', tmc_views.BaseCustomFieldViewSet) +router.register(r'api/tmc/ter', tmc_views.TerritoryViewSet) +router.register(r'api/tmc/terdeep', tmc_views.TerritoryItemViewSet) router.register(r'api/tmc/items', tmc_views.CustomTableViewSet) router.register(r'api/tgbot', tgbot_views.TgItemViewSet) router.register(r'api/tgbot/items', tgbot_views.TmcFieldViewset) diff --git a/back/tgbot/pagination.py b/back/tgbot/pagination.py index 1e1aecb..57408b9 100644 --- a/back/tgbot/pagination.py +++ b/back/tgbot/pagination.py @@ -2,6 +2,7 @@ from rest_framework import pagination from rest_framework.response import Response class CustomPagination(pagination.PageNumberPagination): + page_size_query_param = 'size' def get_paginated_response(self, data): return Response({ 'count': self.page.paginator.count, diff --git a/back/tmc/serializers.py b/back/tmc/serializers.py index c322f57..8ae2e16 100644 --- a/back/tmc/serializers.py +++ b/back/tmc/serializers.py @@ -1,6 +1,6 @@ from rest_framework import serializers -from .models import BaseCustomField, CustomTable +from .models import BaseCustomField, CustomTable, Territory, TerritoryItem import logging logger = logging.getLogger("root") @@ -17,3 +17,14 @@ class CustomTableSerializer(serializers.ModelSerializer): model = CustomTable depth = 1 fields = "__all__" + +class TerritoryItemSerializer(serializers.ModelSerializer): + class Meta: + model = TerritoryItem + fields = "__all__" + +class TerritorySerializer(serializers.ModelSerializer): + class Meta: + model = Territory + fields = "__all__" + diff --git a/back/tmc/views.py b/back/tmc/views.py index d14d3ad..0660d5e 100644 --- a/back/tmc/views.py +++ b/back/tmc/views.py @@ -2,13 +2,31 @@ from django.shortcuts import render from rest_framework import viewsets -from .models import BaseCustomField, CustomTable -from .serializers import BaseCustomFieldSerializer, CustomTableSerializer +from .models import BaseCustomField, CustomTable, Territory, TerritoryItem +from .serializers import ( + BaseCustomFieldSerializer, + CustomTableSerializer, + TerritoryItemSerializer, + TerritorySerializer, +) + class BaseCustomFieldViewSet(viewsets.ModelViewSet): queryset = BaseCustomField.objects.all() serializer_class = BaseCustomFieldSerializer - + + class CustomTableViewSet(viewsets.ModelViewSet): queryset = CustomTable.objects.all() - serializer_class = CustomTableSerializer \ No newline at end of file + serializer_class = CustomTableSerializer + + +class TerritoryItemViewSet(viewsets.ModelViewSet): + page_size_query_param = 'size' + queryset = TerritoryItem.objects.all() + serializer_class = TerritoryItemSerializer + + +class TerritoryViewSet(viewsets.ModelViewSet): + queryset = Territory.objects.all() + serializer_class = TerritorySerializer diff --git a/front/assets/main.scss b/front/assets/main.scss index 381db1a..c910f63 100644 --- a/front/assets/main.scss +++ b/front/assets/main.scss @@ -3,6 +3,11 @@ @tailwind utilities; @layer base { + a[href*='/']:not([class]), + a[href*='/'][class=""] { + @apply text-primary hover:underline; + } + h1 { @apply text-2xl; } @@ -21,8 +26,10 @@ .header { @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-2xl; + svg { @apply text-3xl inline-block; } @@ -43,11 +50,14 @@ dl { @apply grid grid-cols-12; + dt { @apply col-span-full } + dd { @apply col-span-full col-start-2; + &:last-of-type { @apply mb-2 } diff --git a/front/components/getImage.vue b/front/components/getImage.vue index 25a1635..405ee87 100644 --- a/front/components/getImage.vue +++ b/front/components/getImage.vue @@ -1,7 +1,7 @@