跳至內容
選單
此問題已被標幟
6 回覆
5568 瀏覽次數

I want to display the custom menu on the odoo portal view. XML File:

```

"1.0" encoding="UTF-8"?>
<odoo>
    <data>
      <template id="portal_my_home_loan" name="Partner Loan"
        customize_show="True" inherit_id="portal.portal_my_home">
        <xpath expr="//div[hasclass('o_portal_docs')]" position="inside">
          <t t-call="portal.portal_docs_entry">
            <t t-set="title">Partner Loant>
            <t t-set="url" t-value="'/my/loan'" />
            
          t>
        xpath>
      template>
  data>
odoo>
```

Controller file:

from odoo.addons.portal.controllers.portal import CustomerPortal

class PortalAccount(CustomerPortal):
   def _prepare_home_portal_values(self, counters):
       values = super()._prepare_home_portal_values(counters)
       values['loan_count'] = 1
       return values

Have added portal​ to depends in the manifest file as well as template.xml to the manifest file. 
Still can't see the menu on my portal view of the user. Any idea where I could go have gone wrong?

頭像
捨棄
作者

Manifest file:
'depends' : ['base', 'product', 'portal'],
'data': ['views/template.xml']

Dd you find a solution? i've the same problem, noo menu Customize --> My portal in Odoo 16

Did you solved? I have the same issue

Missing this line *<t-set="placeholder_count" t-value="'job_count'"/>*

最佳答案

Hi,

Try refer the following blog

https://www.cybrosys.com/blog/how-to-add-a-custom-menu-in-the-customer-portal-of-odoo-16

Regards

頭像
捨棄
作者

I tried this, still unable to get the results

最佳答案

Hi,

In my experience, you need to set 'loan_count' or 'job_count' value to something different than numeric 0.

So for show 0 set values['job_count']='0', for show empty counter set values['job_count']='', to hide menu line set values['job_count']=0.

For me (on 16.0) works fine.

頭像
捨棄
最佳答案

from developper tool of brouser i saw thal a 'd-none' class is added to menu , Thats why it is hidden and not showing. can any body suggest how to correct it?

頭像
捨棄
最佳答案

Hi,

Seems the codes are fine, are you sure that the xml file is added in the manifest file and installed the module in the database ?

Just go to the views menu under the Settings -> Technical -> User interface -> Views and just ensure that this can be located there


Thanks

頭像
捨棄
作者

Hello, yes the view is visible in ir.ui.view, One more thing I tried is to duplicate an existing view related to the menu on the portal, changed its name, and sequence, and even created model data entry, and even that didn't work...

最佳答案
Hi, you miss the placeholder_count line in your code please add this line after t-set="url"
t-set="placeholder_count" t-value="'job_count'"/>

thanks

頭像
捨棄
最佳答案

Hi Madhav Parikh

Please refer below code for the template and controller and let me know if it’s not working.

Template:

Partner Loan

Please find the code in below comment. 

Controller:

class PortalAccount(CustomerPortal):
def _prepare_home_portal_values(self, counters):
values = super()._prepare_home_portal_values(counters)
partner = request.env.user.partner_id
if 'loan_count' in counters:
values['loan_count'] = 1
return values

You can also refer in base too as below:

Xml file:
https://github.com/odoo/odoo/blob/16.0/addons/sale/views/sale_portal_templates.xml#L21

controller file:
https://github.com/odoo/odoo/blob/16.0/addons/sale/controllers/portal.py#L20

I hope it will be useful to you.

Thanks & Regards,
Email: odoo@aktivsoftware.com
Skype: kalpeshmaheshwari

頭像
捨棄

Here is the code of Template:

<template id="portal_my_home_loan" name="Partner Loan" customize_show="True" inherit_id="portal.portal_my_home" priority="20">
<xpath expr="//div[hasclass('o_portal_docs')]" position="inside">
<t t-call="portal.portal_docs_entry">
<t t-set="title">Partner Loan</t>
<t t-set="url" t-value="'/my/loan'"/>
<t t-set="placeholder_count" t-value="'loan_count'"/>
</t>
</xpath>
</template>

相關帖文 回覆 瀏覽次數 活動
2
11月 24
1876
1
11月 23
2287
1
9月 23
3606
1
9月 23
4491
1
3月 23
2492