def test_has_unresolved_task(self): in_session = service.has_unresolved_task(self.student) self.assertTrue(in_session) # solve task and ask again self.taskInstance.solved = True self.taskInstance.save() in_session = service.has_unresolved_task(self.student) self.assertFalse(in_session)
def test_has_unresolved_task(self): in_session = service.has_unresolved_task(self.student) self.assertTrue(in_session) # solve task and ask again self.taskInstance.solved = True self.taskInstance.save() in_session = service.has_unresolved_task(self.student) self.assertFalse(in_session)
def get_task_by_id(user, task_id): student = StudentModel.objects.get_or_create(user=user)[0] # ask if the student is in the middle of the session task if sess_service.has_unresolved_task(student): session = sess_service.get_session(student) active_task = sess_service.get_active_task_instance(session) if active_task.task.pk == task_id: # if the given task is same as active, go in session return get_active_task_in_session(student) return get_task(student, IdSpecifidedTaskSelector(task_id))
def get_task_by_id(user, task_id): student = StudentModel.objects.get_or_create(user=user)[0] # ask if the student is in the middle of the session task if sess_service.has_unresolved_task(student): session = sess_service.get_session(student) active_task = sess_service.get_active_task_instance(session) if active_task.task.pk == task_id: # if the given task is same as active, go in session return get_active_task_in_session(student) if len(TaskModel.objects.filter(pk=task_id)) == 0: # task does not exist raise LookupError('Task does not exists.') try: return get_task(student, IdSpecifidedTaskSelector(task_id)) except LookupError: # student has low level to solve the task raise LowLevelForTaskException()
def get_next_task_in_session(user): student = StudentModel.objects.get_or_create(user=user)[0] if sess_service.has_unresolved_task(student): return get_active_task_in_session(student) # next task in the session or new session task_info = get_task(student, RandomizedScoreTaskSelector()) sess_service.next_task_in_session(student, task_info.task_instance) # add info about session session = sess_service.get_session(student) task_info_with_sess = TaskInfo( task_instance=task_info.task_instance, task=task_info.task, student_toolbox=task_info.student_toolbox, new_instructions=task_info.new_instructions, all_instructions=task_info.all_instructions, session=session ) return task_info_with_sess