Пример #1
0
 def test_get_practice_details_with_solved_tasks(self):
     instance1 = TaskInstanceModel.objects.create(task_id=1,
                                                  student=self.student,
                                                  solved=True)
     instance2 = TaskInstanceModel.objects.create(task_id=1,
                                                  student=self.student,
                                                  solved=True)
     instance3 = TaskInstanceModel.objects.create(task_id=2,
                                                  student=self.student,
                                                  solved=True)
     instance4 = TaskInstanceModel.objects.create(task_id=3,
                                                  student=self.student,
                                                  solved=False)
     info1 = StudentTaskInfoModel.objects.create(student=self.student,
                                                 task=self.task1)
     info2 = StudentTaskInfoModel.objects.create(student=self.student,
                                                 task=self.task2)
     info3 = StudentTaskInfoModel.objects.create(student=self.student,
                                                 task=self.task3)
     info1.update(instance1)
     info1.update(instance2)
     info2.update(instance3)
     info3.update(instance4)
     info1.save()
     info2.save()
     info3.save()
     practice_details = details.get_practice_details(self.user)
     self.assertEqual(practice_details.total_credits, 0)
     self.assertEqual(practice_details.free_credits, 0)
     self.assertEqual(practice_details.solved_tasks_count, 2)
Пример #2
0
 def test_get_practice_details_no_solved_tasks(self):
     self.student.total_credits = 7
     self.student.free_credits = 3
     self.student.save()
     practice_details = details.get_practice_details(self.user)
     self.assertEqual(practice_details.total_credits, 7)
     self.assertEqual(practice_details.free_credits, 3)
     self.assertEqual(practice_details.solved_tasks_count, 0)
Пример #3
0
def get_student_toolbox(student):
    """Fetches the user toolbox.

    Args:
        student: current student practicing tasks

    Returns:
        list of identifiers of all available blocks for the user
    """
    details = get_practice_details(student.user)
    return details.available_blocks
Пример #4
0
def get_practice_details(request):
    """Get information about practice and skill of current user.

    Returns:
        - total-credits
        - free-credits
        - solved-tasks-count
    """
    logger.log_request(request)
    practice_details = details.get_practice_details(user=request.user)
    details_dict = {
        'total-credits': practice_details.total_credits,
        'free-credits': practice_details.free_credits,
        'solved-tasks-count': practice_details.solved_tasks_count,
        'available-blocks': [block.to_json() for block in
                             practice_details.available_blocks]
    }
    return JsonResponse(details_dict)
Пример #5
0
def get_practice_details(request):
    """Get information about practice and skill of current user.

    Returns:
        - total-credits
        - free-credits
        - solved-tasks-count
    """
    logger.log_request(request)
    practice_details = details.get_practice_details(user=request.user)
    details_dict = {
        'total-credits':
        practice_details.total_credits,
        'free-credits':
        practice_details.free_credits,
        'solved-tasks-count':
        practice_details.solved_tasks_count,
        'available-blocks':
        [block.to_json() for block in practice_details.available_blocks]
    }
    return JsonResponse(details_dict)