Fix user creation receiver at official creation
This commit is contained in:
@@ -0,0 +1,31 @@
|
|||||||
|
# Generated by Django 2.1.5 on 2019-09-26 17:10
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('webapp', '0057_auto_20190926_1915'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='official',
|
||||||
|
name='email',
|
||||||
|
field=models.EmailField(default='asd@asd.fi', max_length=254, verbose_name='Email address'),
|
||||||
|
preserve_default=False,
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='official',
|
||||||
|
name='first_name',
|
||||||
|
field=models.CharField(default='asd', max_length=30, verbose_name='First name'),
|
||||||
|
preserve_default=False,
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='official',
|
||||||
|
name='last_name',
|
||||||
|
field=models.CharField(default='asd', max_length=150, verbose_name='Last name'),
|
||||||
|
preserve_default=False,
|
||||||
|
),
|
||||||
|
]
|
||||||
+18
-5
@@ -209,6 +209,9 @@ class Official(models.Model):
|
|||||||
|
|
||||||
user = models.OneToOneField(User, on_delete=models.CASCADE)
|
user = models.OneToOneField(User, on_delete=models.CASCADE)
|
||||||
|
|
||||||
|
first_name = models.CharField(_('First name'), max_length=30)
|
||||||
|
last_name = models.CharField(_('Last name'), max_length=150)
|
||||||
|
email = models.EmailField(_('Email address'))
|
||||||
phone_number = PhoneNumberField(_('Phone number'))
|
phone_number = PhoneNumberField(_('Phone number'))
|
||||||
role_history = models.ManyToManyField('Occupation', blank=True)
|
role_history = models.ManyToManyField('Occupation', blank=True)
|
||||||
|
|
||||||
@@ -216,19 +219,29 @@ class Official(models.Model):
|
|||||||
def current_roles(self):
|
def current_roles(self):
|
||||||
return self.role_history.all().filter(end_date__gte=timezone.now()).filter(start_date__lte=timezone.now())
|
return self.role_history.all().filter(end_date__gte=timezone.now()).filter(start_date__lte=timezone.now())
|
||||||
|
|
||||||
|
@property
|
||||||
|
def roles_of_year(self, year):
|
||||||
|
return self.role_history.all().filter(end_date__gte=timezone.datetime(year, 1, 1)).filter(start_date__lte=timezone.datetime(year, 12, 31))
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return '{} {}'.format(self.user.first_name, self.user.last_name)
|
return '{} {}'.format(self.first_name, self.last_name)
|
||||||
|
|
||||||
|
|
||||||
@receiver(post_save, sender=User)
|
@receiver(post_save, sender=Official)
|
||||||
def create_user_profile(sender, instance, created, **kwargs):
|
def create_user_profile(sender, instance, created, **kwargs):
|
||||||
if created:
|
if created:
|
||||||
Official.objects.create(user=instance)
|
instance.user.first_name = instance.first_name
|
||||||
|
instance.user.last_name = instance.last_name
|
||||||
|
instance.user.email = instance.email
|
||||||
|
instance.user.save()
|
||||||
|
|
||||||
|
|
||||||
@receiver(post_save, sender=User)
|
@receiver(post_save, sender=Official)
|
||||||
def save_user_profile(sender, instance, **kwargs):
|
def save_user_profile(sender, instance, **kwargs):
|
||||||
instance.official.save()
|
instance.user.first_name = instance.first_name
|
||||||
|
instance.user.last_name = instance.last_name
|
||||||
|
instance.user.email = instance.email
|
||||||
|
instance.user.save()
|
||||||
|
|
||||||
|
|
||||||
auditlog.register(Tag)
|
auditlog.register(Tag)
|
||||||
|
|||||||
@@ -93,8 +93,16 @@ class FeedSerializer(serializers.ModelSerializer):
|
|||||||
return feed
|
return feed
|
||||||
|
|
||||||
|
|
||||||
|
class OccupationSerializer(serializers.ModelSerializer):
|
||||||
|
class Meta:
|
||||||
|
model = Occupation
|
||||||
|
fields = ('start_date', 'end_date')
|
||||||
|
|
||||||
|
|
||||||
class ContactsSerializer(serializers.ModelSerializer):
|
class ContactsSerializer(serializers.ModelSerializer):
|
||||||
|
current_roles = OccupationSerializer(many=True, read_only=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Official
|
model = Official
|
||||||
fields = ('id', 'first_name', 'last_name', 'phone_number', 'role')
|
fields = ('id', 'first_name', 'last_name', 'email', 'phone_number', 'current_roles')
|
||||||
depth = 2
|
depth = 2
|
||||||
|
|||||||
Reference in New Issue
Block a user