Merge pull request #446 from pateljannat/navbar-settings

Resolves https://github.com/frappe/lms/issues/442
This commit is contained in:
Jannat Patel
2022-12-12 13:55:31 +05:30
committed by GitHub
8 changed files with 62 additions and 51 deletions

View File

@@ -58,7 +58,6 @@ web_include_js = ["website.bundle.js"]
# ------------ # ------------
# before_install = "lms.install.before_install" # before_install = "lms.install.before_install"
after_install = "lms.install.add_pages_to_nav"
after_sync = "lms.install.after_sync" after_sync = "lms.install.after_sync"
after_uninstall = "lms.install.after_uninstall" after_uninstall = "lms.install.after_uninstall"

View File

@@ -2,10 +2,6 @@ import frappe
from frappe.desk.page.setup_wizard.setup_wizard import add_all_roles_to from frappe.desk.page.setup_wizard.setup_wizard import add_all_roles_to
def after_install():
add_pages_to_nav()
def after_sync(): def after_sync():
create_lms_roles() create_lms_roles()
set_default_home() set_default_home()
@@ -95,42 +91,3 @@ def delete_custom_fields():
for field in fields: for field in fields:
frappe.db.delete("Custom Field", {"fieldname": field}) frappe.db.delete("Custom Field", {"fieldname": field})
frappe.db.commit() frappe.db.commit()
def add_pages_to_nav():
pages = [
{"label": "Courses", "url": "/courses", "parent": "Explore", "idx": 2},
{"label": "Classes", "url": "/classes", "parent": "Explore", "idx": 3},
{"label": "Statistics", "url": "/statistics", "parent": "Explore", "idx": 4},
{"label": "Jobs", "url": "/jobs", "parent": "Explore", "idx": 5},
{"label": "People", "url": "/community", "parent": "Explore", "idx": 6},
]
if not frappe.db.exists("Top Bar Item", {"label": "Explore"}):
frappe.get_doc(
{
"doctype": "Top Bar Item",
"label": "Explore",
"parent": "Website Settings",
"parenttype": "Website Settings",
"parentfield": "top_bar_items",
"idx": 1,
}
).save()
for page in pages:
if not frappe.db.exists(
"Top Bar Item", {"url": ["like", "%" + page.get("url") + "%"]}
):
frappe.get_doc(
{
"doctype": "Top Bar Item",
"label": page.get("label"),
"url": page.get("url"),
"parent_label": page.get("parent"),
"idx": page.get("idx"),
"parent": "Website Settings",
"parenttype": "Website Settings",
"parentfield": "top_bar_items",
}
).save()

View File

@@ -7,10 +7,11 @@
"field_order": [ "field_order": [
"search_placeholder", "search_placeholder",
"portal_course_creation", "portal_course_creation",
"force_profile_completion", "add_to_navbar",
"column_break_2", "column_break_2",
"custom_certificate_template", "custom_certificate_template",
"livecode_url", "livecode_url",
"force_profile_completion",
"signup_settings_section", "signup_settings_section",
"terms_of_use", "terms_of_use",
"terms_page", "terms_page",
@@ -137,12 +138,18 @@
"fieldtype": "Link", "fieldtype": "Link",
"label": "Custom Certificate Template", "label": "Custom Certificate Template",
"options": "Web Template" "options": "Web Template"
},
{
"default": "0",
"fieldname": "add_to_navbar",
"fieldtype": "Check",
"label": "Add LMS pages to navbar"
} }
], ],
"index_web_pages_for_search": 1, "index_web_pages_for_search": 1,
"issingle": 1, "issingle": 1,
"links": [], "links": [],
"modified": "2022-12-01 15:13:39.901611", "modified": "2022-12-12 11:36:16.162795",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "LMS", "module": "LMS",
"name": "LMS Settings", "name": "LMS Settings",

View File

@@ -7,4 +7,39 @@ from frappe.model.document import Document
class LMSSettings(Document): class LMSSettings(Document):
pass
pages = [
{"label": "Explore", "idx": 1},
{"label": "Courses", "url": "/courses", "parent": "Explore", "idx": 2},
{"label": "Classes", "url": "/classes", "parent": "Explore", "idx": 3},
{"label": "Statistics", "url": "/statistics", "parent": "Explore", "idx": 4},
{"label": "Jobs", "url": "/jobs", "parent": "Explore", "idx": 5},
{"label": "People", "url": "/community", "parent": "Explore", "idx": 6},
]
def on_update(self):
self.update_navbar()
def update_navbar(self):
for page in self.pages:
filters = frappe._dict()
if page.get("url"):
filters["url"] = ["like", "%" + page.get("url") + "%"]
else:
filters["label"] = page.get("label")
if self.add_to_navbar and not frappe.db.exists("Top Bar Item", filters):
frappe.get_doc(
{
"doctype": "Top Bar Item",
"label": page.get("label"),
"url": page.get("url"),
"parent_label": page.get("parent"),
"idx": page.get("idx"),
"parent": "Website Settings",
"parenttype": "Website Settings",
"parentfield": "top_bar_items",
}
).save()
elif not self.add_to_navbar and frappe.db.exists("Top Bar Item", filters):
frappe.db.delete("Top Bar Item", filters)

View File

@@ -36,8 +36,8 @@ lms.patches.v0_0.set_dashboard #11-10-2022
lms.patches.v0_0.set_courses_page_as_home lms.patches.v0_0.set_courses_page_as_home
lms.patches.v0_0.set_member_in_progress #09-11-2022 lms.patches.v0_0.set_member_in_progress #09-11-2022
lms.patches.v0_0.convert_progress_to_float lms.patches.v0_0.convert_progress_to_float
lms.patches.v0_0.add_pages_to_nav #25-11-2022
lms.patches.v0_0.change_role_names lms.patches.v0_0.change_role_names
lms.patches.v0_0.quiz_submission_result lms.patches.v0_0.quiz_submission_result
lms.patches.v0_0.skill_to_user_skill lms.patches.v0_0.skill_to_user_skill
lms.patches.v0_0.rename_instructor_role lms.patches.v0_0.rename_instructor_role
lms.patches.v0_0.change_course_creation_settings #12-12-2022

View File

@@ -0,0 +1,9 @@
import frappe
def execute():
value = frappe.db.get_single_value("LMS Settings", "portal_course_creation")
if value == "Course Instructor Role":
frappe.db.set_value(
"LMS Settings", None, "portal_course_creation", "Course Creator Role"
)

View File

@@ -2,5 +2,8 @@ import frappe
def execute(): def execute():
frappe.rename_doc("Role", "Course Instructor", "Instructor") if frappe.db.exists("Role", "Course Instructor"):
frappe.rename_doc("Role", "Course Moderator", "Moderator") frappe.rename_doc("Role", "Course Instructor", "Instructor")
if frappe.db.exists("Role", "Course Moderator"):
frappe.rename_doc("Role", "Course Moderator", "Moderator")

View File

@@ -4,5 +4,6 @@ import frappe
def execute(): def execute():
frappe.reload_doc("lms", "doctype", "user_skill") frappe.reload_doc("lms", "doctype", "user_skill")
skills = frappe.get_all("Skill", pluck="name") skills = frappe.get_all("Skill", pluck="name")
for skill in skills: for skill in skills:
frappe.get_doc({"doctype": "User Skill", "skill": skill}).save() frappe.get_doc({"doctype": "User Skill", "skill": skill}).save()