собственные страницы / шаблоны не генерируют имя_страницы - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь добавить элемент крошки на страницы портала.Я пытаюсь скопировать форму модуля продажи.Внутри этого модуля есть этот шаблон, который добавляет новые записи хлебных крошек:

    <template id="portal_my_home_menu_sale" name="Portal layout : sales menu entries" inherit_id="portal.portal_breadcrumbs" priority="20">
        <xpath expr="//ol[hasclass('o_portal_submenu')]" position="inside">
            <li t-if="page_name == 'quote' or sale_order and sale_order.state in ('sent', 'cancel')" t-attf-class="breadcrumb-item #{'active ' if not sale_order else ''}">
                <a t-if="sale_order" t-attf-href="/my/quotes?{{ keep_query() }}">Quotations</a>
                <t t-else="">Quotations</t>
            </li>
            <li t-if="page_name == 'order' or sale_order and sale_order.state not in ('sent', 'cancel')" t-attf-class="breadcrumb-item #{'active ' if not sale_order else ''}">
                <a t-if="sale_order" t-attf-href="/my/orders?{{ keep_query() }}">Sales Orders</a>
                <t t-else="">Sales Orders</t>
            </li>
            <li t-if="sale_order" class="breadcrumb-item active">
                <span t-field="sale_order.type_name"/>
                <t t-esc="sale_order.name"/>
            </li>
        </xpath>
    </template>

Созданные шаблоны не имеют атрибута page_name.Как я могу добавить это в мои шаблоны?На страницах стокового портала есть дом, заказ или счет в виде page_name, но я не могу найти это в шаблонах.

1 Ответ

1 голос
/ 26 июня 2019

Настройки переменных добавляются либо во время вызова функции render, либо с использованием t-set внутри шаблона, либо с помощью обоих.

В вашем конкретном случае page_name назначается внутри portal_my_quotes(См. <path_to_v12>/addons/sale/controllers/portal.py строки 39-90. См. Выдержку ниже.), Которая является контроллером для маршрута /my/quotes

@http.route(['/my/quotes', '/my/quotes/page/<int:page>'], type='http', auth="user", website=True)
def portal_my_quotes(self, page=1, date_begin=None, date_end=None, sortby=None, **kw):
    values = self._prepare_portal_layout_values()
    ...
    values.update({
        'date': date_begin,
        'quotations': quotations.sudo(),
        'page_name': 'quote',
        'pager': pager,
        'archive_groups': archive_groups,
        'default_url': '/my/quotes',
        'searchbar_sortings': searchbar_sortings,
        'sortby': sortby,
    })
    return request.render("sale.portal_my_quotations", values)

Документация относительно использования t-set может быть найдена в https://www.odoo.com/documentation/12.0/reference/qweb.html#setting-variables

...