X-Git-Url: https://git.llucax.com/software/sercom.git/blobdiff_plain/8d55754c391c8f0615449b8344b67ceffbd1b4a9..ee389b0faef38a9153c3f6dfeb6f0c3a13f50f74:/sercom/menu.py diff --git a/sercom/menu.py b/sercom/menu.py index 59c527f..da714d1 100644 --- a/sercom/menu.py +++ b/sercom/menu.py @@ -1,13 +1,16 @@ +# vim: set et sw=4 sts=4 encoding=utf-8 foldmethod=marker : from turbogears import url -from turbogears.controllers import Controller +from turbogears.identity import SecureResource from turbogears import identity class Menu: def __init__(self, base): self.base = base - self.items = filter(lambda i: isinstance(getattr(base, i), Controller), base.__dict__) + self.items = [i for i in dir(base) + if isinstance(getattr(base, i), SecureResource)] self.items.sort() + self.items = ['dashboard'] + self.items def _check(self, c): return c.require.eval_with_object(identity.current) @@ -24,7 +27,7 @@ class Menu: """ s = option % ('', '-----') for i in self.items: - if self._check(getattr(self.base, i)): + if i == 'dashboard' or self._check(getattr(self.base, i)): s += option % (url('/' + i), i.capitalize().replace('_', ' ')) return template % s