Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

204
Vistas
Función de anulación en ODOO15

Con los nuevos cambios en odoo15. No puedo anular una función en Javascript. Creé un módulo personalizado e importé el requerido.

Quiero anular la función _executeReportAction

 import {download} from "@web/core/network/download"; import {registry} from "@web/core/registry"; import { useService } from "@web/core/utils/hooks"; import {actionService} from "@web/webclient/actions/action_service"; async function _executeReportAction(action, options) { }

Así que cómo se hace

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

La función _executeReportAction primero intentará ejecutar controladores ir.actions.report , por lo que en lugar de parchear la función, agregue un controlador de informes zpl .

Puede consultar el módulo OCA report_xlsx que define un controlador de informes para informes xlsx

Código original:

 /** @odoo-module **/ import {download} from "@web/core/network/download"; import {registry} from "@web/core/registry"; registry .category("ir.actions.report handlers") .add("xlsx_handler", async function (action, options, env) { if (action.report_type === "xlsx") { const type = action.report_type; let url = `/report/${type}/${action.report_name}`; const actionContext = action.context || {}; if (action.data && JSON.stringify(action.data) !== "{}") { // Build a query string with `action.data` (it's the place where reports // using a wizard to customize the output traditionally put their options) const action_options = encodeURIComponent(JSON.stringify(action.data)); const context = encodeURIComponent(JSON.stringify(actionContext)); url += `?options=${action_options}&context=${context}`; } else { if (actionContext.active_ids) { url += `/${actionContext.active_ids.join(",")}`; } if (type === "xlsx") { const context = encodeURIComponent( JSON.stringify(env.services.user.context) ); url += `?context=${context}`; } } env.services.ui.block(); try { await download({ url: "/report/download", data: { data: JSON.stringify([url, action.report_type]), context: JSON.stringify(env.services.user.context), }, }); } finally { env.services.ui.unblock(); } const onClose = options.onClose; if (action.close_on_report_download) { return env.services.action.doAction( {type: "ir.actions.act_window_close"}, {onClose} ); } else if (onClose) { onClose(); } return Promise.resolve(true); } return Promise.resolve(false); });

En el código anterior fusionaron las funciones _triggerDownload y _getReportUrl en una sola función.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda