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

Hi everyone, 

I dealing with a curly one in Odoo Online. In an Odoo base view "eCommerce: Multi-Menus" I have added an Inherited view to filter our certain Website categories and what is needed as below:

  1. Only show where the category has names like "Toner" or "Ink" or Printers & Scanners", etc.
  2. And also don't show any category if there is no "chiled_id" or "product_tmpl_ids" so empty categories where they are not a parent category will be also hidden

Here is my current code: 

<xpath expr="//t[@t-set='categories']" position="replace">
    <t t-set="categories" t-value="request.env['product.public.category'].search(
        [
            '&',
                '|',
                    ('child_id', '!=', False),
                    ('product_tmpl_ids', '!=', False),
                '|', '|', '|',
                    ('name', '=', 'Ink Cartridge'),
                    ('name', '=', 'Toner Laser Cartridge'),
                    ('name', '=', 'Printers By Brand'),
                    ('name', '=', 'Printers & Scanners')
        ]
    )[:20]"/>
</xpath>


But I am getting this error: 

Validation Error

Error while parsing or validating view: xmlParseEntityRef: no name, line 4, column 15 (<string>, line 4)


I understand that all '&' need to be changed to '&amp;' instead, and I do this I am able to save the view. But then it doesn't do what was intended (it show only categories that we want but yet not hiding the empty categories). 


Any thoughts is highly appreciated.


Re,

Victor

아바타
취소
베스트 답변

Hii,

<xpath expr="//t[@t-set='categories']" position="replace">

    <t t-set="categories" t-value="request.env['product.public.category'].search([

        '&amp;',

            '|',

                ('child_id', '!=', False),

                ('product_tmpl_ids', '!=', False),

            '|', '|', '|',

                ('name', '=', 'Ink Cartridge'),

                ('name', '=', 'Toner Laser Cartridge'),

                ('name', '=', 'Printers By Brand'),

                ('name', '=', 'Printers & Scanners')

    ])[:20]"/>

</xpath>


i hope this code solve your error 


아바타
취소
베스트 답변
Hi try this 
<xpath expr="//t[@t-set='categories']" position="replace">
    <t t-set="categories" t-value="request.env['product.public.category'].search([
        '&amp;',
            '|',
                ('child_id', '!=', False),
                ('product_tmpl_ids', '!=', False),
            '|',
                ('name', '=', 'Ink Cartridge'),
                ('name', '=', 'Toner Laser Cartridge'),
            '|',
                ('name', '=', 'Printers By Brand'),
                ('name', '=', 'Printers & Scanners'),
    ])[:20]"/>
</xpath>

The outer &amp; ensures:

  • Either children or products must exist, AND
  • The name must be one of the four.


The inner | blocks combine the names properly.



아바타
취소
관련 게시물 답글 화면 활동
2
7월 23
1606
0
10월 20
3037
2
6월 22
2658
1
3월 22
7778
0
2월 23
2218