Advertisement
Guest User

Untitled

a guest
Mar 30th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.40 KB | None | 0 0
  1. class UserProfile(models.Model):
  2. user = models.OneToOneField(User, primary_key=True, verbose_name='Пользователь')
  3. patronimyc = models.CharField('Отчество', max_length=17)
  4. gender = models.CharField('Пол',
  5. max_length=8,
  6. choices=GENDER_CHOICES_USER_PROFILE,
  7. default=EMPTY)
  8. work = models.ForeignKey(Hospital, verbose_name='Место работы', default=EMPTY, null=True, blank=True, on_delete=models.SET_DEFAULT)
  9. curing_form = models.ForeignKey(CuringForm, verbose_name='Форма лечения', default=EMPTY, null=True, blank=True, on_delete=models.SET_DEFAULT)
  10. position = models.ForeignKey(Position, verbose_name='Должность', default=EMPTY, related_name='+', null=True, blank=True, on_delete=models.SET_DEFAULT)
  11. category = models.ForeignKey(Category, verbose_name='Категория', default=Category.objects.get(name="2-новый пустой профиль"), null=True, blank=True, on_delete=models.SET_DEFAULT)
  12. speciality = models.ForeignKey(Speciality, verbose_name='Специальность', default=EMPTY, null=True, blank=True, on_delete=models.SET_DEFAULT)
  13. area = models.ForeignKey(Area, verbose_name='Область', default=EMPTY, null=True, blank=True, on_delete=models.SET_DEFAULT)
  14. city = models.ForeignKey(City, verbose_name='Город', default=EMPTY, null=True, blank=True, on_delete=models.SET_DEFAULT)
  15.  
  16. age = models.IntegerField('Возраст', default=0)
  17. date_of_birth = models.DateField('Дата рождения', default=datetime.date(1970, 1, 1), null=True, blank=True)
  18. main_phone = models.CharField('Моб. телефон 1', max_length=13, blank=True)
  19. secondary_phone = models.CharField('Моб. телефон 2', max_length=13, blank=True)
  20. work_phone = models.CharField('Рабочий телефон', max_length=13, blank=True)
  21. bed_quantity = models.IntegerField('Кол-во койко-мест', default=0)
  22. patient_quantity = models.IntegerField('Кол-во пациентов в месяц', default=0)
  23.  
  24. district = models.CharField('Район', max_length=60, default=EMPTY)
  25. house = models.CharField('Дом', max_length=50, default=EMPTY)
  26. flat = models.IntegerField('Квартира', default=0)
  27. index = models.IntegerField('Индекс', default=0)
  28.  
  29. score = models.IntegerField('Баллы', default=0)
  30. total_score = models.IntegerField('Баллов за всё время', default=0)
  31. total_exchange = models.IntegerField('Баллов обменяно за всё время', default=0)
  32. user_agreed = models.BooleanField('Согласие пользователя', default=False)
  33.  
  34. def __str__(self):
  35. return self.user.username
  36.  
  37. def save(self, update_groups=False, *args, **kwargs):
  38. if not update_groups:
  39. return super(UserProfile, self).save(*args, **kwargs)
  40. if self.work_phone and len(self.work_phone) < 7:
  41. self.work_phone = City.objects.get(name=self.city).phone_prefix + self.work_phone
  42. super(UserProfile, self).save(*args, **kwargs)
  43.  
  44. user_groups = UserFilter.objects.all()
  45. for group in user_groups:
  46. if self in group.get_filtered_user_queryset():
  47. group.users.add(self)
  48. group.save()
  49.  
  50. from polls.models import Poll, UsersPoll
  51. polls = Poll.objects.filter(user_group=group)
  52. for poll in polls:
  53. try:
  54. UsersPoll.objects.get(poll=poll, user=self)
  55. except ObjectDoesNotExist:
  56. UsersPoll.objects.create(poll=poll,
  57. user=self,
  58. date_assigned=timezone.now(),
  59. date_passed=timezone.now(),
  60. passed=False)
  61.  
  62. from history.models import PollHistory, UserHistory
  63. for history in PollHistory.objects.filter(user_group=group):
  64. try:
  65. UserHistory.objects.get(poll=history, user=self)
  66. except ObjectDoesNotExist:
  67. UserHistory.objects.create(poll=history,
  68. user=self)
  69.  
  70. return super(UserProfile, self).save(*args, **kwargs)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement