Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
909b684
[REF] rename 'mass_editing' module into 'server_action_mass_edit'
legalsylvain Oct 31, 2022
20d176e
[UPD] french translation
legalsylvain Nov 2, 2022
8dd043a
[IMP] server_action_mass_edit: Do not re-use demo and admin users to …
victoralmau Nov 29, 2022
ac6a6ca
Translated using Weblate (Turkish)
tate11 Mar 9, 2023
4da4de0
Translated using Weblate (Slovenian)
sysadminmatmoz Apr 11, 2023
89402c7
[ADD] server_action_mass_edit: add support for o2m fields
hbrunn Aug 23, 2023
50fcf9d
Translated using Weblate (Spanish)
Ivorra78 Aug 27, 2023
146bc17
Translated using Weblate (Italian)
mymage Oct 29, 2023
15ff06d
Translated using Weblate (French)
gregory-moka Oct 30, 2023
5c0a916
Translated using Weblate (German)
jappi00 Dec 20, 2023
2e7c5e8
Translated using Weblate (Italian)
mymage Dec 28, 2023
54d81bd
[FIX] server_action_mass_edit: 'Add' readded to many2many
Feb 16, 2024
515b4a3
Translated using Weblate (Swedish)
jakobkrabbe Feb 27, 2024
69a11c0
[IMP] server_action_mass_edit: black, isort, prettier
CRogos May 6, 2024
9569456
[MIG] server_action_mass_edit: Migration to 17.0
rov-adhoc Mar 1, 2024
18fa3cc
Update translation files
weblate May 7, 2024
838a82d
Translated using Weblate (Spanish (Mexico))
alan196 May 7, 2024
12374d8
Translated using Weblate (Italian)
mymage May 15, 2024
7ae3d8f
[FIX] server_action_mess_edit: Application error when discard a x2man…
Vang-NguyenPhu Aug 30, 2024
442caa9
[IMP] Improve documentation during OCA Days 2024 Workshop thanks to @…
cvinh Sep 30, 2024
d248aa8
[IMP] server_action_mass_edit: pre-commit auto fixes
trisdoan Nov 29, 2024
4be15f3
[MIG] server_action_mass_edit: Migration to 18.0
trisdoan Oct 3, 2024
148271d
Translated using Weblate (Italian)
mymage Feb 6, 2025
1e25909
[ADD] server_action_mass_edit_onchange: extension to support playing …
trisdoan Dec 24, 2024
269a4a2
[18.0][IMP] server_action_mass_edit : improve Readme
TumbaoJu Jul 1, 2025
a191e1f
[FIX] server_action_mass_edit: add onchange method for selection__ te…
adavid-tsc Jun 25, 2025
302b686
Move section about configuration in V11 to V13 to History.md
TumbaoJu Nov 10, 2025
7a5d735
[FIX] server_action_mass_edit: Remove obsolete hooks.
legalsylvain Apr 1, 2026
4f46e4c
Translated using Weblate (Slovenian)
sysadminmatmoz Jun 1, 2026
2cae44d
[MIG] server_action_mass_edit : Migration to 19.0
jcadhoc Nov 5, 2025
30ed7c1
[MIG] server_action_mass_edit: continue migration to 19.0
eduezerouali-tecnativa Jun 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
258 changes: 258 additions & 0 deletions server_action_mass_edit/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,258 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

============
Mass Editing
============

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:dd3b8c6f22eed941881da8afd023f2a75840a497147fe0c5c3ebf1357addc818
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--ux-lightgray.png?logo=github
:target: https://github.com/OCA/server-ux/tree/19.0/server_action_mass_edit
:alt: OCA/server-ux
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/server-ux-19-0/server-ux-19-0-server_action_mass_edit
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/server-ux&target_branch=19.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

This module allows to edit several records at the same time in any Odoo
model.

**Table of contents**

.. contents::
:local:

Use Cases / Context
===================

Context
-------

Difference in comparison to the Odoo Feature*\*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Since Odoo V13, a limited *Mass Editing* feature is available in Odoo
CE.

In the list view, when selecting multiple records, you can edit a field.
Then, the system will ask you if you want to apply those changes on all
selected records. |Odoo Mass Editing| |Odoo Mass Editing Confirmation|
|Odoo Mass Editing Result|

