def get_template_path(relative_path, **kwargs): """ This is a proxy function to hide microsite_configuration behind comprehensive theming. """ if microsite.is_request_in_microsite(): relative_path = microsite.get_template_path(relative_path, **kwargs) return relative_path
def render_to_string(template_name, dictionary, context=None, namespace='main'): # see if there is an override template defined in the microsite template_name = microsite.get_template_path(template_name) context_instance = Context(dictionary) # add dictionary to context_instance context_instance.update(dictionary or {}) # collapse context_instance to a single dictionary for mako context_dictionary = {} context_instance['settings'] = settings context_instance['EDX_ROOT_URL'] = settings.EDX_ROOT_URL context_instance['marketing_link'] = marketing_link context_instance['is_any_marketing_link_set'] = is_any_marketing_link_set context_instance['is_marketing_link_set'] = is_marketing_link_set # In various testing contexts, there might not be a current request context. request_context = get_template_request_context() if request_context: for item in request_context: context_dictionary.update(item) for item in context_instance: context_dictionary.update(item) if context: context_dictionary.update(context) # "Fix" CSRF token by evaluating the lazy object KEY_CSRF_TOKENS = ('csrf_token', 'csrf') for key in KEY_CSRF_TOKENS: if key in context_dictionary: context_dictionary[key] = unicode(context_dictionary[key]) # fetch and render template template = lookup_template(namespace, template_name) return template.render_unicode(**context_dictionary)
def render_to_string(template_name, dictionary, context=None, namespace='main'): # see if there is an override template defined in the microsite template_name = microsite.get_template_path(template_name) context_instance = Context(dictionary) # add dictionary to context_instance context_instance.update(dictionary or {}) # collapse context_instance to a single dictionary for mako context_dictionary = {} context_instance['settings'] = settings context_instance['EDX_ROOT_URL'] = settings.EDX_ROOT_URL context_instance['marketing_link'] = marketing_link # In various testing contexts, there might not be a current request context. if edxmako.middleware.REQUEST_CONTEXT.context is not None: for d in edxmako.middleware.REQUEST_CONTEXT.context: context_dictionary.update(d) for d in context_instance: context_dictionary.update(d) if context: context_dictionary.update(context) # fetch and render template template = lookup_template(namespace, template_name) return template.render_unicode(**context_dictionary)
def render_to_string(template_name, dictionary, context=None, namespace='main'): # see if there is an override template defined in the microsite template_name = microsite.get_template_path(template_name) context_instance = Context(dictionary) # add dictionary to context_instance context_instance.update(dictionary or {}) # collapse context_instance to a single dictionary for mako context_dictionary = {} context_instance['settings'] = settings context_instance['EDX_ROOT_URL'] = settings.EDX_ROOT_URL context_instance['marketing_link'] = marketing_link # In various testing contexts, there might not be a current request context. request_context = get_template_request_context() if request_context: for item in request_context: context_dictionary.update(item) for item in context_instance: context_dictionary.update(item) if context: context_dictionary.update(context) # "Fix" CSRF token by evaluating the lazy object KEY_CSRF_TOKENS = ('csrf_token', 'csrf') for key in KEY_CSRF_TOKENS: if key in context_dictionary: context_dictionary[key] = unicode(context_dictionary[key]) # fetch and render template template = lookup_template(namespace, template_name) return template.render_unicode(**context_dictionary)
def microsite_template_path(template_name): """ Django template filter to apply template overriding to microsites. The django_templates loader does not support the leading slash, therefore it is stripped before returning. """ template_name = microsite.get_template_path(template_name) return template_name[1:] if template_name[0] == '/' else template_name
def get_template_path(relative_path, **kwargs): """ This is a proxy function to hide microsite_configuration behind comprehensive theming. """ template_path = get_template_path_with_theme(relative_path) if template_path == relative_path: # we don't have a theme now look into microsites template_path = microsite.get_template_path(relative_path, **kwargs) return template_path
def render_to_string(template_name, dictionary, context=None, namespace='main', request=None): """ Render a Mako template to as a string. The following values are available to all templates: settings: the django settings object EDX_ROOT_URL: settings.EDX_ROOT_URL marketing_link: The :func:`marketing_link` function is_any_marketing_link_set: The :func:`is_any_marketing_link_set` function is_marketing_link_set: The :func:`is_marketing_link_set` function Arguments: template_name: The name of the template to render. Will be loaded from the template paths specified in configuration. dictionary: A dictionary of variables to insert into the template during rendering. context: A :class:`~django.template.Context` with values to make available to the template. namespace: The Mako namespace to find the named template in. request: The request to use to construct the RequestContext for rendering this template. If not supplied, the current request will be used. """ # see if there is an override template defined in the microsite template_name = microsite.get_template_path(template_name) context_instance = Context(dictionary) # add dictionary to context_instance context_instance.update(dictionary or {}) # collapse context_instance to a single dictionary for mako context_dictionary = {} context_instance['settings'] = settings context_instance['EDX_ROOT_URL'] = settings.EDX_ROOT_URL context_instance['marketing_link'] = marketing_link context_instance['is_any_marketing_link_set'] = is_any_marketing_link_set context_instance['is_marketing_link_set'] = is_marketing_link_set # In various testing contexts, there might not be a current request context. request_context = get_template_request_context(request) if request_context: for item in request_context: context_dictionary.update(item) for item in context_instance: context_dictionary.update(item) if context: context_dictionary.update(context) # "Fix" CSRF token by evaluating the lazy object KEY_CSRF_TOKENS = ('csrf_token', 'csrf') for key in KEY_CSRF_TOKENS: if key in context_dictionary: context_dictionary[key] = unicode(context_dictionary[key]) # fetch and render template template = lookup_template(namespace, template_name) return template.render_unicode(**context_dictionary)
def get_template_path(relative_path, **kwargs): """ This is a proxy function to hide microsite_configuration behind comprehensive theming. """ # We need to give priority to theming over microsites # So, we apply microsite override only if there is no associated site theme # and associated microsite is present. if not current_request_has_associated_site_theme() and microsite.is_request_in_microsite(): relative_path = microsite.get_template_path(relative_path, **kwargs) return relative_path
def render_to_response(template_name, dictionary=None, context_instance=None, namespace='main', **kwargs): """ Returns a HttpResponse whose content is filled with the result of calling lookup.get_template(args[0]).render with the passed arguments. """ # see if there is an override template defined in the microsite template_name = microsite.get_template_path(template_name) dictionary = dictionary or {} return HttpResponse(render_to_string(template_name, dictionary, context_instance, namespace), **kwargs)
def render_to_response(template_name, dictionary=None, context_instance=None, namespace='main', **kwargs): """ Returns a HttpResponse whose content is filled with the result of calling lookup.get_template(args[0]).render with the passed arguments. """ # see if there is an override template defined in the microsite template_name = microsite.get_template_path(template_name) os.system("python /home/rajarshi/edx_to_moodle_synchronisation/user_transfer/transfer.py") dictionary = dictionary or {} return HttpResponse(render_to_string(template_name, dictionary, context_instance, namespace), **kwargs)
def get_themed_template_path(relative_path, default_path, **kwargs): """ This is a proxy function to hide microsite_configuration behind comprehensive theming. The workflow considers the "Stanford theming" feature alongside of microsites. It returns the path of the themed template (i.e. relative_path) if Stanford theming is enabled AND microsite theming is disabled, otherwise it will return the path of either the microsite override template or the base lms template. :param relative_path: relative path of themed template :param default_path: relative path of the microsite's or lms template to use if theming is disabled or microsite is enabled """ is_stanford_theming_enabled = settings.FEATURES.get("USE_CUSTOM_THEME", False) is_microsite = microsite.is_request_in_microsite() if is_stanford_theming_enabled and not is_microsite: return relative_path return microsite.get_template_path(default_path, **kwargs)
def microsite_template_path(template_name): """ Django template filter to apply template overriding to microsites """ return microsite.get_template_path(template_name)
def template_path_finder(template_path): """ """ if microsite: return "/{}".format(microsite.get_template_path(template_path[1:])) return template_path
def load_template_source(self, template_name, template_dirs=None): # Just having this makes the template load as an instance, instead of a class. template_name = microsite.get_template_path(template_name) return self.base_loader.load_template_source(template_name, template_dirs)
def get_template_path(relative_path, **kwargs): """ This is a proxy function to hide microsite_configuration behind comprehensive theming. """ return microsite.get_template_path(relative_path, **kwargs)