Esempio n. 1
0
 def watch_instruction(self, request, pk=None):
     student = self.get_object()
     assert student.pk == int(pk)
     instruction_name = request.data['instruction']
     domain = get_domain()
     action = actions.watch_instruction(domain, student, instruction_name)
     #serializer = ActionSerializer(action, context={'request': request})
     return Response()
Esempio n. 2
0
 def start_task(self, request, pk=None):
     student = self.get_object()
     assert student.pk == int(pk)
     task_name = request.data['task']
     domain = get_domain()
     action = actions.start_task(domain, student, task_name)
     response_data = {'task_session_id': action.task_session_id}
     return Response(response_data)
Esempio n. 3
0
 def watch_instruction(self, request, pk=None):
     student = self.get_object()
     assert student.pk == int(pk)
     instruction_name = request.data['instruction']
     domain = get_domain()
     action = actions.watch_instruction(domain, student, instruction_name)
     #serializer = ActionSerializer(action, context={'request': request})
     return Response()
Esempio n. 4
0
 def start_task(self, request, pk=None):
     student = self.get_object()
     assert student.pk == int(pk)
     task_name = request.data['task']
     domain = get_domain()
     action = actions.start_task(domain, student, task_name)
     response_data = {'task_session_id': action.task_session_id}
     return Response(response_data)
Esempio n. 5
0
 def practice_overview(self, request, pk):
     del request, pk  # not needed
     student = self.get_object()
     prefetch_related_objects(
         [student],
         Prefetch('task_sessions',
                  queryset=TaskSession.objects.select_related('task')))
     # -> Same as student = Student.objects.prefetch_related(...).get(pk=pk)
     domain = get_domain()
     overview = get_practice_overview(domain, student)
     serializer = PracticeOverviewSerializer(overview)
     return Response(serializer.data)
Esempio n. 6
0
 def practice_overview(self, request, pk):
     del request, pk  # not needed
     student = self.get_object()
     prefetch_related_objects(
         [student],
         Prefetch(
             'task_sessions',
             queryset=TaskSession.objects.select_related('task')))
     # -> Same as student = Student.objects.prefetch_related(...).get(pk=pk)
     domain = get_domain()
     overview = get_practice_overview(domain, student)
     serializer = PracticeOverviewSerializer(overview)
     return Response(serializer.data)
Esempio n. 7
0
 def run_program(self, request, pk=None):
     task_session_id = request.data['task-session-id']
     program = request.data['program']
     correct = request.data['correct']
     task_session = (TaskSession.objects.select_related(
         'task', 'student').get(pk=task_session_id))
     student = task_session.student
     assert student.pk == int(pk)
     domain = get_domain()
     progress = actions.run_program(domain, task_session, program, correct)
     response = {'correct': correct}
     if correct:
         prefetch_related_objects(
             [student],
             Prefetch('task_sessions',
                      queryset=TaskSession.objects.select_related('task')))
         response['recommendation'] = get_recommendation(domain, student)
         response['progress'] = progress or []
         print('progress', progress)
     serializer = RunProgramResponseSerializer(response)
     return Response(serializer.data)
Esempio n. 8
0
 def run_program(self, request, pk=None):
     task_session_id = request.data['task-session-id']
     program = request.data['program']
     correct = request.data['correct']
     task_session = (
         TaskSession.objects
         .select_related('task', 'student')
         .get(pk=task_session_id))
     student = task_session.student
     assert student.pk == int(pk)
     domain = get_domain()
     progress = actions.run_program(domain, task_session, program, correct)
     response = {'correct': correct}
     if correct:
         prefetch_related_objects(
             [student],
             Prefetch(
                 'task_sessions',
                 queryset=TaskSession.objects.select_related('task')))
         response['recommendation'] = get_recommendation(domain, student)
         response['progress'] = progress or []
         print('progress', progress)
     serializer = RunProgramResponseSerializer(response)
     return Response(serializer.data)
Esempio n. 9
0
 def list(self, request, format=None):
     domain = get_domain()
     # TODO: Don't pass request context if not needed.
     serializer = DomainSerializer(domain, context={'request': request})
     return Response(serializer.data)
Esempio n. 10
0
 def get_level(self, student):
     domain = get_domain()
     level = get_level(domain, student)
     return level
Esempio n. 11
0
 def list(self, request, format=None):
     domain = get_domain()
     # TODO: Don't pass request context if not needed.
     serializer = DomainSerializer(domain, context={'request': request})
     return Response(serializer.data)