Exemple #1
0
 def get_student_codequiz_progress(self, user_key):
     ids = self.get_codequiz_ids()
     # todo -> Use a manager instead. 
     count = CodeQuizAttempt.get_answered_codequiz_count_in(user_key, ids)
     return {
         "answered": count,
         "total": len(ids)
     }
Exemple #2
0
    def _get_student_progress_from_cached_quiz_ids(self, user_key,
                                                   quiz_ids_by_concept):
        all_quiz_ids = []
        all_codequiz_ids = []
        for concept_id, ids in quiz_ids_by_concept.items():
            all_quiz_ids.extend(ids['quiz_ids'].keys())
            all_codequiz_ids.extend(ids['codequiz_ids'].keys())
        answered_quiz_ids = QuizAttempt.objects.get_user_answered_quiz_ids(
            user_key, all_quiz_ids)
        answered_codequiz_ids = CodeQuizAttempt.get_user_answered_quiz_ids(
            user_key, all_quiz_ids)

        answered_quiz_dict = {
            quiz_id: quiz_id
            for quiz_id in answered_quiz_ids
        }
        answered_codequiz_dict = {
            quiz_id: quiz_id
            for quiz_id in answered_codequiz_ids
        }

        progress = {}
        for concept_id, ids in quiz_ids_by_concept.items():
            quiz_ids = ids['quiz_ids']
            codequiz_ids = ids['codequiz_ids']

            answered_quiz_count = 0
            answered_codequiz_count = 0

            for quiz_id, _ in quiz_ids.items():
                if quiz_id in answered_quiz_dict:
                    answered_quiz_count += 1
            for quiz_id, _ in codequiz_ids.items():
                if quiz_id in answered_codequiz_dict:
                    answered_codequiz_count += 1

            quiz = {"answered": answered_quiz_count, "total": len(quiz_ids)}
            codequiz = {
                "answered": answered_codequiz_count,
                "total": len(codequiz_ids)
            }
            progress[str(concept_id)] = {"quiz": quiz, "codequiz": codequiz}
        return progress
Exemple #3
0
    def _get_student_progress_from_cached_quiz_ids(self, user_key, quiz_ids_by_concept):
        all_quiz_ids = []
        all_codequiz_ids = []
        for concept_id, ids in quiz_ids_by_concept.items():
            all_quiz_ids.extend(ids['quiz_ids'].keys())
            all_codequiz_ids.extend(ids['codequiz_ids'].keys())
        answered_quiz_ids = QuizAttempt.objects.get_user_answered_quiz_ids(user_key, all_quiz_ids)
        answered_codequiz_ids = CodeQuizAttempt.get_user_answered_quiz_ids(user_key, all_quiz_ids)

        answered_quiz_dict = {quiz_id: quiz_id for quiz_id in answered_quiz_ids}
        answered_codequiz_dict = {quiz_id: quiz_id for quiz_id in answered_codequiz_ids}

        progress = {}
        for concept_id, ids in quiz_ids_by_concept.items():
            quiz_ids = ids['quiz_ids']
            codequiz_ids = ids['codequiz_ids']

            answered_quiz_count = 0
            answered_codequiz_count = 0

            for quiz_id, _ in quiz_ids.items():
                if quiz_id in answered_quiz_dict:
                    answered_quiz_count += 1
            for quiz_id, _ in codequiz_ids.items():
                if quiz_id in answered_codequiz_dict:
                    answered_codequiz_count += 1

            quiz = {
                "answered": answered_quiz_count,
                "total": len(quiz_ids)
            }
            codequiz = {
                "answered": answered_codequiz_count,
                "total": len(codequiz_ids)
            }
            progress[str(concept_id)] = {
                "quiz": quiz,
                "codequiz": codequiz
            }
        return progress
Exemple #4
0
 def get_user_codequizattempts(self, user_key):
     quiz_ids = self.get_codequiz_ids()
     return CodeQuizAttempt.get_user_attempts_in_quizzes(user_key, quiz_ids)
Exemple #5
0
 def get_student_codequiz_progress(self, user_key):
     ids = self.get_codequiz_ids()
     # todo -> Use a manager instead.
     count = CodeQuizAttempt.get_answered_codequiz_count_in(user_key, ids)
     return {"answered": count, "total": len(ids)}
Exemple #6
0
 def get_user_codequizattempts(self, user_key):
     quiz_ids = self.get_codequiz_ids()
     return CodeQuizAttempt.get_user_attempts_in_quizzes(user_key, quiz_ids)