Merge pull request #295 from anandology/context-in-page-extensions

This commit is contained in:
Jannat Patel
2022-02-07 11:33:49 +05:30
committed by GitHub
2 changed files with 9 additions and 2 deletions

View File

@@ -24,6 +24,11 @@ class PageExtension:
`render_footer()` methods to inject whatever styles/scripts into
the webpage.
"""
def __init__(self):
self.context = frappe._dict()
def set_context(self, context):
self.context = context
def render_header(self):
"""Returns the HTML snippet to be included in the head section

View File

@@ -31,7 +31,7 @@ def get_context(context):
"description": meta_info
}
context.page_extensions = get_page_extensions()
context.page_extensions = get_page_extensions(context)
context.page_context = {
"course": context.course.name,
"batch": context.get("batch") and context.batch.name,
@@ -52,8 +52,10 @@ def get_lesson_index(course, batch, user):
lesson = batch.get_current_lesson(user)
return lesson and course.get_lesson_index(lesson)
def get_page_extensions():
def get_page_extensions(context):
default_value = ["school.plugins.PageExtension"]
classnames = frappe.get_hooks("school_lesson_page_extensions") or default_value
extensions = [frappe.get_attr(name)() for name in classnames]
for e in extensions:
e.set_context(context)
return extensions