From dc3843087e6324b58a50bb4730327dd7105024dc Mon Sep 17 00:00:00 2001 From: Jannat Patel Date: Fri, 18 Feb 2022 12:26:08 +0530 Subject: [PATCH] feat: course page redesign --- school/hooks.py | 3 +- school/lms/utils.py | 5 ++- school/lms/widgets/CourseOutline.html | 35 ++++++++++----- school/plugins.py | 3 +- school/public/css/style.css | 26 ++++++----- school/templates/quiz.html | 6 +-- school/www/batch/learn.html | 62 +++++++++++++++++++-------- school/www/courses/course.js | 9 ---- school/www/utils.py | 3 +- 9 files changed, 96 insertions(+), 56 deletions(-) diff --git a/school/hooks.py b/school/hooks.py index 391e73a1..929dbd4f 100644 --- a/school/hooks.py +++ b/school/hooks.py @@ -183,7 +183,8 @@ jinja = { "school.lms.utils.get_reviews", "school.lms.utils.is_eligible_to_review", "school.lms.utils.get_initial_members", - "school.lms.utils.get_sorted_reviews" + "school.lms.utils.get_sorted_reviews", + "school.lms.utils.is_instructor" ], "filters": [] } diff --git a/school/lms/utils.py b/school/lms/utils.py index 51ec23c6..9246bc5a 100644 --- a/school/lms/utils.py +++ b/school/lms/utils.py @@ -81,7 +81,7 @@ def get_lesson_details(chapter): for row in lesson_list: lesson_details = frappe.db.get_value("Course Lesson", row.lesson, - ["name", "title", "include_in_preview", "body"], as_dict=True) + ["name", "title", "include_in_preview", "body", "creation"], as_dict=True) lesson_details.number = flt("{}.{}".format(chapter.idx, row.idx)) lessons.append(lesson_details) return lessons @@ -289,3 +289,6 @@ def get_initial_members(course): member.member, ["name", "username", "full_name", "user_image"], as_dict=True)) return member_details + +def is_instructor(course): + return len(list(filter(lambda x: x.name == frappe.session.user, get_instructors(course)))) > 0 diff --git a/school/lms/widgets/CourseOutline.html b/school/lms/widgets/CourseOutline.html index ab44b730..970de9ed 100644 --- a/school/lms/widgets/CourseOutline.html +++ b/school/lms/widgets/CourseOutline.html @@ -41,14 +41,14 @@ {% elif is_instructor and not lesson.include_in_preview %}
{{ lesson.title }}
{% else %} -
+
Try Again
diff --git a/school/www/batch/learn.html b/school/www/batch/learn.html index 959a9c3d..444e6676 100644 --- a/school/www/batch/learn.html +++ b/school/www/batch/learn.html @@ -33,34 +33,60 @@ {% endblock %} {% macro LessonContent(lesson) %} -{% set is_instructor = frappe.session.user == course.instructor %} +{% set instructors = get_instructors(course.name) %} +{% set is_instructor = is_instructor(course.name) %}
-
- {{ lesson.title }} +
+
{{ lesson.title }}
COMPLETED
+
+ {% set instructors = instructors %} + {% set ins_len = instructors | length %} + {% for instructor in instructors %} + {% if ins_len > 1 and loop.index == 1 %} +
+ {% endif %} + {{ widgets.Avatar(member=instructor, avatar_class="avatar-small") }} + {% if ins_len > 1 and loop.index == ins_len %} +
+ {% endif %} + {% endfor %} + + + {% if ins_len == 1 %} + {{ instructors[0].full_name }} + {% else %} + {% set suffix = "other" if ins_len - 1 == 1 else "others" %} + {{ instructors[0].full_name.split(" ")[0] }} and {{ ins_len - 1 }} {{ suffix }} + {% endif %} + + +
{{ frappe.utils.format_date(lesson.creation, "medium") }}
+
+ + +
{% if membership or lesson.include_in_preview or is_instructor %} -
- {% if is_instructor and not lesson.include_in_preview %} - + {% if is_instructor and not lesson.include_in_preview %} +
This lesson is not available for preview. As you are the Instructor of the course only you can see it. × - - {% endif %} - {{ render_html(lesson.body) }}
- {% else %} -
-
- This lesson is not available for preview. Please join the course to access it. - Start Learning
-
{% endif %} + {{ render_html(lesson.body) }} + {% else %} +
+ Start Learning +
This lesson is not available for preview. Please join the course to access it.
+
+ {% endif %} +
{% endmacro %} diff --git a/school/www/courses/course.js b/school/www/courses/course.js index f59c3552..e5f8c8ab 100644 --- a/school/www/courses/course.js +++ b/school/www/courses/course.js @@ -21,10 +21,6 @@ frappe.ready(() => { view_all_mentors(e); }); - $(".video-preview").click((e) => { - show_video_dialog(e); - }); - $(".review-link").click((e) => { show_review_dialog(e); }); @@ -158,11 +154,6 @@ var view_all_mentors = (e) => { } } -var show_video_dialog = (e) => { - e.preventDefault(); - $("#video-modal").modal("show"); -} - var show_review_dialog = (e) => { e.preventDefault(); $("#review-modal").modal("show"); diff --git a/school/www/utils.py b/school/www/utils.py index 21fa2676..9cb00bba 100644 --- a/school/www/utils.py +++ b/school/www/utils.py @@ -1,6 +1,5 @@ import frappe -from school.lms.utils import slugify, get_membership, get_lessons, get_batch - +from school.lms.utils import slugify, get_membership, get_lessons, get_batch, get_lesson_url def get_common_context(context): context.no_cache = 1