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
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