После исследования исходного кода odoo - дискуссий с людьми, которые больше вовлечены в разработку odoo - и вообще - больше работы с odoo - я нашел способ, как это сделать.
Изначально вопрос был невернымПредположение - что это возможно сделать путем рендеринга с использованием контроллера.Важно понимать, что - бэкенд odoo отображается как «одиночная js-страница», и любые настройки на стороне панели инструментов (которые по умолчанию не предоставляются odoo, которые вы можете определить в представлениях) - должны выполнятьсясоздание js-виджетов и непосредственное изменение объектов dom с помощью javascript.
Решение ниже представляет действие / страницу со стороны панели инструментов - при этом будет отображаться пустая страница, содержащая только слово «Test».
odoo.define("mymodule.customdashboard", function (require) {
"use strict";
var core = require("web.core");
var AbstractAction = require("web.AbstractAction");
var Widget = require("web.Widget");
var qweb = core.qweb;
var _t = core._t;
require("web.dom_ready");
var CustomDashboard = AbstractAction.extend({
template: "custom_dashboard",
events: {
},
init: function(parent, action){
this._super.apply(this, arguments);
var options = action.params || {};
this.params = options;
},
start: function(){
this.$(".dashboard-wrapper").append(qweb.render("campaign_dashboard_campaign_list", {"someArgData": "Test"}));
}
});
core.action_registry.add("custom.dashboard", CustomDashboard);
return {
CustomDashboard: CustomDashboard
}
});
Где campaign_dashboard_campaign_list - это имя шаблона, который будет вызываться И с параметром, вставленный со всеми html-данными в элемент dom, который содержит класс .dashboard-wrapper (который существует в другом шаблоне с именем custom_dashboard , определенном в верхней части класса.