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')),
(RESTAURANT_INSPECTOR, _('Restaurant inspector')),
(SALES_MAN, _('Sales man')),
(WINERY_WINE_INSPECTOR, _('Winery and wine inspector')),
(WINERY_WINE_INSPECTOR, _('Winery & Wine inspector')),
(SELLER, _('Seller')),
(DISTILLERY_LIQUOR_INSPECTOR, _('Distillery & Liquor inspector')),
(PRODUCER_FOOD_INSPECTOR, _('Producer food inspector')),
(PRODUCER_FOOD_INSPECTOR, _('Producer & Food inspector')),
(ESTABLISHMENT_ADMINISTRATOR, _('Establishment administrator')),
(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.serializers.common import ContactPhonesSerializer
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.models import Currency
from main.serializers import AwardSerializer
@ -57,9 +58,10 @@ class EstablishmentListCreateSerializer(model_serializers.EstablishmentBaseSeria
address_id = serializers.PrimaryKeyRelatedField(
source='address',
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(
required=False, allow_null=True, allow_blank=True
)
@ -164,7 +166,17 @@ class EstablishmentListCreateSerializer(model_serializers.EstablishmentBaseSeria
)
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)
phones_handler(phones_list, instance)
emails_handler(emails_list, instance)
return instance

View File

@ -207,6 +207,27 @@ class AddressBaseSerializer(serializers.ModelSerializer):
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):
"""Address serializer."""