Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
3a1feb6
[11.0][ADD] filter_multi_user
LoisRForgeFlow Jul 8, 2020
7ff09be
Apply suggestions from code review
LoisRForgeFlow Jul 15, 2020
0927233
[11.0][IMP] filter_multi_user: add option to select groups
LoisRForgeFlow Jul 15, 2020
819c0e9
[ADD] icon.png
OCA-git-bot Jul 17, 2020
5b3b1bf
[12.0][MIG] filter_multi_user
LoisRForgeFlow Jul 17, 2020
6b7c08b
[IMP] filter_multi_user: black, isort, prettier
LoisRForgeFlow Jul 20, 2020
d8baaed
[13.0][MIG] filter_multi_user
LoisRForgeFlow Jul 20, 2020
5683334
[IMP] filter_multi_user: black, isort, prettier
jesusramoneda Feb 17, 2021
5ff196f
[14.0][MIG] filter_multi_user: Migration to 14.0
jesusramoneda Feb 17, 2021
c90f289
[UPD] Update filter_multi_user.pot
oca-travis Feb 19, 2021
b492f30
[UPD] README.rst
OCA-git-bot Feb 19, 2021
f751964
Added translation using Weblate (Spanish)
anasuarez1 Mar 16, 2021
0c3c336
Translated using Weblate (Spanish)
anasuarez1 Mar 16, 2021
a6529b0
[IMP] filter_multi_user: black, isort, prettier
mariadforgeflow Dec 10, 2021
708b50e
[MIG] filter_multi_user: Migration to 15.0
mariadforgeflow Dec 10, 2021
2b0e912
[UPD] Update filter_multi_user.pot
Feb 16, 2022
2257021
[UPD] README.rst
OCA-git-bot Feb 16, 2022
353110d
[IMP] filter_multi_user: pre-commit stuff
dsolanki-initos Mar 10, 2023
abb666b
[MIG] filter_multi_user: Migration to 16.0
dsolanki-initos Mar 10, 2023
f68e8ee
[UPD] Update filter_multi_user.pot
Nov 26, 2023
99ade2c
[BOT] post-merge updates
OCA-git-bot Nov 26, 2023
099f67f
Update translation files
weblate Nov 26, 2023
425275a
[IMP] filter_multi_user: refactor calls to deprecated functions
bosd Nov 29, 2023
994975d
[BOT] post-merge updates
OCA-git-bot Nov 30, 2023
b7dbce0
[UPD] Update filter_multi_user.pot
Dec 9, 2023
98f50fa
Update translation files
weblate Dec 9, 2023
64bee81
Translated using Weblate (Spanish)
Ivorra78 Dec 9, 2023
f010094
Added translation using Weblate (Italian)
mymage Dec 31, 2023
577fefe
Translated using Weblate (Italian)
mymage Dec 31, 2023
1918712
Added translation using Weblate (Turkish)
milleniumkid Feb 20, 2025
317a840
Translated using Weblate (Turkish)
milleniumkid Feb 20, 2025
abafd8a
[IMP] filter_multi_user: pre-commit auto fixes
ArnauCForgeFlow Aug 26, 2025
671a048
[MIG] filter_multi_user: Migration to 18.0
ArnauCForgeFlow Aug 26, 2025
59eee80
[UPD] Update filter_multi_user.pot
Aug 27, 2025
ad935d4
[BOT] post-merge updates
OCA-git-bot Aug 27, 2025
52fef7b
[UPD] Update filter_multi_user.pot
Nov 17, 2025
532f6bc
[MIG] filter_multi_user: Migration to 19.0
samirGuesmi Jun 26, 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
102 changes: 102 additions & 0 deletions filter_multi_user/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

=================
Filter Multi User
=================

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

.. |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/filter_multi_user
: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-filter_multi_user
: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|

Allows to share user-defined filters among several users.

**Table of contents**

.. contents::
:local:

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

To share a filter among several users you need to:

1. Go to *Settings > Technical > User Interface > User-defined Filters*.
2. Edit a filter and fill the fields *Available for users* and/or
*Available for groups* with the desired users/groups.
3. The matched users will find the filter available as any other custom
filter under favorites in the search panel. However only the owner
will be able to delete the filter.

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:%20filter_multi_user%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
-------

* ForgeFlow

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

- Lois Rilo <lois.rilo@forgeflow.com>
- Dhara Solanki <dhara.solanki@initos.com>
- Samir GUESMI <samir.guesmi@acsone.eu>

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.

.. |maintainer-LoisRForgeFlow| image:: https://github.com/LoisRForgeFlow.png?size=40px
:target: https://github.com/LoisRForgeFlow
:alt: LoisRForgeFlow

Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-LoisRForgeFlow|

This module is part of the `OCA/server-ux <https://github.com/OCA/server-ux/tree/19.0/filter_multi_user>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
1 change: 1 addition & 0 deletions filter_multi_user/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
16 changes: 16 additions & 0 deletions filter_multi_user/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Copyright 2020 ForgeFlow S.L.
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
{
"name": "Filter Multi User",
"summary": "Allows to share user-defined filters filters among several users.",
"version": "19.0.1.0.0",
"development_status": "Beta",
"maintainers": ["LoisRForgeFlow"],
"category": "Tools",
"website": "https://github.com/OCA/server-ux",
"author": "ForgeFlow, Odoo Community Association (OCA)",
"license": "AGPL-3",
"installable": True,
"depends": ["base"],
"data": ["views/ir_filters_view.xml"],
}
55 changes: 55 additions & 0 deletions filter_multi_user/i18n/es.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * filter_multi_user
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2023-12-09 22:35+0000\n"
"Last-Translator: Ivorra78 <informatica@totmaterial.es>\n"
"Language-Team: none\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"

#. module: filter_multi_user
#: model:ir.model.fields,field_description:filter_multi_user.field_ir_filters__manual_user_ids
#: model_terms:ir.ui.view,arch_db:filter_multi_user.ir_filters_view_tree
msgid "Available for Users"
msgstr "Disponible para Usuarios"

#. module: filter_multi_user
#: model:ir.model,name:filter_multi_user.model_ir_filters
msgid "Filters"
msgstr "Filtros"

#. module: filter_multi_user
#: model_terms:ir.ui.view,arch_db:filter_multi_user.ir_filters_view_form
msgid "Owner"
msgstr "Propietario"

#. module: filter_multi_user
#: model:ir.model.fields,field_description:filter_multi_user.field_ir_filters__group_ids
msgid "User Groups"
msgstr "Grupos de Usuarios"

#. module: filter_multi_user
#: model:ir.model.fields,field_description:filter_multi_user.field_ir_filters__user_ids
msgid "Users"
msgstr "Usuarios"

#~ msgid "Available for Groups"
#~ msgstr "Disponible para Grupos"

#~ msgid "Display Name"
#~ msgstr "Nombre mostrado"

#~ msgid "ID"
#~ msgstr "ID"

#~ msgid "Last Modified on"
#~ msgstr "Última modificación el"
40 changes: 40 additions & 0 deletions filter_multi_user/i18n/filter_multi_user.pot
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * filter_multi_user
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"

#. module: filter_multi_user
#: model:ir.model.fields,field_description:filter_multi_user.field_ir_filters__manual_user_ids
#: model_terms:ir.ui.view,arch_db:filter_multi_user.ir_filters_view_tree
msgid "Available for Users"
msgstr ""

#. module: filter_multi_user
#: model:ir.model,name:filter_multi_user.model_ir_filters
msgid "Filters"
msgstr ""

#. module: filter_multi_user
#: model_terms:ir.ui.view,arch_db:filter_multi_user.ir_filters_view_form
msgid "Owner"
msgstr ""

#. module: filter_multi_user
#: model:ir.model.fields,field_description:filter_multi_user.field_ir_filters__group_ids
msgid "User Groups"
msgstr ""

#. module: filter_multi_user
#: model:ir.model.fields,field_description:filter_multi_user.field_ir_filters__user_ids
msgid "Users"
msgstr ""
43 changes: 43 additions & 0 deletions filter_multi_user/i18n/it.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * filter_multi_user
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2023-12-31 19:35+0000\n"
"Last-Translator: mymage <stefano.consolaro@mymage.it>\n"
"Language-Team: none\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"

#. module: filter_multi_user
#: model:ir.model.fields,field_description:filter_multi_user.field_ir_filters__manual_user_ids
#: model_terms:ir.ui.view,arch_db:filter_multi_user.ir_filters_view_tree
msgid "Available for Users"
msgstr "Disponibile per gli utenti"

#. module: filter_multi_user
#: model:ir.model,name:filter_multi_user.model_ir_filters
msgid "Filters"
msgstr "Filtri"

#. module: filter_multi_user
#: model_terms:ir.ui.view,arch_db:filter_multi_user.ir_filters_view_form
msgid "Owner"
msgstr "Proprietario"

#. module: filter_multi_user
#: model:ir.model.fields,field_description:filter_multi_user.field_ir_filters__group_ids
msgid "User Groups"
msgstr "Gruppi utente"

#. module: filter_multi_user
#: model:ir.model.fields,field_description:filter_multi_user.field_ir_filters__user_ids
msgid "Users"
msgstr "Utenti"
43 changes: 43 additions & 0 deletions filter_multi_user/i18n/tr.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * filter_multi_user
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-02-20 11:06+0000\n"
"Last-Translator: İsmail Çağan Yılmaz <ismail.cagan.yilmaz@gmail.com>\n"
"Language-Team: none\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.6.2\n"

#. module: filter_multi_user
#: model:ir.model.fields,field_description:filter_multi_user.field_ir_filters__manual_user_ids
#: model_terms:ir.ui.view,arch_db:filter_multi_user.ir_filters_view_tree
msgid "Available for Users"
msgstr "Kullanıcılara Açık"

#. module: filter_multi_user
#: model:ir.model,name:filter_multi_user.model_ir_filters
msgid "Filters"
msgstr "Filtreler"

#. module: filter_multi_user
#: model_terms:ir.ui.view,arch_db:filter_multi_user.ir_filters_view_form
msgid "Owner"
msgstr "Sahibi"

#. module: filter_multi_user
#: model:ir.model.fields,field_description:filter_multi_user.field_ir_filters__group_ids
msgid "User Groups"
msgstr "Kullanıcı Grupları"

#. module: filter_multi_user
#: model:ir.model.fields,field_description:filter_multi_user.field_ir_filters__user_ids
msgid "Users"
msgstr "Kullanıcılar"
1 change: 1 addition & 0 deletions filter_multi_user/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import ir_filters
37 changes: 37 additions & 0 deletions filter_multi_user/models/ir_filters.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Copyright 2020 ForgeFlow S.L.
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from odoo import api, fields, models


class IrFilters(models.Model):
_inherit = "ir.filters"

# user_ids is now a native Many2many on ir.filters in v19.
# We compute its value from manual_user_ids + group_ids.users via constrains.

manual_user_ids = fields.Many2many(
comodel_name="res.users",
string="Available for Users",
relation="ir_filters_res_users_manual_rel",
)
group_ids = fields.Many2many(
comodel_name="res.groups",
string="Available for Groups",
)

@api.model_create_multi
def create(self, vals_list):
records = super().create(vals_list)
records._sync_user_ids()
return records

def write(self, vals):
result = super().write(vals)
if "manual_user_ids" in vals or "group_ids" in vals:
self._sync_user_ids()
return result

def _sync_user_ids(self):
for rec in self:
rec.user_ids = rec.manual_user_ids | rec.group_ids.user_ids
3 changes: 3 additions & 0 deletions filter_multi_user/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"
9 changes: 9 additions & 0 deletions filter_multi_user/readme/CONFIGURE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
To share a filter among several users you need to:

1. Go to *Settings \> Technical \> User Interface \> User-defined
Filters*.
2. Edit a filter and fill the fields *Available for users* and/or
*Available for groups* with the desired users/groups.
3. The matched users will find the filter available as any other custom
filter under favorites in the search panel. However only the owner
will be able to delete the filter.
3 changes: 3 additions & 0 deletions filter_multi_user/readme/CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- Lois Rilo \<lois.rilo@forgeflow.com\>
- Dhara Solanki \<dhara.solanki@initos.com\>
- Samir GUESMI \<samir.guesmi@acsone.eu\>
1 change: 1 addition & 0 deletions filter_multi_user/readme/DESCRIPTION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Allows to share user-defined filters among several users.
Binary file added filter_multi_user/static/description/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading