Sorry, I missed an "if" in the code that makes it clearer.
class MyCrazyController(TGController):
def __init__(self, is_shouting=False):
self.is_shouting = is_shouting
self.default_engine = self.index.decoration.engine['text/
html']
def shouting(self, *args, **kw):
if self.is_shouting:
current_engine = self.index.decoration.engine['text/html']
self.index.decoration.engine['text/html'] =
['genshi','shouting_template'].extend(current_engine[:2])
self.default_engine = current_engine
def default_voice(self, *args, **kw):
self.index.decoration.engine['text/html'] =
self.default_engine
@before_render(shouting)
@after_render(default_voice)
@expose('genshi:regular_template')
def index(self, *args, **kw):
return dict(john_wayne="you got that right, kid")
On Jan 16, 2:14 pm, percious <[email protected]> wrote:
> I think these are interesting hooks, but don't offer a lot in the way
> of capabilities. I think if we were to pass in the controller
> instance to these hooks they would be a lot more valuable.
>
> What I would like to be able to do is override a template on a per-
> controller-instance basis. This means I need access to the controller
> instance in the before_render and after_render decorators. I imagine
> something like this:
>
> class MyCrazyController(TGController):
>
> def __init__(self, is_shouting=False):
> self.is_shouting = is_shouting
> self.default_engine = self.index.decoration.engine['text/
> html']
>
> def shouting(self, *args, **kw):
> current_engine = self.index.decoration.engine['text/html']
> self.index.decoration.engine['text/html'] =
> ['genshi','shouting_template'].extend(current_engine[:2])
> self.default_engine = current_engine
>
> def default_voice(self, *args, **kw):
> self.index.decoration.engine['text/html'] =
> self.default_engine
>
> @before_render(shouting)
> @after_render(default_voice)
> @expose('genshi:regular_template')
> def index(self, *args, **kw):
> return dict(john_wayne="you got that right, kid")
>
> This should not require a major change to controllers.py, but I wanted
> some second opinions before I implement it.
>
> cheers.
> -chris
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"TurboGears Trunk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/turbogears-trunk?hl=en
-~----------~----~----~----~------~----~------~--~---