Changeset 12173


Ignore:
Timestamp:
Oct 16, 2012, 2:37:02 AM (12 years ago)
Author:
Olemis Lang
Message:

ThemeEnginePlugin: Fixes #9580 infinite recursion issue in Trac=1.0

Location:
themeengineplugin/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • themeengineplugin/trunk/setup.py

    r12163 r12173  
    1515setup(
    1616    name = 'TracThemeEngine',
    17     version = '2.0.1',
     17    version = '2.1.0',
    1818    packages = ['themeengine'],
    1919    package_data = { 'themeengine': ['templates/*.html', 'htdocs/*.js', 'htdocs/*.css', 'htdocs/img/*.gif',
  • themeengineplugin/trunk/themeengine/api.py

    r12138 r12173  
    1313from trac.core import *
    1414from trac.config import Option
     15
     16try:
     17    from trac.util import lazy
     18except ImportError:
     19    lazy = None
    1520
    1621class ThemeNotFound(TracError):
     
    6873   
    6974    def __init__(self):
    70         # This can safely go in here because the data can only change on a restart anyway
    71         self.info = {}
     75        if lazy is None:
     76            # Trac < 1.0 : this can safely go in here because the data can
     77            # only change on a restart anyway
     78            self.info = self.info()
     79
     80    def info(self):
     81        # Trac >= 1.0 : Hack needed to deal with infinite recursion error
     82        #    Details : http://trac-hacks.org/ticket/9580#comment:1
     83        #    Details : http://trac-hacks.org/ticket/9580#comment:2
     84        info = {}
    7285        for provider in self.providers:
    7386            for name in provider.get_theme_names():
     
    7689                theme['module'] = provider.__class__.__module__
    7790                theme['name'] = name
    78                 self.info[name.lower()] = theme
    79                
     91                info[name.lower()] = theme
     92        return info
     93
     94    if lazy is not None:
     95        info = lazy(info)
     96
    8097    # IThemeProvider methods
    8198    def get_theme_names(self):
Note: See TracChangeset for help on using the changeset viewer.