diff --git a/common/djangoapps/edxmako/paths.py b/common/djangoapps/edxmako/paths.py index a29a68e8b3..518f8a530b 100644 --- a/common/djangoapps/edxmako/paths.py +++ b/common/djangoapps/edxmako/paths.py @@ -15,11 +15,14 @@ class DynamicTemplateLookup(TemplateLookup): A specialization of the standard mako `TemplateLookup` class which allows for adding directories progressively. """ - def add_directory(self, directory): + def add_directory(self, directory, prepend=False): """ Add a new directory to the template lookup path. """ - self.directories.append(os.path.normpath(directory)) + if prepend: + self.directories.insert(0, os.path.normpath(directory)) + else: + self.directories.append(os.path.normpath(directory)) def clear_lookups(namespace): @@ -29,7 +32,7 @@ def clear_lookups(namespace): if namespace in LOOKUP: del LOOKUP[namespace] -def add_lookup(namespace, directory, package=None): +def add_lookup(namespace, directory, package=None, prepend=False): """ Adds a new mako template lookup directory to the given namespace. @@ -48,7 +51,7 @@ def add_lookup(namespace, directory, package=None): ) if package: directory = pkg_resources.resource_filename(package, directory) - templates.add_directory(directory) + templates.add_directory(directory, prepend=prepend) def lookup_template(namespace, name): diff --git a/lms/startup.py b/lms/startup.py index 462fb3f8fd..ea4d27b167 100644 --- a/lms/startup.py +++ b/lms/startup.py @@ -52,8 +52,7 @@ def enable_theme(): # Include the theme's templates in the template search paths settings.TEMPLATE_DIRS.insert(0, theme_root / 'templates') - settings.MAKO_TEMPLATES['main'].insert(0, theme_root / 'templates') - edxmako.startup.run() + edxmako.paths.add_lookup('main', theme_root / 'templates', prepend=True) # Namespace the theme's static files to 'themes/' to # avoid collisions with default edX static files @@ -98,8 +97,7 @@ def enable_microsites(): # if we have any valid microsites defined, let's wire in the Mako and STATIC_FILES search paths if microsite_config_dict: settings.TEMPLATE_DIRS.append(microsites_root) - settings.MAKO_TEMPLATES['main'].append(microsites_root) - edxmako.startup.run() + edxmako.paths.add_lookup('main', microsites_root) settings.STATICFILES_DIRS.insert(0, microsites_root)