I want to add a button to the customer portal:
I added this view
<template id="portal_my_home" name="Show Blogposts" customize_show="True" inherit_id="portal.portal_my_home" priority="20">
<xpath expr="//div[hasclass('o_portal_docs')]" position="before">
<t t-set="portal_client_category_enable" t-value="True"/>
</xpath>
<div id="portal_client_category" position="inside">
<t t-call="portal.portal_docs_entry">
<t t-set="title">Test</t>
<t t-set="url" t-value="'/my/controller'"/>
<t t-set="text">Test Button</t>
</t>
</div>
</template>
in my view. As always: the view is added to the manifest data part, I reinstalled the module, I can see it from Developer settings Technial > views > and I can see it's correctly inheriting when I visit the portal.portal_my_home and I see that mymodule.portal_my_home is listed as an inheriting view.
I've tried multiple variations of this, yet I can not get the button to show up. Is there something I'm missing?
I copied the code from odoo's hr module for example (as suggested in this post Odoo17 Add Portal Menu) but still no results.
Help is greatly appreciated!
It is probably rendering properly but it is hidden with "d-none" class
Check the portal_docs_entry xml template located in portal/views/portal_templates.xml. This is the template you use t-call on
<div t-att-class="'o_portal_index_card ' + ('' if config_card else 'd-none ') + ('col-12 order-0' if show_count else 'col-md-6 order-2')">
When the config_card variable is not set it will hide de div with "d-none". Including that variable should solve your issue...
<div id="portal_client_category" position="inside">
<t t-call="portal.portal_docs_entry">
<t t-set="title">Test</t>
<t t-set="url" t-value="'/my/controller'"/>
<t t-set="text">Test Button</t>
<t t-set="config_card" t-value="True"/>
</t>
</div>