provice and city and address in accounts
This commit is contained in:
parent
42b4bbe740
commit
ba41e79b98
5 changed files with 1304 additions and 19 deletions
1250
apps/users/cities.py
Normal file
1250
apps/users/cities.py
Normal file
File diff suppressed because it is too large
Load diff
33
apps/users/migrations/0003_auto_20201115_0948.py
Normal file
33
apps/users/migrations/0003_auto_20201115_0948.py
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
# Generated by Django 3.1.3 on 2020-11-15 09:48
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('users', '0002_remove_user_code'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='user',
|
||||
name='address',
|
||||
field=models.TextField(blank=True, null=True, verbose_name='address'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='user',
|
||||
name='city',
|
||||
field=models.IntegerField(blank=True, null=True, verbose_name='City'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='user',
|
||||
name='postal_code',
|
||||
field=models.CharField(blank=True, max_length=20, null=True, verbose_name='postal_code'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='user',
|
||||
name='province',
|
||||
field=models.IntegerField(blank=True, null=True, verbose_name='Province'),
|
||||
),
|
||||
]
|
||||
|
|
@ -65,6 +65,18 @@ class User(AbstractUser):
|
|||
first_name = models.CharField(_('first name'), max_length=30, blank=True)
|
||||
last_name = models.CharField(_('last name'), max_length=150, blank=True)
|
||||
email = models.EmailField(_('email address'), blank=True)
|
||||
|
||||
# country = models.CharField(_('country'), max_length=50, blank=True, null=True)
|
||||
# province = models.CharField(_('province'), max_length=50, blank=True, null=True)
|
||||
# city = models.CharField(_('city'), max_length=50, blank=True, null=True)
|
||||
# postal_code = models.CharField(_('postal_code'), max_length=20, blank=True, null=True)
|
||||
# address = models.TextField(_('address'), null=True, blank=True)
|
||||
|
||||
province = models.IntegerField(verbose_name=_("Province"), blank=True, null=True)
|
||||
city = models.IntegerField(verbose_name=_("City"), blank=True, null=True)
|
||||
postal_code = models.CharField(_('postal_code'), max_length=20, blank=True, null=True)
|
||||
address = models.TextField(_('address'), null=True, blank=True)
|
||||
|
||||
is_staff = models.BooleanField(
|
||||
_('staff status'),
|
||||
default=False,
|
||||
|
|
@ -121,17 +133,6 @@ class User(AbstractUser):
|
|||
self.otp_expire = timezone.now() + timedelta(minutes=5)
|
||||
self.otp_try = 0
|
||||
|
||||
# def set_code(self):
|
||||
# for code in random.sample(range(10000, 100000), 90000):
|
||||
# try:
|
||||
# code = str(code)
|
||||
# self.code = code
|
||||
# return self.save()
|
||||
# except:
|
||||
# pass
|
||||
#
|
||||
# raise APIException('system error')
|
||||
|
||||
def otp_is_valid(self):
|
||||
return bool(self.otp and timezone.now() <= self.otp_expire)
|
||||
|
||||
|
|
|
|||
|
|
@ -7,13 +7,8 @@ from django.utils import timezone
|
|||
class PublicUserSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = User
|
||||
fields = ('avatar', 'name', 'username', 'email', "first_name", "last_name", "uuid")
|
||||
read_only_fields = ['avatar', 'name', 'username', 'email', 'first_name', 'last_name', "uuid"]
|
||||
|
||||
# def to_internal_value(self, data):
|
||||
# code = data.get('code')
|
||||
# if code:
|
||||
# return User.objects.get(code=code)
|
||||
fields = ('avatar', 'name', 'username', "first_name", "last_name", "uuid")
|
||||
read_only_fields = ['avatar', 'name', 'username', 'first_name', 'last_name', "uuid"]
|
||||
|
||||
|
||||
class AccountSerializer(serializers.ModelSerializer):
|
||||
|
|
@ -31,6 +26,11 @@ class AccountSerializer(serializers.ModelSerializer):
|
|||
'avatar',
|
||||
'iban',
|
||||
'iban_verified',
|
||||
# 'country',
|
||||
'province',
|
||||
'city',
|
||||
'postal_code',
|
||||
'address',
|
||||
)
|
||||
read_only_fields = ['uuid', 'balance', 'email', 'phone_number', 'iban_verified']
|
||||
|
||||
|
|
@ -51,6 +51,7 @@ class RequestOTPSerializer(serializers.ModelSerializer):
|
|||
write_only_fields = []
|
||||
|
||||
def save(self, **kwargs):
|
||||
# TODO: move it to query set
|
||||
validated_data = self.validated_data
|
||||
user = User.objects.filter(phone_number=validated_data['phone_number']).first()
|
||||
if not user:
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ from django.contrib.auth.views import LoginView
|
|||
from django.shortcuts import render
|
||||
from django.utils import timezone
|
||||
from oauth2_provider.contrib.rest_framework import IsAuthenticatedOrTokenHasScope
|
||||
from rest_framework import generics, status
|
||||
from rest_framework import generics, status, permissions
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.views import APIView
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue