added validation to Company serializer
This commit is contained in:
parent
0d9d45bcc5
commit
012d2dcb23
|
|
@ -1,20 +1,21 @@
|
||||||
"""Establishment serializers."""
|
"""Establishment serializers."""
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
from phonenumber_field.phonenumber import to_python as str_to_phonenumber
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
|
|
||||||
from phonenumber_field.modelfields import PhoneNumberField
|
|
||||||
from comment import models as comment_models
|
from comment import models as comment_models
|
||||||
from comment.serializers import common as comment_serializers
|
from comment.serializers import common as comment_serializers
|
||||||
from establishment import models
|
from establishment import models
|
||||||
from location.serializers import AddressBaseSerializer, CitySerializer, AddressDetailSerializer, CityShortSerializer
|
from location.serializers import AddressBaseSerializer, CitySerializer, AddressDetailSerializer, \
|
||||||
|
CityShortSerializer
|
||||||
from main.serializers import AwardSerializer, CurrencySerializer
|
from main.serializers import AwardSerializer, CurrencySerializer
|
||||||
|
from review.serializers import ReviewShortSerializer
|
||||||
from tag.serializers import TagBaseSerializer
|
from tag.serializers import TagBaseSerializer
|
||||||
from timetable.serialziers import ScheduleRUDSerializer
|
from timetable.serialziers import ScheduleRUDSerializer
|
||||||
from utils import exceptions as utils_exceptions
|
from utils import exceptions as utils_exceptions
|
||||||
|
from utils.serializers import ImageBaseSerializer
|
||||||
from utils.serializers import (ProjectModelSerializer, TranslatedField,
|
from utils.serializers import (ProjectModelSerializer, TranslatedField,
|
||||||
FavoritesCreateSerializer)
|
FavoritesCreateSerializer)
|
||||||
from review.serializers import ReviewShortSerializer
|
|
||||||
from utils.serializers import ImageBaseSerializer
|
|
||||||
|
|
||||||
|
|
||||||
class ContactPhonesSerializer(serializers.ModelSerializer):
|
class ContactPhonesSerializer(serializers.ModelSerializer):
|
||||||
|
|
@ -453,7 +454,23 @@ class CompanyBaseSerializer(serializers.ModelSerializer):
|
||||||
}
|
}
|
||||||
|
|
||||||
def get_phone_list(self, instance):
|
def get_phone_list(self, instance):
|
||||||
|
"""Return list of phone numbers."""
|
||||||
return instance.phones
|
return instance.phones
|
||||||
|
|
||||||
def get_fax_list(self, instance):
|
def get_fax_list(self, instance):
|
||||||
|
"""Return list of fax numbers."""
|
||||||
return instance.faxes
|
return instance.faxes
|
||||||
|
|
||||||
|
def validate(self, attrs):
|
||||||
|
"""Overridden validate method"""
|
||||||
|
phones = [str_to_phonenumber(phone).as_national for phone in attrs.get('phones')]
|
||||||
|
faxes = [str_to_phonenumber(fax).as_national for fax in attrs.get('faxes')]
|
||||||
|
|
||||||
|
if faxes:
|
||||||
|
if models.Company.objects.filter(faxes__overlap=faxes).exists():
|
||||||
|
raise serializers.ValidationError({'detail': _('Fax is already reserved.')})
|
||||||
|
|
||||||
|
if phones:
|
||||||
|
if models.Company.objects.filter(phones__overlap=phones).exists():
|
||||||
|
raise serializers.ValidationError({'detail': _('Phones is already reserved.')})
|
||||||
|
return attrs
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user