chore: refactor `utils.get_current_student`
diff --git a/erpnext/education/utils.py b/erpnext/education/utils.py
index 641664c..5aaaa2f 100644
--- a/erpnext/education/utils.py
+++ b/erpnext/education/utils.py
@@ -66,9 +66,9 @@
return None
try:
student_id = frappe.get_all("Student", {"student_email_id": email}, ["name"])[0].name
- return student_id
- except IndexError:
- return None
+ return frappe.get_doc("Student", student_id)
+ except (IndexError, frappe.DoesNotExistError):
+ frappe.throw(_("Student with email {0} does not exist.".format(email)))
def check_super_access():
current_user = frappe.get_doc('User', frappe.session.user)
diff --git a/erpnext/www/lms.py b/erpnext/www/lms.py
index 9ccafa9..f71fc59 100644
--- a/erpnext/www/lms.py
+++ b/erpnext/www/lms.py
@@ -8,22 +8,14 @@
student = utils.get_current_student()
if student == None:
return None
- try:
- student = frappe.get_doc("Student", student)
- return student.get_program_enrollments()
- except:
- return None
+ return student.get_program_enrollments()
@frappe.whitelist()
def get_all_course_enrollments():
student = utils.get_current_student()
if student == None:
return None
- try:
- student = frappe.get_doc("Student", student)
- return student.get_all_course_enrollments()
- except:
- return None
+ return student.get_all_course_enrollments()
# Vue Client Functions
@frappe.whitelist(allow_guest=True)
@@ -151,9 +143,9 @@
@frappe.whitelist()
def enroll_in_program(program_name):
- if(not utils.get_current_student()):
+ student = utils.get_current_student()
+ if not student:
utils.create_student_from_current_user()
- student = frappe.get_doc("Student", utils.get_current_student())
program_enrollment = student.enroll_in_program(program_name)
return program_name
@@ -183,11 +175,11 @@
:param course_name:
:param program_name:
"""
- if not utils.get_current_student():
+ student = utils.get_current_student()
+ if not student:
return {'flag':'Start Course' }
course_enrollment = utils.get_course_enrollment(course_name)
program_enrollment = utils.get_program_enrollment(program_name)
- student = frappe.get_doc("Student", utils.get_current_student())
if not program_enrollment:
return None
if not course_enrollment:
@@ -210,14 +202,14 @@
:param course_name:
"""
topic = frappe.get_doc("Topic", topic_name)
- if not utils.get_current_student():
+ student = utils.get_current_student()
+ if not student:
topic_content = topic.get_all_children()
if topic_content:
return {'flag':'Start Course', 'content_type': topic_content[0].content_type, 'content': topic_content[0].content}
else:
return None
course_enrollment = utils.get_course_enrollment(course_name)
- student = frappe.get_doc("Student", utils.get_current_student())
progress = student.get_topic_progress(course_enrollment.name, topic)
if not progress:
return { 'flag':'Start Topic', 'content_type': None, 'content': None }
@@ -261,8 +253,7 @@
@frappe.whitelist()
def get_joining_date():
current_student = utils.get_current_student()
- if(current_student):
- student = frappe.get_doc("Student", current_student)
+ if current_student:
return student.joining_date
else:
return None
@@ -272,7 +263,7 @@
program = frappe.get_doc("Program", program_name)
program_enrollment = utils.get_program_enrollment(program_name)
quiz_meta = frappe._dict()
- student = frappe.get_doc("Student", utils.get_current_student())
+ student = utils.get_current_student()
if not program_enrollment:
return None
else:
@@ -281,7 +272,6 @@
course_enrollment = utils.get_course_enrollment(course.course)
meta = course_enrollment.get_progress(student)
for progress_item in meta:
- # if progress_item['content_type'] == "Quiz" and progress_item['is_complete'] == True:
if progress_item['content_type'] == "Quiz":
progress_item['course'] = course.course_name
progress_list.append(progress_item)