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

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
1555
0
10月 20
2980
2
6月 22
2624
1
3月 22
7742
0
2月 23
2166