Merge branch 'develop' of ssh://gl.id-east.ru:222/gm/gm-backend into develop

This commit is contained in:
Александр Пархомин 2020-02-06 18:06:46 +03:00
commit 32439c9db6
4 changed files with 56 additions and 5 deletions

View File

@ -0,0 +1,18 @@
# Generated by Django 2.2.7 on 2020-02-06 14:47
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('account', '0036_auto_20200205_1457'),
]
operations = [
migrations.AlterField(
model_name='role',
name='role',
field=models.PositiveIntegerField(choices=[(1, 'Standard user'), (2, 'Moderator'), (3, 'Country admin'), (4, 'Content page manager'), (5, 'Establishment manager'), (6, 'Review manager'), (7, 'Restaurant inspector'), (8, 'Sales man'), (9, 'Winery & Wine inspector'), (10, 'Seller'), (11, 'Distillery & Liquor inspector'), (12, 'Producer & Food inspector'), (13, 'Establishment administrator'), (14, 'Artisan inspector')], verbose_name='Role'),
),
]

View File

@ -66,10 +66,10 @@ class Role(ProjectBaseMixin):
(REVIEW_MANAGER, _('Review manager')), (REVIEW_MANAGER, _('Review manager')),
(RESTAURANT_INSPECTOR, _('Restaurant inspector')), (RESTAURANT_INSPECTOR, _('Restaurant inspector')),
(SALES_MAN, _('Sales man')), (SALES_MAN, _('Sales man')),
(WINERY_WINE_INSPECTOR, _('Winery and wine inspector')), (WINERY_WINE_INSPECTOR, _('Winery & Wine inspector')),
(SELLER, _('Seller')), (SELLER, _('Seller')),
(DISTILLERY_LIQUOR_INSPECTOR, _('Distillery & Liquor inspector')), (DISTILLERY_LIQUOR_INSPECTOR, _('Distillery & Liquor inspector')),
(PRODUCER_FOOD_INSPECTOR, _('Producer food inspector')), (PRODUCER_FOOD_INSPECTOR, _('Producer & Food inspector')),
(ESTABLISHMENT_ADMINISTRATOR, _('Establishment administrator')), (ESTABLISHMENT_ADMINISTRATOR, _('Establishment administrator')),
(ARTISAN_INSPECTOR, _('Artisan inspector')), (ARTISAN_INSPECTOR, _('Artisan inspector')),
) )

View File

@ -15,7 +15,8 @@ from establishment import models, serializers as model_serializers
from establishment.models import ContactEmail, ContactPhone, EstablishmentEmployee from establishment.models import ContactEmail, ContactPhone, EstablishmentEmployee
from establishment.serializers.common import ContactPhonesSerializer from establishment.serializers.common import ContactPhonesSerializer
from gallery.models import Image from gallery.models import Image
from location.serializers import AddressDetailSerializer, TranslatedField from location.serializers import AddressDetailSerializer, TranslatedField, AddressBaseSerializer, \
AddressEstablishmentSerializer
from main import models as main_models from main import models as main_models
from main.models import Currency from main.models import Currency
from main.serializers import AwardSerializer from main.serializers import AwardSerializer
@ -57,9 +58,10 @@ class EstablishmentListCreateSerializer(model_serializers.EstablishmentBaseSeria
address_id = serializers.PrimaryKeyRelatedField( address_id = serializers.PrimaryKeyRelatedField(
source='address', source='address',
queryset=models.Address.objects.all(), queryset=models.Address.objects.all(),
write_only=True write_only=True,
required=False,
) )
address = AddressDetailSerializer(read_only=True, allow_null=True) address = AddressEstablishmentSerializer(allow_null=True)
transliterated_name = serializers.CharField( transliterated_name = serializers.CharField(
required=False, allow_null=True, allow_blank=True required=False, allow_null=True, allow_blank=True
) )
@ -164,7 +166,17 @@ class EstablishmentListCreateSerializer(model_serializers.EstablishmentBaseSeria
) )
validated_data['slug'] = slug validated_data['slug'] = slug
if 'address' in validated_data:
address_fields = validated_data.pop('address')
address_instance = get_object_or_404(models.Address, id=address_fields['id'] or None)
address_id = getattr(address_instance, 'id')
models.Address.objects.filter(id=address_id).update(**address_fields)
validated_data['address_id'] = address_id
instance = super().create(validated_data) instance = super().create(validated_data)
phones_handler(phones_list, instance) phones_handler(phones_list, instance)
emails_handler(emails_list, instance) emails_handler(emails_list, instance)
return instance return instance

View File

@ -207,6 +207,27 @@ class AddressBaseSerializer(serializers.ModelSerializer):
return attrs return attrs
class AddressEstablishmentSerializer(AddressBaseSerializer):
"""Address serializer."""
id = serializers.IntegerField(required=True)
street_name_1 = serializers.CharField(required=False, default='')
street_name_2 = serializers.CharField(required=False, default='')
number = serializers.IntegerField(required=False, default=0)
postal_code = serializers.CharField(required=False, default='')
class Meta(AddressBaseSerializer.Meta):
"""Meta class."""
fields = AddressBaseSerializer.Meta.fields + (
'id',
'street_name_1',
'street_name_2',
'number',
'postal_code',
)
class AddressDetailSerializer(AddressBaseSerializer): class AddressDetailSerializer(AddressBaseSerializer):
"""Address serializer.""" """Address serializer."""