From 4eb5390ad82ace8e179c4907323cf22a68cb258a Mon Sep 17 00:00:00 2001 From: Jannat Patel Date: Tue, 25 Apr 2023 20:54:57 +0530 Subject: [PATCH] feat: redesign lesson page --- lms/hooks.py | 1 + lms/lms/utils.py | 31 +++++--- lms/lms/widgets/CourseOutline.html | 10 ++- lms/public/css/style.css | 81 ++++++++++--------- lms/public/icons/symbol-defs.svg | 3 + lms/www/batch/learn.html | 121 ++++++++++------------------- lms/www/batch/learn.py | 1 + lms/www/courses/course.html | 63 ++------------- lms/www/courses/create.html | 112 +++++++++++++++----------- lms/www/courses/create.js | 84 ++++++++++++++++---- lms/www/courses/create.py | 16 ++-- lms/www/courses/outline.html | 37 +++++++++ lms/www/courses/outline.py | 8 ++ lms/www/utils.py | 1 + 14 files changed, 314 insertions(+), 255 deletions(-) create mode 100644 lms/www/courses/outline.html create mode 100644 lms/www/courses/outline.py diff --git a/lms/hooks.py b/lms/hooks.py index 6eadb4a5..2a6e7f15 100644 --- a/lms/hooks.py +++ b/lms/hooks.py @@ -139,6 +139,7 @@ website_route_rules = [ {"from_route": "/sketches/", "to_route": "sketches/sketch"}, {"from_route": "/courses/", "to_route": "courses/course"}, {"from_route": "/courses//edit", "to_route": "courses/create"}, + {"from_route": "/courses//outline", "to_route": "courses/outline"}, {"from_route": "/courses//", "to_route": "courses/certificate"}, {"from_route": "/courses//learn", "to_route": "batch/learn"}, { diff --git a/lms/lms/utils.py b/lms/lms/utils.py index 4086e111..a7c0870b 100644 --- a/lms/lms/utils.py +++ b/lms/lms/utils.py @@ -502,12 +502,17 @@ def can_create_courses(member=None): if not member: member = frappe.session.user + if frappe.session.user == "Guest": + return False + + if has_course_instructor_role(member) or has_course_moderator_role(member): + return True + portal_course_creation = frappe.db.get_single_value( "LMS Settings", "portal_course_creation" ) - return frappe.session.user != "Guest" and ( - portal_course_creation == "Anyone" or has_course_instructor_role(member) - ) + + return portal_course_creation == "Anyone" def has_course_moderator_role(member=None): @@ -618,15 +623,17 @@ def get_filtered_membership(course, memberships): def show_start_learing_cta(course, membership): - return ( - not course.disable_self_learning - and not membership - and not course.upcoming - and not check_profile_restriction() - and not is_instructor(course.name) - and course.status == "Approved" - and has_lessons(course) - ) + + if course.disable_self_learning or course.upcoming: + return False + if is_instructor(course.name): + return False + if course.status != "Approved": + return False + if not has_lessons(course): + return False + if not membership: + return True def has_lessons(course): diff --git a/lms/lms/widgets/CourseOutline.html b/lms/lms/widgets/CourseOutline.html index 69ac09c8..f7da14a6 100644 --- a/lms/lms/widgets/CourseOutline.html +++ b/lms/lms/widgets/CourseOutline.html @@ -4,6 +4,7 @@ {% if chapters | length %}
+ {% if not lesson_page %}
{{ _("Course Content") }}
@@ -16,9 +17,10 @@ . {{ get_lessons(course.name, None, False) }} lessons
+ {% endif %} {% if chapters | length %} -
+
{% for chapter in chapters %} {% set lessons = get_lessons(course.name, chapter) %} @@ -41,7 +43,7 @@