diff --git a/web_ir_actions_act_multi/README.rst b/web_ir_actions_act_multi/README.rst index 0df5f38e8..69be81f45 100644 --- a/web_ir_actions_act_multi/README.rst +++ b/web_ir_actions_act_multi/README.rst @@ -14,13 +14,13 @@ Web Actions Multi :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html :alt: License: LGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github - :target: https://github.com/OCA/web/tree/13.0/web_ir_actions_act_multi + :target: https://github.com/OCA/web/tree/15.0/web_ir_actions_act_multi :alt: OCA/web .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/web-13-0/web-13-0-web_ir_actions_act_multi + :target: https://translation.odoo-community.org/projects/web-15-0/web-15-0-web_ir_actions_act_multi :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/162/13.0 + :target: https://runbot.odoo-community.org/runbot/162/15.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -39,14 +39,13 @@ To use this functionality you need to return following action with list of actio .. code-block:: python - @api.multi - def foo(): + def foo(self): self.ensure_one() return { 'type': 'ir.actions.act_multi', 'actions': [ {'type': 'ir.actions.act_window_close'}, - {'type': 'ir.actions.act_view_reload'}, + {'type': 'ir.actions.client', 'tag': 'reload'}, ] } @@ -56,7 +55,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -79,6 +78,7 @@ Contributors * Alexey Pelykh * Manuel Calero - Tecnativa +* Matias Peralta, Juan Rivero - Adhoc Maintainers ~~~~~~~~~~~ @@ -93,6 +93,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. -This module is part of the `OCA/web `_ project on GitHub. +This module is part of the `OCA/web `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/web_ir_actions_act_multi/__init__.py b/web_ir_actions_act_multi/__init__.py index e69de29bb..0650744f6 100644 --- a/web_ir_actions_act_multi/__init__.py +++ b/web_ir_actions_act_multi/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/web_ir_actions_act_multi/__manifest__.py b/web_ir_actions_act_multi/__manifest__.py index 86e063ff7..869e38d50 100644 --- a/web_ir_actions_act_multi/__manifest__.py +++ b/web_ir_actions_act_multi/__manifest__.py @@ -8,11 +8,16 @@ "name": "Web Actions Multi", "summary": "Enables triggering of more than one action on ActionManager", "category": "Web", - "version": "13.0.1.0.0", + "version": "15.0.1.0.0", "license": "LGPL-3", "author": "Modoolar, " "CorporateHub, " "Odoo Community Association (OCA)", "website": "https://github.com/OCA/web", "depends": ["web"], - "data": ["views/web_ir_actions_act_multi.xml"], + "data": ["security/ir.model.access.csv"], + "assets": { + "web.assets_backend": [ + "web_ir_actions_act_multi/static/src/**/*.esm.js", + ], + }, "installable": True, } diff --git a/web_ir_actions_act_multi/i18n/web_ir_actions_act_multi.pot b/web_ir_actions_act_multi/i18n/web_ir_actions_act_multi.pot index cc93d01ee..3c9eff4a0 100644 --- a/web_ir_actions_act_multi/i18n/web_ir_actions_act_multi.pot +++ b/web_ir_actions_act_multi/i18n/web_ir_actions_act_multi.pot @@ -1,9 +1,10 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: +# * web_ir_actions_act_multi # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 13.0\n" +"Project-Id-Version: Odoo Server 15.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -11,3 +12,92 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" + +#. module: web_ir_actions_act_multi +#: model:ir.model.fields,field_description:web_ir_actions_act_multi.field_ir_actions_act_multi__help +msgid "Action Description" +msgstr "" + +#. module: web_ir_actions_act_multi +#: model:ir.model,name:web_ir_actions_act_multi.model_ir_actions_act_multi +msgid "Action Mulit" +msgstr "" + +#. module: web_ir_actions_act_multi +#: model:ir.model.fields,field_description:web_ir_actions_act_multi.field_ir_actions_act_multi__type +msgid "Action Type" +msgstr "" + +#. module: web_ir_actions_act_multi +#: model:ir.model.fields,field_description:web_ir_actions_act_multi.field_ir_actions_act_multi__binding_model_id +msgid "Binding Model" +msgstr "" + +#. module: web_ir_actions_act_multi +#: model:ir.model.fields,field_description:web_ir_actions_act_multi.field_ir_actions_act_multi__binding_type +msgid "Binding Type" +msgstr "" + +#. module: web_ir_actions_act_multi +#: model:ir.model.fields,field_description:web_ir_actions_act_multi.field_ir_actions_act_multi__binding_view_types +msgid "Binding View Types" +msgstr "" + +#. module: web_ir_actions_act_multi +#: model:ir.model.fields,field_description:web_ir_actions_act_multi.field_ir_actions_act_multi__create_uid +msgid "Created by" +msgstr "" + +#. module: web_ir_actions_act_multi +#: model:ir.model.fields,field_description:web_ir_actions_act_multi.field_ir_actions_act_multi__create_date +msgid "Created on" +msgstr "" + +#. module: web_ir_actions_act_multi +#: model:ir.model.fields,field_description:web_ir_actions_act_multi.field_ir_actions_act_multi__display_name +msgid "Display Name" +msgstr "" + +#. module: web_ir_actions_act_multi +#: model:ir.model.fields,field_description:web_ir_actions_act_multi.field_ir_actions_act_multi__xml_id +msgid "External ID" +msgstr "" + +#. module: web_ir_actions_act_multi +#: model:ir.model.fields,field_description:web_ir_actions_act_multi.field_ir_actions_act_multi__id +msgid "ID" +msgstr "" + +#. module: web_ir_actions_act_multi +#: model:ir.model.fields,field_description:web_ir_actions_act_multi.field_ir_actions_act_multi____last_update +msgid "Last Modified on" +msgstr "" + +#. module: web_ir_actions_act_multi +#: model:ir.model.fields,field_description:web_ir_actions_act_multi.field_ir_actions_act_multi__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: web_ir_actions_act_multi +#: model:ir.model.fields,field_description:web_ir_actions_act_multi.field_ir_actions_act_multi__write_date +msgid "Last Updated on" +msgstr "" + +#. module: web_ir_actions_act_multi +#: model:ir.model.fields,field_description:web_ir_actions_act_multi.field_ir_actions_act_multi__name +msgid "Name" +msgstr "" + +#. module: web_ir_actions_act_multi +#: model:ir.model.fields,help:web_ir_actions_act_multi.field_ir_actions_act_multi__help +msgid "" +"Optional help text for the users with a description of the target view, such" +" as its usage and purpose." +msgstr "" + +#. module: web_ir_actions_act_multi +#: model:ir.model.fields,help:web_ir_actions_act_multi.field_ir_actions_act_multi__binding_model_id +msgid "" +"Setting a value makes this action available in the sidebar for the given " +"model." +msgstr "" diff --git a/web_ir_actions_act_multi/models/__init__.py b/web_ir_actions_act_multi/models/__init__.py new file mode 100644 index 000000000..16285e5e1 --- /dev/null +++ b/web_ir_actions_act_multi/models/__init__.py @@ -0,0 +1 @@ +from . import ir_actions diff --git a/web_ir_actions_act_multi/models/ir_actions.py b/web_ir_actions_act_multi/models/ir_actions.py new file mode 100644 index 000000000..123d625e0 --- /dev/null +++ b/web_ir_actions_act_multi/models/ir_actions.py @@ -0,0 +1,15 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import fields, models + + +class IrActionsActMulti(models.Model): + _name = "ir.actions.act_multi" + _description = "Action Mulit" + _inherit = "ir.actions.actions" + _table = "ir_actions" + + type = fields.Char(default="ir.actions.act_multi") + + def _get_readable_fields(self): + return super()._get_readable_fields() | {"actions"} diff --git a/web_ir_actions_act_multi/readme/CONTRIBUTORS.rst b/web_ir_actions_act_multi/readme/CONTRIBUTORS.rst index 81884a60f..0fe7835e0 100644 --- a/web_ir_actions_act_multi/readme/CONTRIBUTORS.rst +++ b/web_ir_actions_act_multi/readme/CONTRIBUTORS.rst @@ -5,3 +5,4 @@ * Alexey Pelykh * Manuel Calero - Tecnativa +* Matias Peralta, Juan Rivero - Adhoc diff --git a/web_ir_actions_act_multi/readme/USAGE.rst b/web_ir_actions_act_multi/readme/USAGE.rst index 7fe7ca500..eadf01451 100644 --- a/web_ir_actions_act_multi/readme/USAGE.rst +++ b/web_ir_actions_act_multi/readme/USAGE.rst @@ -2,13 +2,12 @@ To use this functionality you need to return following action with list of actio .. code-block:: python - @api.multi - def foo(): + def foo(self): self.ensure_one() return { 'type': 'ir.actions.act_multi', 'actions': [ {'type': 'ir.actions.act_window_close'}, - {'type': 'ir.actions.act_view_reload'}, + {'type': 'ir.actions.client', 'tag': 'reload'}, ] } diff --git a/web_ir_actions_act_multi/security/ir.model.access.csv b/web_ir_actions_act_multi/security/ir.model.access.csv new file mode 100644 index 000000000..b0a872960 --- /dev/null +++ b/web_ir_actions_act_multi/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +crud_ir_actions_act_multi,access_ir_actions_act_multi,model_ir_actions_act_multi,,1,1,1,1 diff --git a/web_ir_actions_act_multi/static/description/index.html b/web_ir_actions_act_multi/static/description/index.html index d4e116a3a..78cac1418 100644 --- a/web_ir_actions_act_multi/static/description/index.html +++ b/web_ir_actions_act_multi/static/description/index.html @@ -367,7 +367,7 @@ ul.auto-toc { !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: LGPL-3 OCA/web Translate me on Weblate Try me on Runbot

