Merge branch 'feature/gm-192' into feature/gm-148

This commit is contained in:
evgeniy-st 2019-10-15 18:33:44 +03:00
commit c268575a04
16 changed files with 37 additions and 377 deletions

View File

@ -79,18 +79,3 @@ class MenuAdmin(admin.ModelAdmin):
return obj.category_translated return obj.category_translated
category_translated.short_description = _('category') category_translated.short_description = _('category')
#
# @admin.register(models.EstablishmentTypeTagCategory)
# class EstablishmentTypeTagCategoryAdmin(admin.ModelAdmin):
# """EstablishmentTypeTagCategory admin."""
#
#
# @admin.register(models.EstablishmentSubTypeTagCategory)
# class EstablishmentSubTypeTagCategoryAdmin(admin.ModelAdmin):
# """EstablishmentTypeTagCategory admin."""
#
#
# @admin.register(models.EstablishmentTag)
# class EstablishmentTagAdmin(admin.ModelAdmin):
# """EstablishmentTag admin."""

View File

@ -17,29 +17,11 @@ from phonenumber_field.modelfields import PhoneNumberField
from collection.models import Collection from collection.models import Collection
from location.models import Address from location.models import Address
from main.models import Award from main.models import Award
from tag.models import Tag, TagCategory
from review.models import Review from review.models import Review
from utils.models import (ProjectBaseMixin, TJSONField, URLImageMixin, from utils.models import (ProjectBaseMixin, TJSONField, URLImageMixin,
TranslatedFieldsMixin, BaseAttributes) TranslatedFieldsMixin, BaseAttributes)
class EstablishmentTypeQuerySet(models.QuerySet):
"""QuerySet for model EstablishmentType."""
def with_base_related(self):
"""Return QuerySet with base related."""
return self
# return self.prefetch_related(
# models.Prefetch('tag_categories',
# EstablishmentTypeTagCategory.objects.select_related('tag_category')),
# models.Prefetch('establishmentsubtype_set',
# EstablishmentSubType.objects.prefetch_related(
# models.Prefetch(
# 'tag_categories',
# EstablishmentSubTypeTagCategory.objects.select_related('tag_category'))))
# )
# todo: establishment type&subtypes check # todo: establishment type&subtypes check
class EstablishmentType(TranslatedFieldsMixin, ProjectBaseMixin): class EstablishmentType(TranslatedFieldsMixin, ProjectBaseMixin):
"""Establishment type model.""" """Establishment type model."""
@ -53,8 +35,6 @@ class EstablishmentType(TranslatedFieldsMixin, ProjectBaseMixin):
related_name='establishment_types', related_name='establishment_types',
verbose_name=_('Tag')) verbose_name=_('Tag'))
objects = EstablishmentTypeQuerySet.as_manager()
class Meta: class Meta:
"""Meta class.""" """Meta class."""
@ -102,15 +82,8 @@ class EstablishmentQuerySet(models.QuerySet):
def with_base_related(self): def with_base_related(self):
"""Return qs with related objects.""" """Return qs with related objects."""
return self return self.select_related('address', 'establishment_type').\
# return self.select_related('address', 'establishment_type').prefetch_related( prefetch_related('tags')
# models.Prefetch('tags',
# EstablishmentTag.objects.select_related('tag')),
# models.Prefetch('establishment_type__tag_categories',
# EstablishmentTypeTagCategory.objects.select_related('tag_category')),
# models.Prefetch('establishment_type__establishmentsubtype_set',
# EstablishmentSubType.objects.prefetch_related('tag_categories')),
# )
def with_extended_related(self): def with_extended_related(self):
return self.select_related('establishment_type').\ return self.select_related('establishment_type').\
@ -588,81 +561,3 @@ class SocialNetwork(models.Model):
def __str__(self): def __str__(self):
return self.title return self.title
#
# class EstablishmentTagQuerySet(models.QuerySet):
# """Establishment tag QuerySet."""
#
# def by_country_code(self, code):
# """Return establishment tags by establishment country code."""
# return self.filter(establishment__address__city__country__code=code)
#
# class EstablishmentTag(models.Model):
# """Establishment tag model."""
# tag = models.ForeignKey('tag.Tag',
# on_delete=models.CASCADE,
# related_name='tags',
# verbose_name=_('tag'))
# establishment = models.ForeignKey('establishment.Establishment',
# on_delete=models.CASCADE,
# related_name='tags',
# verbose_name=_('establishment'))
# objects = EstablishmentTagQuerySet.as_manager()
#
# class Meta:
# verbose_name = _('establishment tag')
# verbose_name_plural = _('establishment tags')
#
#
# class EstablishmentTypeTagCategoryQuerySet(models.QuerySet):
# """EstablishmentTypeTagCategory QuerySet."""
#
# def by_country_code(self, code):
# """Return establishment tags by country code"""
# return self.filter(tag_category__country__code=code)
#
# def with_base_related(self):
# """Return with related relations."""
# return self.select_related('establishment_type', 'tag_category')
#
#
# class EstablishmentTypeTagCategory(models.Model):
# """Tag categories based on establishment type."""
# establishment_type = models.ForeignKey(EstablishmentType,
# on_delete=models.CASCADE,
# related_name='tag_categories',
# verbose_name=_('establishment type'))
# tag_category = models.ForeignKey('tag.TagCategory',
# on_delete=models.CASCADE,
# related_name='est_type_tag_categories',
# verbose_name=_('tag category'))
# objects = EstablishmentTypeTagCategoryQuerySet.as_manager()
#
# class Meta:
# verbose_name = _('establishment type tag categories')
# verbose_name_plural = _('establishment type tag categories')
#
#
# class EstablishmentSubTypeTagCategoryQuerySet(models.QuerySet):
# """QuerySet for tag categories based on establishment subtype."""
#
# def with_base_related(self):
# """Return queryset with base related."""
# return self.select_related('establishment_subtype', 'tag_category')
#
#
# class EstablishmentSubTypeTagCategory(models.Model):
# """Tag categories based on establishment subtype."""
# establishment_subtype = models.ForeignKey(EstablishmentSubType,
# on_delete=models.CASCADE,
# related_name='tag_categories',
# verbose_name=_('establishment subtype'))
# tag_category = models.ForeignKey('tag.TagCategory',
# on_delete=models.CASCADE,
# related_name='est_subtype_tag_categories',
# verbose_name=_('tag category'))
# objects = EstablishmentSubTypeTagCategoryQuerySet.as_manager()
#
# class Meta:
# verbose_name = _('establishment subtype tag categories')
# verbose_name_plural = _('establishment subtype tag categories')

