LIL-290. Add AuthorRequest model

remotes/origin/hasaccess
Ivlev Denis 8 years ago
parent 9e26bc15c5
commit f3638fafb0
  1. 27
      apps/user/migrations/0009_authorrequest.py
  2. 37
      apps/user/models.py

@ -0,0 +1,27 @@
# Generated by Django 2.0.2 on 2018-03-12 14:01
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('user', '0008_auto_20180212_0750'),
]
operations = [
migrations.CreateModel(
name='AuthorRequest',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('first_name', models.CharField(max_length=30, verbose_name='first name')),
('last_name', models.CharField(max_length=150, verbose_name='last name')),
('email', models.EmailField(max_length=254, verbose_name='email address')),
('about', models.CharField(blank=True, max_length=1000, null=True, verbose_name='О себе')),
('facebook', models.URLField(blank=True, default='', null=True)),
('status', models.PositiveSmallIntegerField(choices=[(0, 'pending'), (1, 'accepted'), (2, 'declined')], default=0)),
('created_at', models.DateTimeField(auto_now_add=True)),
('update_at', models.DateTimeField(auto_now=True)),
],
),
]

@ -85,3 +85,40 @@ def create_auth_token(sender, instance=None, created=False, **kwargs):
instance.role not in [User.AUTHOR_ROLE, User.ADMIN_ROLE]
) and hasattr(instance, 'auth_token'):
instance.auth_token.delete()
class AuthorRequestManager(models.Manager):
def create_by_user(self, user):
obj = self.model(
first_name=user.first_name,
last_name=user.last_name,
email=user.email,
about=user.about,
facebook=user.facebook,
)
self._for_write = True
obj.save(force_insert=True, using=self.db)
return obj
class AuthorRequest(models.Model):
PENDING = 0
ACCEPTED = 1
DECLINED = 2
STATUS_CHOICES = (
(PENDING, 'pending'),
(ACCEPTED, 'accepted'),
(DECLINED, 'declined'),
)
first_name = models.CharField(_('first name'), max_length=30)
last_name = models.CharField(_('last name'), max_length=150)
email = models.EmailField(_('email address'))
about = models.CharField('О себе', max_length=1000, null=True, blank=True)
facebook = models.URLField(default='', null=True, blank=True)
status = models.PositiveSmallIntegerField(choices=STATUS_CHOICES, default=PENDING)
created_at = models.DateTimeField(auto_now_add=True)
update_at = models.DateTimeField(auto_now=True)
objects = AuthorRequestManager()

Loading…
Cancel
Save