73 lines
2.6 KiB
JavaScript
73 lines
2.6 KiB
JavaScript
import { Spreadsheet } from "@odoo/o-spreadsheet";
|
|
import { SpreadsheetComponent } from "@spreadsheet/actions/spreadsheet_component";
|
|
import { makeFakeSpreadsheetService } from "@spreadsheet_edition/../tests/helpers/collaborative_helpers";
|
|
import { InsertListSpreadsheetMenu } from "@spreadsheet_edition/assets/list_view/insert_list_spreadsheet_menu_owl";
|
|
import { AbstractSpreadsheetAction } from "@spreadsheet_edition/bundle/actions/abstract_spreadsheet_action";
|
|
import { mockService, patchWithCleanup } from "@web/../tests/web_test_helpers";
|
|
import { registry } from "@web/core/registry";
|
|
|
|
export async function prepareWebClientForSpreadsheet() {
|
|
mockService("spreadsheet_collaborative", makeFakeSpreadsheetService());
|
|
|
|
registry.category("favoriteMenu").add(
|
|
"insert-in-spreadsheet-menu",
|
|
{
|
|
Component: InsertListSpreadsheetMenu,
|
|
groupNumber: 4,
|
|
isDisplayed: ({ config, isSmall }) =>
|
|
!isSmall &&
|
|
config.actionType === "ir.actions.act_window" &&
|
|
["kanban", "list"].includes(config.viewType),
|
|
},
|
|
{ sequence: 5 }
|
|
);
|
|
|
|
// Transforming the canvas into an image might crash in Hoot since the canvas has a size of 0x0 on some test setup
|
|
patchWithCleanup(AbstractSpreadsheetAction.prototype, {
|
|
onSpreadsheetLeftUpdateVals() {
|
|
return { display_thumbnail: "someBase64Image" };
|
|
},
|
|
});
|
|
}
|
|
|
|
function getChildFromComponent(component, cls) {
|
|
return Object.values(component.__owl__.children).find((child) => child.component instanceof cls)
|
|
.component;
|
|
}
|
|
|
|
/**
|
|
* Return the odoo spreadsheet component
|
|
* @param {*} actionManager
|
|
* @returns {SpreadsheetComponent}
|
|
*/
|
|
export function getSpreadsheetComponent(actionManager) {
|
|
return getChildFromComponent(actionManager, SpreadsheetComponent);
|
|
}
|
|
|
|
/**
|
|
* Return the o-spreadsheet component
|
|
* @param {*} actionManager
|
|
* @returns {Component}
|
|
*/
|
|
export function getOSpreadsheetComponent(actionManager) {
|
|
return getChildFromComponent(getSpreadsheetComponent(actionManager), Spreadsheet);
|
|
}
|
|
|
|
/**
|
|
* Return the o-spreadsheet Model
|
|
* @return {import("@spreadsheet").OdooSpreadsheetModel} model
|
|
*/
|
|
export function getSpreadsheetActionModel(actionManager) {
|
|
return getOSpreadsheetComponent(actionManager).model;
|
|
}
|
|
|
|
export function getSpreadsheetActionTransportService(actionManager) {
|
|
return actionManager.transportService;
|
|
}
|
|
|
|
export function getSpreadsheetActionEnv(actionManager) {
|
|
const component = getSpreadsheetComponent(actionManager);
|
|
const oComponent = getOSpreadsheetComponent(actionManager);
|
|
return Object.assign(Object.create(component.env), oComponent.env);
|
|
}
|