changed files
This commit is contained in:
parent
e435d71e00
commit
f83b735eb3
14
apps/establishment/migrations/0034_merge_20191009_1457.py
Normal file
14
apps/establishment/migrations/0034_merge_20191009_1457.py
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
# Generated by Django 2.2.4 on 2019-10-09 14:57
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('establishment', '0033_auto_20191009_0715'),
|
||||||
|
('establishment', '0033_auto_20191003_0943_squashed_0034_auto_20191003_1036'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
]
|
||||||
|
|
@ -479,6 +479,7 @@ class ContactEmail(models.Model):
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return f'{self.email}'
|
return f'{self.email}'
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# class Wine(TranslatedFieldsMixin, models.Model):
|
# class Wine(TranslatedFieldsMixin, models.Model):
|
||||||
# """Wine model."""
|
# """Wine model."""
|
||||||
|
|
@ -586,6 +587,11 @@ class EstablishmentTypeTagCategoryQuerySet(models.QuerySet):
|
||||||
"""Return establishment tags by country code"""
|
"""Return establishment tags by country code"""
|
||||||
return self.filter(tag_category__country__code=code)
|
return self.filter(tag_category__country__code=code)
|
||||||
|
|
||||||
|
def with_base_related(self):
|
||||||
|
"""Return with related relations."""
|
||||||
|
# return self.select_related('tags', 'establishment_type')
|
||||||
|
return self.select_related('establishment_type', 'tag_category')
|
||||||
|
|
||||||
|
|
||||||
class EstablishmentTypeTagCategory(models.Model):
|
class EstablishmentTypeTagCategory(models.Model):
|
||||||
"""Tag categories based on establishment type."""
|
"""Tag categories based on establishment type."""
|
||||||
|
|
@ -602,3 +608,24 @@ class EstablishmentTypeTagCategory(models.Model):
|
||||||
class Meta:
|
class Meta:
|
||||||
verbose_name = _('establishment type tag categories')
|
verbose_name = _('establishment type tag categories')
|
||||||
verbose_name_plural = _('establishment type tag categories')
|
verbose_name_plural = _('establishment type tag categories')
|
||||||
|
|
||||||
|
|
||||||
|
# class EstablishmentSubTypeTagCategoryQuerySet(models.QuerySet):
|
||||||
|
# """QuerySet for tag categories based on establishment subtype."""
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# 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,13 +1,12 @@
|
||||||
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,
|
||||||
EstablishmentTypeSerializer)
|
EstablishmentTypeSerializer)
|
||||||
|
|
||||||
from utils.decorators import with_base_attributes
|
|
||||||
|
|
||||||
from main.models import Currency
|
from main.models import Currency
|
||||||
|
from utils.decorators import with_base_attributes
|
||||||
|
|
||||||
|
|
||||||
class EstablishmentListCreateSerializer(EstablishmentBaseSerializer):
|
class EstablishmentListCreateSerializer(EstablishmentBaseSerializer):
|
||||||
|
|
|
||||||
|
|
@ -89,11 +89,11 @@ class MenuRUDSerializers(ProjectModelSerializer):
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class EstablishmentTagCategoryListSerializer(serializers.ModelSerializer):
|
class EstablishmentTypeTagCategoryBaseSerializer(serializers.ModelSerializer):
|
||||||
"""Serializer for intermediate model EstablishmentTypeTagCategories."""
|
"""Serializer for intermediate model EstablishmentTypeTagCategories."""
|
||||||
id = serializers.IntegerField(source='tag_category.id')
|
id = serializers.IntegerField(source='tag_category.id', read_only=True)
|
||||||
label_translated = TranslatedField(source='tag_category.label_translated')
|
label_translated = TranslatedField(source='tag_category.label_translated')
|
||||||
tags = TagBaseSerializer(source='tag_category.tags', many=True)
|
tags = TagBaseSerializer(source='tag_category.tags', many=True, read_only=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
"""Meta class."""
|
"""Meta class."""
|
||||||
|
|
@ -102,7 +102,21 @@ class EstablishmentTagCategoryListSerializer(serializers.ModelSerializer):
|
||||||
'id',
|
'id',
|
||||||
'label_translated',
|
'label_translated',
|
||||||
'tags',
|
'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 EstablishmentTypeSerializer(serializers.ModelSerializer):
|
class EstablishmentTypeSerializer(serializers.ModelSerializer):
|
||||||
|
|
@ -136,6 +150,30 @@ class EstablishmentSubTypeSerializer(serializers.ModelSerializer):
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# class EstablishmentSubTypeTagCategoryBaseSerializer(serializers.ModelSerializer):
|
||||||
|
# """Serializer for intermediate model EstablishmentSubTypeTagCategories."""
|
||||||
|
#
|
||||||
|
# class Meta:
|
||||||
|
# """Meta class."""
|
||||||
|
# model = models.EstablishmentSubTypeTagCategory
|
||||||
|
# fields = [
|
||||||
|
# '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.EstablishmentSubTypeTagCategory.objects.filter(
|
||||||
|
# establishment_type=attrs.get('establishment_subtype'),
|
||||||
|
# tag_category=attrs.get('tag_category')).exists():
|
||||||
|
# raise serializers.ValidationError(detail={'detail': _('Objects is already attached.')})
|
||||||
|
# return attrs
|
||||||
|
|
||||||
|
|
||||||
class ReviewSerializer(serializers.ModelSerializer):
|
class ReviewSerializer(serializers.ModelSerializer):
|
||||||
"""Serializer for model Review."""
|
"""Serializer for model Review."""
|
||||||
text_translated = serializers.CharField(read_only=True)
|
text_translated = serializers.CharField(read_only=True)
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,10 @@ urlpatterns = [
|
||||||
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/<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'),
|
||||||
]
|
]
|
||||||
|
|
@ -1,8 +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
|
from rest_framework import generics, status
|
||||||
|
|
||||||
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
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -55,7 +56,7 @@ class EstablishmentScheduleCreateView(generics.CreateAPIView):
|
||||||
|
|
||||||
class EstablishmentTagCategoryListView(EstablishmentMixinViews, generics.ListAPIView):
|
class EstablishmentTagCategoryListView(EstablishmentMixinViews, generics.ListAPIView):
|
||||||
"""View for establishment tag categories."""
|
"""View for establishment tag categories."""
|
||||||
serializer_class = serializers.EstablishmentTagCategoryListSerializer
|
serializer_class = serializers.EstablishmentTypeTagCategoryBaseSerializer
|
||||||
pagination_class = None
|
pagination_class = None
|
||||||
|
|
||||||
def get_object(self):
|
def get_object(self):
|
||||||
|
|
@ -81,6 +82,31 @@ class EstablishmentTagCategoryListView(EstablishmentMixinViews, generics.ListAPI
|
||||||
return establishment.establishment_type.tag_categories.all()
|
return establishment.establishment_type.tag_categories.all()
|
||||||
|
|
||||||
|
|
||||||
|
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 EstablishmentSubTypeAttachTagCategoryView(generics.CreateAPIView):
|
||||||
|
# """Attach tag category to establishment subtype."""
|
||||||
|
# queryset = models.EstablishmentSubTypeTagCategory.objects.all()
|
||||||
|
# serializer_class = serializers.EstablishmentSubTypeTagCategoryBaseSerializer
|
||||||
|
#
|
||||||
|
# def post(self, request, *args, **kwargs):
|
||||||
|
# """Overridden post-method."""
|
||||||
|
# super(EstablishmentSubTypeAttachTagCategoryView, self).post(request)
|
||||||
|
# return Response(status=status.HTTP_200_OK)
|
||||||
|
|
||||||
|
|
||||||
class MenuListCreateView(generics.ListCreateAPIView):
|
class MenuListCreateView(generics.ListCreateAPIView):
|
||||||
"""Menu list create view."""
|
"""Menu list create view."""
|
||||||
serializer_class = serializers.MenuSerializers
|
serializer_class = serializers.MenuSerializers
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user