refactor: merged profile and dashboard page
This commit is contained in:
@@ -26,19 +26,91 @@
|
||||
</div>
|
||||
|
||||
{% else %}
|
||||
{% include "lms/templates/search_course/search_course.html" %}
|
||||
|
||||
<div class="course-list">
|
||||
{% set courses = live_courses %}
|
||||
{% set title = _("Live Courses ({0})").format(courses | length) %}
|
||||
{% set classes = "live-courses" %}
|
||||
{% include "lms/templates/course_list.html" %}
|
||||
<!-- {% include "lms/templates/search_course/search_course.html" %} -->
|
||||
|
||||
{% if show_creators_section %}
|
||||
<div class="pull-right">
|
||||
<a class="btn btn-secondary btn-sm" href="/users"> {{ _("Visit Dashboard") }} </a>
|
||||
<a class="btn btn-secondary btn-sm ml-2" href="/courses/new-course"> {{ _("Create a Course") }} </a>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<ul class="nav lms-nav" id="courses-tab">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" data-toggle="tab" href="#live">
|
||||
{{ _("Live") }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#upcoming">
|
||||
{{ _("Upcoming") }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
{% if frappe.session.user != "Guest" %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#courses-enrolled">
|
||||
{{ _("Enrolled") }}
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if show_creators_section %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#courses-created">
|
||||
{{ _("Created") }}
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if show_review_section %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#courses-under-review">
|
||||
{{ _("Under Review") }}
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
|
||||
<div class="border-bottom mb-4"></div>
|
||||
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane active" id="live" role="tabpanel" aria-labelledby="live">
|
||||
{% set courses = live_courses %}
|
||||
{% set title = _("Live Courses") %}
|
||||
{% set classes = "live-courses" %}
|
||||
{% include "lms/templates/course_list.html" %}
|
||||
</div>
|
||||
|
||||
<div class="tab-pane" id="upcoming" role="tabpanel" aria-labelledby="upcoming">
|
||||
{% set courses = upcoming_courses %}
|
||||
{% set title = _("Upcoming Courses") %}
|
||||
{% set classes = "upcoming-courses" %}
|
||||
{% include "lms/templates/course_list.html" %}
|
||||
</div>
|
||||
|
||||
{% if frappe.session.user != "Guest" %}
|
||||
<div class="tab-pane fade" id="courses-enrolled" role="tabpanel" aria-labelledby="courses-enrolled">
|
||||
{% include "lms/lms/web_template/courses_enrolled/courses_enrolled.html" %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if show_creators_section %}
|
||||
<div class="tab-pane fade" id="courses-created" role="tabpanel" aria-labelledby="courses-created">
|
||||
{% include "lms/templates/courses_created.html" %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if show_review_section %}
|
||||
<div class="tab-pane fade" id="courses-under-review" role="tabpanel" aria-labelledby="courses-under-review">
|
||||
{% include "lms/templates/courses_under_review.html" %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
</div>
|
||||
|
||||
{% set courses = upcoming_courses %}
|
||||
{% set title = _("Upcoming Courses ({0})").format(courses | length) %}
|
||||
{% set classes = "upcoming-courses mt-10" %}
|
||||
{% include "lms/templates/course_list.html" %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,18 +1,22 @@
|
||||
import frappe
|
||||
from frappe import _
|
||||
from lms.lms.utils import check_profile_restriction, get_restriction_details
|
||||
from lms.lms.utils import has_course_instructor_role, has_course_moderator_role, check_profile_restriction, get_restriction_details
|
||||
|
||||
|
||||
def get_context(context):
|
||||
context.no_cache = 1
|
||||
context.live_courses, context.upcoming_courses = get_courses()
|
||||
context.restriction = check_profile_restriction()
|
||||
portal_course_creation = frappe.db.get_single_value("LMS Settings", "portal_course_creation")
|
||||
context.show_creators_section = frappe.session.user != "Guest" and \
|
||||
(portal_course_creation == "Anyone" or has_course_instructor_role())
|
||||
context.show_review_section = has_course_moderator_role() and frappe.session.user != "Gurst"
|
||||
|
||||
if context.restriction:
|
||||
context.restriction_details = get_restriction_details()
|
||||
|
||||
context.metatags = {
|
||||
"title": _("All Live Courses"),
|
||||
"title": _("Courses List"),
|
||||
"image": frappe.db.get_single_value("Website Settings", "banner_image"),
|
||||
"description": "This page lists all the courses published on our website",
|
||||
"keywords": "All Courses, Courses, Learn"
|
||||
|
||||
@@ -1,75 +0,0 @@
|
||||
{% extends "templates/base.html" %}
|
||||
{% block title %}
|
||||
{{ _("Dashboard")}}
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div class="common-page-style dashboard">
|
||||
<div class="container">
|
||||
|
||||
{% if show_creators_section %}
|
||||
<a class="btn btn-secondary btn-sm course-creation-link" id="create-course-link" href="/courses/new-course">
|
||||
{{ _("Create a Course") }}
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
<ul class="nav lms-nav" id="courses-tab">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" data-toggle="tab" href="#courses-enrolled">
|
||||
{{ _("Enrolled") }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
{% if show_creators_section %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#courses-created">
|
||||
{{ _("Created") }}
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if show_review_section %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#courses-under-review">
|
||||
{{ _("Under Review") }}
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#notifications">{{ _("Notifications") }}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="border-bottom mb-4"></div>
|
||||
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane active" id="courses-enrolled" role="tabpanel" aria-labelledby="courses-enrolled">
|
||||
{% include "lms/lms/web_template/courses_enrolled/courses_enrolled.html" %}
|
||||
</div>
|
||||
|
||||
{% if show_creators_section %}
|
||||
<div class="tab-pane fade" id="courses-created" role="tabpanel" aria-labelledby="courses-created">
|
||||
{% include "lms/templates/courses_created.html" %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if show_review_section %}
|
||||
<div class="tab-pane fade" id="courses-under-review" role="tabpanel" aria-labelledby="courses-under-review">
|
||||
{% include "lms/templates/courses_under_review.html" %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="tab-pane" id="notifications" role="tabpanel" aria-labelledby="notifications">
|
||||
{% include "lms/templates/notifications.html" %}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
|
||||
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
|
||||
{% endblock %}
|
||||
@@ -1,24 +0,0 @@
|
||||
import frappe
|
||||
from datetime import datetime
|
||||
from lms.lms.utils import has_course_instructor_role, has_course_moderator_role, get_lesson_index
|
||||
|
||||
|
||||
def get_context(context):
|
||||
context.no_cache = 1
|
||||
portal_course_creation = frappe.db.get_single_value("LMS Settings", "portal_course_creation")
|
||||
context.show_creators_section = portal_course_creation == "Anyone" or has_course_instructor_role()
|
||||
context.show_review_section = has_course_moderator_role()
|
||||
context.notifications = get_notifications()
|
||||
|
||||
|
||||
def get_notifications():
|
||||
notifications = frappe.get_all("Notification Log", {
|
||||
"document_type": "Course Lesson",
|
||||
"for_user": frappe.session.user
|
||||
}, ["subject", "creation", "from_user", "document_name"])
|
||||
|
||||
for notification in notifications:
|
||||
course = frappe.db.get_value("Course Lesson", notification.document_name, "course")
|
||||
notification.url = "/courses/{0}/learn/{1}".format(course, get_lesson_index(notification.document_name))
|
||||
|
||||
return notifications
|
||||
@@ -23,6 +23,14 @@
|
||||
</a>
|
||||
</li>
|
||||
|
||||
{% if not read_only %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#courses-enrolled">
|
||||
{{ _("Courses Enrolled") }}
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if courses_created | length %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#courses-created">
|
||||
@@ -39,6 +47,13 @@
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if not read_only %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#notifications">{{ _("Notifications") }}
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if has_course_moderator_role() %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#settings">
|
||||
@@ -65,6 +80,12 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if not read_only %}
|
||||
<div class="tab-pane fade" id="courses-enrolled" role="tabpanel" aria-labelledby="courses-enrolled">
|
||||
{% include "lms/lms/web_template/courses_enrolled/courses_enrolled.html" %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if courses_created | length %}
|
||||
{% set only_published = True %}
|
||||
<div class="tab-pane fade" id="courses-created" role="tabpanel" aria-labelledby="courses-created">
|
||||
@@ -78,6 +99,12 @@
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if not read_only %}
|
||||
<div class="tab-pane" id="notifications" role="tabpanel" aria-labelledby="notifications">
|
||||
{% include "lms/templates/notifications.html" %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="tab-pane fade" id="settings" role="tabpanel" aria-labelledby="settings">
|
||||
{{ RoleSettings(member) }}
|
||||
</div>
|
||||
@@ -117,7 +144,7 @@
|
||||
|
||||
{% if frappe.session.user == member.email %}
|
||||
<div class="ml-auto mt-1">
|
||||
<a class="btn btn-secondary btn-sm" href="/dashboard"> {{ _("Visit Dashboard") }} </a>
|
||||
<a class="btn btn-secondary btn-sm" href="/courses"> {{ _("Course List") }} </a>
|
||||
<a class="btn btn-secondary btn-sm ml-2" href="/edit-profile/{{ member.email }}/edit"> {{ _("Edit Profile") }} </a>
|
||||
</div>
|
||||
{% endif %}
|
||||
@@ -176,7 +203,7 @@
|
||||
<div class="">
|
||||
<div class="common-card-style column-card">
|
||||
<div class="course-home-headings"> {{ _("Role Settings") }} </div>
|
||||
<div>
|
||||
<div class="medium">
|
||||
<label class="role">
|
||||
<input type="checkbox" id="instructor" data-role="Course Instructor"
|
||||
{% if has_course_instructor_role(member.name) %} checked {% endif %}>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import frappe
|
||||
from lms.page_renderers import get_profile_url_prefix
|
||||
from lms.lms.utils import get_lesson_index
|
||||
|
||||
|
||||
def get_context(context):
|
||||
@@ -20,6 +21,7 @@ def get_context(context):
|
||||
return
|
||||
|
||||
context.profile_tabs = get_profile_tabs(context.member)
|
||||
context.notifications = get_notifications()
|
||||
|
||||
|
||||
def get_profile_tabs(user):
|
||||
@@ -30,3 +32,16 @@ def get_profile_tabs(user):
|
||||
"""
|
||||
tabs = frappe.get_hooks("profile_tabs") or []
|
||||
return [frappe.get_attr(tab)(user) for tab in tabs]
|
||||
|
||||
|
||||
def get_notifications():
|
||||
notifications = frappe.get_all("Notification Log", {
|
||||
"document_type": "Course Lesson",
|
||||
"for_user": frappe.session.user
|
||||
}, ["subject", "creation", "from_user", "document_name"])
|
||||
|
||||
for notification in notifications:
|
||||
course = frappe.db.get_value("Course Lesson", notification.document_name, "course")
|
||||
notification.url = "/courses/{0}/learn/{1}".format(course, get_lesson_index(notification.document_name))
|
||||
|
||||
return notifications
|
||||
|
||||
Reference in New Issue
Block a user