[MIG] web_ir_actions_act_multi: Migration to 15.0

pull/3134/head
matiasperalta1 2021-12-23 14:44:51 -03:00 committed by David
parent cd71997787
commit 5c3e4d564a
13 changed files with 157 additions and 82 deletions

View File

@ -14,13 +14,13 @@ Web Actions Multi
:target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
:alt: License: LGPL-3 :alt: License: LGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github .. |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 :alt: OCA/web
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png .. |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 :alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png .. |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 :alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5| |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 .. code-block:: python
@api.multi def foo(self):
def foo():
self.ensure_one() self.ensure_one()
return { return {
'type': 'ir.actions.act_multi', 'type': 'ir.actions.act_multi',
'actions': [ 'actions': [
{'type': 'ir.actions.act_window_close'}, {'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 <https://github.com/OCA/web/issues>`_. Bugs are tracked on `GitHub Issues <https://github.com/OCA/web/issues>`_.
In case of trouble, please check there if your issue has already been reported. 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 If you spotted it first, help us smashing it by providing a detailed and welcomed
`feedback <https://github.com/OCA/web/issues/new?body=module:%20web_ir_actions_act_multi%0Aversion:%2013.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_. `feedback <https://github.com/OCA/web/issues/new?body=module:%20web_ir_actions_act_multi%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Do not contact contributors directly about support or help with technical issues. Do not contact contributors directly about support or help with technical issues.
@ -79,6 +78,7 @@ Contributors
* Alexey Pelykh <alexey.pelykh@corphub.eu> * Alexey Pelykh <alexey.pelykh@corphub.eu>
* Manuel Calero - Tecnativa * Manuel Calero - Tecnativa
* Matias Peralta, Juan Rivero - Adhoc
Maintainers 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 mission is to support the collaborative development of Odoo features and
promote its widespread use. promote its widespread use.
This module is part of the `OCA/web <https://github.com/OCA/web/tree/13.0/web_ir_actions_act_multi>`_ project on GitHub. This module is part of the `OCA/web <https://github.com/OCA/web/tree/15.0/web_ir_actions_act_multi>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View File

@ -0,0 +1 @@
from . import models

View File

@ -8,11 +8,16 @@
"name": "Web Actions Multi", "name": "Web Actions Multi",
"summary": "Enables triggering of more than one action on ActionManager", "summary": "Enables triggering of more than one action on ActionManager",
"category": "Web", "category": "Web",
"version": "13.0.1.0.0", "version": "15.0.1.0.0",
"license": "LGPL-3", "license": "LGPL-3",
"author": "Modoolar, " "CorporateHub, " "Odoo Community Association (OCA)", "author": "Modoolar, " "CorporateHub, " "Odoo Community Association (OCA)",
"website": "https://github.com/OCA/web", "website": "https://github.com/OCA/web",
"depends": ["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, "installable": True,
} }

View File

@ -1,9 +1,10 @@
# Translation of Odoo Server. # Translation of Odoo Server.
# This file contains the translation of the following modules: # This file contains the translation of the following modules:
# * web_ir_actions_act_multi
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 13.0\n" "Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -11,3 +12,92 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Plural-Forms: \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 ""

View File

@ -0,0 +1 @@
from . import ir_actions

View File

@ -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"}

View File

@ -5,3 +5,4 @@
* Alexey Pelykh <alexey.pelykh@corphub.eu> * Alexey Pelykh <alexey.pelykh@corphub.eu>
* Manuel Calero - Tecnativa * Manuel Calero - Tecnativa
* Matias Peralta, Juan Rivero - Adhoc

View File

@ -2,13 +2,12 @@ To use this functionality you need to return following action with list of actio
.. code-block:: python .. code-block:: python
@api.multi def foo(self):
def foo():
self.ensure_one() self.ensure_one()
return { return {
'type': 'ir.actions.act_multi', 'type': 'ir.actions.act_multi',
'actions': [ 'actions': [
{'type': 'ir.actions.act_window_close'}, {'type': 'ir.actions.act_window_close'},
{'type': 'ir.actions.act_view_reload'}, {'type': 'ir.actions.client', 'tag': 'reload'},
] ]
} }

View File

@ -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
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 crud_ir_actions_act_multi access_ir_actions_act_multi model_ir_actions_act_multi 1 1 1 1

View File

@ -367,7 +367,7 @@ ul.auto-toc {
!! This file is generated by oca-gen-addon-readme !! !! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !! !! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/lgpl-3.0-standalone.html"><img alt="License: LGPL-3" src="https://img.shields.io/badge/licence-LGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/web/tree/13.0/web_ir_actions_act_multi"><img alt="OCA/web" src="https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/web-13-0/web-13-0-web_ir_actions_act_multi"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/162/13.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p> <p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/lgpl-3.0-standalone.html"><img alt="License: LGPL-3" src="https://img.shields.io/badge/licence-LGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/web/tree/15.0/web_ir_actions_act_multi"><img alt="OCA/web" src="https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/web-15-0/web-15-0-web_ir_actions_act_multi"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/162/15.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
<p>This module provides a way to trigger more than one action on ActionManager</p> <p>This module provides a way to trigger more than one action on ActionManager</p>
<p><strong>Table of contents</strong></p> <p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents"> <div class="contents local topic" id="contents">
@ -386,14 +386,13 @@ ul.auto-toc {
<h1><a class="toc-backref" href="#id1">Usage</a></h1> <h1><a class="toc-backref" href="#id1">Usage</a></h1>
<p>To use this functionality you need to return following action with list of actions to execute:</p> <p>To use this functionality you need to return following action with list of actions to execute:</p>
<pre class="code python literal-block"> <pre class="code python literal-block">
<span class="nd">&#64;api</span><span class="o">.</span><span class="n">multi</span> <span class="k">def</span> <span class="nf">foo</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">def</span> <span class="nf">foo</span><span class="p">():</span>
<span class="bp">self</span><span class="o">.</span><span class="n">ensure_one</span><span class="p">()</span> <span class="bp">self</span><span class="o">.</span><span class="n">ensure_one</span><span class="p">()</span>
<span class="k">return</span> <span class="p">{</span> <span class="k">return</span> <span class="p">{</span>
<span class="s1">'type'</span><span class="p">:</span> <span class="s1">'ir.actions.act_multi'</span><span class="p">,</span> <span class="s1">'type'</span><span class="p">:</span> <span class="s1">'ir.actions.act_multi'</span><span class="p">,</span>
<span class="s1">'actions'</span><span class="p">:</span> <span class="p">[</span> <span class="s1">'actions'</span><span class="p">:</span> <span class="p">[</span>
<span class="p">{</span><span class="s1">'type'</span><span class="p">:</span> <span class="s1">'ir.actions.act_window_close'</span><span class="p">},</span> <span class="p">{</span><span class="s1">'type'</span><span class="p">:</span> <span class="s1">'ir.actions.act_window_close'</span><span class="p">},</span>
<span class="p">{</span><span class="s1">'type'</span><span class="p">:</span> <span class="s1">'ir.actions.act_view_reload'</span><span class="p">},</span> <span class="p">{</span><span class="s1">'type'</span><span class="p">:</span> <span class="s1">'ir.actions.client'</span><span class="p">,</span> <span class="s1">'tag'</span><span class="p">:</span> <span class="s1">'reload'</span><span class="p">},</span>
<span class="p">]</span> <span class="p">]</span>
<span class="p">}</span> <span class="p">}</span>
</pre> </pre>
@ -403,7 +402,7 @@ ul.auto-toc {
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/web/issues">GitHub Issues</a>. <p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/web/issues">GitHub Issues</a>.
In case of trouble, please check there if your issue has already been reported. 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 If you spotted it first, help us smashing it by providing a detailed and welcomed
<a class="reference external" href="https://github.com/OCA/web/issues/new?body=module:%20web_ir_actions_act_multi%0Aversion:%2013.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p> <a class="reference external" href="https://github.com/OCA/web/issues/new?body=module:%20web_ir_actions_act_multi%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p> <p>Do not contact contributors directly about support or help with technical issues.</p>
</div> </div>
<div class="section" id="credits"> <div class="section" id="credits">
@ -425,6 +424,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
</ul> </ul>
</li> </li>
<li>Manuel Calero - Tecnativa</li> <li>Manuel Calero - Tecnativa</li>
<li>Matias Peralta, Juan Rivero - Adhoc</li>
</ul> </ul>
</div> </div>
<div class="section" id="maintainers"> <div class="section" id="maintainers">
@ -434,7 +434,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose <p>OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and mission is to support the collaborative development of Odoo features and
promote its widespread use.</p> promote its widespread use.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/web/tree/13.0/web_ir_actions_act_multi">OCA/web</a> project on GitHub.</p> <p>This module is part of the <a class="reference external" href="https://github.com/OCA/web/tree/15.0/web_ir_actions_act_multi">OCA/web</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p> <p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div> </div>
</div> </div>

View File

@ -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);

View File

@ -1,43 +0,0 @@
// Copyright 2017 - 2018 Modoolar <info@modoolar.com>
// Copyright 2018 Brainbean Apps <hello@brainbeanapps.com>
// 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());
},
});
});

View File

@ -1,19 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
# Copyright 2017 - 2018 Modoolar <info@modoolar.com>
# License LGPLv3.0 or later (https://www.gnu.org/licenses/lgpl-3.0.en.html).
-->
<odoo>
<template
id="assets_backend"
name="web_ir_actions_act_multi assets"
inherit_id="web.assets_backend"
>
<xpath expr="." position="inside">
<script
type="text/javascript"
src="/web_ir_actions_act_multi/static/src/js/web_ir_actions_act_multi.js"
/>
</xpath>
</template>
</odoo>