+

Beta License: LGPL-3 OCA/web Translate me on Weblate Try me on Runbot

This module provides a way to trigger more than one action on ActionManager

Table of contents

@@ -386,14 +386,13 @@ ul.auto-toc {

Usage

To use this functionality you need to return following action with list of actions to execute:

-@api.multi
-def foo():
+def foo(self):
    self.ensure_one()
    return {
       'type': 'ir.actions.act_multi',
       'actions': [
           {'type': 'ir.actions.act_window_close'},
-          {'type': 'ir.actions.act_view_reload'},
+          {'type': 'ir.actions.client', 'tag': 'reload'},
       ]
    }
 
@@ -403,7 +402,7 @@ ul.auto-toc {

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -feedback.

+feedback.

Do not contact contributors directly about support or help with technical issues.

@@ -425,6 +424,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
  • Manuel Calero - Tecnativa
  • +
  • Matias Peralta, Juan Rivero - Adhoc
  • @@ -434,7 +434,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome

    OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

    -

    This module is part of the OCA/web project on GitHub.

    +

    This module is part of the OCA/web project on GitHub.

    You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

    diff --git a/web_ir_actions_act_multi/static/src/js/web_ir_actions_act_multi.esm.js b/web_ir_actions_act_multi/static/src/js/web_ir_actions_act_multi.esm.js new file mode 100644 index 000000000..74bad577e --- /dev/null +++ b/web_ir_actions_act_multi/static/src/js/web_ir_actions_act_multi.esm.js @@ -0,0 +1,23 @@ +/** @odoo-module **/ + +import {registry} from "@web/core/registry"; + +/** + * Handle 'ir.actions.act_multi' action + * @param {object} action see _handleAction() parameters + * @returns {$.Promise} + */ + +async function executeMultiAction({env, action}) { + return action.actions + .map((item) => { + return () => { + return env.services.action.doAction(item); + }; + }) + .reduce((prev, cur) => { + return prev.then(cur); + }, Promise.resolve()); +} + +registry.category("action_handlers").add("ir.actions.act_multi", executeMultiAction); diff --git a/web_ir_actions_act_multi/static/src/js/web_ir_actions_act_multi.js b/web_ir_actions_act_multi/static/src/js/web_ir_actions_act_multi.js deleted file mode 100644 index 5905ebca0..000000000 --- a/web_ir_actions_act_multi/static/src/js/web_ir_actions_act_multi.js +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2017 - 2018 Modoolar -// Copyright 2018 Brainbean Apps -// Copyright 2020 Manuel Calero - Tecnativa -// License LGPLv3.0 or later (https://www.gnu.org/licenses/lgpl-3.0.en.html). - -odoo.define("web_ir_actions_act_multi.ir_actions_act_multi", function(require) { - "use strict"; - - var ActionManager = require("web.ActionManager"); - - ActionManager.include({ - /** - * Intercept action handling to detect extra action type - * @override - */ - _handleAction: function(action, options) { - if (action.type === "ir.actions.act_multi") { - return this._executeMultiAction(action, options); - } - return this._super.apply(this, arguments); - }, - - /** - * Handle 'ir.actions.act_multi' action - * @param {Object} action see _handleAction() parameters - * @param {Object} options see _handleAction() parameters - * @returns {$.Promise} - */ - _executeMultiAction: function(action, options) { - const self = this; - - return action.actions - .map(item => { - return () => { - return self._handleAction(item, options); - }; - }) - .reduce((prev, cur) => { - return prev.then(cur); - }, Promise.resolve()); - }, - }); -}); diff --git a/web_ir_actions_act_multi/views/web_ir_actions_act_multi.xml b/web_ir_actions_act_multi/views/web_ir_actions_act_multi.xml deleted file mode 100644 index ada8cb618..000000000 --- a/web_ir_actions_act_multi/views/web_ir_actions_act_multi.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - -