|
|
|
|
@ -1,7 +1,29 @@ |
|
|
|
|
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 |
|
|
|
|
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): |
|
|
|
|
@ -13,3 +35,5 @@ from users.models import ContractorResume |
|
|
|
|
# resume = ContractorResume.objects.create(text='') |
|
|
|
|
# user.contractor_resume = resume |
|
|
|
|
# user.save() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|