View File

@ -1,16 +1,12 @@
from django.utils.translation import gettext_lazy as _
from rest_framework import serializers from rest_framework import serializers
from establishment import models from establishment import models
from establishment.serializers import ( from establishment.serializers import (
EstablishmentBaseSerializer, PlateSerializer, ContactEmailsSerializer, EstablishmentBaseSerializer, PlateSerializer, ContactEmailsSerializer,
ContactPhonesSerializer, SocialNetworkRelatedSerializers, ContactPhonesSerializer, SocialNetworkRelatedSerializers,
EstablishmentTypeBaseSerializer, EstablishmentSubTypeBaseSerializer) EstablishmentTypeBaseSerializer)
# EstablishmentTypeTagCategoryBaseSerializer)
from main.models import Currency from main.models import Currency
from tag.serializers import TagBaseSerializer
from utils.decorators import with_base_attributes from utils.decorators import with_base_attributes
from utils.serializers import TranslatedField
class EstablishmentListCreateSerializer(EstablishmentBaseSerializer): class EstablishmentListCreateSerializer(EstablishmentBaseSerializer):
@ -144,96 +140,3 @@ class EmployeeBackSerializers(serializers.ModelSerializer):
'user', 'user',
'name' 'name'
] ]
# class EstablishmentTagCreateSerializer(serializers.ModelSerializer):
# """Serializer for model EstablishmentTag."""
# class Meta:
# model = models.EstablishmentTag
# fields = [
# 'tag',
# 'establishment'
# ]
# extra_kwargs = {
# 'tag': {'write_only': True},
# 'establishment': {'write_only': True},
# }
#
# def validate(self, attrs):
# """Validate method."""
# establishment = attrs.get('establishment')
# tag = attrs.get('tag')
#
# # Check if tag is already added to establishment.
# if establishment.tags.filter(tag=tag).exists():
# raise serializers.ValidationError(detail={'detail': _('Tag is already added.')})
#
# # Сhecking tag availability for establishment type.
# if not establishment.establishment_type.use_subtypes:
# qs = establishment.establishment_type.tag_categories.filter(tag_category=tag.category)
# else:
# # Сhecking tag availability for establishment subtype.
# qs = establishment.establishment_type.tag_categories.filter(
# establishmentsubtype_set__tag_category=tag.category)
# if not qs.exists():
# raise serializers.ValidationError(
# detail={'detail': _('Tag is not available for this establishment type|subtype.')})
# return attrs
# class EstablishmentSubTypeTagCategoryBaseSerializer(serializers.ModelSerializer):
# """Serializer for intermediate model EstablishmentSubTypeTagCategories."""
# id = serializers.IntegerField(source='tag_category.id', read_only=True)
# label_translated = TranslatedField(source='tag_category.label_translated')
# tags = TagBaseSerializer(source='tag_category.tags', many=True, read_only=True)
#
# class Meta:
# """Meta class."""
# model = models.EstablishmentSubTypeTagCategory
# fields = [
# 'id',
# 'label_translated',
# 'tags',
# 'establishment_subtype',
# 'tag_category',
# ]
# extra_kwargs = {
# 'establishment_subtype': {'write_only': True},
# 'tag_category': {'write_only': True},
# }
#
# def validate(self, attrs):
# """Override validate method."""
# if models.EstablishmentTypeTagCategory.objects.filter(
# establishment_type=attrs.get('establishment_type'),
# tag_category=attrs.get('tag_category')).exists():
# raise serializers.ValidationError(detail={'detail': _('Objects is already attached.')})
# return attrs
#
#
# class EstablishmentSubTypeSerializer(EstablishmentSubTypeBaseSerializer):
# """Extended serializer for EstablishmentSubType model with tags."""
# tag_categories = EstablishmentSubTypeTagCategoryBaseSerializer(many=True, read_only=True)
#
# class Meta(EstablishmentSubTypeBaseSerializer.Meta):
# """Meta class"""
# fields = [
# 'id',
# 'name_translated',
# 'tag_categories'
# ]
#
#
# class EstablishmentTagsByType(EstablishmentTypeBaseSerializer):
# """Tags by establishment type"""
# tag_categories = EstablishmentTypeTagCategoryBaseSerializer(many=True)
# subtypes = EstablishmentSubTypeSerializer(many=True, source='establishmentsubtype_set')
#
# class Meta(EstablishmentTypeBaseSerializer.Meta):
# """Meta class."""
# fields = [
# 'id',
# 'name_translated',
# 'tag_categories',
# 'subtypes',
# ]

View File

@ -139,36 +139,6 @@ class EstablishmentSubTypeBaseSerializer(serializers.ModelSerializer):
} }
# class EstablishmentTypeTagCategoryBaseSerializer(serializers.ModelSerializer):
# """Serializer for intermediate model EstablishmentTypeTagCategories."""
# id = serializers.IntegerField(source='tag_category.id', read_only=True)
# label_translated = TranslatedField(source='tag_category.label_translated')
# tags = TagBaseSerializer(source='tag_category.tags', many=True, read_only=True)
#
# class Meta:
# """Meta class."""
# model = models.EstablishmentTypeTagCategory
# fields = [
# 'id',
# 'label_translated',
# 'tags',
# 'establishment_type',
# 'tag_category',
# ]
# extra_kwargs = {
# 'establishment_type': {'write_only': True},
# 'tag_category': {'write_only': True},
# }
#
# def validate(self, attrs):
# """Override validate method."""
# if models.EstablishmentTypeTagCategory.objects.filter(
# establishment_type=attrs.get('establishment_type'),
# tag_category=attrs.get('tag_category')).exists():
# raise serializers.ValidationError(detail={'detail': _('Objects is already attached.')})
# return attrs
class EstablishmentEmployeeSerializer(serializers.ModelSerializer): class EstablishmentEmployeeSerializer(serializers.ModelSerializer):
"""Serializer for actual employees.""" """Serializer for actual employees."""
@ -184,20 +154,6 @@ class EstablishmentEmployeeSerializer(serializers.ModelSerializer):
model = models.Employee model = models.Employee
fields = ('id', 'name', 'position_translated', 'awards', 'priority') fields = ('id', 'name', 'position_translated', 'awards', 'priority')
#
# class EstablishmentTagSerializer(serializers.ModelSerializer):
# """Serializer for intermediate model EstablishmentTag."""
# id = serializers.IntegerField(source='tag.id')
# label_translated = serializers.CharField(source='tag.label_translated')
#
# class Meta:
# """Meta class."""
# model = models.EstablishmentTag
# fields = [
# 'id',
# 'label_translated'
# ]
class EstablishmentBaseSerializer(ProjectModelSerializer): class EstablishmentBaseSerializer(ProjectModelSerializer):
"""Base serializer for Establishment model.""" """Base serializer for Establishment model."""

