Beispiel #1
0
        def recursive_add(theme):
            theme_name = theme['name']
            parent_name = theme.get('extends')
            parent = None

            if parent_name:
                parent = themes.find_one(req=None, name=parent_name)

            files = theme.get('files', {'templates': {}})
            if files.get('templates'):
                self.addDictonary(theme)

                if parent:
                    self.addDictonary(parent)
            else:
                compiled = themes.get_theme_compiled_templates_path(theme_name)
                self.loaders.append(ModuleLoader(compiled))

                if parent_name:
                    parent_compiled = themes.get_theme_compiled_templates_path(parent_name)
                    self.loaders.append(ModuleLoader(parent_compiled))

            # let's now add the parent theme prefix loader
            if parent_name:
                prefix_loader = self._parent_prefix_loader(parent_name)
                self.loaders.append(prefix_loader)

            # now check if parent theme extends another and repeat the story :)
            if parent and parent.get('extends'):
                ancestor = themes.find_one(req=None, name=parent.get('extends'))
                recursive_add(ancestor)
Beispiel #2
0
    def __init__(self, theme):
        """
        A Mixed logic template loader module. It will use Compiled theme template
        for current theme and will also use FileSystemLoader like in order to enable
        inheritance
        """

        self.loaders = []

        theme_name = theme['name']
        themes = get_resource_service('themes')
        parent_theme = theme.get('extends')

        files = theme.get('files', {'templates': {}})
        if files.get('templates'):
            self.addDictonary(theme)

            if parent_theme:
                parent = themes.find_one(req=None, name=parent_theme)
                self.addDictonary(parent)
        else:
            compiled = themes.get_theme_compiled_templates_path(theme_name)
            self.loaders.append(ModuleLoader(compiled))
            if parent_theme:
                parent_compiled = themes.get_theme_compiled_templates_path(parent_theme)
                self.loaders.append(ModuleLoader(parent_compiled))

        # let's now add the parent theme prefix loader
        if parent_theme:
            prefix_loader = self._parent_prefix_loader(parent_theme)
            self.loaders.append(prefix_loader)
 def __init__(self, theme):
     self.loaders = []
     theme_name = theme['name']
     themes = get_resource_service('themes')
     parent_theme = theme.get('extends')
     files = theme.get('files', {'templates': {}})
     if files.get('templates'):
         self.addDictonary(theme)
         if parent_theme:
             parent = themes.find_one(req=None, name=parent_theme)
             self.addDictonary(parent)
     else:
         compiled = themes.get_theme_compiled_templates_path(theme_name)
         self.loaders.append(ModuleLoader(compiled))
         if parent_theme:
             parent_compiled = themes.get_theme_compiled_templates_path(
                 parent_theme)
             self.loaders.append(ModuleLoader(parent_compiled))