chore: minor code improvements

This commit is contained in:
scmmishra
2019-04-22 12:54:43 +05:30
parent 64d2fe0ad7
commit 66d239281c
3 changed files with 10 additions and 9 deletions

View File

@@ -68,7 +68,7 @@ def get_current_student():
student_id = frappe.get_all("Student", {"student_email_id": email}, ["name"])[0].name student_id = frappe.get_all("Student", {"student_email_id": email}, ["name"])[0].name
return frappe.get_doc("Student", student_id) return frappe.get_doc("Student", student_id)
except (IndexError, frappe.DoesNotExistError): except (IndexError, frappe.DoesNotExistError):
frappe.throw(_("Student with email {0} does not exist.".format(email))) return None
def check_super_access(): def check_super_access():
current_user = frappe.get_doc('User', frappe.session.user) current_user = frappe.get_doc('User', frappe.session.user)
@@ -83,7 +83,7 @@ def get_program_enrollment(program_name):
if not student: if not student:
return None return None
else: else:
enrollment = frappe.get_all("Program Enrollment", filters={'student':student, 'program': program_name}) enrollment = frappe.get_all("Program Enrollment", filters={'student':student.name, 'program': program_name})
if enrollment: if enrollment:
return enrollment[0].name return enrollment[0].name
else: else:
@@ -96,7 +96,7 @@ def get_program_and_enrollment_status(program_name):
def get_course_enrollment(course_name): def get_course_enrollment(course_name):
student = get_current_student() student = get_current_student()
enrollment_name = frappe.get_all("Course Enrollment", filters={'student': student, 'course':course_name}) enrollment_name = frappe.get_all("Course Enrollment", filters={'student': student.name, 'course':course_name})
try: try:
name = enrollment_name[0].name name = enrollment_name[0].name
enrollment = frappe.get_doc("Course Enrollment", name) enrollment = frappe.get_doc("Course Enrollment", name)
@@ -118,8 +118,7 @@ def create_student_from_current_user():
return student return student
def enroll_in_course(course_name, program_name): def enroll_in_course(course_name, program_name):
student_id = get_current_student() student = get_current_student()
student = frappe.get_doc("Student", student_id)
return student.enroll_in_course(course_name=course_name, program_enrollment=get_program_enrollment(program_name)) return student.enroll_in_course(course_name=course_name, program_enrollment=get_program_enrollment(program_name))
def check_activity_exists(enrollment, content_type, content): def check_activity_exists(enrollment, content_type, content):

View File

@@ -91,15 +91,17 @@ def get_quiz_without_answers(quiz_name, course_name):
return None return None
enrollment = utils.get_course_enrollment(course_name).name enrollment = utils.get_course_enrollment(course_name).name
quiz_status = {} quiz_progress = {}
quiz_status['is_complete'], quiz_status['score'], quiz_status['result'] = utils.check_quiz_completion(quiz, enrollment) quiz_progress['is_complete'], quiz_progress['score'], quiz_progress['result'] = utils.check_quiz_completion(quiz, enrollment)
quiz_output = [{'name':question.name, 'question':question.question, 'type': question.type, 'options':[{'name': option.name, 'option':option.option} for option in question.options]} for question in questions] quiz_output = [{'name':question.name, 'question':question.question, 'type': question.type, 'options':[{'name': option.name, 'option':option.option} for option in question.options]} for question in questions]
return { 'quizData': quiz_output, 'status': quiz_status} return { 'quizData': quiz_output, 'status': quiz_progress}
@frappe.whitelist() @frappe.whitelist()
def evaluate_quiz(course, quiz_response, quiz_name): def evaluate_quiz(course, quiz_response, quiz_name):
"""LMS Function: Evaluates a simple multiple choice quiz. """LMS Function: Evaluates a simple multiple choice quiz.
:param course: name of the course
:param quiz_response: contains user selected choices for a quiz in the form of a string formatted as a dictionary. The function uses `json.loads()` to convert it to a python dictionary. :param quiz_response: contains user selected choices for a quiz in the form of a string formatted as a dictionary. The function uses `json.loads()` to convert it to a python dictionary.
:param quiz_name: Name of the quiz attempted
""" """
import json import json
quiz_response = json.loads(quiz_response) quiz_response = json.loads(quiz_response)