Contributors mailing list archives
Advanced(?) QWeb question using customize_show and activeby
I am working on extending website_sale_hide_empty_category so that recursively empty directories will be hidden in website_sale. However I encountered an issue here. Let me explain. In website_sale the list of categories is rendered using template products_categories which in calls recursive template website_sale.categories_recursive. See here. There is a template option_collapse_products_categories that enables collapsing this list of categories - see here. That works in a way that it replaces a t-call to website_sale.categories_recursive in products_categories with t-call to website_sale.option_collapse_categories_recursive.
Now the original approach was to create 2 templates with customize_show that would extend and alter behaviour of website_sale.categories_recursive and website_sale.option_collapse_categories_recursive (to cover both collapsed and non-collapsed rendering). Like this:
inherit_id="website_sale.categories_recursive" id="hide_categories_recursive" active="True"
customize_show="True" name="Hide Empty Category list"
<xpath expr="//t[@t-name='website_sale.categories_recursive']" position="attributes">
inherit_id="website_sale.option_collapse_categories_recursive" id="hide_categories_collapse_recursive" active="True"
customize_show="True" name="Hide Empty Category in Collapsible list"
<xpath expr="//t[@t-name='website_sale.option_collapse_categories_recursive']" position="attributes">
However this does not work - the customize option is never shown for website_sale.option_collapse_categories_recursive. My guess is the rendering engine skips that because on parsing the templates it cannot find any instance where website_sale.option_collapse_categories_recursive would be used. Even if you activate option for it, the option for the website_sale.categories_recursive is still rendered.
There would be no issue if both templates would be active - because only one of them would be in effect. But then I'd need a way to activate them both upon one radio button (customize_show). Is there a way to do that? I have tried template inside a template. Not working. Or is there a way to set a variable in one template that would be visible in other templates? I'd create a helper template with customize_show that would set the variable that would be included in condition of both the above templates.
Thank you very much. Best regards