if you look in the auto generated root controller you'll see an example of using tmpl_context. On your controller make a _before method which will set tmpl_context.pages = getPages()
On Thu, Mar 26, 2020 at 9:50 AM Mikhail <[email protected]> wrote: > Thank you! > > Looks like tmpl_context is what I want. Just one more thing: Where to put > it to be accessible from admin template? Here is my code: > > class RootController(BaseController): > tmpl_context.pages = getPages() > admin = AdminController(model, DBSession, > config_type=CustomAdminConfig) > > If I put it like this tmpl_context.pages is avaliable only on first page > load after engine restart. > This: > > admin.tmpl_context.pages = getPages() > > gives me AttributeError: 'AdminController' object has no attribute > 'tmpl_context' > > > суббота, 7 марта 2020 г., 17:07:03 UTC+3 пользователь Alessandro Molina > написал: >> >> There are few ways you can pass variables to all templates independently >> from what the controller is providing. >> The most simple one is to use tg.tmpl_context which is meant to be a >> container for variables that should be shared by all templates, as >> tmpl_context is always available to all templates. >> Otherwise you can set a variable_provider option in app_cfg, which can be >> set to a function (must return a dict) that will be executed when rendering >> the template to provide additional variables. >> >> In regard of editing the pages content themselves. The most simple >> solutions are to add the section in master.xhtml with a py:if that makes it >> visibile only when in the admin, or to use template patches ( >> https://github.com/TurboGears/tgext.pluggable#patching-templates ) to >> patch the templates with extra sections. >> Otherwise Admin obviously support changing the expositions of the >> controllers and replacing the templates, but that will require providing >> new templates instead of just patching the existing ones. >> >> On Fri, Feb 28, 2020 at 6:13 PM Mikhail <[email protected]> wrote: >> >>> Hello! >>> >>> I have master.xhtml with some kind of menu: >>> <ul class="menu"> >>> <li py:for="pg in pages"> >>> <a href="/pages/${pg.name}" py:content="pg.title">Page</a> >>> </li> >>> >>> </ul> >>> >>> Now when I am using AdminController I get error "builtins.NameError". >>> NameError: name 'pages' is not defined >>> >>> *Question*: Is there a way to pass pages to AdminController's output? >>> >>> As workaround I tried to use custom layout without menu: >>> class CustomAdminConfig(TGAdminConfig): >>> default_index_template = 'admin.xhtml' >>> >>> class RootController(BaseController): >>> admin = AdminController(model, DBSession, config_type= >>> CustomAdminConfig) >>> >>> But it seems that admin.xhtml only applied to /admin page, not any of >>> subpages such as /admin/users. And I prefer to have menu on all pages, >>> including admin. >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "TurboGears" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/turbogears/5a5db6e0-ab34-4a4d-8d32-82f622c5db7c%40googlegroups.com >>> <https://groups.google.com/d/msgid/turbogears/5a5db6e0-ab34-4a4d-8d32-82f622c5db7c%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- > You received this message because you are subscribed to the Google Groups > "TurboGears" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/turbogears/06fdbafd-10af-454f-addc-cabb78d81b62%40googlegroups.com > <https://groups.google.com/d/msgid/turbogears/06fdbafd-10af-454f-addc-cabb78d81b62%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "TurboGears" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/turbogears/CAMhmP7QrTzBFA%2Bgxy0n6x6UK27VXsjRnfcHREn82UXqNHKWYaA%40mail.gmail.com.

