province and city name
This commit is contained in:
parent
ba41e79b98
commit
2d444fd270
3 changed files with 15 additions and 2 deletions
|
|
@ -11,6 +11,8 @@ from django.utils import timezone
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
from rest_framework.exceptions import APIException
|
from rest_framework.exceptions import APIException
|
||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
|
from .provinces_and_cities import state
|
||||||
from .tasks import send_notification
|
from .tasks import send_notification
|
||||||
|
|
||||||
from apps.users.constans import MAX_OTP_TRY, DEVELOPMENT_PHONE_NUMBERS
|
from apps.users.constans import MAX_OTP_TRY, DEVELOPMENT_PHONE_NUMBERS
|
||||||
|
|
@ -123,6 +125,14 @@ class User(AbstractUser):
|
||||||
|
|
||||||
objects = UserManager()
|
objects = UserManager()
|
||||||
|
|
||||||
|
@property
|
||||||
|
def city_name(self):
|
||||||
|
return state.get_city_by_id(self.city)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def province_name(self):
|
||||||
|
return state.get_province_by_id(self.province)
|
||||||
|
|
||||||
def set_otp(self):
|
def set_otp(self):
|
||||||
if settings.DEBUG or self.phone_number in DEVELOPMENT_PHONE_NUMBERS:
|
if settings.DEBUG or self.phone_number in DEVELOPMENT_PHONE_NUMBERS:
|
||||||
self.otp = '12345'
|
self.otp = '12345'
|
||||||
|
|
|
||||||
|
|
@ -1316,6 +1316,7 @@ class State:
|
||||||
def province_list(self):
|
def province_list(self):
|
||||||
return self.provinces
|
return self.provinces
|
||||||
|
|
||||||
|
# TODO: performance issue
|
||||||
def get_city_by_id(self, city_id):
|
def get_city_by_id(self, city_id):
|
||||||
for province_id, province in self.provinces.items():
|
for province_id, province in self.provinces.items():
|
||||||
for city in province.get('cities'):
|
for city in province.get('cities'):
|
||||||
|
|
@ -1324,7 +1325,7 @@ class State:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def get_province_by_id(self, province_id):
|
def get_province_by_id(self, province_id):
|
||||||
return self.provinces.get(province_id).get('name')
|
return self.provinces.get(province_id, {}).get('name')
|
||||||
|
|
||||||
def validate_city(self, province_id, city_id):
|
def validate_city(self, province_id, city_id):
|
||||||
cities_id = [item.get('id') for item in self.provinces.get(province_id).get('cities')]
|
cities_id = [item.get('id') for item in self.provinces.get(province_id).get('cities')]
|
||||||
|
|
|
||||||
|
|
@ -28,11 +28,13 @@ class AccountSerializer(serializers.ModelSerializer):
|
||||||
'iban_verified',
|
'iban_verified',
|
||||||
# 'country',
|
# 'country',
|
||||||
'province',
|
'province',
|
||||||
|
'province_name',
|
||||||
'city',
|
'city',
|
||||||
|
'city_name',
|
||||||
'postal_code',
|
'postal_code',
|
||||||
'address',
|
'address',
|
||||||
)
|
)
|
||||||
read_only_fields = ['uuid', 'balance', 'email', 'phone_number', 'iban_verified']
|
read_only_fields = ['uuid', 'balance', 'email', 'phone_number', 'iban_verified', 'province_name', 'city_name',]
|
||||||
|
|
||||||
|
|
||||||
class RequestOTPSerializer(serializers.ModelSerializer):
|
class RequestOTPSerializer(serializers.ModelSerializer):
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue