콘텐츠로 건너뛰기
메뉴
커뮤니티에 참여하려면 회원 가입을 하시기 바랍니다.
신고된 질문입니다
6 답글
6765 화면

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
2956
1
11월 23
3243
1
9월 23
4692
1
9월 23
5244
1
3월 23
3127