clean models (tags)
This commit is contained in:
parent
42ae1cbb87
commit
9d4c483f51
|
|
@ -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."""
|
|
||||||
|
|
|
||||||
|
|
@ -16,29 +16,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."""
|
||||||
|
|
@ -52,8 +34,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."""
|
||||||
|
|
||||||
|
|
@ -101,15 +81,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').\
|
||||||
|
|
@ -587,81 +560,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')
|
|
||||||
|
|
|
||||||
|
|
@ -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',
|
|
||||||
# ]
|
|
||||||
|
|
|
||||||
|
|
@ -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."""
|
||||||
|
|
|
||||||
|
|
@ -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'),
|
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -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'),
|
||||||
|
|
|
||||||
|
|
@ -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)
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
|
|
||||||
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."""
|
||||||
|
|
|
||||||
|
|
@ -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'),
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@ from django.shortcuts import get_object_or_404
|
||||||
from rest_framework import generics, permissions
|
from rest_framework import generics, permissions
|
||||||
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:
|
||||||
|
|
@ -47,18 +46,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."""
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -49,9 +49,6 @@ class TagCategoryQuerySet(models.QuerySet):
|
||||||
"""Filter by existing tags."""
|
"""Filter by existing tags."""
|
||||||
return self.filter(tags__isnull=not switcher)
|
return self.filter(tags__isnull=not switcher)
|
||||||
|
|
||||||
def with_related(self):
|
|
||||||
return self.select_related('country').prefetch_related('tags')
|
|
||||||
|
|
||||||
|
|
||||||
class TagCategory(TranslatedFieldsMixin, models.Model):
|
class TagCategory(TranslatedFieldsMixin, models.Model):
|
||||||
"""Tag base category model."""
|
"""Tag base category model."""
|
||||||
|
|
|
||||||
|
|
@ -48,23 +48,14 @@ class TagCategoryBaseSerializer(serializers.ModelSerializer):
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class TagCategoryDetailSerializer(TagCategoryBaseSerializer):
|
class TagCategoryBackOfficeDetailSerializer(TagCategoryBaseSerializer):
|
||||||
"""Detailed serializer for TagCategory model."""
|
|
||||||
|
|
||||||
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',
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user