This module provides the following extra features :

- Mass edit *many fields* in a single action
- Add an access group to the *Mass Edit Action* to limit the usage of
this action to specific users.
- Filter the records the user can mass update
- Mass edit any fields with any widget. (For example color fields, image
fields, etc...)

Use Case
--------

It can be useful to be able to edit the value of one or more fields on
multiple records at the same time easily.

For example, if I want to identify some contacts as *Customers,* I need
to change the value of the field ``customer_rank`` from 0 to 1. This
field is not visible on the form view of a *Contact* so the only way to
do it (without this module) would be to export the list and import the
edited file.

Another example would be to give access to specific users, using access
groups, to mass edit some fields on the invoices.

.. |Odoo Mass Editing| image:: https://raw.githubusercontent.com/OCA/server-ux/19.0/server_action_mass_edit/static/description/18-Odoo_Mass_Edit.png
.. |Odoo Mass Editing Confirmation| image:: https://raw.githubusercontent.com/OCA/server-ux/19.0/server_action_mass_edit/static/description/18-Odoo_Mass_Edit_Confirmation.png
.. |Odoo Mass Editing Result| image:: https://raw.githubusercontent.com/OCA/server-ux/19.0/server_action_mass_edit/static/description/18-Odoo_Mass_edit_Result.png

Configuration
=============

As a user from the access group *Administration / Settings*, in debug
mode, go to *Settings / Technical / Actions / Server Actions* and create
a new *Server Action.* |OCA Mass Editing Menu|

In the field *Type,* choose the new option *Mass Edit Records*. |OCA
Mass Editing Type|

Select the model on which you want to configure this action and give a
name to your server action.

| TIP!
| Name your action “\ *Mass Edit : Object Functional Name*\ ”
| E.g. *Mass Edit : Contact (or Partner)* |OCA Mass Editing Model|

Add the fields you want to be able to edit.

You can search and filter all the fields available by clicking on
*Search more.* |OCA Mass Editing Field| |OCA Mass Editing Field Filter|

Click on *Create Contextual Action* to add the Mass Editing action in
the *Action* menu. |OCA Mass Editing Create Contextual Action|

Widget Option
-------------

This option allows you to choose the widget to be used in the Mass
Editing Action Window. |OCA Mass Editing Widget|

Apply Domain
------------

This option allows you to apply the default Domain related to the
selected field. |OCA Mass Editing Domain|

Adding a Message
~~~~~~~~~~~~~~~~

You can add a *“Message”* to guide the users when using this action.
|OCA Mass Editing Message|

Adding security access group
----------------------------

Go to the field *Allowed Groups* and add the Access Group(s) who can use
this action. |OCA Mass Editing Security| |OCA Mass Editing Securtiy
Groups| |Odoo Mass Editing Security Result|

Now, only users from those groups will be able to see and use this
action.

.. |OCA Mass Editing Menu| image:: https://raw.githubusercontent.com/OCA/server-ux/19.0/server_action_mass_edit/static/description/18-OCA_Mass_Edit_Menu.png
.. |OCA Mass Editing Type| image:: https://raw.githubusercontent.com/OCA/server-ux/19.0/server_action_mass_edit/static/description/18-OCA_Mass_Edit_Type.png
.. |OCA Mass Editing Model| image:: https://raw.githubusercontent.com/OCA/server-ux/19.0/server_action_mass_edit/static/description/18-OCA_Mass_Edit_Model.png
.. |OCA Mass Editing Field| image:: https://raw.githubusercontent.com/OCA/server-ux/19.0/server_action_mass_edit/static/description/18-OCA_Mass_Edit_Field.png
.. |OCA Mass Editing Field Filter| image:: https://raw.githubusercontent.com/OCA/server-ux/19.0/server_action_mass_edit/static/description/18-OCA_Mass_Edit_Field_Filter.png
.. |OCA Mass Editing Create Contextual Action| image:: https://raw.githubusercontent.com/OCA/server-ux/19.0/server_action_mass_edit/static/description/18-OCA_Mass_Edit_Create_Action.png
.. |OCA Mass Editing Widget| image:: https://raw.githubusercontent.com/OCA/server-ux/19.0/server_action_mass_edit/static/description/18-OCA_Mass_Edit_Widget.png
.. |OCA Mass Editing Domain| image:: https://raw.githubusercontent.com/OCA/server-ux/19.0/server_action_mass_edit/static/description/18-OCA_Mass_Edit_Domain.png
.. |OCA Mass Editing Message| image:: https://raw.githubusercontent.com/OCA/server-ux/19.0/server_action_mass_edit/static/description/18-OCA_Mass_Edit_Message.png
.. |OCA Mass Editing Security| image:: https://raw.githubusercontent.com/OCA/server-ux/19.0/server_action_mass_edit/static/description/18-OCA_Mass_Edit_Security.png
.. |OCA Mass Editing Securtiy Groups| image:: https://raw.githubusercontent.com/OCA/server-ux/19.0/server_action_mass_edit/static/description/18-OCA_Mass_Edit_Security_Groups.png
.. |Odoo Mass Editing Security Result| image:: https://raw.githubusercontent.com/OCA/server-ux/19.0/server_action_mass_edit/static/description/18-OCA_Mass_Edit_Security_Result.png

Usage
=====

- *Go for Mass Editing*: select the records which you want to modify and
click on *Action* to open mass editing popup.

|Action|

- Select *Set / Remove* action and write down the value to set or remove
the value for the given field.

|Wizard Form|

- This way you can set / remove the values of the fields.

|Wizard Result|

.. |Action| image:: https://raw.githubusercontent.com/OCA/server-ux/19.0/server_action_mass_edit/static/description/mass_editing-item_tree.png
.. |Wizard Form| image:: https://raw.githubusercontent.com/OCA/server-ux/19.0/server_action_mass_edit/static/description/mass_editing-wizard_form.png
.. |Wizard Result| image:: https://raw.githubusercontent.com/OCA/server-ux/19.0/server_action_mass_edit/static/description/mass_editing-item_tree-result.png

Known issues / Roadmap
======================

- Auto add fields that are used in related domains if apply_domain=True

Changelog
=========

V11 to V13 Access
-----------------

The module was previously named ``mass_editing`` (from v6.1 to version
15) See :
https://odoo-community.org/shop/mass-editing-1568?search=mass_editing#attr=5526

From version 16+, it is named ``server_action_mass_edit`` See:
https://odoo-community.org/shop/mass-editing-11388?search=server_action_mass_edit#attr=22115

Access to the feature in V11 to V13
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

As a user from the access group *Administration / Settings*, go to
*Settings / Mass Operations / Mass Editing.* |OCA Mass Editing Access
V11 to V13|

.. |OCA Mass Editing Access V11 to V13| image:: https://raw.githubusercontent.com/OCA/server-ux/19.0/server_action_mass_edit/static/description/OCA_mass_edit_v11_v13.png

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/server-ux/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/server-ux/issues/new?body=module:%20server_action_mass_edit%0Aversion:%2019.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.

Credits
=======

Authors
-------

* Serpent Consulting Services Pvt. Ltd.
* Tecnativa
* GRAP
* Iván Todorovich

Contributors
------------

