60 lines
1.7 KiB
JavaScript
60 lines
1.7 KiB
JavaScript
import { browser } from "@web/core/browser/browser";
|
|
import { _t } from "@web/core/l10n/translation";
|
|
import { registry } from "@web/core/registry";
|
|
import { SelectCreateDialog } from "@web/views/view_dialogs/select_create_dialog";
|
|
|
|
function runUnitTestsItem() {
|
|
const href = "/web/tests?debug=assets";
|
|
return {
|
|
type: "item",
|
|
description: _t("Run Unit Tests"),
|
|
href,
|
|
callback: () => browser.open(href),
|
|
sequence: 450,
|
|
section: "testing",
|
|
};
|
|
}
|
|
|
|
export function openViewItem({ env }) {
|
|
async function onSelected(records) {
|
|
const views = await env.services.orm.searchRead(
|
|
"ir.ui.view",
|
|
[["id", "=", records[0]]],
|
|
["name", "model", "type"],
|
|
{ limit: 1 }
|
|
);
|
|
const view = views[0];
|
|
env.services.action.doAction({
|
|
type: "ir.actions.act_window",
|
|
name: view.name,
|
|
res_model: view.model,
|
|
views: [[view.id, view.type]],
|
|
});
|
|
}
|
|
|
|
return {
|
|
type: "item",
|
|
description: _t("Open View"),
|
|
callback: () => {
|
|
env.services.dialog.add(SelectCreateDialog, {
|
|
resModel: "ir.ui.view",
|
|
title: _t("Select a view"),
|
|
multiSelect: false,
|
|
domain: [
|
|
["type", "!=", "qweb"],
|
|
["type", "!=", "search"],
|
|
],
|
|
onSelected,
|
|
});
|
|
},
|
|
sequence: 540,
|
|
section: "tools",
|
|
};
|
|
}
|
|
|
|
registry
|
|
.category("debug")
|
|
.category("default")
|
|
.add("runUnitTestsItem", runUnitTestsItem)
|
|
.add("openViewItem", openViewItem);
|