View File

@ -14,7 +14,6 @@ urlpatterns = [
name='schedule-rud'), name='schedule-rud'),
path('<int:pk>/schedule/', views.EstablishmentScheduleCreateView.as_view(), path('<int:pk>/schedule/', views.EstablishmentScheduleCreateView.as_view(),
name='schedule-create'), name='schedule-create'),
# path('attach-tag/', views.EstablishmentTagCreateView.as_view(), name='attach-tag'),
path('menus/', views.MenuListCreateView.as_view(), name='menu-list'), path('menus/', views.MenuListCreateView.as_view(), name='menu-list'),
path('menus/<int:pk>/', views.MenuRUDView.as_view(), name='menu-rud'), path('menus/<int:pk>/', views.MenuRUDView.as_view(), name='menu-rud'),
path('plates/', views.PlateListCreateView.as_view(), name='plates'), path('plates/', views.PlateListCreateView.as_view(), name='plates'),
@ -28,12 +27,7 @@ urlpatterns = [
path('employees/', views.EmployeeListCreateView.as_view(), name='employees'), path('employees/', views.EmployeeListCreateView.as_view(), name='employees'),
path('employees/<int:pk>/', views.EmployeeRUDView.as_view(), name='employees-rud'), path('employees/<int:pk>/', views.EmployeeRUDView.as_view(), name='employees-rud'),
path('types/', views.EstablishmentTypeListCreateView.as_view(), name='type-list'), path('types/', views.EstablishmentTypeListCreateView.as_view(), name='type-list'),
# path('types/tags/', views.EstablishmentTypeTagListView.as_view(), name='type-tag-list'),
path('types/<int:pk>/', views.EstablishmentTypeRUDView.as_view(), name='type-rud'), path('types/<int:pk>/', views.EstablishmentTypeRUDView.as_view(), name='type-rud'),
# path('types/attach-tag-category/', views.EstablishmentTypeAttachTagCategoryView.as_view(),
# name='type-attach-tag-category'),
path('subtypes/', views.EstablishmentSubtypeListCreateView.as_view(), name='subtype-list'), path('subtypes/', views.EstablishmentSubtypeListCreateView.as_view(), name='subtype-list'),
path('subtypes/<int:pk>/', views.EstablishmentSubtypeRUDView.as_view(), name='subtype-rud'), path('subtypes/<int:pk>/', views.EstablishmentSubtypeRUDView.as_view(), name='subtype-rud'),
# path('subtypes/attach-tag-category/', views.EstablishmentSubTypeAttachTagCategoryView.as_view(),
# name='subtype-attach-tag-category'),
] ]

View File

@ -7,7 +7,6 @@ app_name = 'establishment'
urlpatterns = [ urlpatterns = [
path('', views.EstablishmentListView.as_view(), name='list'), path('', views.EstablishmentListView.as_view(), name='list'),
# path('types/tags/', views.EstablishmentTypeTagListView.as_view(), name='type-tag-list'),
path('recent-reviews/', views.EstablishmentRecentReviewListView.as_view(), path('recent-reviews/', views.EstablishmentRecentReviewListView.as_view(),
name='recent-reviews'), name='recent-reviews'),
path('slug/<slug:slug>/', views.EstablishmentRetrieveView.as_view(), name='detail'), path('slug/<slug:slug>/', views.EstablishmentRetrieveView.as_view(), name='detail'),

View File

@ -1,11 +1,9 @@
"""Establishment app views.""" """Establishment app views."""
from django.shortcuts import get_object_or_404 from django.shortcuts import get_object_or_404
from rest_framework import generics, status, permissions from rest_framework import generics
from establishment import models, serializers from establishment import models, serializers
from rest_framework.response import Response
from timetable.serialziers import ScheduleRUDSerializer, ScheduleCreateSerializer from timetable.serialziers import ScheduleRUDSerializer, ScheduleCreateSerializer
from establishment.filters import EstablishmentTypeTagFilter
class EstablishmentMixinViews: class EstablishmentMixinViews:
@ -55,25 +53,6 @@ class EstablishmentScheduleCreateView(generics.CreateAPIView):
serializer_class = ScheduleCreateSerializer serializer_class = ScheduleCreateSerializer
# class EstablishmentTypeAttachTagCategoryView(generics.CreateAPIView):
# """Attach tag category to establishment type."""
# serializer_class = serializers.EstablishmentTypeTagCategoryBaseSerializer
#
# def get_queryset(self):
# """Override get_queryset method."""
# return models.EstablishmentTypeTagCategory.objects.with_base_related()
#
# def post(self, request, *args, **kwargs):
# """Overridden post-method."""
# super(EstablishmentTypeAttachTagCategoryView, self).post(request)
# return Response(status=status.HTTP_200_OK)
# class EstablishmentTagCreateView(EstablishmentMixinViews, generics.CreateAPIView):
# """Attach tag to establishment."""
# serializer_class = serializers.EstablishmentTagCreateSerializer
#
class MenuListCreateView(generics.ListCreateAPIView): class MenuListCreateView(generics.ListCreateAPIView):
"""Menu list create view.""" """Menu list create view."""
serializer_class = serializers.MenuSerializers serializer_class = serializers.MenuSerializers
@ -164,15 +143,6 @@ class EstablishmentTypeRUDView(generics.RetrieveUpdateDestroyAPIView):
queryset = models.EstablishmentType.objects.all() queryset = models.EstablishmentType.objects.all()
# class EstablishmentTypeTagListView(generics.ListAPIView):
# """List of tags with categories by establishment type."""
# serializer_class = serializers.EstablishmentTagsByType
# queryset = models.EstablishmentType.objects.with_base_related()
# filter_class = EstablishmentTypeTagFilter
# permission_classes = (permissions.AllowAny, )
# pagination_class = None
class EstablishmentSubtypeListCreateView(generics.ListCreateAPIView): class EstablishmentSubtypeListCreateView(generics.ListCreateAPIView):
"""Establishment subtype list/create view.""" """Establishment subtype list/create view."""
serializer_class = serializers.EstablishmentSubTypeBaseSerializer serializer_class = serializers.EstablishmentSubTypeBaseSerializer
@ -184,17 +154,3 @@ class EstablishmentSubtypeRUDView(generics.RetrieveUpdateDestroyAPIView):
"""Establishment subtype retrieve/update/destroy view.""" """Establishment subtype retrieve/update/destroy view."""
serializer_class = serializers.EstablishmentSubTypeBaseSerializer serializer_class = serializers.EstablishmentSubTypeBaseSerializer
queryset = models.EstablishmentSubType.objects.all() queryset = models.EstablishmentSubType.objects.all()
# class EstablishmentSubTypeAttachTagCategoryView(generics.CreateAPIView):
# """Attach tag category to establishment subtype."""
# serializer_class = serializers.EstablishmentSubTypeTagCategoryBaseSerializer
#
# def get_queryset(self):
# """Override get_queryset method."""
# return models.EstablishmentSubTypeTagCategory.objects.with_base_related()
#
# def post(self, request, *args, **kwargs):
# """Overridden post-method."""
# super(EstablishmentSubTypeAttachTagCategoryView, self).post(request)
# return Response(status=status.HTTP_200_OK)

View File

@ -4,6 +4,7 @@ from django.conf import settings
from news import models from news import models
from .tasks import send_email_with_news from .tasks import send_email_with_news
@admin.register(models.NewsType) @admin.register(models.NewsType)
class NewsTypeAdmin(admin.ModelAdmin): class NewsTypeAdmin(admin.ModelAdmin):
"""News type admin.""" """News type admin."""

View File

@ -7,7 +7,5 @@ app_name = 'news'
urlpatterns = [ urlpatterns = [
path('', views.NewsListView.as_view(), name='list'), path('', views.NewsListView.as_view(), name='list'),
path('types/', views.NewsTypeListView.as_view(), name='type'), path('types/', views.NewsTypeListView.as_view(), name='type'),
path('types/<int:pk>/tags/', views.NewsTypeTagsView.as_view(),
name='type-tags'),
path('slug/<slug:slug>/', views.NewsDetailView.as_view(), name='rud'), path('slug/<slug:slug>/', views.NewsDetailView.as_view(), name='rud'),
] ]

View File

@ -8,7 +8,6 @@ from rest_framework.response import Response
from gallery.tasks import delete_image from gallery.tasks import delete_image
from news import filters, models, serializers from news import filters, models, serializers
from rating.tasks import add_rating from rating.tasks import add_rating
from tag.serializers import TagCategoryDetailSerializer
class NewsMixinView: class NewsMixinView:
@ -52,18 +51,6 @@ class NewsTypeListView(generics.ListAPIView):
serializer_class = serializers.NewsTypeSerializer serializer_class = serializers.NewsTypeSerializer
class NewsTypeTagsView(generics.ListAPIView):
"""Resource to get a list of tags for a news type."""
pagination_class = None
permission_classes = (permissions.AllowAny, )
serializer_class = TagCategoryDetailSerializer
def get_queryset(self):
news_type = get_object_or_404(models.NewsType, pk=self.kwargs.get('pk'))
return news_type.tag_categories.with_related()
class NewsBackOfficeMixinView: class NewsBackOfficeMixinView:
"""News back office mixin view.""" """News back office mixin view."""

View File

@ -39,13 +39,15 @@ class EstablishmentDocument(Document):
}), }),
}, },
multi=True) multi=True)
# tags = fields.ObjectField( tags = fields.ObjectField(
# properties={ properties={
# 'tag': fields.ObjectField(properties={ 'id': fields.IntegerField(attr='id'),
# 'id': fields.IntegerField(), 'label': fields.ObjectField(attr='label_indexing',
# }), properties=OBJECT_FIELD_PROPERTIES),
# }, 'category': fields.ObjectField(attr='category',
# multi=True) properties={'id': fields.IntegerField()})
},
multi=True)
address = fields.ObjectField( address = fields.ObjectField(
properties={ properties={
'id': fields.IntegerField(), 'id': fields.IntegerField(),

View File

@ -24,15 +24,15 @@ class NewsDocument(Document):
country = fields.ObjectField(properties={'id': fields.IntegerField(), country = fields.ObjectField(properties={'id': fields.IntegerField(),
'code': fields.KeywordField()}) 'code': fields.KeywordField()})
web_url = fields.KeywordField(attr='web_url') web_url = fields.KeywordField(attr='web_url')
# tags = fields.ObjectField( tags = fields.ObjectField(
# properties={ properties={
# 'id': fields.IntegerField(attr='metadata.id'), 'id': fields.IntegerField(attr='id'),
# 'label': fields.ObjectField(attr='metadata.label_indexing', 'label': fields.ObjectField(attr='label_indexing',
# properties=OBJECT_FIELD_PROPERTIES), properties=OBJECT_FIELD_PROPERTIES),
# 'category': fields.ObjectField(attr='metadata.category', 'category': fields.ObjectField(attr='category',
# properties={'id': fields.IntegerField()}) properties={'id': fields.IntegerField()})
# }, },
# multi=True) multi=True)
class Django: class Django:

View File

@ -33,19 +33,21 @@ class TagCategoryQuerySet(models.QuerySet):
"""Extended queryset for TagCategory model.""" """Extended queryset for TagCategory model."""
def with_base_related(self): def with_base_related(self):
"""Select related objects."""
return self.prefetch_related('tags') return self.prefetch_related('tags')
def for_news(self): def for_news(self):
"""Select tag categories for news."""
return self.filter(news_types__isnull=True) return self.filter(news_types__isnull=True)
def for_establishments(self): def for_establishments(self):
return self """Select tag categories for establishments."""
# return self.filter(models.Q(est_subtype_tag_categories__isnull=True) | return self.filter(models.Q(establishment_types__isnull=False) |
# models.Q(est_type_tag_categories__isnull=True)).\ models.Q(establishment_subtypes__isnull=False))
# distinct()
def with_related(self): def with_tags(self, switcher=True):
return self.select_related('country').prefetch_related('tags') """Filter by existing tags."""
return self.filter(tags__isnull=not switcher)
class TagCategory(TranslatedFieldsMixin, models.Model): class TagCategory(TranslatedFieldsMixin, models.Model):

View File

@ -48,23 +48,14 @@ class TagCategoryBaseSerializer(serializers.ModelSerializer):
) )
class TagCategoryDetailSerializer(TagCategoryBaseSerializer): class TagCategoryBackOfficeDetailSerializer(TagCategoryBaseSerializer):
class Meta(TagCategoryBaseSerializer.Meta):
"""Meta class."""
fields = TagCategoryBaseSerializer.Meta.fields + ('tags', )
class TagCategoryBackOfficeDetailSerializer(TagCategoryDetailSerializer):
country_translated = TranslatedField(source='country.name_translated') country_translated = TranslatedField(source='country.name_translated')
class Meta(TagCategoryDetailSerializer.Meta): class Meta(TagBaseSerializer.Meta):
"""Meta class.""" """Meta class."""
fields = TagCategoryDetailSerializer.Meta.fields + ( fields = TagCategoryBaseSerializer.Meta.fields + (
'news_types', 'news_types',
'country', 'country',
'country_translated', 'country_translated',

View File

@ -1,5 +1,5 @@
"""Tag views.""" """Tag views."""
from rest_framework import generics, viewsets, mixins from rest_framework import viewsets, mixins
from tag import filters, models, serializers from tag import filters, models, serializers
from rest_framework import permissions from rest_framework import permissions
@ -14,20 +14,11 @@ class TagViewSet(mixins.ListModelMixin, mixins.CreateModelMixin,
serializer_class = serializers.TagBackOfficeSerializer serializer_class = serializers.TagBackOfficeSerializer
class TagCategoryListCreateView(generics.ListCreateAPIView):
"""List/create tag category view."""
pagination_class = None
permission_classes = (permissions.AllowAny, )
queryset = models.TagCategory.objects.all()
serializer_class = serializers.TagCategoryBackOfficeDetailSerializer
class TagCategoryViewSet(mixins.ListModelMixin, viewsets.GenericViewSet): class TagCategoryViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
"""ViewSet for TagCategory model.""" """ViewSet for TagCategory model."""
filterset_class = filters.TagCategoryFilterSet filterset_class = filters.TagCategoryFilterSet
pagination_class = None pagination_class = None
permission_classes = (permissions.AllowAny, ) permission_classes = (permissions.AllowAny, )
queryset = models.TagCategory.objects.with_base_related() queryset = models.TagCategory.objects.with_tags().with_base_related()
serializer_class = serializers.TagCategoryBaseSerializer serializer_class = serializers.TagCategoryBaseSerializer

View File

@ -7,7 +7,7 @@ urlpatterns = [
path('establishments/', include('establishment.urls.back')), path('establishments/', include('establishment.urls.back')),
path('location/', include('location.urls.back')), path('location/', include('location.urls.back')),
path('news/', include('news.urls.back')), path('news/', include('news.urls.back')),
path('tags/', include(('tag.urls.back', 'tag'), namespace='tag')), # path('tags/', include(('tag.urls.back', 'tag'), namespace='tag')),
path('account/', include('account.urls.back')), path('account/', include('account.urls.back')),
path('comment/', include('comment.urls.back')), path('comment/', include('comment.urls.back')),
] ]