feat: added home page

- Refactored the lms_course page and added find_all method to find courses
- Added CourseTeaser widget
- Added /home as a portal page
This commit is contained in:
Anand Chitipothu
2021-04-29 10:48:12 +05:30
parent 20ccc09869
commit e207320721
6 changed files with 89 additions and 1 deletions
@@ -88,3 +88,15 @@ class LMSCourse(Document):
member.batch_count = len(frappe.get_all("LMS Batch Membership", {"member": member.name, "member_type": "Mentor"}))
course_mentors.append(member)
return course_mentors
def get_instructor(self):
return frappe.get_doc("User", self.owner)
@staticmethod
def find_all():
"""Returns all published courses.
"""
rows = frappe.db.get_all("LMS Course",
filters={"is_published": True},
fields='*')
return [frappe.get_doc(dict(row, doctype='LMS Course')) for row in rows]
@@ -4,6 +4,7 @@
from __future__ import unicode_literals
import frappe
from .lms_course import LMSCourse
import unittest
class TestLMSCourse(unittest.TestCase):
@@ -26,6 +27,23 @@ class TestLMSCourse(unittest.TestCase):
assert course.slug == "test-course"
assert course.get_mentors() == []
def test_find_all(self):
courses = LMSCourse.find_all()
assert courses == []
# new couse, but not published
course = self.new_course("Test Course")
assert courses == []
# publish the course
course.is_published = True
course.save()
# now we should find one course
courses = LMSCourse.find_all()
assert [c.slug for c in courses] == [course.slug]
# disabled this test as it is failing
def _test_add_mentors(self):
course = self.new_course("Test Course")
assert course.get_mentors() == []
@@ -47,4 +65,4 @@ def new_user(name, email):
email=email,
first_name=name))
doc.insert()
return doc
return doc
+11
View File
@@ -0,0 +1,11 @@
<div class="course-preview">
<h3 class="course-title"><a href="/courses/{{ course.slug }}">{{ course.title }}</a></h3>
<div class="course-intro">
{{ course.short_introduction or "" }}
</div>
<div class="course-footer">
<div class="course-author">
{{ course.get_instructor().full_name }}
</div>
</div>
</div>