def handle(self, *args, **options): if options['infinite']: while True: UserExamination.fixed_expired() time.sleep(60) else: UserExamination.fixed_expired()
def user_examination_list_view(request): context = { 'user_examinations': UserExamination.get_for_user(request.user.id).filter(finished_at__isnull=True), 'user_examinations_finished': UserExamination.get_for_user(request.user).filter(finished_at__isnull=False), 'title': 'Список персональных аттестаций' } return render(request, 'core/examinations.html', context)
def test_user_examination_fixed_expired(self): department = Department.objects.create(name='test dep') examination = Examination.objects.create(name='test exam', department=department) user = User.objects.create(username='******', email='*****@*****.**') department.employees.add(user) available_from = datetime.datetime.now() - datetime.timedelta(days=2) complete_until = datetime.datetime.now() - datetime.timedelta(days=1) user_examination = UserExamination.objects.create( examination=examination, user=user, available_from=available_from, complete_until=complete_until, ) UserExamination.fixed_expired() self.assertIsNotNone(UserExamination.objects.get(id=user_examination.id).finished_at)
def test_scheduler_check_user_examinations(self): department = Department.objects.create(name='test dep') examination = Examination.objects.create(name='test exam', department=department) user = User.objects.create(username='******', email='*****@*****.**') department.employees.add(user) self.assertEqual(UserExamination.get_for_user(user).count(), 0) scheduler = Scheduler.objects.create( examination=examination, count=1, period=1, unit=Scheduler.WEEK_UNIT_CHOICE, is_active=True ) scheduler.departments.add(department) scheduler.check_user_examinations() self.assertEqual(UserExamination.get_for_user(user).count(), 1)
def test_user_examination_fixed_started_one(self): department = Department.objects.create(name='test dep') examination = Examination.objects.create(name='test exam', department=department) question = Question.objects.create(examination=examination) question1 = Question.objects.create(examination=examination) question2 = Question.objects.create(examination=examination) user = User.objects.create(username='******', email='*****@*****.**') department.employees.add(user) available_from = datetime.datetime.now() - datetime.timedelta(days=2) complete_until = datetime.datetime.now() - datetime.timedelta(days=1) user_examination = UserExamination.objects.create( examination=examination, user=user, available_from=available_from, complete_until=complete_until, started_at=available_from, must_finished_at=complete_until ) UserExamination.fixed_started() self.assertIsNotNone(UserExamination.objects.get(id=user_examination.id).finished_at) self.assertEqual(UserExaminationQuestionLog.objects.count(), 3)
def get_user_examination(self): if not self._user_examination: self._user_examination = UserExamination.get_for_user( self.request.user, id=self.kwargs['user_examination_id'], finished_at__isnull=True ).get() return self._user_examination
def get_queryset(self): if self.request.user.is_superuser or self.request.user.is_staff: # todo is_staff and department owner return super(UserExaminationDetailView, self).get_queryset() else: return UserExamination.get_for_user(self.request.user)
def get_queryset(self): if self.request.user.is_superuser or self.request.user.is_staff: return super(UserExaminationDetailView, self).get_queryset() else: return UserExamination.get_for_user(self.request.user)