diff --git a/README.md b/README.md
index c7d5aeb62..2839c15a4 100644
--- a/README.md
+++ b/README.md
@@ -23,14 +23,16 @@ addon | version | maintainers | summary
--- | --- | --- | ---
[base_external_dbsource](base_external_dbsource/) | 16.0.1.0.1 | | External Database Sources
[base_external_dbsource_mssql](base_external_dbsource_mssql/) | 16.0.1.0.1 | [![anddago78](https://github.com/anddago78.png?size=30px)](https://github.com/anddago78) | External Database Source - MSSQL
-[base_external_dbsource_sqlite](base_external_dbsource_sqlite/) | 16.0.1.0.1 | [![anddago78](https://github.com/anddago78.png?size=30px)](https://github.com/anddago78) | External Database Source - SQLite
+[base_external_dbsource_sqlite](base_external_dbsource_sqlite/) | 16.0.1.0.2 | [![anddago78](https://github.com/anddago78.png?size=30px)](https://github.com/anddago78) | External Database Source - SQLite
[base_external_system](base_external_system/) | 16.0.1.0.0 | | Data models allowing for connection to external systems.
[base_global_discount](base_global_discount/) | 16.0.1.0.0 | | Base Global Discount
+[base_group_backend](base_group_backend/) | 16.0.1.0.0 | [![FranzPoize](https://github.com/FranzPoize.png?size=30px)](https://github.com/FranzPoize) [![bealdav](https://github.com/bealdav.png?size=30px)](https://github.com/bealdav) | Group backend
[base_import_match](base_import_match/) | 16.0.1.0.0 | | Try to avoid duplicates before importing
[base_portal_type](base_portal_type/) | 16.0.1.0.0 | [![hbrunn](https://github.com/hbrunn.png?size=30px)](https://github.com/hbrunn) | Base module to allow different types of portals
-[base_user_role](base_user_role/) | 16.0.1.2.2 | [![sebalix](https://github.com/sebalix.png?size=30px)](https://github.com/sebalix) [![jcdrubay](https://github.com/jcdrubay.png?size=30px)](https://github.com/jcdrubay) [![novawish](https://github.com/novawish.png?size=30px)](https://github.com/novawish) | User roles
+[base_user_role](base_user_role/) | 16.0.1.3.0 | [![sebalix](https://github.com/sebalix.png?size=30px)](https://github.com/sebalix) [![jcdrubay](https://github.com/jcdrubay.png?size=30px)](https://github.com/jcdrubay) [![novawish](https://github.com/novawish.png?size=30px)](https://github.com/novawish) | User roles
[base_user_role_company](base_user_role_company/) | 16.0.1.1.0 | | User roles by company
[base_user_role_history](base_user_role_history/) | 16.0.1.0.0 | [![ThomasBinsfeld](https://github.com/ThomasBinsfeld.png?size=30px)](https://github.com/ThomasBinsfeld) | This module allows to track the changes on users roles.
+[server_action_sort](server_action_sort/) | 16.0.1.0.0 | [![legalsylvain](https://github.com/legalsylvain.png?size=30px)](https://github.com/legalsylvain) | Sort any lines of any models by any criterias
[//]: # (end addons)
diff --git a/base_external_dbsource_sqlite/README.rst b/base_external_dbsource_sqlite/README.rst
index 328e5f43f..e3e503f70 100644
--- a/base_external_dbsource_sqlite/README.rst
+++ b/base_external_dbsource_sqlite/README.rst
@@ -7,7 +7,7 @@ External Database Source - SQLite
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !! source digest: sha256:dcf54306e6d3c761f7e679fafdfc561041b62202ae0e83a47aad643383d975b6
+ !! source digest: sha256:be42980ba34bb6865c363361ab0af4b4c54884df329f861dd1d906f1723643ab
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
diff --git a/base_external_dbsource_sqlite/__manifest__.py b/base_external_dbsource_sqlite/__manifest__.py
index 0211c5990..3bfdaa069 100644
--- a/base_external_dbsource_sqlite/__manifest__.py
+++ b/base_external_dbsource_sqlite/__manifest__.py
@@ -3,7 +3,7 @@
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
{
"name": "External Database Source - SQLite",
- "version": "16.0.1.0.1",
+ "version": "16.0.1.0.2",
"category": "Tools",
"author": "Daniel Reis, LasLabs, Odoo Community Association (OCA)",
"maintainers": ["anddago78"],
diff --git a/base_external_dbsource_sqlite/models/base_external_dbsource.py b/base_external_dbsource_sqlite/models/base_external_dbsource.py
index 37b886fc3..fc6ba2f1f 100644
--- a/base_external_dbsource_sqlite/models/base_external_dbsource.py
+++ b/base_external_dbsource_sqlite/models/base_external_dbsource.py
@@ -38,5 +38,7 @@ def _execute_sqlalchemy(self, sqlquery, sqlparams, metadata):
cur = connection.execute(sqlquery, sqlparams)
if metadata:
cols = list(cur.keys())
- rows = [r for r in cur]
+ # If the query doesn't return rows, trying to get them anyway
+ # will raise an exception `sqlalchemy.exc.ResourceClosedError`
+ rows = [r for r in cur] if cur.returns_rows else []
return rows, cols
diff --git a/base_external_dbsource_sqlite/static/description/index.html b/base_external_dbsource_sqlite/static/description/index.html
index 17ca128eb..2a7de1768 100644
--- a/base_external_dbsource_sqlite/static/description/index.html
+++ b/base_external_dbsource_sqlite/static/description/index.html
@@ -1,4 +1,3 @@
-
@@ -367,7 +366,7 @@ External Database Source - SQLite
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-!! source digest: sha256:dcf54306e6d3c761f7e679fafdfc561041b62202ae0e83a47aad643383d975b6
+!! source digest: sha256:be42980ba34bb6865c363361ab0af4b4c54884df329f861dd1d906f1723643ab
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
This module extends base_external_dbsource, allowing you to connect to
diff --git a/base_group_backend/README.rst b/base_group_backend/README.rst
new file mode 100644
index 000000000..71120920c
--- /dev/null
+++ b/base_group_backend/README.rst
@@ -0,0 +1,181 @@
+=============
+Group backend
+=============
+
+..
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! This file is generated by oca-gen-addon-readme !!
+ !! changes will be overwritten. !!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! source digest: sha256:879007f368a0b75ad5da7f5d3e3d1d6ae386da26d27df7fc4dec1a6865cf0233
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png
+ :target: https://odoo-community.org/page/development-status
+ :alt: Alpha
+.. |badge2| image:: https://img.shields.io/badge/licence-LGPL--3-blue.png
+ :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
+ :alt: License: LGPL-3
+.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--backend-lightgray.png?logo=github
+ :target: https://github.com/OCA/server-backend/tree/16.0/base_group_backend
+ :alt: OCA/server-backend
+.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
+ :target: https://translation.odoo-community.org/projects/server-backend-16-0/server-backend-16-0-base_group_backend
+ :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-backend&target_branch=16.0
+ :alt: Try me on Runboat
+
+|badge1| |badge2| |badge3| |badge4| |badge5|
+
+This module was written to extend the standard functionality regarding users
+and groups management by adding a new `Backend user` group that only gives access
+to odoo backend (`/web`):
+
+* minimal default access:
+ * users and partners (this is necessary to access your own data)
+ * mail activity, notification and channel
+ * presence
+* minimal default menu
+ * notification
+ * activities
+* minimal default access rules
+
+The problem with the `Internal user` is when you want to gives access to the
+backend to a really thin part of your business to some users, it's quite hard
+to properly maintain those roles over the project life, a lot of models use
+that group (`base.group_user`) by default which makes hard to maintains.
+
+So that helps creating well-defined user groups with more controls.
+
+This modules does 3 things:
+* It hijack the has_group method of res.users by returning True for group_backend users when the requested group is group_user (The need for this needs to be investigated)
+* It sets the res_users.share to False for group_backend users. This allows those users to access the backend.
+* It sets the bare minimum permission in the ir.model.access.csv to display the backend
+
+We suggest to use this module with its compagnon `base_user_role`
+
+
+Here is an example where a backend ui user can only access and use the dummy app. No other application are available to this user. You may define your own application instead of the dummy one.
+
+.. figure:: https://raw.githubusercontent.com/OCA/server-backend/16.0/base_group_backend/static/description/dummy_app.png
+ :alt: Dummy app for demo
+
+
+
+Limitations
+~~~~~~~~~~~
+
+At the time of writing, Odoo uses `res.users.share == False` to give the
+backend access.
+However to be able to access the backend without any errors some basic rights are necessary.
+This module change the way `res.users.share` is computed to allow `group_backend users` to use the backend.
+
+This avoids to write a lot of overwrite in different controllers from
+different modules ('portal', 'web', 'base', 'website') with hard coded statements
+that check if user is part of the `base.group_user` or `share == False` group.
+
+.. warning::
+
+ Using this module and grant a user with `group_backend`'s group is
+ equivalent to grant `group_user`'s group everywhere `has_group`
+ has been used.
+
+.. IMPORTANT::
+ This is an alpha version, the data model and design can change at any time without warning.
+ Only for development or testing purpose, do not use in production.
+ `More details on development status `_
+
+**Table of contents**
+
+.. contents::
+ :local:
+
+Configuration
+=============
+
+To allow `group_backend` to interact with a model you can either add access rules to the group
+or you can add `implied_ids` to `group_backend`.
+
+.. note::
+
+ Be aware users can only belong to one group from the user type category
+ (`base.module_category_user_type`). So your other groups can't inherit both
+ internal users and backend users.
+
+Usage
+=====
+
+To use this module, you need to:
+
+#. Go to Configuration / Users / Users, choose a user and set the user type.
+
+You get a users that is only able to access to the Odoo backend which you
+can attach other groups that not implies other kind of users (`portal`,
+`internal users`)
+
+.. figure:: https://raw.githubusercontent.com/OCA/server-backend/16.0/base_group_backend/static/description/backend_ui.png
+ :alt: Backend UI user
+
+Known issues / Roadmap
+======================
+
+Current module depends on `base_install_request` instead of `base`.
+
+We don't need `base_install_request` auto install module but we must override it to set a security group on `App` menu.
+
+This dependency should be remove if possible in future versions.
+
+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 to smash it by providing a detailed and welcomed
+`feedback `_.
+
+Do not contact contributors directly about support or help with technical issues.
+
+Credits
+=======
+
+Authors
+~~~~~~~
+
+* Pierre Verkest
+
+Contributors
+~~~~~~~~~~~~
+
+* Pierre Verkest
+* François Poizat
+
+Do not contact contributors directly about support or help with technical issues.
+
+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-FranzPoize| image:: https://github.com/FranzPoize.png?size=40px
+ :target: https://github.com/FranzPoize
+ :alt: FranzPoize
+.. |maintainer-bealdav| image:: https://github.com/bealdav.png?size=40px
+ :target: https://github.com/bealdav
+ :alt: bealdav
+
+Current `maintainers `__:
+
+|maintainer-FranzPoize| |maintainer-bealdav|
+
+This module is part of the `OCA/server-backend `_ project on GitHub.
+
+You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/base_group_backend/__init__.py b/base_group_backend/__init__.py
new file mode 100644
index 000000000..fc95f8e72
--- /dev/null
+++ b/base_group_backend/__init__.py
@@ -0,0 +1,2 @@
+from . import models
+from . import demo
diff --git a/base_group_backend/__manifest__.py b/base_group_backend/__manifest__.py
new file mode 100644
index 000000000..6b4af75f2
--- /dev/null
+++ b/base_group_backend/__manifest__.py
@@ -0,0 +1,30 @@
+# Copyright 2021 Pierre Verkest
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+{
+ "name": "Group backend",
+ "version": "16.0.1.0.0",
+ "development_status": "Alpha",
+ "category": "Tools",
+ "author": "Pierre Verkest, Odoo Community Association (OCA)",
+ "license": "LGPL-3",
+ "website": "https://github.com/OCA/server-backend",
+ "depends": [
+ "base",
+ "base_install_request", # weird module, we need to survive with it
+ "mail",
+ ],
+ "maintainers": ["FranzPoize", "bealdav"],
+ "demo": [
+ "demo/test-model.xml",
+ "demo/ir.model.access.csv",
+ "demo/backend_dummy_model.xml",
+ "demo/res_partners.xml",
+ "demo/res_users.xml",
+ ],
+ "data": [
+ "data/res_groups.xml",
+ "data/ir_ui_menu.xml",
+ "security/ir.model.access.csv",
+ ],
+ "installable": True,
+}
diff --git a/base_group_backend/data/ir_ui_menu.xml b/base_group_backend/data/ir_ui_menu.xml
new file mode 100644
index 000000000..a8a80e106
--- /dev/null
+++ b/base_group_backend/data/ir_ui_menu.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/base_group_backend/data/res_groups.xml b/base_group_backend/data/res_groups.xml
new file mode 100644
index 000000000..db3df0068
--- /dev/null
+++ b/base_group_backend/data/res_groups.xml
@@ -0,0 +1,43 @@
+
+
+
+ Backend user
+
+
+ This group is used to gives user backend access.
+
+ While users in `base.group_user` gets a lot of default access
+ which makes hard to define properly records/rules/menu access.
+
+ So for maintainability you shouldn't linked any access right, rules,
+ menu, and so on to this group directly.
+
+ The only intent of this groups is to be able to get a session
+ to Odoo backend (`/web`).
+
+
+
+
+ Backend UI user
+
+
+ This group is used to gives user basic ui access.
+
+
+
+
+
diff --git a/base_group_backend/demo/__init__.py b/base_group_backend/demo/__init__.py
new file mode 100644
index 000000000..87682b5ef
--- /dev/null
+++ b/base_group_backend/demo/__init__.py
@@ -0,0 +1,4 @@
+from odoo.tools import config
+
+if not config["without_demo"]:
+ from . import backend_dummy_model
diff --git a/base_group_backend/demo/backend_dummy_model.py b/base_group_backend/demo/backend_dummy_model.py
new file mode 100644
index 000000000..649f22418
--- /dev/null
+++ b/base_group_backend/demo/backend_dummy_model.py
@@ -0,0 +1,15 @@
+from odoo import fields, models
+
+
+class BackendDummyModel(models.Model):
+ _name = "backend.dummy.model"
+ _description = "Backend Dummy Model demo"
+
+ my_value = fields.Char(name="Value", required=True)
+ my_other_value = fields.Char(name="Other value", required=True)
+ date_start = fields.Datetime(
+ name="Date start", required=True, default=fields.Datetime.now
+ )
+ date_stop = fields.Datetime(
+ name="Date stop", required=True, default=fields.Datetime.now
+ )
diff --git a/base_group_backend/demo/backend_dummy_model.xml b/base_group_backend/demo/backend_dummy_model.xml
new file mode 100644
index 000000000..ade0d44c0
--- /dev/null
+++ b/base_group_backend/demo/backend_dummy_model.xml
@@ -0,0 +1,44 @@
+
+
+
+ Backend dummy tree view
+ backend.dummy.model
+
+
+
+
+
+
+
+
+
+ Dummies
+ ir.actions.act_window
+ backend.dummy.model
+ tree,form,kanban,calendar,pivot,graph,activity
+
+
+
+
+
+
+
+
diff --git a/base_group_backend/demo/ir.model.access.csv b/base_group_backend/demo/ir.model.access.csv
new file mode 100644
index 000000000..6c353bcb6
--- /dev/null
+++ b/base_group_backend/demo/ir.model.access.csv
@@ -0,0 +1,3 @@
+"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
+"backend_dummy_models","backend dummy.model","model_backend_dummy_model",group_backend_ui_users,1,0,0,0
+"backend_dummy_models_user_grp","backend dummy.model user grp","model_backend_dummy_model",base.group_user,1,0,0,0
diff --git a/base_group_backend/demo/res_partners.xml b/base_group_backend/demo/res_partners.xml
new file mode 100644
index 000000000..32b455809
--- /dev/null
+++ b/base_group_backend/demo/res_partners.xml
@@ -0,0 +1,12 @@
+
+
+
+ Demo partner backend
+
+
+ Demo partner backend 1
+
+
+ Demo partner backend 2
+
+
diff --git a/base_group_backend/demo/res_users.xml b/base_group_backend/demo/res_users.xml
new file mode 100644
index 000000000..37baa44a6
--- /dev/null
+++ b/base_group_backend/demo/res_users.xml
@@ -0,0 +1,21 @@
+
+
+
+ demo backend user
+
+
+
+
+ demo backend user 1
+
+
+
+
+ demo backend user 2
+
+
+
+
diff --git a/base_group_backend/demo/test-model.xml b/base_group_backend/demo/test-model.xml
new file mode 100644
index 000000000..3ced409a7
--- /dev/null
+++ b/base_group_backend/demo/test-model.xml
@@ -0,0 +1,7 @@
+
+
+
+ hello
+ hello
+
+
diff --git a/base_group_backend/i18n/base_group_backend.pot b/base_group_backend/i18n/base_group_backend.pot
new file mode 100644
index 000000000..ecffaa6ef
--- /dev/null
+++ b/base_group_backend/i18n/base_group_backend.pot
@@ -0,0 +1,130 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * base_group_backend
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 16.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: base_group_backend
+#: model:res.groups,comment:base_group_backend.base_group_backend
+msgid ""
+"\n"
+" This group is used to gives user backend access.\n"
+"\n"
+" While users in `base.group_user` gets a lot of default access\n"
+" which makes hard to define properly records/rules/menu access.\n"
+"\n"
+" So for maintainability you shouldn't linked any access right, rules,\n"
+" menu, and so on to this group directly.\n"
+"\n"
+" The only intent of this groups is to be able to get a session\n"
+" to Odoo backend (`/web`).\n"
+" "
+msgstr ""
+
+#. module: base_group_backend
+#: model:res.groups,comment:base_group_backend.group_backend_ui_users
+msgid ""
+"\n"
+" This group is used to gives user basic ui access.\n"
+" "
+msgstr ""
+
+#. module: base_group_backend
+#: model:ir.model,name:base_group_backend.model_backend_dummy_model
+msgid "Backend Dummy Model demo"
+msgstr ""
+
+#. module: base_group_backend
+#: model:res.groups,name:base_group_backend.group_backend_ui_users
+msgid "Backend UI user"
+msgstr ""
+
+#. module: base_group_backend
+#: model:res.groups,name:base_group_backend.base_group_backend
+msgid "Backend user"
+msgstr ""
+
+#. module: base_group_backend
+#: model:ir.model.fields,field_description:base_group_backend.field_backend_dummy_model__create_uid
+msgid "Created by"
+msgstr ""
+
+#. module: base_group_backend
+#: model:ir.model.fields,field_description:base_group_backend.field_backend_dummy_model__create_date
+msgid "Created on"
+msgstr ""
+
+#. module: base_group_backend
+#: model:ir.model.fields,field_description:base_group_backend.field_backend_dummy_model__date_start
+msgid "Date Start"
+msgstr ""
+
+#. module: base_group_backend
+#: model:ir.model.fields,field_description:base_group_backend.field_backend_dummy_model__date_stop
+msgid "Date Stop"
+msgstr ""
+
+#. module: base_group_backend
+#: model:ir.model.fields,field_description:base_group_backend.field_backend_dummy_model__display_name
+msgid "Display Name"
+msgstr ""
+
+#. module: base_group_backend
+#: model:ir.actions.act_window,name:base_group_backend.action_dummy_list
+msgid "Dummies"
+msgstr ""
+
+#. module: base_group_backend
+#: model:ir.ui.menu,name:base_group_backend.menu_dummy_menu
+#: model:ir.ui.menu,name:base_group_backend.menu_dummy_root
+msgid "Dummy"
+msgstr ""
+
+#. module: base_group_backend
+#: model:ir.ui.menu,name:base_group_backend.menu_dummy_list
+msgid "Dummy list"
+msgstr ""
+
+#. module: base_group_backend
+#: model:ir.model.fields,field_description:base_group_backend.field_backend_dummy_model__id
+msgid "ID"
+msgstr ""
+
+#. module: base_group_backend
+#: model:ir.model.fields,field_description:base_group_backend.field_backend_dummy_model____last_update
+msgid "Last Modified on"
+msgstr ""
+
+#. module: base_group_backend
+#: model:ir.model.fields,field_description:base_group_backend.field_backend_dummy_model__write_uid
+msgid "Last Updated by"
+msgstr ""
+
+#. module: base_group_backend
+#: model:ir.model.fields,field_description:base_group_backend.field_backend_dummy_model__write_date
+msgid "Last Updated on"
+msgstr ""
+
+#. module: base_group_backend
+#: model:ir.model.fields,field_description:base_group_backend.field_backend_dummy_model__my_other_value
+msgid "My Other Value"
+msgstr ""
+
+#. module: base_group_backend
+#: model:ir.model.fields,field_description:base_group_backend.field_backend_dummy_model__my_value
+msgid "My Value"
+msgstr ""
+
+#. module: base_group_backend
+#: model:ir.model,name:base_group_backend.model_res_users
+msgid "User"
+msgstr ""
diff --git a/base_group_backend/models/__init__.py b/base_group_backend/models/__init__.py
new file mode 100644
index 000000000..883516533
--- /dev/null
+++ b/base_group_backend/models/__init__.py
@@ -0,0 +1 @@
+from . import res_users
diff --git a/base_group_backend/models/res_users.py b/base_group_backend/models/res_users.py
new file mode 100644
index 000000000..87a6c2484
--- /dev/null
+++ b/base_group_backend/models/res_users.py
@@ -0,0 +1,50 @@
+import logging
+
+from odoo import api, models
+
+_logger = logging.getLogger(__name__)
+
+
+class Users(models.Model):
+ _inherit = "res.users"
+
+ @api.model
+ def has_group(self, group_ext_id):
+ """While ensuring a user is part of `base.group_user` this code will
+ try if user is in the `base_group_backend.group_backend` group to let access
+ to the odoo backend.
+
+ This code avoid to overwrite a lot of places in controllers from
+ different modules ('portal', 'web', 'base') with hardcoded statement
+ that check if user is part of `base.group_user` group.
+
+ As far `base.group_user` have a lot of default permission this
+ makes hard to maintain proper access right according your business.
+ """
+ res = super().has_group(group_ext_id)
+ if not res and (group_ext_id == "base.group_user"):
+ has_base_group_backend = super().has_group(
+ "base_group_backend.base_group_backend"
+ ) or super().has_group("base_group_backend.group_backend_ui_users")
+ if has_base_group_backend:
+ _logger.warning(
+ "Forcing has_group to return True"
+ + " for group_backend and base_group_backend_ui_users"
+ )
+ return has_base_group_backend
+ return res
+
+ @api.depends("groups_id")
+ def _compute_share(self):
+ res = super()._compute_share()
+ backend_user_group_id = self.env["ir.model.data"]._xmlid_to_res_id(
+ "base_group_backend.base_group_backend"
+ )
+ backend_ui_user_group_id = self.env["ir.model.data"]._xmlid_to_res_id(
+ "base_group_backend.group_backend_ui_users"
+ )
+ internal_users = self.filtered_domain(
+ [("groups_id", "in", [backend_user_group_id, backend_ui_user_group_id])]
+ )
+ internal_users.share = False
+ return res
diff --git a/base_group_backend/readme/CONFIGURE.rst b/base_group_backend/readme/CONFIGURE.rst
new file mode 100644
index 000000000..e480b4f2c
--- /dev/null
+++ b/base_group_backend/readme/CONFIGURE.rst
@@ -0,0 +1,8 @@
+To allow `group_backend` to interact with a model you can either add access rules to the group
+or you can add `implied_ids` to `group_backend`.
+
+.. note::
+
+ Be aware users can only belong to one group from the user type category
+ (`base.module_category_user_type`). So your other groups can't inherit both
+ internal users and backend users.
diff --git a/base_group_backend/readme/CONTRIBUTORS.rst b/base_group_backend/readme/CONTRIBUTORS.rst
new file mode 100644
index 000000000..f8032a3b4
--- /dev/null
+++ b/base_group_backend/readme/CONTRIBUTORS.rst
@@ -0,0 +1,4 @@
+* Pierre Verkest
+* François Poizat
+
+Do not contact contributors directly about support or help with technical issues.
diff --git a/base_group_backend/readme/DESCRIPTION.rst b/base_group_backend/readme/DESCRIPTION.rst
new file mode 100644
index 000000000..831690200
--- /dev/null
+++ b/base_group_backend/readme/DESCRIPTION.rst
@@ -0,0 +1,52 @@
+This module was written to extend the standard functionality regarding users
+and groups management by adding a new `Backend user` group that only gives access
+to odoo backend (`/web`):
+
+* minimal default access:
+ * users and partners (this is necessary to access your own data)
+ * mail activity, notification and channel
+ * presence
+* minimal default menu
+ * notification
+ * activities
+* minimal default access rules
+
+The problem with the `Internal user` is when you want to gives access to the
+backend to a really thin part of your business to some users, it's quite hard
+to properly maintain those roles over the project life, a lot of models use
+that group (`base.group_user`) by default which makes hard to maintains.
+
+So that helps creating well-defined user groups with more controls.
+
+This modules does 3 things:
+* It hijack the has_group method of res.users by returning True for group_backend users when the requested group is group_user (The need for this needs to be investigated)
+* It sets the res_users.share to False for group_backend users. This allows those users to access the backend.
+* It sets the bare minimum permission in the ir.model.access.csv to display the backend
+
+We suggest to use this module with its compagnon `base_user_role`
+
+
+Here is an example where a backend ui user can only access and use the dummy app. No other application are available to this user. You may define your own application instead of the dummy one.
+
+.. figure:: ../static/description/dummy_app.png
+ :alt: Dummy app for demo
+
+
+
+Limitations
+~~~~~~~~~~~
+
+At the time of writing, Odoo uses `res.users.share == False` to give the
+backend access.
+However to be able to access the backend without any errors some basic rights are necessary.
+This module change the way `res.users.share` is computed to allow `group_backend users` to use the backend.
+
+This avoids to write a lot of overwrite in different controllers from
+different modules ('portal', 'web', 'base', 'website') with hard coded statements
+that check if user is part of the `base.group_user` or `share == False` group.
+
+.. warning::
+
+ Using this module and grant a user with `group_backend`'s group is
+ equivalent to grant `group_user`'s group everywhere `has_group`
+ has been used.
diff --git a/base_group_backend/readme/ROADMAP.rst b/base_group_backend/readme/ROADMAP.rst
new file mode 100644
index 000000000..5190afe11
--- /dev/null
+++ b/base_group_backend/readme/ROADMAP.rst
@@ -0,0 +1,5 @@
+Current module depends on `base_install_request` instead of `base`.
+
+We don't need `base_install_request` auto install module but we must override it to set a security group on `App` menu.
+
+This dependency should be remove if possible in future versions.
diff --git a/base_group_backend/readme/USAGE.rst b/base_group_backend/readme/USAGE.rst
new file mode 100644
index 000000000..eab476cef
--- /dev/null
+++ b/base_group_backend/readme/USAGE.rst
@@ -0,0 +1,10 @@
+To use this module, you need to:
+
+#. Go to Configuration / Users / Users, choose a user and set the user type.
+
+You get a users that is only able to access to the Odoo backend which you
+can attach other groups that not implies other kind of users (`portal`,
+`internal users`)
+
+.. figure:: ../static/description/backend_ui.png
+ :alt: Backend UI user
diff --git a/base_group_backend/security/ir.model.access.csv b/base_group_backend/security/ir.model.access.csv
new file mode 100644
index 000000000..1746a2398
--- /dev/null
+++ b/base_group_backend/security/ir.model.access.csv
@@ -0,0 +1,33 @@
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+backend_ui_users_ir_default,backend_ui_users_ir_default,base.model_ir_default,group_backend_ui_users,1,1,1,1
+backend_ui_users_ir_filters,backend_ui_users_ir_filters,base.model_ir_filters,group_backend_ui_users,1,1,1,1
+backend_ui_users_ir_model,backend_ui_users_ir_model,base.model_ir_model,group_backend_ui_users,1,0,0,0
+backend_ui_users_ir_model_fields,backend_ui_users_ir_model_fields,base.model_ir_model_fields,group_backend_ui_users,1,0,0,0
+backend_ui_users_ir_model_data,backend_ui_users_ir_model_data,base.model_ir_model_data,group_backend_ui_users,1,0,1,0
+backend_ui_users_ir_model_fields_selection,backend_ui_users_ir_model_fields_selection,base.model_ir_model_fields_selection,group_backend_ui_users,1,0,0,0
+backend_ui_users_ir_sequence,backend_ui_users_ir_sequence,base.model_ir_sequence,group_backend_ui_users,1,0,0,0
+backend_ui_users_ir_sequence_date_range,backend_ui_users_ir_sequence_date_range,base.model_ir_sequence_date_range,group_backend_ui_users,1,0,0,0
+backend_ui_users_ir_ui_menu,backend_ui_users_ir_ui_menu,base.model_ir_ui_menu,group_backend_ui_users,1,0,0,0
+backend_ui_users_ir_attachment,backend_ui_users_ir_attachment,base.model_ir_attachment,group_backend_ui_users,1,0,1,0
+backend_ui_users_res_partner,backend_ui_users_res_partner,base.model_res_partner,group_backend_ui_users,1,0,0,0
+backend_ui_users_bus_presence,backend_ui_users_bus_presence,bus.model_bus_presence,group_backend_ui_users,1,1,1,1
+backend_ui_users_mail_channel_member_public,backend_ui_users_mail_channel_member,mail.model_mail_channel_member,group_backend_ui_users,1,1,1,0
+backend_ui_users_mail_channel_public,backend_ui_users_mail_channel_member,mail.model_mail_channel,group_backend_ui_users,1,1,1,0
+backend_ui_users_mail_activity,backend_ui_users_mail_activity,mail.model_mail_activity,group_backend_ui_users,1,1,1,1
+backend_ui_users_mail_activity_type,backend_ui_users_mail_activity_type,mail.model_mail_activity_type,group_backend_ui_users,1,0,0,0
+backend_ui_users_mail_followers,backend_ui_users_mail_followers,mail.model_mail_followers,group_backend_ui_users,1,0,0,0
+backend_ui_users_mail_mail,backend_ui_users_mail_mail,mail.model_mail_mail,group_backend_ui_users,0,0,0,0
+backend_ui_users_mail_compose_message,backend_ui_users_mail_compose_message,mail.model_mail_compose_message,group_backend_ui_users,1,1,1,0
+backend_ui_users_mail_wizard_invite,backend_ui_users_mail_wizard_invite,mail.model_mail_wizard_invite,group_backend_ui_users,1,1,1,0
+backend_ui_users_mail_template,backend_ui_users_mail_template,mail.model_mail_template,group_backend_ui_users,1,0,0,0
+backend_ui_users_mail_template_preview,backend_ui_users_mail_template_preview,mail.model_mail_template_preview,group_backend_ui_users,1,0,0,0
+backend_ui_users_mail_message,backend_ui_users_mail_message,mail.model_mail_message,group_backend_ui_users,1,1,1,0
+backend_ui_users_mail_resend_message,backend_ui_users_mail_resend_message,mail.model_mail_resend_message,group_backend_ui_users,1,1,1,0
+backend_ui_users_mail_notification,backend_ui_users_mail_notification,mail.model_mail_notification,group_backend_ui_users,1,1,1,1
+backend_ui_users_mail_alias,backend_ui_users_mail_alias,mail.model_mail_alias,group_backend_ui_users,1,0,0,0
+backend_ui_users_res_groups,backend_ui_users_res_groups,base.model_res_groups,group_backend_ui_users,1,0,0,0
+backend_ui_users_res_partner_category,backend_ui_users_res_partner_category,base.model_res_partner_category,group_backend_ui_users,1,0,0,0
+backend_ui_users_res_partner_industry,backend_ui_users_res_partner_industry,base.model_res_partner_industry,group_backend_ui_users,1,0,0,0
+backend_ui_users_res_users_identitycheck,backend_ui_users_res_users_identitycheck,base.model_res_users_identitycheck,group_backend_ui_users,1,1,1,0
+backend_ui_users_res_bank,backend_ui_users_res_bank,base.model_res_bank,group_backend_ui_users,1,0,0,0
+backend_ui_users_res_partner_bank,backend_ui_users_res_partner_bank,base.model_res_partner_bank,group_backend_ui_users,1,0,0,0
diff --git a/base_group_backend/static/description/backend_ui.png b/base_group_backend/static/description/backend_ui.png
new file mode 100644
index 000000000..f0c6a0b8f
Binary files /dev/null and b/base_group_backend/static/description/backend_ui.png differ
diff --git a/base_group_backend/static/description/dummy_app.png b/base_group_backend/static/description/dummy_app.png
new file mode 100644
index 000000000..70bd4571a
Binary files /dev/null and b/base_group_backend/static/description/dummy_app.png differ
diff --git a/base_group_backend/static/description/icon.png b/base_group_backend/static/description/icon.png
new file mode 100644
index 000000000..3a0328b51
Binary files /dev/null and b/base_group_backend/static/description/icon.png differ
diff --git a/base_group_backend/static/description/index.html b/base_group_backend/static/description/index.html
new file mode 100644
index 000000000..bfe6eafd1
--- /dev/null
+++ b/base_group_backend/static/description/index.html
@@ -0,0 +1,501 @@
+
+
+
+
+
+
+Group backend
+
+
+
+
+
Group backend
+
+
+
+
This module was written to extend the standard functionality regarding users
+and groups management by adding a new Backend user group that only gives access
+to odoo backend (/web):
+
+- minimal default access:
+* users and partners (this is necessary to access your own data)
+* mail activity, notification and channel
+* presence
+- minimal default menu
+* notification
+* activities
+- minimal default access rules
+
+
The problem with the Internal user is when you want to gives access to the
+backend to a really thin part of your business to some users, it’s quite hard
+to properly maintain those roles over the project life, a lot of models use
+that group (base.group_user) by default which makes hard to maintains.
+
So that helps creating well-defined user groups with more controls.
+
This modules does 3 things:
+* It hijack the has_group method of res.users by returning True for group_backend users when the requested group is group_user (The need for this needs to be investigated)
+* It sets the res_users.share to False for group_backend users. This allows those users to access the backend.
+* It sets the bare minimum permission in the ir.model.access.csv to display the backend
+
We suggest to use this module with its compagnon base_user_role
+
Here is an example where a backend ui user can only access and use the dummy app. No other application are available to this user. You may define your own application instead of the dummy one.
+
+
+
Limitations
+
At the time of writing, Odoo uses res.users.share == False to give the
+backend access.
+However to be able to access the backend without any errors some basic rights are necessary.
+This module change the way res.users.share is computed to allow group_backend users to use the backend.
+
This avoids to write a lot of overwrite in different controllers from
+different modules (‘portal’, ‘web’, ‘base’, ‘website’) with hard coded statements
+that check if user is part of the base.group_user or share == False group.
+
+
Warning
+
Using this module and grant a user with group_backend’s group is
+equivalent to grant group_user’s group everywhere has_group
+has been used.
+
+
+
Important
+
This is an alpha version, the data model and design can change at any time without warning.
+Only for development or testing purpose, do not use in production.
+More details on development status
+
+
Table of contents
+
+
+
+
To allow group_backend to interact with a model you can either add access rules to the group
+or you can add implied_ids to group_backend.
+
+
Note
+
Be aware users can only belong to one group from the user type category
+(base.module_category_user_type). So your other groups can’t inherit both
+internal users and backend users.
+
+
+
+
+
To use this module, you need to:
+
+- Go to Configuration / Users / Users, choose a user and set the user type.
+
+
You get a users that is only able to access to the Odoo backend which you
+can attach other groups that not implies other kind of users (portal,
+internal users)
+
+
+
+
+
Current module depends on base_install_request instead of base.
+
We don’t need base_install_request auto install module but we must override it to set a security group on App menu.
+
This dependency should be remove if possible in future versions.
+
+
+
+
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 to smash it by providing a detailed and welcomed
+feedback.
+
Do not contact contributors directly about support or help with technical issues.
+
+
+
+
+
+
Contributors
+
+
Do not contact contributors directly about support or help with technical issues.
+
+
+
Maintainers
+
This module is maintained by the OCA.
+
+
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.
+
Current maintainers:
+
+
This module is part of the OCA/server-backend project on GitHub.
+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
+
+
+
+
diff --git a/base_group_backend/tests/__init__.py b/base_group_backend/tests/__init__.py
new file mode 100644
index 000000000..d9b96c4fa
--- /dev/null
+++ b/base_group_backend/tests/__init__.py
@@ -0,0 +1 @@
+from . import test_module
diff --git a/base_group_backend/tests/test_module.py b/base_group_backend/tests/test_module.py
new file mode 100644
index 000000000..ec2098055
--- /dev/null
+++ b/base_group_backend/tests/test_module.py
@@ -0,0 +1,31 @@
+from odoo import Command
+from odoo.tests.common import TransactionCase
+
+
+class TestResUsers(TransactionCase):
+ @classmethod
+ def setUpClass(cls):
+ super().setUpClass()
+ cls.base_group_backend = cls.env.ref("base_group_backend.base_group_backend")
+ cls.internal_user = cls.env.ref("base.user_demo")
+ cls.portal_user = cls.env.ref("base_group_backend.user_demo_external")
+ cls.portal_ui_user = cls.env.ref(
+ "base_group_backend.user_demo_external_with_ui"
+ )
+
+ def test_has_groups(self):
+ self.assertTrue(self.internal_user.has_group("base.group_user"))
+ self.assertFalse(self.portal_user.has_group("base.group_user"))
+ self.assertTrue(self.portal_ui_user.has_group("base.group_user"))
+ self.portal_user.write(
+ {"groups_id": [Command.set([self.base_group_backend.id])]}
+ )
+ self.assertTrue(self.portal_user.has_group("base.group_user"))
+
+ def test_share(self):
+ self.assertTrue(self.portal_user.share)
+ self.portal_user.write(
+ {"groups_id": [Command.set([self.base_group_backend.id])]}
+ )
+ self.assertFalse(self.portal_user.share)
+ self.assertFalse(self.portal_ui_user.share)
diff --git a/base_user_role/README.rst b/base_user_role/README.rst
index 5016a8e00..04c460ead 100644
--- a/base_user_role/README.rst
+++ b/base_user_role/README.rst
@@ -7,7 +7,7 @@ User roles
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !! source digest: sha256:c476130dcc75dc43a4aa9cfcc84eba040aafbdb3b9ff2b672278a59bd46f91ef
+ !! source digest: sha256:994951cc466397bd2b24e18e463c587be4b41a92628a226aad69fdbd1b149613
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png
diff --git a/base_user_role/__manifest__.py b/base_user_role/__manifest__.py
index f9f7ea3d0..e091b9cd6 100644
--- a/base_user_role/__manifest__.py
+++ b/base_user_role/__manifest__.py
@@ -4,7 +4,7 @@
{
"name": "User roles",
- "version": "16.0.1.2.2",
+ "version": "16.0.1.3.0",
"category": "Tools",
"author": "ABF OSIELL, Odoo Community Association (OCA)",
"license": "LGPL-3",
diff --git a/base_user_role/i18n/am.po b/base_user_role/i18n/am.po
index 3565927d1..531cae18e 100644
--- a/base_user_role/i18n/am.po
+++ b/base_user_role/i18n/am.po
@@ -31,6 +31,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -291,6 +301,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/ar.po b/base_user_role/i18n/ar.po
index f606f8a4e..aeee15fa6 100644
--- a/base_user_role/i18n/ar.po
+++ b/base_user_role/i18n/ar.po
@@ -33,6 +33,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -293,6 +303,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/base_user_role.pot b/base_user_role/i18n/base_user_role.pot
index d83fb4cad..5ccd7266a 100644
--- a/base_user_role/i18n/base_user_role.pot
+++ b/base_user_role/i18n/base_user_role.pot
@@ -26,6 +26,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -286,6 +296,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/bg.po b/base_user_role/i18n/bg.po
index edff772c4..550aae9e9 100644
--- a/base_user_role/i18n/bg.po
+++ b/base_user_role/i18n/bg.po
@@ -31,6 +31,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -291,6 +301,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/bs.po b/base_user_role/i18n/bs.po
index 705fdc232..f8c0d4902 100644
--- a/base_user_role/i18n/bs.po
+++ b/base_user_role/i18n/bs.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -292,6 +302,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/ca.po b/base_user_role/i18n/ca.po
index f1f687986..f00cdd434 100644
--- a/base_user_role/i18n/ca.po
+++ b/base_user_role/i18n/ca.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -293,6 +303,11 @@ msgstr ""
msgid "Share Group"
msgstr "Comparteix el grup"
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/cs.po b/base_user_role/i18n/cs.po
index 7e7bf6567..604087159 100644
--- a/base_user_role/i18n/cs.po
+++ b/base_user_role/i18n/cs.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -292,6 +302,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/da.po b/base_user_role/i18n/da.po
index 45c78c9c5..b2ab36d12 100644
--- a/base_user_role/i18n/da.po
+++ b/base_user_role/i18n/da.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -296,6 +306,11 @@ msgstr ""
msgid "Share Group"
msgstr "Gruppe for data deling"
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/de.po b/base_user_role/i18n/de.po
index ed523db4e..fcb9390ef 100644
--- a/base_user_role/i18n/de.po
+++ b/base_user_role/i18n/de.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -294,6 +304,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/el_GR.po b/base_user_role/i18n/el_GR.po
index 308bd6975..95e1bdc57 100644
--- a/base_user_role/i18n/el_GR.po
+++ b/base_user_role/i18n/el_GR.po
@@ -33,6 +33,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -293,6 +303,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/en_GB.po b/base_user_role/i18n/en_GB.po
index 83f1da8c8..c49fbba87 100644
--- a/base_user_role/i18n/en_GB.po
+++ b/base_user_role/i18n/en_GB.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -292,6 +302,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/es.po b/base_user_role/i18n/es.po
index 097b1598e..be0777013 100644
--- a/base_user_role/i18n/es.po
+++ b/base_user_role/i18n/es.po
@@ -35,6 +35,16 @@ msgstr "# Roles"
msgid "%s (copy)"
msgstr "%s(copia)"
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -299,6 +309,11 @@ msgstr "Recuento de reglas"
msgid "Share Group"
msgstr "Compartir Grupo"
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/es_AR.po b/base_user_role/i18n/es_AR.po
index 375f0e9e4..1ac1b7298 100644
--- a/base_user_role/i18n/es_AR.po
+++ b/base_user_role/i18n/es_AR.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -292,6 +302,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/es_CL.po b/base_user_role/i18n/es_CL.po
index 25a80f0b2..24f75c03e 100644
--- a/base_user_role/i18n/es_CL.po
+++ b/base_user_role/i18n/es_CL.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -292,6 +302,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/es_CO.po b/base_user_role/i18n/es_CO.po
index d61ea82b5..901b3e172 100644
--- a/base_user_role/i18n/es_CO.po
+++ b/base_user_role/i18n/es_CO.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -292,6 +302,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/es_CR.po b/base_user_role/i18n/es_CR.po
index 6df9d5abd..d649e144f 100644
--- a/base_user_role/i18n/es_CR.po
+++ b/base_user_role/i18n/es_CR.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -292,6 +302,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/es_DO.po b/base_user_role/i18n/es_DO.po
index f945bad7a..53eaf99e1 100644
--- a/base_user_role/i18n/es_DO.po
+++ b/base_user_role/i18n/es_DO.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -292,6 +302,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/es_EC.po b/base_user_role/i18n/es_EC.po
index fc84a0684..536bc1984 100644
--- a/base_user_role/i18n/es_EC.po
+++ b/base_user_role/i18n/es_EC.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -292,6 +302,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/es_ES.po b/base_user_role/i18n/es_ES.po
index f9e99404c..0f15ab3c3 100644
--- a/base_user_role/i18n/es_ES.po
+++ b/base_user_role/i18n/es_ES.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -292,6 +302,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/es_MX.po b/base_user_role/i18n/es_MX.po
index 1694f389f..2f9c76e36 100644
--- a/base_user_role/i18n/es_MX.po
+++ b/base_user_role/i18n/es_MX.po
@@ -33,6 +33,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -295,6 +305,11 @@ msgstr ""
msgid "Share Group"
msgstr "Compartir Grupo"
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/es_PE.po b/base_user_role/i18n/es_PE.po
index 762fb071f..1a8cd8ac0 100644
--- a/base_user_role/i18n/es_PE.po
+++ b/base_user_role/i18n/es_PE.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -292,6 +302,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/es_PY.po b/base_user_role/i18n/es_PY.po
index 4e590fc62..a9901d5b5 100644
--- a/base_user_role/i18n/es_PY.po
+++ b/base_user_role/i18n/es_PY.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -292,6 +302,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/es_VE.po b/base_user_role/i18n/es_VE.po
index 8780d5f9b..4c347ccdd 100644
--- a/base_user_role/i18n/es_VE.po
+++ b/base_user_role/i18n/es_VE.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -292,6 +302,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/et.po b/base_user_role/i18n/et.po
index 6555ff7f1..153bae580 100644
--- a/base_user_role/i18n/et.po
+++ b/base_user_role/i18n/et.po
@@ -31,6 +31,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -291,6 +301,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/eu.po b/base_user_role/i18n/eu.po
index 36406cf7f..3bf3c5bf8 100644
--- a/base_user_role/i18n/eu.po
+++ b/base_user_role/i18n/eu.po
@@ -31,6 +31,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -291,6 +301,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/fa.po b/base_user_role/i18n/fa.po
index 12e6bb4ae..468344baf 100644
--- a/base_user_role/i18n/fa.po
+++ b/base_user_role/i18n/fa.po
@@ -31,6 +31,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -291,6 +301,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/fi.po b/base_user_role/i18n/fi.po
index 9694c1ae6..a7126c04a 100644
--- a/base_user_role/i18n/fi.po
+++ b/base_user_role/i18n/fi.po
@@ -31,6 +31,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -291,6 +301,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/fr.po b/base_user_role/i18n/fr.po
index 0eab506aa..0802dea79 100644
--- a/base_user_role/i18n/fr.po
+++ b/base_user_role/i18n/fr.po
@@ -32,6 +32,16 @@ msgstr "# Rôles"
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -297,6 +307,11 @@ msgstr "Nombre de règles"
msgid "Share Group"
msgstr "Groupe de partage"
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/fr_CA.po b/base_user_role/i18n/fr_CA.po
index 04b4a4e9d..8974118fa 100644
--- a/base_user_role/i18n/fr_CA.po
+++ b/base_user_role/i18n/fr_CA.po
@@ -33,6 +33,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -293,6 +303,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/fr_CH.po b/base_user_role/i18n/fr_CH.po
index 5d4f3555b..cb53832bd 100644
--- a/base_user_role/i18n/fr_CH.po
+++ b/base_user_role/i18n/fr_CH.po
@@ -33,6 +33,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -293,6 +303,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/fr_FR.po b/base_user_role/i18n/fr_FR.po
index 8d356d7c0..64c3d993c 100644
--- a/base_user_role/i18n/fr_FR.po
+++ b/base_user_role/i18n/fr_FR.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -292,6 +302,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/gl.po b/base_user_role/i18n/gl.po
index 20ed7f02a..22070d0f7 100644
--- a/base_user_role/i18n/gl.po
+++ b/base_user_role/i18n/gl.po
@@ -33,6 +33,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -293,6 +303,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/gl_ES.po b/base_user_role/i18n/gl_ES.po
index 939818b82..896f90c85 100644
--- a/base_user_role/i18n/gl_ES.po
+++ b/base_user_role/i18n/gl_ES.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -292,6 +302,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/he.po b/base_user_role/i18n/he.po
index 4bfe86cbd..7eea28f49 100644
--- a/base_user_role/i18n/he.po
+++ b/base_user_role/i18n/he.po
@@ -31,6 +31,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -291,6 +301,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/hr.po b/base_user_role/i18n/hr.po
index a70d189d5..e09122e91 100644
--- a/base_user_role/i18n/hr.po
+++ b/base_user_role/i18n/hr.po
@@ -33,6 +33,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -297,6 +307,11 @@ msgstr ""
msgid "Share Group"
msgstr "Dijeli grupu"
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/hr_HR.po b/base_user_role/i18n/hr_HR.po
index b1a5f9d79..8e07a908d 100644
--- a/base_user_role/i18n/hr_HR.po
+++ b/base_user_role/i18n/hr_HR.po
@@ -34,6 +34,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -294,6 +304,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/hu.po b/base_user_role/i18n/hu.po
index b2a10d543..881ef7089 100644
--- a/base_user_role/i18n/hu.po
+++ b/base_user_role/i18n/hu.po
@@ -31,6 +31,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -291,6 +301,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/id.po b/base_user_role/i18n/id.po
index 8f3454860..ec691ac73 100644
--- a/base_user_role/i18n/id.po
+++ b/base_user_role/i18n/id.po
@@ -31,6 +31,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -291,6 +301,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/it.po b/base_user_role/i18n/it.po
index 3f92c7033..b39a31b56 100644
--- a/base_user_role/i18n/it.po
+++ b/base_user_role/i18n/it.po
@@ -35,6 +35,16 @@ msgstr "N° ruoli"
msgid "%s (copy)"
msgstr "%s (copia)"
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -299,6 +309,11 @@ msgstr "Conteggio regole"
msgid "Share Group"
msgstr "Gruppo condivisione"
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/ja.po b/base_user_role/i18n/ja.po
index cff946e41..a84607375 100644
--- a/base_user_role/i18n/ja.po
+++ b/base_user_role/i18n/ja.po
@@ -31,6 +31,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -291,6 +301,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/ko.po b/base_user_role/i18n/ko.po
index 461c605a8..d95fd825c 100644
--- a/base_user_role/i18n/ko.po
+++ b/base_user_role/i18n/ko.po
@@ -31,6 +31,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -291,6 +301,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/lt.po b/base_user_role/i18n/lt.po
index 9cb40b1b4..237b5a5cc 100644
--- a/base_user_role/i18n/lt.po
+++ b/base_user_role/i18n/lt.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -292,6 +302,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/lt_LT.po b/base_user_role/i18n/lt_LT.po
index 0c1376670..3a1ee9878 100644
--- a/base_user_role/i18n/lt_LT.po
+++ b/base_user_role/i18n/lt_LT.po
@@ -33,6 +33,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -293,6 +303,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/lv.po b/base_user_role/i18n/lv.po
index 41bb17bab..4150f6b35 100644
--- a/base_user_role/i18n/lv.po
+++ b/base_user_role/i18n/lv.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -292,6 +302,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/mk.po b/base_user_role/i18n/mk.po
index f8dd48102..0b2f49231 100644
--- a/base_user_role/i18n/mk.po
+++ b/base_user_role/i18n/mk.po
@@ -31,6 +31,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -291,6 +301,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/mn.po b/base_user_role/i18n/mn.po
index 82c3f7ef6..58cf8b21c 100644
--- a/base_user_role/i18n/mn.po
+++ b/base_user_role/i18n/mn.po
@@ -31,6 +31,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -291,6 +301,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/nb.po b/base_user_role/i18n/nb.po
index 5c8d52067..564c6a547 100644
--- a/base_user_role/i18n/nb.po
+++ b/base_user_role/i18n/nb.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -292,6 +302,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/nb_NO.po b/base_user_role/i18n/nb_NO.po
index 81f2c3066..6f4107300 100644
--- a/base_user_role/i18n/nb_NO.po
+++ b/base_user_role/i18n/nb_NO.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -292,6 +302,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/nl.po b/base_user_role/i18n/nl.po
index 2e513ca21..388ceeb59 100644
--- a/base_user_role/i18n/nl.po
+++ b/base_user_role/i18n/nl.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -292,6 +302,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/nl_BE.po b/base_user_role/i18n/nl_BE.po
index 60215dcd0..c0a775d2a 100644
--- a/base_user_role/i18n/nl_BE.po
+++ b/base_user_role/i18n/nl_BE.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -292,6 +302,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/nl_NL.po b/base_user_role/i18n/nl_NL.po
index 06cae4479..0e8dac4d5 100644
--- a/base_user_role/i18n/nl_NL.po
+++ b/base_user_role/i18n/nl_NL.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -292,6 +302,11 @@ msgstr ""
msgid "Share Group"
msgstr "Deel Groep"
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/pl.po b/base_user_role/i18n/pl.po
index 22a8cfe32..3c1ea9316 100644
--- a/base_user_role/i18n/pl.po
+++ b/base_user_role/i18n/pl.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -292,6 +302,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/pt.po b/base_user_role/i18n/pt.po
index 6e86c0210..144232d15 100644
--- a/base_user_role/i18n/pt.po
+++ b/base_user_role/i18n/pt.po
@@ -33,6 +33,16 @@ msgstr "# Funções"
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -297,6 +307,11 @@ msgstr "Contagem de Regras"
msgid "Share Group"
msgstr "Partilhar Grupo"
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/pt_BR.po b/base_user_role/i18n/pt_BR.po
index b3a4cd5b7..8dc656aa6 100644
--- a/base_user_role/i18n/pt_BR.po
+++ b/base_user_role/i18n/pt_BR.po
@@ -33,6 +33,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -293,6 +303,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/pt_PT.po b/base_user_role/i18n/pt_PT.po
index 7d46b0519..cc7f56540 100644
--- a/base_user_role/i18n/pt_PT.po
+++ b/base_user_role/i18n/pt_PT.po
@@ -33,6 +33,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -293,6 +303,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/ro.po b/base_user_role/i18n/ro.po
index 4e103b465..bc086595f 100644
--- a/base_user_role/i18n/ro.po
+++ b/base_user_role/i18n/ro.po
@@ -33,6 +33,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -293,6 +303,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/ru.po b/base_user_role/i18n/ru.po
index b144680c3..08433729e 100644
--- a/base_user_role/i18n/ru.po
+++ b/base_user_role/i18n/ru.po
@@ -33,6 +33,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -293,6 +303,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/sk.po b/base_user_role/i18n/sk.po
index be140312f..c25bd3d0f 100644
--- a/base_user_role/i18n/sk.po
+++ b/base_user_role/i18n/sk.po
@@ -31,6 +31,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -291,6 +301,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/sl.po b/base_user_role/i18n/sl.po
index 5d0df8818..2f6ba4529 100644
--- a/base_user_role/i18n/sl.po
+++ b/base_user_role/i18n/sl.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -294,6 +304,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/sr.po b/base_user_role/i18n/sr.po
index 2cd468c05..30a6ac0e1 100644
--- a/base_user_role/i18n/sr.po
+++ b/base_user_role/i18n/sr.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -292,6 +302,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/sr@latin.po b/base_user_role/i18n/sr@latin.po
index cb8fee0a3..df26e38ed 100644
--- a/base_user_role/i18n/sr@latin.po
+++ b/base_user_role/i18n/sr@latin.po
@@ -33,6 +33,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -293,6 +303,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/sv.po b/base_user_role/i18n/sv.po
index 4d094d1dc..af8329e3d 100644
--- a/base_user_role/i18n/sv.po
+++ b/base_user_role/i18n/sv.po
@@ -31,6 +31,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -291,6 +301,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/th.po b/base_user_role/i18n/th.po
index fdf3da474..ead994ede 100644
--- a/base_user_role/i18n/th.po
+++ b/base_user_role/i18n/th.po
@@ -31,6 +31,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -291,6 +301,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/tr.po b/base_user_role/i18n/tr.po
index 81cf73a0b..2e5f85cc7 100644
--- a/base_user_role/i18n/tr.po
+++ b/base_user_role/i18n/tr.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -292,6 +302,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/tr_TR.po b/base_user_role/i18n/tr_TR.po
index 58fb19664..6344fdef9 100644
--- a/base_user_role/i18n/tr_TR.po
+++ b/base_user_role/i18n/tr_TR.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -292,6 +302,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/uk.po b/base_user_role/i18n/uk.po
index de03b7012..320eb3efb 100644
--- a/base_user_role/i18n/uk.po
+++ b/base_user_role/i18n/uk.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -292,6 +302,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/vi.po b/base_user_role/i18n/vi.po
index 0e8c30de4..e2799f3b1 100644
--- a/base_user_role/i18n/vi.po
+++ b/base_user_role/i18n/vi.po
@@ -31,6 +31,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -291,6 +301,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/vi_VN.po b/base_user_role/i18n/vi_VN.po
index 25dd234bb..0aeef0c60 100644
--- a/base_user_role/i18n/vi_VN.po
+++ b/base_user_role/i18n/vi_VN.po
@@ -33,6 +33,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -295,6 +305,11 @@ msgstr ""
msgid "Share Group"
msgstr "Nhóm chia sẻ"
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/zh_CN.po b/base_user_role/i18n/zh_CN.po
index 2686fca72..6ea3dbad2 100644
--- a/base_user_role/i18n/zh_CN.po
+++ b/base_user_role/i18n/zh_CN.po
@@ -33,6 +33,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -293,6 +303,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/i18n/zh_TW.po b/base_user_role/i18n/zh_TW.po
index 2e708e6a3..f555f5eba 100644
--- a/base_user_role/i18n/zh_TW.po
+++ b/base_user_role/i18n/zh_TW.po
@@ -32,6 +32,16 @@ msgstr ""
msgid "%s (copy)"
msgstr ""
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "Any configuration changes made here will not be persistent."
+msgstr ""
+
+#. module: base_user_role
+#: model_terms:ir.ui.view,arch_db:base_user_role.view_res_users_form_inherit
+msgid "The access rights of this user are managed by roles."
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role__model_access
msgid "Access Controls"
@@ -292,6 +302,11 @@ msgstr ""
msgid "Share Group"
msgstr ""
+#. module: base_user_role
+#: model:ir.model.fields,field_description:base_user_role.field_res_users__show_alert
+msgid "Show Alert"
+msgstr ""
+
#. module: base_user_role
#: model:ir.model.fields,field_description:base_user_role.field_res_users_role_line__date_to
msgid "To"
diff --git a/base_user_role/models/user.py b/base_user_role/models/user.py
index 4070c7510..5879e66f9 100644
--- a/base_user_role/models/user.py
+++ b/base_user_role/models/user.py
@@ -12,6 +12,14 @@ class ResUsers(models.Model):
string="Role lines",
default=lambda self: self._default_role_lines(),
)
+
+ show_alert = fields.Boolean(compute="_compute_show_alert")
+
+ @api.depends("role_line_ids")
+ def _compute_show_alert(self):
+ for user in self:
+ user.show_alert = user.role_line_ids.filtered(lambda rec: rec.is_enabled)
+
role_ids = fields.One2many(
comodel_name="res.users.role",
string="Roles",
diff --git a/base_user_role/static/description/index.html b/base_user_role/static/description/index.html
index da5d87699..79e75e790 100644
--- a/base_user_role/static/description/index.html
+++ b/base_user_role/static/description/index.html
@@ -1,4 +1,3 @@
-
@@ -367,7 +366,7 @@ User roles
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-!! source digest: sha256:c476130dcc75dc43a4aa9cfcc84eba040aafbdb3b9ff2b672278a59bd46f91ef
+!! source digest: sha256:994951cc466397bd2b24e18e463c587be4b41a92628a226aad69fdbd1b149613
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
This module was written to extend the standard functionality regarding users
diff --git a/base_user_role/tests/test_user_role.py b/base_user_role/tests/test_user_role.py
index dede38e18..17c266076 100644
--- a/base_user_role/tests/test_user_role.py
+++ b/base_user_role/tests/test_user_role.py
@@ -245,3 +245,12 @@ def test_create_role_from_user(self):
user_group_ids = sorted(set(self.user_id.groups_id.ids))
role_group_ids = sorted(set(role.trans_implied_ids.ids))
self.assertEqual(user_group_ids, role_group_ids)
+
+ def test_show_alert_computation(self):
+ """Test the computation of the `show_alert` field."""
+ self.user_id.write({"role_line_ids": [(0, 0, {"role_id": self.role1_id.id})]})
+ self.assertTrue(self.user_id.show_alert)
+
+ # disable role
+ self.user_id.role_line_ids.unlink()
+ self.assertFalse(self.user_id.show_alert)
diff --git a/base_user_role/views/user.xml b/base_user_role/views/user.xml
index 77469e18e..164dc85d7 100644
--- a/base_user_role/views/user.xml
+++ b/base_user_role/views/user.xml
@@ -24,8 +24,28 @@
+
+
+
+
+
+
res.users.search.inherit
res.users
diff --git a/server_action_sort/README.rst b/server_action_sort/README.rst
new file mode 100644
index 000000000..4412fd72f
--- /dev/null
+++ b/server_action_sort/README.rst
@@ -0,0 +1,141 @@
+================================
+Server Actions - Mass Sort Lines
+================================
+
+..
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! This file is generated by oca-gen-addon-readme !!
+ !! changes will be overwritten. !!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! source digest: sha256:e221269a77f3ad06e190cd3f0c72ecdfc6d1cd0022b81e3ec57722b3c6dad475
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+.. |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/licence-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--backend-lightgray.png?logo=github
+ :target: https://github.com/OCA/server-backend/tree/16.0/server_action_sort
+ :alt: OCA/server-backend
+.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
+ :target: https://translation.odoo-community.org/projects/server-backend-16-0/server-backend-16-0-server_action_sort
+ :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-backend&target_branch=16.0
+ :alt: Try me on Runboat
+
+|badge1| |badge2| |badge3| |badge4| |badge5|
+
+This module provides a generic tools to have the possibility to sort the lines
+of a list of items.
+
+For exemple, if you use the sale module, you can want to reorder the sale
+order lines, by any criterias.
+
+**Table of contents**
+
+.. contents::
+ :local:
+
+Configuration
+=============
+
+* Go to 'Setting / Technical / Actions / Server Actions'
+
+* Create a new item
+
+.. figure:: https://raw.githubusercontent.com/OCA/server-backend/16.0/server_action_sort/static/description/ir_actions_server_form.png
+
+* Set a name that will be used for the Contextual Action
+
+* choose a model
+
+* Select 'Sort' option in the field 'Action To Do'
+
+* Then, select a field to sort of this model. It should be a ``one2many`` field.
+
+* Select then the criterias used to sort the selected field.
+
+
+**Extra options**
+
+* you can define groups whose members will have access to that option.
+
+Usage
+=====
+
+* Go to a tree view, for a model for which you have defined a 'Sort' action.
+
+* Select some items you want to reorder.
+
+* click on 'Action' Button
+
+.. figure:: https://raw.githubusercontent.com/OCA/server-backend/16.0/server_action_sort/static/description/sale_order_tree.png
+
+
+* then click on the name of the configured Action and see the results
+
+**Before**
+
+.. figure:: https://raw.githubusercontent.com/OCA/server-backend/16.0/server_action_sort/static/description/sale_order_form_before.png
+
+**After**
+
+.. figure:: https://raw.githubusercontent.com/OCA/server-backend/16.0/server_action_sort/static/description/sale_order_form_after.png
+
+Known issues / Roadmap
+======================
+
+For instance, the module allow to order with many criterias, but
+without "dot" notation : it is not possible to order sale order lines
+by ``product_id.seller_ids.code`` for exemple.
+
+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 to smash it by providing a detailed and welcomed
+`feedback `_.
+
+Do not contact contributors directly about support or help with technical issues.
+
+Credits
+=======
+
+Authors
+~~~~~~~
+
+* GRAP
+
+Contributors
+~~~~~~~~~~~~
+
+* Sylvain LE GAL (https://www.twitter.com/legalsylvain)
+
+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-legalsylvain| image:: https://github.com/legalsylvain.png?size=40px
+ :target: https://github.com/legalsylvain
+ :alt: legalsylvain
+
+Current `maintainer `__:
+
+|maintainer-legalsylvain|
+
+This module is part of the `OCA/server-backend `_ project on GitHub.
+
+You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/server_action_sort/__init__.py b/server_action_sort/__init__.py
new file mode 100644
index 000000000..0650744f6
--- /dev/null
+++ b/server_action_sort/__init__.py
@@ -0,0 +1 @@
+from . import models
diff --git a/server_action_sort/__manifest__.py b/server_action_sort/__manifest__.py
new file mode 100644
index 000000000..7fa31bc4d
--- /dev/null
+++ b/server_action_sort/__manifest__.py
@@ -0,0 +1,20 @@
+# Copyright (C) 2020 - 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).
+
+{
+ "name": "Server Actions - Mass Sort Lines",
+ "version": "16.0.1.0.0",
+ "author": "GRAP, " "Odoo Community Association (OCA)",
+ "summary": "Sort any lines of any models by any criterias",
+ "category": "Tools",
+ "website": "https://github.com/OCA/server-backend",
+ "license": "AGPL-3",
+ "depends": ["base"],
+ "maintainers": ["legalsylvain"],
+ "data": [
+ "security/ir.model.access.csv",
+ "views/view_ir_actions_server.xml",
+ ],
+ "demo": ["demo/ir_actions_server.xml"],
+}
diff --git a/server_action_sort/demo/ir_actions_server.xml b/server_action_sort/demo/ir_actions_server.xml
new file mode 100644
index 000000000..6e0b22143
--- /dev/null
+++ b/server_action_sort/demo/ir_actions_server.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+ Action Server Sort Lines
+ sort
+
+
+
+
+
+ 1
+
+
+
+
+
+
+ 2
+
+
+
+
+
+
+
+
+
+
diff --git a/server_action_sort/i18n/fr.po b/server_action_sort/i18n/fr.po
new file mode 100644
index 000000000..add9f090a
--- /dev/null
+++ b/server_action_sort/i18n/fr.po
@@ -0,0 +1,192 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * server_action_sort
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 12.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-03-16 18:08+0000\n"
+"PO-Revision-Date: 2020-03-16 18:08+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__action_id
+msgid "Action"
+msgstr "Action"
+
+#. module: server_action_sort
+#: model:ir.actions.server,name:server_action_sort.sort_action_server_lines
+#, fuzzy
+msgid "Action Server Sort Lines"
+msgstr "Démo - Action serveur : Trier les lignes"
+
+#. module: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__state
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__state
+msgid "Action To Do"
+msgstr "Action à effectuer"
+
+#. module: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__create_uid
+msgid "Created by"
+msgstr "Créé par"
+
+#. module: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__create_date
+msgid "Created on"
+msgstr "Créé le"
+
+#. module: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__display_name
+msgid "Display Name"
+msgstr "Nom affiché"
+
+#. module: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__field_id
+msgid "Field"
+msgstr "Champ"
+
+#. module: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__field_name
+msgid "Field Name"
+msgstr "Nom de Champ"
+
+#. module: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_field_id
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_field_id
+msgid "Field to Sort"
+msgstr "Champ à trier"
+
+#. module: server_action_sort
+#: model:ir.model.fields,help:server_action_sort.field_ir_actions_server__sort_field_id_model
+#: model:ir.model.fields,help:server_action_sort.field_ir_cron__sort_field_id_model
+msgid "For relationship fields, the technical name of the target model"
+msgstr "Pour les champs de relation, le nom technique du modèle cible"
+
+#. module: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__id
+msgid "ID"
+msgstr "ID"
+
+#. module: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__desc
+msgid "Inverse Order"
+msgstr "Ordre inverse"
+
+#. module: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line____last_update
+msgid "Last Modified on"
+msgstr "Dernière modification le"
+
+#. module: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__write_uid
+msgid "Last Updated by"
+msgstr "Dernière mise à jour par"
+
+#. module: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__write_date
+msgid "Last Updated on"
+msgstr "Dernière mise à jour le"
+
+#. module: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_field_id_model
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_field_id_model
+msgid "Model of the Field to Sort"
+msgstr "Modèle du champ à trier"
+
+#. module: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__sequence
+msgid "Sequence"
+msgstr "Séquence"
+
+#. module: server_action_sort
+#: model:ir.model,name:server_action_sort.model_ir_actions_server
+msgid "Server Action"
+msgstr "Action du serveur"
+
+#. module: server_action_sort
+#: model:ir.model,name:server_action_sort.model_ir_actions_server_sort_line
+msgid "Server Actions Sort Lines"
+msgstr "Ligne de tri d'Action Serveur"
+
+#. module: server_action_sort
+#: model:ir.model.fields.selection,name:server_action_sort.selection__ir_actions_server__state__sort
+msgid "Sort"
+msgstr "Trier"
+
+#. module: server_action_sort
+#: model_terms:ir.ui.view,arch_db:server_action_sort.view_ir_actions_server_form
+msgid "Sort Options"
+msgstr "Options de tri"
+
+#. module: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_line_ids
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_line_ids
+msgid "Sorting Criterias"
+msgstr "Critères de tri"
+
+#. module: server_action_sort
+#. odoo-python
+#: code:addons/server_action_sort/models/ir_actions_server.py:0
+#, python-format
+msgid ""
+"The Action Server %s is not correctly set :\n"
+"No lines defined"
+msgstr ""
+"L'action Serveur %s n'est pas correctement paramétré : \n"
+"Pas de lignes définies"
+
+#. module: server_action_sort
+#: model:ir.model.fields,help:server_action_sort.field_ir_actions_server__state
+#: model:ir.model.fields,help:server_action_sort.field_ir_cron__state
+msgid ""
+"Type of server action. The following values are available:\n"
+"- 'Execute Python Code': a block of python code that will be executed\n"
+"- 'Create a new Record': create a new record with new values\n"
+"- 'Update a Record': update the values of a record\n"
+"- 'Execute several actions': define an action that triggers several other "
+"server actions\n"
+"- 'Send Email': post a message, a note or send an email (Discuss)\n"
+"- 'Add Followers': add followers to a record (Discuss)\n"
+"- 'Create Next Activity': create an activity (Discuss)\n"
+"- 'Send SMS Text Message': send SMS, log them on documents (SMS)"
+msgstr ""
+
+#. module: server_action_sort
+#. odoo-python
+#: code:addons/server_action_sort/models/ir_actions_server.py:0
+#, python-format
+msgid ""
+"You can not run this Action Server that way.\n"
+" Please use contextual 'Action' menu."
+msgstr ""
+"Vous ne pouvez pas exécuter cette action serveur de cette façon.\n"
+" Veuillez utiliser le menu contextuel 'Action'."
+
+#~ msgid "Add Followers"
+#~ msgstr "Ajouter des abonnés"
+
+#~ msgid "Create Next Activity"
+#~ msgstr "Créer une activité "
+
+#~ msgid "Create a new Record"
+#~ msgstr "Créer un nouvel enregistrement"
+
+#~ msgid "Execute Python Code"
+#~ msgstr "Exécuter le code Python"
+
+#~ msgid "Execute several actions"
+#~ msgstr "Exécuter plusieurs actions"
+
+#~ msgid "Send Email"
+#~ msgstr "Envoyer par courriel"
+
+#~ msgid "Update the Record"
+#~ msgstr "Mettre à jour l'enregistrement"
diff --git a/server_action_sort/i18n/server_action_sort.pot b/server_action_sort/i18n/server_action_sort.pot
new file mode 100644
index 000000000..6e1422971
--- /dev/null
+++ b/server_action_sort/i18n/server_action_sort.pot
@@ -0,0 +1,162 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * server_action_sort
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 16.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: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__action_id
+msgid "Action"
+msgstr ""
+
+#. module: server_action_sort
+#: model:ir.actions.server,name:server_action_sort.sort_action_server_lines
+msgid "Action Server Sort Lines"
+msgstr ""
+
+#. module: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__state
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__state
+msgid "Action To Do"
+msgstr ""
+
+#. module: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__create_uid
+msgid "Created by"
+msgstr ""
+
+#. module: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__create_date
+msgid "Created on"
+msgstr ""
+
+#. module: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__display_name
+msgid "Display Name"
+msgstr ""
+
+#. module: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__field_id
+msgid "Field"
+msgstr ""
+
+#. module: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__field_name
+msgid "Field Name"
+msgstr ""
+
+#. module: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_field_id
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_field_id
+msgid "Field to Sort"
+msgstr ""
+
+#. module: server_action_sort
+#: model:ir.model.fields,help:server_action_sort.field_ir_actions_server__sort_field_id_model
+#: model:ir.model.fields,help:server_action_sort.field_ir_cron__sort_field_id_model
+msgid "For relationship fields, the technical name of the target model"
+msgstr ""
+
+#. module: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__id
+msgid "ID"
+msgstr ""
+
+#. module: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__desc
+msgid "Inverse Order"
+msgstr ""
+
+#. module: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line____last_update
+msgid "Last Modified on"
+msgstr ""
+
+#. module: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__write_uid
+msgid "Last Updated by"
+msgstr ""
+
+#. module: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__write_date
+msgid "Last Updated on"
+msgstr ""
+
+#. module: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_field_id_model
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_field_id_model
+msgid "Model of the Field to Sort"
+msgstr ""
+
+#. module: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__sequence
+msgid "Sequence"
+msgstr ""
+
+#. module: server_action_sort
+#: model:ir.model,name:server_action_sort.model_ir_actions_server
+msgid "Server Action"
+msgstr ""
+
+#. module: server_action_sort
+#: model:ir.model,name:server_action_sort.model_ir_actions_server_sort_line
+msgid "Server Actions Sort Lines"
+msgstr ""
+
+#. module: server_action_sort
+#: model:ir.model.fields.selection,name:server_action_sort.selection__ir_actions_server__state__sort
+msgid "Sort"
+msgstr ""
+
+#. module: server_action_sort
+#: model_terms:ir.ui.view,arch_db:server_action_sort.view_ir_actions_server_form
+msgid "Sort Options"
+msgstr ""
+
+#. module: server_action_sort
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_line_ids
+#: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_line_ids
+msgid "Sorting Criterias"
+msgstr ""
+
+#. module: server_action_sort
+#. odoo-python
+#: code:addons/server_action_sort/models/ir_actions_server.py:0
+#, python-format
+msgid ""
+"The Action Server %s is not correctly set :\n"
+"No lines defined"
+msgstr ""
+
+#. module: server_action_sort
+#: model:ir.model.fields,help:server_action_sort.field_ir_actions_server__state
+#: model:ir.model.fields,help:server_action_sort.field_ir_cron__state
+msgid ""
+"Type of server action. The following values are available:\n"
+"- 'Execute Python Code': a block of python code that will be executed\n"
+"- 'Create a new Record': create a new record with new values\n"
+"- 'Update a Record': update the values of a record\n"
+"- 'Execute several actions': define an action that triggers several other server actions\n"
+"- 'Send Email': post a message, a note or send an email (Discuss)\n"
+"- 'Add Followers': add followers to a record (Discuss)\n"
+"- 'Create Next Activity': create an activity (Discuss)\n"
+"- 'Send SMS Text Message': send SMS, log them on documents (SMS)"
+msgstr ""
+
+#. module: server_action_sort
+#. odoo-python
+#: code:addons/server_action_sort/models/ir_actions_server.py:0
+#, python-format
+msgid ""
+"You can not run this Action Server that way.\n"
+" Please use contextual 'Action' menu."
+msgstr ""
diff --git a/server_action_sort/models/__init__.py b/server_action_sort/models/__init__.py
new file mode 100644
index 000000000..7a4e06cef
--- /dev/null
+++ b/server_action_sort/models/__init__.py
@@ -0,0 +1,2 @@
+from . import ir_actions_server
+from . import ir_actions_server_sort_line
diff --git a/server_action_sort/models/ir_actions_server.py b/server_action_sort/models/ir_actions_server.py
new file mode 100644
index 000000000..3874273a1
--- /dev/null
+++ b/server_action_sort/models/ir_actions_server.py
@@ -0,0 +1,66 @@
+# Copyright (C) 2020 - 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).
+
+from odoo import _, fields, models
+from odoo.exceptions import UserError
+
+
+class IrActionsServer(models.Model):
+ _inherit = "ir.actions.server"
+
+ state = fields.Selection(
+ selection_add=[("sort", "Sort")], ondelete={"sort": "set default"}
+ )
+
+ sort_line_ids = fields.One2many(
+ comodel_name="ir.actions.server.sort.line",
+ inverse_name="action_id",
+ string="Sorting Criterias",
+ )
+
+ sort_field_id = fields.Many2one(
+ comodel_name="ir.model.fields",
+ string="Field to Sort",
+ domain="[('model_id', '=', model_id), ('ttype', '=', 'one2many')]",
+ )
+
+ sort_field_id_model = fields.Char(
+ string="Model of the Field to Sort", related="sort_field_id.relation"
+ )
+
+ def _run_action_sort_multi(self, eval_context=None):
+ self.ensure_one()
+ if len(self.sort_line_ids) == 0:
+ raise UserError(
+ _("The Action Server %s is not correctly set :\n" "No lines defined")
+ % (self.name)
+ )
+
+ if eval_context is None:
+ raise UserError(
+ _(
+ "You can not run this Action Server that way.\n"
+ " Please use contextual 'Action' menu."
+ )
+ )
+
+ order_list = []
+ for line in self.sort_line_ids:
+ order_list.append(
+ line.desc and "%s desc" % line.field_id.name or line.field_id.name
+ )
+ order = ", ".join(order_list)
+
+ One2manyModel = self.env[self.sort_field_id_model]
+ parent_field = self.sort_field_id.relation_field
+
+ for item in eval_context["records"]:
+ # DB Query sort by the correct order
+ lines = One2manyModel.search([(parent_field, "=", item.id)], order=order)
+
+ # Write new sequence to sort lines
+ sequence = 1
+ for line in lines:
+ line.sequence = sequence
+ sequence += 1
diff --git a/server_action_sort/models/ir_actions_server_sort_line.py b/server_action_sort/models/ir_actions_server_sort_line.py
new file mode 100644
index 000000000..c01bb6573
--- /dev/null
+++ b/server_action_sort/models/ir_actions_server_sort_line.py
@@ -0,0 +1,31 @@
+# Copyright (C) 2020 - 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).
+
+from odoo import fields, models
+
+
+class IrActionsServerNavigateLine(models.Model):
+ _name = "ir.actions.server.sort.line"
+ _description = "Server Actions Sort Lines"
+ _order = "sequence"
+
+ sequence = fields.Integer()
+
+ action_id = fields.Many2one(
+ comodel_name="ir.actions.server",
+ string="Action",
+ required=True,
+ ondelete="cascade",
+ )
+
+ field_id = fields.Many2one(
+ comodel_name="ir.model.fields",
+ required=True,
+ domain="[('model', '=', parent.sort_field_id_model)]",
+ ondelete="cascade",
+ )
+
+ field_name = fields.Char(string="Field Name", related="field_id.name", store=True)
+
+ desc = fields.Boolean(string="Inverse Order")
diff --git a/server_action_sort/readme/CONFIGURE.rst b/server_action_sort/readme/CONFIGURE.rst
new file mode 100644
index 000000000..60b5b7120
--- /dev/null
+++ b/server_action_sort/readme/CONFIGURE.rst
@@ -0,0 +1,20 @@
+* Go to 'Setting / Technical / Actions / Server Actions'
+
+* Create a new item
+
+.. figure:: ../static/description/ir_actions_server_form.png
+
+* Set a name that will be used for the Contextual Action
+
+* choose a model
+
+* Select 'Sort' option in the field 'Action To Do'
+
+* Then, select a field to sort of this model. It should be a ``one2many`` field.
+
+* Select then the criterias used to sort the selected field.
+
+
+**Extra options**
+
+* you can define groups whose members will have access to that option.
diff --git a/server_action_sort/readme/CONTRIBUTORS.rst b/server_action_sort/readme/CONTRIBUTORS.rst
new file mode 100644
index 000000000..e1525ce04
--- /dev/null
+++ b/server_action_sort/readme/CONTRIBUTORS.rst
@@ -0,0 +1 @@
+* Sylvain LE GAL (https://www.twitter.com/legalsylvain)
diff --git a/server_action_sort/readme/DESCRIPTION.rst b/server_action_sort/readme/DESCRIPTION.rst
new file mode 100644
index 000000000..56a9d339a
--- /dev/null
+++ b/server_action_sort/readme/DESCRIPTION.rst
@@ -0,0 +1,5 @@
+This module provides a generic tools to have the possibility to sort the lines
+of a list of items.
+
+For exemple, if you use the sale module, you can want to reorder the sale
+order lines, by any criterias.
diff --git a/server_action_sort/readme/ROADMAP.rst b/server_action_sort/readme/ROADMAP.rst
new file mode 100644
index 000000000..00645b1ac
--- /dev/null
+++ b/server_action_sort/readme/ROADMAP.rst
@@ -0,0 +1,3 @@
+For instance, the module allow to order with many criterias, but
+without "dot" notation : it is not possible to order sale order lines
+by ``product_id.seller_ids.code`` for exemple.
diff --git a/server_action_sort/readme/USAGE.rst b/server_action_sort/readme/USAGE.rst
new file mode 100644
index 000000000..86cd4fdf6
--- /dev/null
+++ b/server_action_sort/readme/USAGE.rst
@@ -0,0 +1,18 @@
+* Go to a tree view, for a model for which you have defined a 'Sort' action.
+
+* Select some items you want to reorder.
+
+* click on 'Action' Button
+
+.. figure:: ../static/description/sale_order_tree.png
+
+
+* then click on the name of the configured Action and see the results
+
+**Before**
+
+.. figure:: ../static/description/sale_order_form_before.png
+
+**After**
+
+.. figure:: ../static/description/sale_order_form_after.png
diff --git a/server_action_sort/security/ir.model.access.csv b/server_action_sort/security/ir.model.access.csv
new file mode 100644
index 000000000..2f38a0454
--- /dev/null
+++ b/server_action_sort/security/ir.model.access.csv
@@ -0,0 +1,3 @@
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+ir_actions_server_sort_line_all,ir_actions_server_sort_line_all,model_ir_actions_server_sort_line,,1,0,0,0
+ir_actions_server_sort_line_group_system,ir_actions_server_sort_line_group_system,model_ir_actions_server_sort_line,base.group_system,1,1,1,1
diff --git a/server_action_sort/static/description/icon.png b/server_action_sort/static/description/icon.png
new file mode 100644
index 000000000..3a0328b51
Binary files /dev/null and b/server_action_sort/static/description/icon.png differ
diff --git a/server_action_sort/static/description/index.html b/server_action_sort/static/description/index.html
new file mode 100644
index 000000000..e0ddfb730
--- /dev/null
+++ b/server_action_sort/static/description/index.html
@@ -0,0 +1,478 @@
+
+
+
+
+
+
+Server Actions - Mass Sort Lines
+
+
+
+
+
Server Actions - Mass Sort Lines
+
+
+
+
This module provides a generic tools to have the possibility to sort the lines
+of a list of items.
+
For exemple, if you use the sale module, you can want to reorder the sale
+order lines, by any criterias.
+
Table of contents
+
+
+
+
+- Go to ‘Setting / Technical / Actions / Server Actions’
+- Create a new item
+
+
+
+- Set a name that will be used for the Contextual Action
+- choose a model
+- Select ‘Sort’ option in the field ‘Action To Do’
+- Then, select a field to sort of this model. It should be a one2many field.
+- Select then the criterias used to sort the selected field.
+
+
Extra options
+
+- you can define groups whose members will have access to that option.
+
+
+
+
+
+- Go to a tree view, for a model for which you have defined a ‘Sort’ action.
+- Select some items you want to reorder.
+- click on ‘Action’ Button
+
+
+
+- then click on the name of the configured Action and see the results
+
+
Before
+
+
After
+
+
+
+
+
For instance, the module allow to order with many criterias, but
+without “dot” notation : it is not possible to order sale order lines
+by product_id.seller_ids.code for exemple.
+
+
+
+
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 to smash it by providing a detailed and welcomed
+feedback.
+
Do not contact contributors directly about support or help with technical issues.
+
+
+
+
+
+
+
+
This module is maintained by the OCA.
+
+
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.
+
Current maintainer:
+
+
This module is part of the OCA/server-backend project on GitHub.
+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
+
+
+
+
+
diff --git a/server_action_sort/static/description/ir_actions_server_form.png b/server_action_sort/static/description/ir_actions_server_form.png
new file mode 100644
index 000000000..015a626e3
Binary files /dev/null and b/server_action_sort/static/description/ir_actions_server_form.png differ
diff --git a/server_action_sort/static/description/sale_order_form_after.png b/server_action_sort/static/description/sale_order_form_after.png
new file mode 100644
index 000000000..85da92483
Binary files /dev/null and b/server_action_sort/static/description/sale_order_form_after.png differ
diff --git a/server_action_sort/static/description/sale_order_form_before.png b/server_action_sort/static/description/sale_order_form_before.png
new file mode 100644
index 000000000..f53471a32
Binary files /dev/null and b/server_action_sort/static/description/sale_order_form_before.png differ
diff --git a/server_action_sort/static/description/sale_order_tree.png b/server_action_sort/static/description/sale_order_tree.png
new file mode 100644
index 000000000..a5bee7203
Binary files /dev/null and b/server_action_sort/static/description/sale_order_tree.png differ
diff --git a/server_action_sort/tests/__init__.py b/server_action_sort/tests/__init__.py
new file mode 100644
index 000000000..d9b96c4fa
--- /dev/null
+++ b/server_action_sort/tests/__init__.py
@@ -0,0 +1 @@
+from . import test_module
diff --git a/server_action_sort/tests/test_module.py b/server_action_sort/tests/test_module.py
new file mode 100644
index 000000000..0c2f3de0b
--- /dev/null
+++ b/server_action_sort/tests/test_module.py
@@ -0,0 +1,25 @@
+# Copyright (C) 2020 - 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).
+
+from odoo.tests.common import TransactionCase
+
+
+class TestModule(TransactionCase):
+ def setUp(self):
+ super().setUp()
+ self.action_server = self.env.ref("server_action_sort.sort_action_server_lines")
+ self.line_1 = self.env.ref("server_action_sort.sort_action_server_lines_line_1")
+ self.line_2 = self.env.ref("server_action_sort.sort_action_server_lines_line_2")
+
+ def test_action_result(self):
+ self.assertEqual(self.line_1.sequence, 1)
+ self.assertEqual(self.line_2.sequence, 2)
+
+ # Reorder lines
+ self.action_server.with_context(
+ active_model="ir.actions.server", active_ids=[self.action_server.id]
+ ).run()
+
+ self.assertEqual(self.line_1.sequence, 2)
+ self.assertEqual(self.line_2.sequence, 1)
diff --git a/server_action_sort/views/view_ir_actions_server.xml b/server_action_sort/views/view_ir_actions_server.xml
new file mode 100644
index 000000000..124e7382d
--- /dev/null
+++ b/server_action_sort/views/view_ir_actions_server.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+ ir.actions.server
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/setup/_metapackage/VERSION.txt b/setup/_metapackage/VERSION.txt
index 5aaaf2459..b90109d6c 100644
--- a/setup/_metapackage/VERSION.txt
+++ b/setup/_metapackage/VERSION.txt
@@ -1 +1 @@
-16.0.20230821.0
\ No newline at end of file
+16.0.20240309.1
\ No newline at end of file
diff --git a/setup/_metapackage/setup.py b/setup/_metapackage/setup.py
index 8a4da23d3..4a537af27 100644
--- a/setup/_metapackage/setup.py
+++ b/setup/_metapackage/setup.py
@@ -13,11 +13,13 @@
'odoo-addon-base_external_dbsource_sqlite>=16.0dev,<16.1dev',
'odoo-addon-base_external_system>=16.0dev,<16.1dev',
'odoo-addon-base_global_discount>=16.0dev,<16.1dev',
+ 'odoo-addon-base_group_backend>=16.0dev,<16.1dev',
'odoo-addon-base_import_match>=16.0dev,<16.1dev',
'odoo-addon-base_portal_type>=16.0dev,<16.1dev',
'odoo-addon-base_user_role>=16.0dev,<16.1dev',
'odoo-addon-base_user_role_company>=16.0dev,<16.1dev',
'odoo-addon-base_user_role_history>=16.0dev,<16.1dev',
+ 'odoo-addon-server_action_sort>=16.0dev,<16.1dev',
],
classifiers=[
'Programming Language :: Python',
diff --git a/setup/base_group_backend/odoo/addons/base_group_backend b/setup/base_group_backend/odoo/addons/base_group_backend
new file mode 120000
index 000000000..997602481
--- /dev/null
+++ b/setup/base_group_backend/odoo/addons/base_group_backend
@@ -0,0 +1 @@
+../../../../base_group_backend
\ No newline at end of file
diff --git a/setup/base_group_backend/setup.py b/setup/base_group_backend/setup.py
new file mode 100644
index 000000000..28c57bb64
--- /dev/null
+++ b/setup/base_group_backend/setup.py
@@ -0,0 +1,6 @@
+import setuptools
+
+setuptools.setup(
+ setup_requires=['setuptools-odoo'],
+ odoo_addon=True,
+)
diff --git a/setup/server_action_sort/odoo/addons/server_action_sort b/setup/server_action_sort/odoo/addons/server_action_sort
new file mode 120000
index 000000000..34b0f0e8e
--- /dev/null
+++ b/setup/server_action_sort/odoo/addons/server_action_sort
@@ -0,0 +1 @@
+../../../../server_action_sort
\ No newline at end of file
diff --git a/setup/server_action_sort/setup.py b/setup/server_action_sort/setup.py
new file mode 100644
index 000000000..28c57bb64
--- /dev/null
+++ b/setup/server_action_sort/setup.py
@@ -0,0 +1,6 @@
+import setuptools
+
+setuptools.setup(
+ setup_requires=['setuptools-odoo'],
+ odoo_addon=True,
+)