LIL-320. Add phone to user model

remotes/origin/hasaccess
Ivlev Denis 8 years ago
parent 8fc40c43d3
commit acef8ab30a
  1. 6
      api/v1/serializers/user.py
  2. 3
      apps/user/forms.py
  3. 19
      apps/user/migrations/0018_user_phone.py
  4. 3
      apps/user/models.py
  5. 3
      apps/user/tasks.py
  6. 9
      apps/user/templates/user/profile-settings.html
  7. 1
      requirements.txt

@ -1,6 +1,8 @@
from django.contrib.auth import get_user_model
from phonenumber_field.serializerfields import PhoneNumberField
from rest_framework import serializers
from django.contrib.auth import get_user_model
from . import Base64ImageField
from apps.user.models import AuthorRequest
@ -8,6 +10,7 @@ User = get_user_model()
class UserSerializer(serializers.ModelSerializer):
phone = PhoneNumberField()
class Meta:
model = User
@ -15,6 +18,7 @@ class UserSerializer(serializers.ModelSerializer):
'id',
'username',
'email',
'phone',
'first_name',
'last_name',
'is_staff',

@ -1,5 +1,6 @@
from django import forms
from django.contrib.auth import get_user_model
from phonenumber_field.formfields import PhoneNumberField
from .fields import CreditCardField
@ -10,6 +11,7 @@ class UserEditForm(forms.ModelForm):
# first_name = forms.CharField()
# last_name = forms.CharField()
# email = forms.CharField()
phone = PhoneNumberField()
# city = forms.CharField()
# country = forms.CharField()
birthday = forms.DateField(input_formats=['%d.%m.%Y'], required=False)
@ -33,6 +35,7 @@ class UserEditForm(forms.ModelForm):
'first_name',
'last_name',
'email',
'phone',
'city',
'country',
'birthday',

@ -0,0 +1,19 @@
# Generated by Django 2.0.3 on 2018-03-15 17:19
from django.db import migrations
import phonenumber_field.modelfields
class Migration(migrations.Migration):
dependencies = [
('user', '0017_subscriptioncategory_auto_add'),
]
operations = [
migrations.AddField(
model_name='user',
name='phone',
field=phonenumber_field.modelfields.PhoneNumberField(blank=True, max_length=128, null=True, unique=True),
),
]

@ -1,5 +1,6 @@
from json import dumps
from rest_framework.authtoken.models import Token
from phonenumber_field.modelfields import PhoneNumberField
from django.db import models
from django.db.models.signals import post_save
@ -33,6 +34,7 @@ class User(AbstractUser):
(FEMALE, 'Женщина'),
)
email = models.EmailField(_('email address'), unique=True)
phone = PhoneNumberField(null=True, blank=True, unique=True)
role = models.PositiveSmallIntegerField(
'Роль', default=0, choices=ROLE_CHOICES)
gender = models.CharField(
@ -96,6 +98,7 @@ def send_user_info_to_mixpanel(sender, instance=None, created=False, **kwargs):
user_to_mixpanel.delay(
instance.id,
instance.email,
str(instance.phone),
instance.first_name,
instance.last_name,
instance.date_joined,

@ -6,12 +6,13 @@ from project.celery import app
@app.task
def user_to_mixpanel(user_id, email, first_name, last_name, date_joined, role, subscriptions):
def user_to_mixpanel(user_id, email, phone, first_name, last_name, date_joined, role, subscriptions):
mix = Mixpanel(settings.MIX_TOKEN)
mix.people_set(
user_id,
{
'$email': email,
'$phone': phone,
'$first_name': first_name,
'$last_name': last_name,
'$created': date_joined,

@ -80,6 +80,15 @@
<div class="field__error">Укажите корректно свои данные</div>
{% endif %}
</div>
<div class="form__field field{% if form.phone.errors %} error{% endif %}">
<div class="field__label">Телефон</div>
<div class="field__wrap">
<input name='phone' class="field__input" type="phone" placeholder="Почта" value="{{ user.phone }}">
</div>
{% if form.phone.errors %}
<div class="field__error">Укажите корректно свои данные</div>
{% endif %}
</div>
<div class="form__fieldset">
<div class="form__field field{% if form.city.errors %} error{% endif %}">
<div class="field__label">ГОРОД</div>

@ -9,6 +9,7 @@ django-constance[database]==2.1.0
django-filter==2.0.0.dev1
django-mptt==0.9.0
django-silk==2.0.0
django-phonenumber-field==2.0.0
django-polymorphic-tree==1.5
djangorestframework==3.7.7
drf-yasg[validation]==1.5.0

Loading…
Cancel
Save