In that cases I prefer to keep the generators in server side.
modules/html_helpers.py
from gluon import DIV
class MySidebar(DIV):
def __init__(self):
# do whatever you want
DIV.__init__(self)
self.append(H1("mysidebar"))
self.append(UL(*[LI().....]))
def myextramethod(self):
.....
So in any cotroller I can do:
from html_helpers import MySidebar
return dict(sidebar=MySidebar(*params))

