Как наследовать и настраивать контроллер в Odoo V12 - PullRequest
1 голос
/ 30 марта 2020

Я пытаюсь унаследовать веб-контроллер Odoo для добавления нового параметра для использования его в представлении, но я не могу это сделать.

Это метод класса, который мне нужен наследовать для рендеринга представления:

class CustomerPortal(Controller):
@route(['/my', '/my/home'], type='http', auth="user", website=True)
    def home(self, **kw):
        values = self._prepare_portal_layout_values()
        return request.render("portal.portal_my_home", values)

Это представление, где мне нужно добавить настраиваемое поле: enter image description here

Так что это моя попытка, и я не было ошибок, но ничего не происходит тоже. Мой проверенный контроллер (я тоже пытался поместить объявление @route как @route ()):

class websiteContact(CustomerPortal):
    @http.route('/my/home', type='http', auth="user", website=True)
    def home(self): 
        response = super(websiteContact, self).home() 
        if self.env.user.id != SUPERUSER_ID:
            response['isAdmin'] = False 
        else:
            response['isAdmin'] = True
        return response

Мой проверенный вид:

// Представление portal.portal_contact вызывается view portal.portal_my_home

<template id="website_contact_template" inherit_id="portal.portal_contact">
    <xpath expr="//div[@class='o_portal_contact_details mb-5']" position="inside">
            <t t-esc="isAdmin"/>
    </xpath>
    </template>

Кто-то знает, как наследовать контроллер, добавить новое поле и показать его в представлении? Спасибо за чтение!

1 Ответ

1 голос
/ 30 марта 2020

Контроллер Добавьте свои настраиваемые логи c В этом методе _prepare_portal_layout_values.

Спасибо

...