phones for cascade establishment
This commit is contained in:
parent
0cf62353be
commit
19b9e636c1
|
|
@ -16,7 +16,7 @@ from utils.serializers import TimeZoneChoiceField
|
|||
|
||||
def phones_handler(phones_list, establishment):
|
||||
"""
|
||||
create or update phones for establishment 35016 string
|
||||
create or update phones for establishment
|
||||
"""
|
||||
ContactPhone.objects.filter(establishment=establishment).delete()
|
||||
|
||||
|
|
@ -37,8 +37,6 @@ class EstablishmentListCreateSerializer(model_serializers.EstablishmentBaseSeria
|
|||
queryset=models.Address.objects.all(),
|
||||
write_only=True
|
||||
)
|
||||
phones = model_serializers.ContactPhonesSerializer(read_only=True,
|
||||
many=True, )
|
||||
emails = model_serializers.ContactEmailsSerializer(read_only=True,
|
||||
many=True, )
|
||||
socials = model_serializers.SocialNetworkRelatedSerializers(read_only=True,
|
||||
|
|
@ -48,10 +46,12 @@ class EstablishmentListCreateSerializer(model_serializers.EstablishmentBaseSeria
|
|||
address_id = serializers.PrimaryKeyRelatedField(write_only=True, source='address',
|
||||
queryset=Address.objects.all())
|
||||
tz = TimeZoneChoiceField()
|
||||
phones_list = serializers.ListField(
|
||||
child=serializers.CharField(max_length=20),
|
||||
phones = serializers.ListField(
|
||||
source='contact_phones',
|
||||
allow_null=True,
|
||||
allow_empty=True,
|
||||
write_only=True,
|
||||
child=serializers.CharField(max_length=128),
|
||||
required=False,
|
||||
)
|
||||
|
||||
class Meta:
|
||||
|
|
@ -78,11 +78,13 @@ class EstablishmentListCreateSerializer(model_serializers.EstablishmentBaseSeria
|
|||
'tags',
|
||||
'tz',
|
||||
'address_id',
|
||||
'phones_list',
|
||||
]
|
||||
|
||||
def create(self, validated_data):
|
||||
phones_list = validated_data.pop('phones_list')
|
||||
phones_list = []
|
||||
if 'contact_phones' in validated_data:
|
||||
phones_list = validated_data.pop('contact_phones')
|
||||
|
||||
instance = super().create(validated_data)
|
||||
phones_handler(phones_list, instance)
|
||||
return instance
|
||||
|
|
@ -96,17 +98,17 @@ class EstablishmentRUDSerializer(model_serializers.EstablishmentBaseSerializer):
|
|||
queryset=models.EstablishmentType.objects.all(), write_only=True
|
||||
)
|
||||
address = AddressDetailSerializer()
|
||||
phones = model_serializers.ContactPhonesSerializer(read_only=False,
|
||||
many=True, )
|
||||
emails = model_serializers.ContactEmailsSerializer(read_only=False,
|
||||
many=True, )
|
||||
socials = model_serializers.SocialNetworkRelatedSerializers(read_only=False,
|
||||
many=True, )
|
||||
type = model_serializers.EstablishmentTypeBaseSerializer(source='establishment_type')
|
||||
phones_list = serializers.ListField(
|
||||
child=serializers.CharField(max_length=20),
|
||||
phones = serializers.ListField(
|
||||
source='contact_phones',
|
||||
allow_null=True,
|
||||
allow_empty=True,
|
||||
write_only=True,
|
||||
child=serializers.CharField(max_length=128),
|
||||
required=False,
|
||||
)
|
||||
|
||||
class Meta:
|
||||
|
|
@ -127,11 +129,13 @@ class EstablishmentRUDSerializer(model_serializers.EstablishmentBaseSerializer):
|
|||
'is_publish',
|
||||
'address',
|
||||
'tags',
|
||||
'phones_list',
|
||||
]
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
phones_list = validated_data.pop('phones_list')
|
||||
phones_list = []
|
||||
if 'contact_phones' in validated_data:
|
||||
phones_list = validated_data.pop('contact_phones')
|
||||
|
||||
instance = super().update(instance, validated_data)
|
||||
phones_handler(phones_list, instance)
|
||||
return instance
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user