Hey folks, Just wanted to share a little recipe we use all over the place in Pagoda[1].
http://paste.turbogears.org/paste/1521 It's a decorator you add *after* expose that will include widgets in the resulting context so that TurboGears will automatically include their JavaScript and CSS in the output page. Kinda like the include_widgets config option, but not site-wide -- mostly useful for CSS and JavaScript. One advantage over just including the widgets in the output of your method is that you can list the widgets as strings (no imports necessary) and it'll use turbogears.util.load_class to import them for you. Another is that it unclutters your method and context of trivial things like widget setup. Examples: class PagodaAdmin(RootController): @expose(template="pagoda.templates.admin_edit") @include_widgets('pagoda.widgets.admin.edit_base') def edit(self): return dict(message="Hey!") Now the edit_base widget and all its dependencies will be included in the page (if you have the master template that looks at tg_js and all that). You can also pass more than one, include instances instead of strings, and if you care about access to the context variable, give it a different name: from pagoda.widgets.admin import control_panel_css @expose(template="pagoda.templates.control_panel") @include_widgets('pagoda.widgets.admin.base', control_panel_css, context_var='widgets') def control_panel(self): return dict(message="Get your widgets here!") Enjoy: http://paste.turbogears.org/paste/1521 [1] http://www.pagodacms.org --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "TurboGears" 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?hl=en -~----------~----~----~----~------~----~------~--~---

