diff --git a/erpnext/education/doctype/course/course.py b/erpnext/education/doctype/course/course.py index 1e4270954d..9e701c6035 100644 --- a/erpnext/education/doctype/course/course.py +++ b/erpnext/education/doctype/course/course.py @@ -19,27 +19,17 @@ class Course(Document): if total_weightage != 100: frappe.throw(_("Total Weightage of all Assessment Criteria must be 100%")) - def get_content_value(self, data): + def get_contents(self): try: course_content_list = self.get_all_children() - content_data = [frappe.get_value(course_content.content_type, course_content.content, data) for course_content in course_content_list] + content_data = [frappe.get_doc(course_content.content_type, course_content.content) for course_content in course_content_list] except Exception as e: print(e) return None return content_data - def get_content_info(self): - try: - course_content_list = self.get_all_children() - content_data = [[course_content.content_type, course_content.content] for course_content in course_content_list] - except Exception as e: - print(e) - return None - return content_data + def get_first_content(self): + return self.get_contents()[0] - def get_content_title(self): - ''' - returns all the course content for the given course object. - ''' - content_title = self.get_content_value("title") - return content_title \ No newline at end of file + def get_last_content(self): + return self.get_contents()[-1] \ No newline at end of file diff --git a/erpnext/education/doctype/course_enrollment/course_enrollment.py b/erpnext/education/doctype/course_enrollment/course_enrollment.py index cfe502b8a3..dd90a5e96e 100644 --- a/erpnext/education/doctype/course_enrollment/course_enrollment.py +++ b/erpnext/education/doctype/course_enrollment/course_enrollment.py @@ -8,7 +8,24 @@ from frappe.model.document import Document class CourseEnrollment(Document): + def get_linked_activity(self): + course_activity_list = frappe.get_all("Course Activity", filters={'enrollment':self.name}) + course_activity = [frappe.get_doc("Course Activity", activity.name) for activity in course_activity_list] + quiz_activity_list = frappe.get_all("Quiz Activity", filters={'enrollment':self.name}) + quiz_activity = [frappe.get_doc("Quiz Activity", activity.name) for activity in quiz_activity_list] + return course_activity, quiz_activity + def get_all_activity(self): - course_activity_list = frappe.get_all("Course Activity", filters={'enrollment':self.name}, fields=['content', 'content_type', 'modified'], order_by='modified') - quiz_activity_list = frappe.get_all("Quiz Activity", filters={'enrollment':self.name}, fields=['quiz', 'status', 'modified'], order_by='modified') - return course_activity_list, quiz_activity_list \ No newline at end of file + courses, quizes = self.get_linked_activity() + joined = courses + quizes + activity = sorted(joined, key = lambda i: i.modified) # Sorting based on modified timestamp + return activity + + def check_course_completion(self): + pass + + def get_last_activity(self): + if len(self.get_all_activity()) == 0: + return None + else: + return self.get_all_activity()[-1] \ No newline at end of file