#javascript #qweb #odoo-14
#javascript #qweb #odoo-14
Вопрос:
Я пытаюсь добавить пользовательский пункт меню в выпадающий список фильтра
в Odoo14 и owl framework некоторые пункты меню существуют в базовом модуле внутри следующего фрагмента
<t t-name="web.CustomFilterItem" owl="1">
<div class="o_generator_menu">
<button type="button"
class="o_add_custom_filter dropdown-item"
aria-expanded="false"
t-ref="fallback-focus"
t-on-click="state.open = !state.open"
t-on-keydown="_onKeydown"
>
<t>Add Custom Filter</t>
</button>
</div>
</t>
Итак, в моем пользовательском модуле я делаю следующее, чтобы добавить пользовательский элемент
<?xml version="1.0" encoding="UTF-8" ?>
<templates>
<t t-extend="web.CustomFilterItem">
<t t-jquery=".o_add_custom_filter" t-operation="after">
<div
role="separator"
class="dropdown-divider o_generator_menu"
/>
<button
type="button"
class="dropdown-item o_generator_menu o_add_advanced_search"
aria-expanded="false"
>Custom Item</button>
</t>
</t>
</templates>
Но он не появляется. Есть предложения?
Ответ №1:
Odoo14 owl framework вы можете расширить шаблон с помощью xpath.
вы можете использовать так.
<?xml version="1.0" encoding="UTF-8"?>
<templates id="template" xml:space="preserve">
<t t-name="CustomFilterItem" t-inherit="web.CustomFilterItem" t-inherit-mode="extension" owl="1">
<xpath expr="//button[hasclass('o_add_custom_filter dropdown-item')]" position="before">
//your code
</xpath>
</templates>