You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.5 KiB
39 lines
1.5 KiB
import math
|
|
from django.dispatch import receiver
|
|
from django.db.models.signals import post_save
|
|
from ratings.models import HistoryRating
|
|
from django.contrib.auth.models import Group
|
|
from registration.signals import user_registered
|
|
from users.models import ContractorResume, User
|
|
|
|
|
|
@receiver(post_save, sender=User)
|
|
def add_rating_for_user_fields(sender, instance, created, **kwargs):
|
|
hs_rating = HistoryRating.objects.get_or_create(user=instance, type='occupancy_profile')
|
|
fields = ['avatar', 'cro', 'first_name', 'gender',
|
|
'last_name', 'patronym', 'phone',
|
|
'skype', 'website', 'location']
|
|
|
|
indicator_sum = 0
|
|
for f in fields:
|
|
if hasattr(instance, f) and getattr(instance, f):
|
|
indicator_sum += 1
|
|
|
|
rating = math.ceil(math.ceil(100 / len(fields)) * indicator_sum)
|
|
hs_rating[0].rating = rating
|
|
hs_rating[0].description = 'Заполненные поля в профиле. Баллы за рейтинг'
|
|
hs_rating[0].save()
|
|
|
|
|
|
# @receiver(user_registered)
|
|
# def user_registered_callback(sender, user, request, **kwargs):
|
|
# # import code; code.interact(local=dict(globals(), **locals()))
|
|
# group_name = request.POST['group_id'] or 'Исполнители'
|
|
# g = Group.objects.get(name=group_name)
|
|
# g.user_set.add(user)
|
|
# if group_name == 'Исполнители':
|
|
# resume = ContractorResume.objects.create(text='')
|
|
# user.contractor_resume = resume
|
|
# user.save()
|
|
|
|
|
|
|