- Oihane Crucelaegui <oihanecrucelaegi@gmail.com>
- Serpent Consulting Services Pvt. Ltd. <support@serpentcs.com>
- Jay Vora <jay.vora@serpentcs.com>
- Juan Negrete <jnegrete@casasalce.com>
- Raul Martin <raul.martin@braintec-group.com>
- Aitor Bouzas <aitor.bouzas@adaptivecity.com>
- Sylvain LE GAL (https://twitter.com/legalsylvain)
- Iván Todorovich <ivan.todorovich@gmail.com>
- `Tecnativa <https://www.tecnativa.com>`__

- Jairo Llopis
- Víctor Martínez
- Eduardo Ezerouali

- Tatiana Deribina <tatiana.deribina@spritnit.fi>
- Tris Doan <tridm@trobz.com>

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

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/server-ux <https://github.com/OCA/server-ux/tree/19.0/server_action_mass_edit>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
2 changes: 2 additions & 0 deletions server_action_mass_edit/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
from . import models
from . import wizard
30 changes: 30 additions & 0 deletions server_action_mass_edit/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Copyright 2016 Serpent Consulting Services Pvt. Ltd. (support@serpentcs.com)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
"name": "Mass Editing",
"version": "19.0.1.0.0",
"author": "Serpent Consulting Services Pvt. Ltd., "
"Tecnativa, "
"GRAP, "
"Iván Todorovich, "
"Odoo Community Association (OCA)",
"category": "Tools",
"website": "https://github.com/OCA/server-ux",
"license": "AGPL-3",
"summary": "Mass Editing",
"depends": [
"base",
],
"data": [
"security/ir.model.access.csv",
"views/ir_actions_server.xml",
"wizard/mass_editing_wizard.xml",
],
"assets": {
"web.assets_backend": [
"/server_action_mass_edit/static/src/js/record.esm.js",
"/server_action_mass_edit/static/src/js/static_list.esm.js",
]
},
"demo": ["demo/mass_editing.xml"],
}
72 changes: 72 additions & 0 deletions server_action_mass_edit/demo/mass_editing.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
Copyright (C) 2020 - Iván Todorovich (https://twitter.com/ivan.todorovich)
Copyright (C) 2019 - Today: GRAP (http://www.grap.coop)
@author: Sylvain LE GAL (https://twitter.com/legalsylvain)
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-->
<odoo>
<!-- Mass Edit User -->
<record id="mass_editing_user" model="ir.actions.server">
<field name="state">mass_edit</field>
<field name="name">Mass Edit</field>
<field name="model_id" ref="base.model_res_users" />
</record>
<record id="mass_editing_user_line_1" model="ir.actions.server.mass.edit.line">
<field name="server_action_id" ref="mass_editing_user" />
<field name="field_id" ref="base.field_res_users__email" />
</record>
<record id="mass_editing_user_line_2" model="ir.actions.server.mass.edit.line">
<field name="server_action_id" ref="mass_editing_user" />
<field name="field_id" ref="base.field_res_users__phone" />
</record>
<record id="mass_editing_user_line_3" model="ir.actions.server.mass.edit.line">
<field name="server_action_id" ref="mass_editing_user" />
<field name="field_id" ref="base.field_res_users__company_id" />
</record>
<record id="mass_editing_user_line_4" model="ir.actions.server.mass.edit.line">
<field name="server_action_id" ref="mass_editing_user" />
<field name="field_id" ref="base.field_res_users__active" />
</record>
<record id="mass_editing_user_line_5" model="ir.actions.server.mass.edit.line">
<field name="server_action_id" ref="mass_editing_user" />
<field name="field_id" ref="base.field_res_users__lang" />
</record>
<record id="mass_editing_user_line_6" model="ir.actions.server.mass.edit.line">
<field name="server_action_id" ref="mass_editing_user" />
<field name="field_id" ref="base.field_res_users__partner_id" />
</record>
<record id="mass_editing_user_line_7" model="ir.actions.server.mass.edit.line">
<field name="server_action_id" ref="mass_editing_user" />
<field name="field_id" ref="base.field_res_users__signature" />
</record>
<record id="mass_editing_user_line_8" model="ir.actions.server.mass.edit.line">
<field name="server_action_id" ref="mass_editing_user" />
<field name="field_id" ref="base.field_res_users__tz" />
</record>
<record id="mass_editing_user_line_9" model="ir.actions.server.mass.edit.line">
<field name="server_action_id" ref="mass_editing_user" />
<field name="field_id" ref="base.field_res_users__image_1920" />
<field name="widget_option">image</field>
</record>
<record id="mass_editing_user_line_10" model="ir.actions.server.mass.edit.line">
<field name="server_action_id" ref="mass_editing_user" />
<field name="field_id" ref="base.field_res_users__login" />
</record>

<!-- Mass Edit Country -->
<record id="mass_editing_country" model="ir.actions.server">
<field name="state">mass_edit</field>
<field name="name">Mass Edit</field>
<field name="model_id" ref="base.model_res_country" />
</record>
<record id="mass_editing_country_line_1" model="ir.actions.server.mass.edit.line">
<field name="server_action_id" ref="mass_editing_country" />
<field name="field_id" ref="base.field_res_country__name" />
</record>

<!-- Add context actions -->
<function model="ir.actions.server" name="create_action">
<value eval="[ref('mass_editing_user'), ref('mass_editing_country')]" />
</function>
</odoo>
Loading
Loading