From 41c0290f94847f43a20ed8189a74885f149384fc Mon Sep 17 00:00:00 2001
From: Benoit Aimont
Date: Mon, 30 Sep 2019 12:02:31 +0200
Subject: [PATCH 01/13] [9.0][ADD] - base_user_role_history
---
base_user_role_history/README.rst | 97 ++++
base_user_role_history/__init__.py | 1 +
base_user_role_history/__openerp__.py | 30 ++
.../i18n/base_user_role_history.pot | 169 +++++++
base_user_role_history/i18n/fr.po | 170 +++++++
base_user_role_history/i18n/fr_BE.po | 170 +++++++
base_user_role_history/models/__init__.py | 2 +
.../models/base_user_role_line_history.py | 145 ++++++
base_user_role_history/models/res_users.py | 75 +++
.../readme/CONTRIBUTORS.rst | 2 +
base_user_role_history/readme/DESCRIPTION.rst | 4 +
base_user_role_history/readme/ROADMAP.rst | 3 +
base_user_role_history/readme/USAGE.rst | 1 +
.../security/base_user_role_line_history.xml | 17 +
.../static/description/index.html | 437 ++++++++++++++++++
base_user_role_history/tests/__init__.py | 1 +
.../tests/test_base_user_role_history.py | 160 +++++++
.../views/base_user_role_line_history.xml | 89 ++++
base_user_role_history/views/res_users.xml | 29 ++
19 files changed, 1602 insertions(+)
create mode 100644 base_user_role_history/README.rst
create mode 100644 base_user_role_history/__init__.py
create mode 100644 base_user_role_history/__openerp__.py
create mode 100644 base_user_role_history/i18n/base_user_role_history.pot
create mode 100644 base_user_role_history/i18n/fr.po
create mode 100644 base_user_role_history/i18n/fr_BE.po
create mode 100644 base_user_role_history/models/__init__.py
create mode 100644 base_user_role_history/models/base_user_role_line_history.py
create mode 100644 base_user_role_history/models/res_users.py
create mode 100644 base_user_role_history/readme/CONTRIBUTORS.rst
create mode 100644 base_user_role_history/readme/DESCRIPTION.rst
create mode 100644 base_user_role_history/readme/ROADMAP.rst
create mode 100644 base_user_role_history/readme/USAGE.rst
create mode 100644 base_user_role_history/security/base_user_role_line_history.xml
create mode 100644 base_user_role_history/static/description/index.html
create mode 100644 base_user_role_history/tests/__init__.py
create mode 100644 base_user_role_history/tests/test_base_user_role_history.py
create mode 100644 base_user_role_history/views/base_user_role_line_history.xml
create mode 100644 base_user_role_history/views/res_users.xml
diff --git a/base_user_role_history/README.rst b/base_user_role_history/README.rst
new file mode 100644
index 00000000..369df50b
--- /dev/null
+++ b/base_user_role_history/README.rst
@@ -0,0 +1,97 @@
+======================
+Base User Role History
+======================
+
+.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! This file is generated by oca-gen-addon-readme !!
+ !! changes will be overwritten. !!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+.. |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--tools-lightgray.png?logo=github
+ :target: https://github.com/OCA/server-tools/tree/9.0/base_user_role_history
+ :alt: OCA/server-tools
+.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
+ :target: https://translation.odoo-community.org/projects/server-tools-9-0/server-tools-9-0-base_user_role_history
+ :alt: Translate me on Weblate
+.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
+ :target: https://runbot.odoo-community.org/runbot/149/9.0
+ :alt: Try me on Runbot
+
+|badge1| |badge2| |badge3| |badge4| |badge5|
+
+This addon provides history for roles modifications on users.
+Each time a role is added/updated/unlinked on a user, a new role history line
+is created mentioning what changes were made and who made them.
+Theses informations are directly accessible from users via a smart button.
+
+**Table of contents**
+
+.. contents::
+ :local:
+
+Usage
+=====
+
+Changes on user roles are easily accessible via a button on user form view.
+
+Known issues / Roadmap
+======================
+
+Since roles on role history line have 'cascade' ondelete, role deletion leads
+to role history line deletion. In order to keep history even in the case of
+a role deletion, module could be upgraded.
+
+Bug Tracker
+===========
+
+Bugs are tracked on `GitHub Issues `_.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us smashing it by providing a detailed and welcomed
+`feedback `_.
+
+Do not contact contributors directly about support or help with technical issues.
+
+Credits
+=======
+
+Authors
+~~~~~~~
+
+* ACSONE SA/NV
+
+Contributors
+~~~~~~~~~~~~
+
+* Benoit Aimont (https://acsone.eu)
+* Thomas Binsfeld (https://acsone.eu)
+
+Maintainers
+~~~~~~~~~~~
+
+This module is maintained by the OCA.
+
+.. image:: https://odoo-community.org/logo.png
+ :alt: Odoo Community Association
+ :target: https://odoo-community.org
+
+OCA, or the Odoo Community Association, is a nonprofit organization whose
+mission is to support the collaborative development of Odoo features and
+promote its widespread use.
+
+.. |maintainer-ThomasBinsfeld| image:: https://github.com/ThomasBinsfeld.png?size=40px
+ :target: https://github.com/ThomasBinsfeld
+ :alt: ThomasBinsfeld
+
+Current `maintainer `__:
+
+|maintainer-ThomasBinsfeld|
+
+This module is part of the `OCA/server-tools `_ project on GitHub.
+
+You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/base_user_role_history/__init__.py b/base_user_role_history/__init__.py
new file mode 100644
index 00000000..0650744f
--- /dev/null
+++ b/base_user_role_history/__init__.py
@@ -0,0 +1 @@
+from . import models
diff --git a/base_user_role_history/__openerp__.py b/base_user_role_history/__openerp__.py
new file mode 100644
index 00000000..60c033a4
--- /dev/null
+++ b/base_user_role_history/__openerp__.py
@@ -0,0 +1,30 @@
+# -*- coding: utf-8 -*-
+# Copyright 2019 ACSONE SA/NV
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+{
+ 'name': 'Base User Role History',
+ 'summary': """
+ This module allows to track the changes on users roles.""",
+ 'version': '9.0.1.0.0',
+ 'license': 'AGPL-3',
+ 'author': 'ACSONE SA/NV, '
+ 'Odoo Community Association (OCA)',
+ 'website': 'https://github.com/OCA/server-tools',
+ 'depends': [
+ # Odoo
+ 'mail',
+ # OCA
+ 'base_user_role',
+ 'base_suspend_security',
+ ],
+ 'data': [
+ 'security/base_user_role_line_history.xml',
+ 'views/base_user_role_line_history.xml',
+ 'views/res_users.xml',
+ ],
+ 'development_status': 'Beta',
+ 'maintainers': [
+ 'ThomasBinsfeld'
+ ],
+}
diff --git a/base_user_role_history/i18n/base_user_role_history.pot b/base_user_role_history/i18n/base_user_role_history.pot
new file mode 100644
index 00000000..dbf1e4c9
--- /dev/null
+++ b/base_user_role_history/i18n/base_user_role_history.pot
@@ -0,0 +1,169 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * base_user_role_history
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 9.0c\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-09-30 11:50+0000\n"
+"PO-Revision-Date: 2019-09-30 11:50+0000\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_user_role_history
+#: model:ir.ui.view,arch_db:base_user_role_history.res_users_form_view
+msgid "Last update of roles"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_performed_action
+#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_search_view
+msgid "Action"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_new_is_enabled
+msgid "Active after edit"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_old_is_enabled
+msgid "Active before edit"
+msgstr ""
+
+#. module: base_user_role_history
+#: selection:base.user.role.line.history,performed_action:0
+msgid "Add"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_create_uid
+msgid "Created by"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_create_date
+msgid "Created on"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_form_view
+#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_tree_view
+msgid "Date and time of edition"
+msgstr ""
+
+#. module: base_user_role_history
+#: selection:base.user.role.line.history,performed_action:0
+msgid "Delete"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_display_name
+msgid "Display Name"
+msgstr ""
+
+#. module: base_user_role_history
+#: selection:base.user.role.line.history,performed_action:0
+msgid "Edit"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_form_view
+msgid "Edited user"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_form_view
+#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_tree_view
+msgid "Editor"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_search_view
+msgid "Group By"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model,name:base_user_role_history.model_base_user_role_line_history
+msgid "History of user roles"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_id
+msgid "ID"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history___last_update
+msgid "Last Modified on"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_write_uid
+msgid "Last Updated by"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_write_date
+msgid "Last Updated on"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_res_users_last_role_line_modification
+msgid "Last roles modification"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_new_date_to
+msgid "New end date"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_new_role_id
+#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_search_view
+msgid "New role"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_new_date_from
+msgid "New start date"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_old_date_to
+msgid "Old end date"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_old_role_id
+#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_search_view
+msgid "Old role"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_old_date_from
+msgid "Old start date"
+msgstr ""
+
+#. module: base_user_role_history
+#: code:addons/base_user_role_history/models/res_users.py:70
+#: model:ir.ui.view,arch_db:base_user_role_history.res_users_form_view
+#, python-format
+msgid "Roles history"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_user_id
+msgid "User"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model,name:base_user_role_history.model_res_users
+msgid "Users"
+msgstr ""
+
diff --git a/base_user_role_history/i18n/fr.po b/base_user_role_history/i18n/fr.po
new file mode 100644
index 00000000..39fbe849
--- /dev/null
+++ b/base_user_role_history/i18n/fr.po
@@ -0,0 +1,170 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * base_user_role_history
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 9.0c\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-09-30 11:51+0000\n"
+"PO-Revision-Date: 2019-09-30 11:51+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: base_user_role_history
+#: model:ir.ui.view,arch_db:base_user_role_history.res_users_form_view
+msgid "Last update of roles"
+msgstr "Dernière modification des rôles"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_performed_action
+#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_search_view
+msgid "Action"
+msgstr "Action"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_new_is_enabled
+msgid "Active after edit"
+msgstr "Actif après édition"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_old_is_enabled
+msgid "Active before edit"
+msgstr "Actif avant édition"
+
+#. module: base_user_role_history
+#: selection:base.user.role.line.history,performed_action:0
+msgid "Add"
+msgstr "Ajouter"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_create_uid
+msgid "Created by"
+msgstr "Créé par"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_create_date
+msgid "Created on"
+msgstr "Créé le"
+
+#. module: base_user_role_history
+#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_form_view
+#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_tree_view
+msgid "Date and time of edition"
+msgstr "Date et heure de modification"
+
+#. module: base_user_role_history
+#: selection:base.user.role.line.history,performed_action:0
+msgid "Delete"
+msgstr "Supprimer"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_display_name
+msgid "Display Name"
+msgstr "Nom affiché"
+
+#. module: base_user_role_history
+#: selection:base.user.role.line.history,performed_action:0
+msgid "Edit"
+msgstr "Modifier"
+
+#. module: base_user_role_history
+#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_form_view
+msgid "Edited user"
+msgstr "Utilisateur modifié"
+
+#. module: base_user_role_history
+#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_form_view
+#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_tree_view
+msgid "Editor"
+msgstr "Utilisateur modificateur"
+
+#. module: base_user_role_history
+#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_search_view
+msgid "Group By"
+msgstr "Regrouper par"
+
+#. module: base_user_role_history
+#: model:ir.model,name:base_user_role_history.model_base_user_role_line_history
+msgid "History of user roles"
+msgstr "Historique des rôles de l'utilisateur"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_id
+msgid "ID"
+msgstr "ID"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history___last_update
+msgid "Last Modified on"
+msgstr "Dernière modification le"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_write_uid
+msgid "Last Updated by"
+msgstr "Mis à jour par"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_write_date
+msgid "Last Updated on"
+msgstr "Mis à jour le"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_res_users_last_role_line_modification
+msgid "Last roles modification"
+msgstr "Dernière modification des rôles"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_new_date_to
+msgid "New end date"
+msgstr "Nouvelle date de fin"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_new_role_id
+#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_search_view
+msgid "New role"
+msgstr "Nouveau rôle"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_new_date_from
+msgid "New start date"
+msgstr "Nouvelle date de début"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_old_date_to
+msgid "Old end date"
+msgstr "Ancienne date de fin"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_old_role_id
+#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_search_view
+msgid "Old role"
+msgstr "Ancien rôle"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_old_date_from
+msgid "Old start date"
+msgstr "Ancienne date de début"
+
+#. module: base_user_role_history
+#: code:addons/base_user_role_history/models/res_users.py:70
+#: model:ir.ui.view,arch_db:base_user_role_history.res_users_form_view
+#, python-format
+msgid "Roles history"
+msgstr "Historique des rôles"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_user_id
+msgid "User"
+msgstr "Utilisateur"
+
+#. module: base_user_role_history
+#: model:ir.model,name:base_user_role_history.model_res_users
+msgid "Users"
+msgstr "Utilisateurs"
+
diff --git a/base_user_role_history/i18n/fr_BE.po b/base_user_role_history/i18n/fr_BE.po
new file mode 100644
index 00000000..457621b4
--- /dev/null
+++ b/base_user_role_history/i18n/fr_BE.po
@@ -0,0 +1,170 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * base_user_role_history
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 9.0c\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-09-30 11:50+0000\n"
+"PO-Revision-Date: 2019-09-30 11:50+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"Language: fr_BE\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: base_user_role_history
+#: model:ir.ui.view,arch_db:base_user_role_history.res_users_form_view
+msgid "Last update of roles"
+msgstr "Dernière modification des rôles"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_performed_action
+#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_search_view
+msgid "Action"
+msgstr "Action"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_new_is_enabled
+msgid "Active after edit"
+msgstr "Actif après édition"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_old_is_enabled
+msgid "Active before edit"
+msgstr "Actif avant édition"
+
+#. module: base_user_role_history
+#: selection:base.user.role.line.history,performed_action:0
+msgid "Add"
+msgstr "Ajouter"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_create_uid
+msgid "Created by"
+msgstr "Créé par"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_create_date
+msgid "Created on"
+msgstr "Créé le"
+
+#. module: base_user_role_history
+#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_form_view
+#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_tree_view
+msgid "Date and time of edition"
+msgstr "Date et heure de modification"
+
+#. module: base_user_role_history
+#: selection:base.user.role.line.history,performed_action:0
+msgid "Delete"
+msgstr "Supprimer"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_display_name
+msgid "Display Name"
+msgstr "Nom affiché"
+
+#. module: base_user_role_history
+#: selection:base.user.role.line.history,performed_action:0
+msgid "Edit"
+msgstr "Modifier"
+
+#. module: base_user_role_history
+#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_form_view
+msgid "Edited user"
+msgstr "Utilisateur modifié"
+
+#. module: base_user_role_history
+#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_form_view
+#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_tree_view
+msgid "Editor"
+msgstr "Utilisateur modificateur"
+
+#. module: base_user_role_history
+#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_search_view
+msgid "Group By"
+msgstr "Regrouper par"
+
+#. module: base_user_role_history
+#: model:ir.model,name:base_user_role_history.model_base_user_role_line_history
+msgid "History of user roles"
+msgstr "Historique des rôles de l'utilisateur"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_id
+msgid "ID"
+msgstr "ID"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history___last_update
+msgid "Last Modified on"
+msgstr "Dernière modification le"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_write_uid
+msgid "Last Updated by"
+msgstr "Derniere fois mis à jour par"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_write_date
+msgid "Last Updated on"
+msgstr "Dernière mis à jour le"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_res_users_last_role_line_modification
+msgid "Last roles modification"
+msgstr "Dernière modification des rôles"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_new_date_to
+msgid "New end date"
+msgstr "Nouvelle date de fin"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_new_role_id
+#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_search_view
+msgid "New role"
+msgstr "Nouveau rôle"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_new_date_from
+msgid "New start date"
+msgstr "Nouvelle date de début"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_old_date_to
+msgid "Old end date"
+msgstr "Ancienne date de fin"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_old_role_id
+#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_search_view
+msgid "Old role"
+msgstr "Ancien rôle"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_old_date_from
+msgid "Old start date"
+msgstr "Ancienne date de début"
+
+#. module: base_user_role_history
+#: code:addons/base_user_role_history/models/res_users.py:70
+#: model:ir.ui.view,arch_db:base_user_role_history.res_users_form_view
+#, python-format
+msgid "Roles history"
+msgstr "Historique des rôles"
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_user_id
+msgid "User"
+msgstr "Utilisateur"
+
+#. module: base_user_role_history
+#: model:ir.model,name:base_user_role_history.model_res_users
+msgid "Users"
+msgstr "Utilisateurs"
+
diff --git a/base_user_role_history/models/__init__.py b/base_user_role_history/models/__init__.py
new file mode 100644
index 00000000..9ce69302
--- /dev/null
+++ b/base_user_role_history/models/__init__.py
@@ -0,0 +1,2 @@
+from . import res_users
+from . import base_user_role_line_history
diff --git a/base_user_role_history/models/base_user_role_line_history.py b/base_user_role_history/models/base_user_role_line_history.py
new file mode 100644
index 00000000..f89c2b85
--- /dev/null
+++ b/base_user_role_history/models/base_user_role_line_history.py
@@ -0,0 +1,145 @@
+# -*- coding: utf-8 -*-
+# Copyright 2019 ACSONE SA/NV
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+from openerp import api, fields, models
+
+
+class BaseUserRoleLineHistory(models.Model):
+ _name = 'base.user.role.line.history'
+ _description = "History of user roles"
+ _order = 'id desc'
+
+ performed_action = fields.Selection(
+ string="Action",
+ selection=[
+ ('add', 'Add'),
+ ('unlink', 'Delete'),
+ ('edit', 'Edit')
+ ],
+ required=True,
+ readonly=True,
+ )
+ user_id = fields.Many2one(
+ string="User",
+ comodel_name='res.users',
+ ondelete='cascade',
+ readonly=True,
+ index=True,
+ )
+ old_role_id = fields.Many2one(
+ string="Old role",
+ comodel_name='res.users.role',
+ ondelete='cascade',
+ readonly=True,
+ index=True,
+ )
+ new_role_id = fields.Many2one(
+ string="New role",
+ comodel_name='res.users.role',
+ ondelete='cascade',
+ readonly=True,
+ index=True,
+ )
+ old_date_from = fields.Date(
+ string="Old start date",
+ readonly=True,
+ )
+ new_date_from = fields.Date(
+ string="New start date",
+ readonly=True,
+ )
+ old_date_to = fields.Date(
+ string="Old end date",
+ readonly=True,
+ )
+ new_date_to = fields.Date(
+ string="New end date",
+ readonly=True,
+ )
+ old_is_enabled = fields.Boolean(
+ string="Active before edit",
+ readonly=True,
+ )
+ new_is_enabled = fields.Boolean(
+ string="Active after edit",
+ readonly=True,
+ )
+
+ @api.model
+ def _prepare_create_from_vals(
+ self,
+ old_role_line_values_by_user,
+ new_role_line_values_by_user
+ ):
+ role_history_line_vals_by_role_line = {}
+ for key, value in new_role_line_values_by_user.items():
+ old_vals = old_role_line_values_by_user.get(key, {})
+ new_vals = value
+ # Manage deletion of role lines and old values of modified lines
+ for role_line_id, role_line_vals in old_vals.items():
+ action = 'unlink' if role_line_id not in new_vals else 'edit'
+ if action == 'edit':
+ # Skip if no change
+ if not any(
+ role_line_vals[k] != new_vals[role_line_id][k]
+ for k in role_line_vals
+ ):
+ continue
+ role_history_line_vals_by_role_line.setdefault(
+ role_line_id, {}
+ )
+ role_history_line_vals_by_role_line[role_line_id].update({
+ 'performed_action': action,
+ 'user_id': role_line_vals['user_id'],
+ 'old_role_id': role_line_vals['role_id'],
+ 'old_date_from': role_line_vals['date_from'],
+ 'old_date_to': role_line_vals['date_to'],
+ 'old_is_enabled': role_line_vals['is_enabled'],
+ })
+ # Manage addition of role lines and new values of modified ones
+ for role_line_id, role_line_vals in new_vals.items():
+ action = 'add' if role_line_id not in old_vals else 'edit'
+ if action == 'edit':
+ # Skip if no change
+ if not any(
+ role_line_vals[k] != old_vals[role_line_id][k]
+ for k in role_line_vals
+ ):
+ continue
+ role_history_line_vals_by_role_line.setdefault(
+ role_line_id, {}
+ )
+ role_history_line_vals_by_role_line[role_line_id].update({
+ 'performed_action': action,
+ 'user_id': role_line_vals['user_id'],
+ 'new_role_id': role_line_vals['role_id'],
+ 'new_date_from': role_line_vals['date_from'],
+ 'new_date_to': role_line_vals['date_to'],
+ 'new_is_enabled': role_line_vals['is_enabled'],
+ })
+ return role_history_line_vals_by_role_line
+
+ @api.model
+ def create_from_vals(
+ self,
+ old_role_line_values_by_user,
+ new_role_line_values_by_user
+ ):
+ """
+ This method creates user role line history objects based on given
+ old/new values.
+ old_role_line_values_by_user and new_role_line_values_by_user are like:
+ {user_id:
+ {role_line_id:
+ {role_line_values},
+ },
+ }
+ """
+ role_history_line_vals_by_role_line = self._prepare_create_from_vals(
+ old_role_line_values_by_user, new_role_line_values_by_user
+ )
+ # Create the history lines with suspend security
+ # (nobody has the create right)
+ for role_history_vals in role_history_line_vals_by_role_line.values():
+ self.suspend_security().create(role_history_vals)
diff --git a/base_user_role_history/models/res_users.py b/base_user_role_history/models/res_users.py
new file mode 100644
index 00000000..5f4dd4ab
--- /dev/null
+++ b/base_user_role_history/models/res_users.py
@@ -0,0 +1,75 @@
+# -*- coding: utf-8 -*-
+# Copyright 2019 ACSONE SA/NV
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+from openerp import api, fields, models, _
+
+
+class ResUsers(models.Model):
+ _inherit = 'res.users'
+
+ last_role_line_modification = fields.Datetime(
+ string="Last roles modification",
+ readonly=True,
+ )
+
+ @api.model
+ def _prepare_role_line_history_dict(self, role_line):
+ return {
+ 'user_id': role_line.user_id.id,
+ 'role_id': role_line.role_id.id,
+ 'date_from': fields.Date.from_string(role_line.date_from),
+ 'date_to': fields.Date.from_string(role_line.date_to),
+ 'is_enabled': role_line.is_enabled,
+ }
+
+ @api.multi
+ def _get_role_line_values_by_user(self):
+ role_line_values_by_user = {}
+ for rec in self:
+ role_line_values_by_user.setdefault(rec, {})
+ for role_line in rec.role_line_ids:
+ role_line_values_by_user[rec][role_line.id] = \
+ self._prepare_role_line_history_dict(role_line)
+ return role_line_values_by_user
+
+ @api.model
+ def create(self, vals):
+ res = super(ResUsers, self).create(vals)
+ if 'role_line_ids' not in vals:
+ return res
+ new_role_line_values_by_user = res._get_role_line_values_by_user()
+ self.env['base.user.role.line.history'].create_from_vals(
+ {},
+ new_role_line_values_by_user
+ )
+ res.last_role_line_modification = fields.Datetime.now()
+ return res
+
+ @api.multi
+ def write(self, vals):
+ if 'role_line_ids' not in vals:
+ return super(ResUsers, self).write(vals)
+ old_role_line_values_by_user = self._get_role_line_values_by_user()
+ res = super(ResUsers, self).write(vals)
+ new_role_line_values_by_user = self._get_role_line_values_by_user()
+ self.env['base.user.role.line.history'].create_from_vals(
+ old_role_line_values_by_user,
+ new_role_line_values_by_user
+ )
+ self.write({
+ 'last_role_line_modification': fields.Datetime.now()
+ })
+ return res
+
+ @api.multi
+ def show_role_lines_history(self): # pragma: no cover
+ self.ensure_one()
+ domain = [('user_id', '=', self.id)]
+ return {
+ 'name': _("Roles history"),
+ 'type': 'ir.actions.act_window',
+ 'view_mode': 'tree,form',
+ 'res_model': 'base.user.role.line.history',
+ 'domain': domain,
+ }
diff --git a/base_user_role_history/readme/CONTRIBUTORS.rst b/base_user_role_history/readme/CONTRIBUTORS.rst
new file mode 100644
index 00000000..ce9dedf8
--- /dev/null
+++ b/base_user_role_history/readme/CONTRIBUTORS.rst
@@ -0,0 +1,2 @@
+* Benoit Aimont (https://acsone.eu)
+* Thomas Binsfeld (https://acsone.eu)
diff --git a/base_user_role_history/readme/DESCRIPTION.rst b/base_user_role_history/readme/DESCRIPTION.rst
new file mode 100644
index 00000000..ddc8ccf5
--- /dev/null
+++ b/base_user_role_history/readme/DESCRIPTION.rst
@@ -0,0 +1,4 @@
+This addon provides history for roles modifications on users.
+Each time a role is added/updated/unlinked on a user, a new role history line
+is created mentioning what changes were made and who made them.
+Theses informations are directly accessible from users via a smart button.
diff --git a/base_user_role_history/readme/ROADMAP.rst b/base_user_role_history/readme/ROADMAP.rst
new file mode 100644
index 00000000..620ab933
--- /dev/null
+++ b/base_user_role_history/readme/ROADMAP.rst
@@ -0,0 +1,3 @@
+Since roles on role history line have 'cascade' ondelete, role deletion leads
+to role history line deletion. In order to keep history even in the case of
+a role deletion, module could be upgraded.
diff --git a/base_user_role_history/readme/USAGE.rst b/base_user_role_history/readme/USAGE.rst
new file mode 100644
index 00000000..8c22abc6
--- /dev/null
+++ b/base_user_role_history/readme/USAGE.rst
@@ -0,0 +1 @@
+Changes on user roles are easily accessible via a button on user form view.
diff --git a/base_user_role_history/security/base_user_role_line_history.xml b/base_user_role_history/security/base_user_role_line_history.xml
new file mode 100644
index 00000000..c99c1365
--- /dev/null
+++ b/base_user_role_history/security/base_user_role_line_history.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+ base.user.role.line.history access user
+
+
+
+
+
+
+
+
+
diff --git a/base_user_role_history/static/description/index.html b/base_user_role_history/static/description/index.html
new file mode 100644
index 00000000..ad88ec88
--- /dev/null
+++ b/base_user_role_history/static/description/index.html
@@ -0,0 +1,437 @@
+
+
+
+
+
+
+Base User Role History
+
+
+
+
+
Base User Role History
+
+
+
+
This addon provides history for roles modifications on users.
+Each time a role is added/updated/unlinked on a user, a new role history line
+is created mentioning what changes were made and who made them.
+Theses informations are directly accessible from users via a smart button.
Since roles on role history line have ‘cascade’ ondelete, role deletion leads
+to role history line deletion. In order to keep history even in the case of
+a role deletion, module could be upgraded.
Bugs are tracked on GitHub Issues.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us smashing it by providing a detailed and welcomed
+feedback.
+
Do not contact contributors directly about support or help with technical issues.
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.
+
+
diff --git a/base_user_role_history/tests/__init__.py b/base_user_role_history/tests/__init__.py
new file mode 100644
index 00000000..c9a4ca3c
--- /dev/null
+++ b/base_user_role_history/tests/__init__.py
@@ -0,0 +1 @@
+from . import test_base_user_role_history
diff --git a/base_user_role_history/tests/test_base_user_role_history.py b/base_user_role_history/tests/test_base_user_role_history.py
new file mode 100644
index 00000000..29fa717e
--- /dev/null
+++ b/base_user_role_history/tests/test_base_user_role_history.py
@@ -0,0 +1,160 @@
+# -*- coding: utf-8 -*-
+# Copyright 2019 ACSONE SA/NV
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).µ
+
+from datetime import date, timedelta
+
+from openerp import fields
+from openerp.tests.common import SavepointCase
+
+
+class TestBaseUserRoleHistory(SavepointCase):
+
+ @classmethod
+ def setUpClass(cls):
+ super(TestBaseUserRoleHistory, cls).setUpClass()
+
+ # MODELS
+
+ cls.history_line_model = cls.env['base.user.role.line.history']
+ cls.role_model = cls.env['res.users.role']
+ cls.user_model = cls.env['res.users']
+
+ # INSTANCE
+
+ cls.user_01 = cls.user_model.search([
+ ('id', '!=', cls.env.user.id)
+ ], limit=1)
+ cls.role_01 = cls.role_model.create({
+ 'name': "Role test 01",
+ })
+
+ def test_write_role_lines_on_user(self):
+ """
+ Data :
+ - user with no role
+ Test case :
+ 1) add a role
+ 2) role modification with dates
+ 3) role modification with no change
+ 4) role unlink
+ Expected results :
+ 1) new role history line created with performed_action == 'add'
+ 2) new role history line created with performed_action == 'edit'
+ 3) no new role history line created
+ 4) new role history line created with performed_action == 'unlink'
+ """
+ # 1
+ history_lines_0 = self.history_line_model.search([
+ ('user_id', '=', self.user_01.id)
+ ])
+ self.assertFalse(history_lines_0)
+ self.user_01.write({
+ 'role_line_ids': [
+ (0, 0, {
+ 'role_id': self.role_01.id
+ })
+ ]
+ })
+ history_lines_1 = self.history_line_model.search([
+ ('user_id', '=', self.user_01.id)
+ ])
+ self.assertTrue(history_lines_1)
+ self.assertEqual(len(history_lines_1), 1)
+ self.assertEqual(history_lines_1.performed_action, 'add')
+ self.assertFalse(history_lines_1.old_role_id)
+ self.assertEqual(history_lines_1.new_role_id, self.role_01)
+ # 2
+ self.user_01.write({
+ 'role_line_ids': [
+ (1, self.user_01.role_line_ids[0].id, {
+ 'date_from': date.today(),
+ 'date_to': date.today() + timedelta(days=5),
+ })
+ ]
+ })
+ history_lines_2 = self.history_line_model.search([
+ ('user_id', '=', self.user_01.id),
+ ('id', 'not in', history_lines_1.ids)
+ ])
+ self.assertTrue(history_lines_2)
+ self.assertEqual(len(history_lines_2), 1)
+ self.assertEqual(history_lines_2.performed_action, 'edit')
+ self.assertEqual(history_lines_2.old_role_id, self.role_01)
+ self.assertEqual(history_lines_2.new_role_id, self.role_01)
+ self.assertFalse(history_lines_2.old_date_from)
+ self.assertEqual(history_lines_2.new_date_from,
+ fields.Date.to_string(date.today()))
+ self.assertFalse(history_lines_2.old_date_to)
+ self.assertEqual(history_lines_2.new_date_to,
+ fields.Date.to_string(
+ date.today() + timedelta(days=5)))
+ self.user_01.write({
+ 'role_line_ids': [(1, self.user_01.role_line_ids[0].id, {})]
+ })
+ history_lines_3 = self.history_line_model.search([
+ ('user_id', '=', self.user_01.id),
+ ('id', 'not in', (history_lines_1 | history_lines_2).ids)
+ ])
+ self.assertFalse(history_lines_3)
+ # 4
+ self.user_01.write({
+ 'role_line_ids': [(2, self.user_01.role_line_ids[0].id, False)],
+ })
+ history_lines_4 = self.history_line_model.search([
+ ('user_id', '=', self.user_01.id),
+ ('id', 'not in', (history_lines_1 | history_lines_2).ids)
+ ])
+ self.assertTrue(history_lines_4)
+ self.assertEqual(len(history_lines_4), 1)
+ self.assertEqual(history_lines_4.performed_action, 'unlink')
+ self.assertEqual(history_lines_4.old_role_id, self.role_01)
+ self.assertFalse(history_lines_4.new_role_id)
+ self.assertEqual(history_lines_4.old_date_from,
+ fields.Date.to_string(date.today()))
+ self.assertFalse(history_lines_4.new_date_from)
+ self.assertEqual(history_lines_4.old_date_to,
+ fields.Date.to_string(
+ date.today() + timedelta(days=5)))
+ self.assertFalse(history_lines_4.new_date_to)
+
+ def test_create_role_lines_on_new_user(self):
+ """
+ Data : /
+ Test case :
+ - create a user with a role
+ Expected results :
+ - new role history line created with performed_action == 'add'
+ """
+ new_user = self.user_model.create({
+ 'login': 'new_user',
+ 'name': 'new_user',
+ 'role_line_ids': [
+ (0, 0, {
+ 'role_id': self.role_01.id,
+ })
+ ]
+ })
+ history_lines = self.history_line_model.search([
+ ('user_id', '=', new_user.id)
+ ])
+ self.assertTrue(history_lines)
+ self.assertEqual(len(history_lines), 1)
+ self.assertEqual(history_lines.performed_action, 'add')
+
+ def test_no_create_role_lines_on_new_user(self):
+ """
+ Data : /
+ Test case :
+ - create a user without role
+ Expected results :
+ - no role history line created
+ """
+ new_user = self.user_model.create({
+ 'login': 'new_user',
+ 'name': 'new_user',
+ })
+ history_lines = self.history_line_model.search([
+ ('user_id', '=', new_user.id)
+ ])
+ self.assertFalse(history_lines)
diff --git a/base_user_role_history/views/base_user_role_line_history.xml b/base_user_role_history/views/base_user_role_line_history.xml
new file mode 100644
index 00000000..a1cabe9f
--- /dev/null
+++ b/base_user_role_history/views/base_user_role_line_history.xml
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+ base.user.role.line.history.form (in base_user_role_history)
+ base.user.role.line.history
+
+
+
+
+
+
+
+
+ base.user.role.line.history.tree (in base_user_role_history)
+ base.user.role.line.history
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ base.user.role.line.history.search (in base_user_role_history)
+ base.user.role.line.history
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/base_user_role_history/views/res_users.xml b/base_user_role_history/views/res_users.xml
new file mode 100644
index 00000000..8eea0cf0
--- /dev/null
+++ b/base_user_role_history/views/res_users.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+ res.users.form (in base_user_role_history)
+ res.users
+
+
+
+
+
+
+
+
+
From e42a8e29caf9ead606df053e115d520352706c02 Mon Sep 17 00:00:00 2001
From: Benoit Aimont
Date: Tue, 1 Oct 2019 14:41:31 +0200
Subject: [PATCH 02/13] [12.0][MIG] base_user_role_history - migration from 9.0
to 12.0
---
.../{__openerp__.py => __manifest__.py} | 3 +--
.../models/base_user_role_line_history.py | 3 +--
base_user_role_history/models/res_users.py | 22 +++++++--------
.../tests/test_base_user_role_history.py | 27 ++++++++++---------
4 files changed, 27 insertions(+), 28 deletions(-)
rename base_user_role_history/{__openerp__.py => __manifest__.py} (93%)
diff --git a/base_user_role_history/__openerp__.py b/base_user_role_history/__manifest__.py
similarity index 93%
rename from base_user_role_history/__openerp__.py
rename to base_user_role_history/__manifest__.py
index 60c033a4..539a2d96 100644
--- a/base_user_role_history/__openerp__.py
+++ b/base_user_role_history/__manifest__.py
@@ -1,4 +1,3 @@
-# -*- coding: utf-8 -*-
# Copyright 2019 ACSONE SA/NV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
@@ -6,7 +5,7 @@
'name': 'Base User Role History',
'summary': """
This module allows to track the changes on users roles.""",
- 'version': '9.0.1.0.0',
+ 'version': '12.0.1.0.0',
'license': 'AGPL-3',
'author': 'ACSONE SA/NV, '
'Odoo Community Association (OCA)',
diff --git a/base_user_role_history/models/base_user_role_line_history.py b/base_user_role_history/models/base_user_role_line_history.py
index f89c2b85..76947f02 100644
--- a/base_user_role_history/models/base_user_role_line_history.py
+++ b/base_user_role_history/models/base_user_role_line_history.py
@@ -1,8 +1,7 @@
-# -*- coding: utf-8 -*-
# Copyright 2019 ACSONE SA/NV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-from openerp import api, fields, models
+from odoo import api, fields, models
class BaseUserRoleLineHistory(models.Model):
diff --git a/base_user_role_history/models/res_users.py b/base_user_role_history/models/res_users.py
index 5f4dd4ab..da80471f 100644
--- a/base_user_role_history/models/res_users.py
+++ b/base_user_role_history/models/res_users.py
@@ -1,8 +1,7 @@
-# -*- coding: utf-8 -*-
# Copyright 2019 ACSONE SA/NV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-from openerp import api, fields, models, _
+from odoo import api, fields, models, _
class ResUsers(models.Model):
@@ -18,8 +17,8 @@ class ResUsers(models.Model):
return {
'user_id': role_line.user_id.id,
'role_id': role_line.role_id.id,
- 'date_from': fields.Date.from_string(role_line.date_from),
- 'date_to': fields.Date.from_string(role_line.date_to),
+ 'date_from': role_line.date_from,
+ 'date_to': role_line.date_to,
'is_enabled': role_line.is_enabled,
}
@@ -33,11 +32,12 @@ class ResUsers(models.Model):
self._prepare_role_line_history_dict(role_line)
return role_line_values_by_user
- @api.model
- def create(self, vals):
- res = super(ResUsers, self).create(vals)
- if 'role_line_ids' not in vals:
- return res
+ @api.model_create_multi
+ def create(self, vals_list):
+ res = super().create(vals_list)
+ for vals in vals_list:
+ if 'role_line_ids' not in vals:
+ return res
new_role_line_values_by_user = res._get_role_line_values_by_user()
self.env['base.user.role.line.history'].create_from_vals(
{},
@@ -49,9 +49,9 @@ class ResUsers(models.Model):
@api.multi
def write(self, vals):
if 'role_line_ids' not in vals:
- return super(ResUsers, self).write(vals)
+ return super().write(vals)
old_role_line_values_by_user = self._get_role_line_values_by_user()
- res = super(ResUsers, self).write(vals)
+ res = super().write(vals)
new_role_line_values_by_user = self._get_role_line_values_by_user()
self.env['base.user.role.line.history'].create_from_vals(
old_role_line_values_by_user,
diff --git a/base_user_role_history/tests/test_base_user_role_history.py b/base_user_role_history/tests/test_base_user_role_history.py
index 29fa717e..8a289f7a 100644
--- a/base_user_role_history/tests/test_base_user_role_history.py
+++ b/base_user_role_history/tests/test_base_user_role_history.py
@@ -1,11 +1,9 @@
-# -*- coding: utf-8 -*-
# Copyright 2019 ACSONE SA/NV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).µ
from datetime import date, timedelta
-from openerp import fields
-from openerp.tests.common import SavepointCase
+from odoo.tests.common import SavepointCase
class TestBaseUserRoleHistory(SavepointCase):
@@ -83,12 +81,12 @@ class TestBaseUserRoleHistory(SavepointCase):
self.assertEqual(history_lines_2.old_role_id, self.role_01)
self.assertEqual(history_lines_2.new_role_id, self.role_01)
self.assertFalse(history_lines_2.old_date_from)
- self.assertEqual(history_lines_2.new_date_from,
- fields.Date.to_string(date.today()))
+ self.assertEqual(history_lines_2.new_date_from, date.today())
self.assertFalse(history_lines_2.old_date_to)
- self.assertEqual(history_lines_2.new_date_to,
- fields.Date.to_string(
- date.today() + timedelta(days=5)))
+ self.assertEqual(
+ history_lines_2.new_date_to,
+ date.today() + timedelta(days=5)
+ )
self.user_01.write({
'role_line_ids': [(1, self.user_01.role_line_ids[0].id, {})]
})
@@ -110,12 +108,15 @@ class TestBaseUserRoleHistory(SavepointCase):
self.assertEqual(history_lines_4.performed_action, 'unlink')
self.assertEqual(history_lines_4.old_role_id, self.role_01)
self.assertFalse(history_lines_4.new_role_id)
- self.assertEqual(history_lines_4.old_date_from,
- fields.Date.to_string(date.today()))
+ self.assertEqual(
+ history_lines_4.old_date_from,
+ date.today()
+ )
self.assertFalse(history_lines_4.new_date_from)
- self.assertEqual(history_lines_4.old_date_to,
- fields.Date.to_string(
- date.today() + timedelta(days=5)))
+ self.assertEqual(
+ history_lines_4.old_date_to,
+ date.today() + timedelta(days=5)
+ )
self.assertFalse(history_lines_4.new_date_to)
def test_create_role_lines_on_new_user(self):
From 3ac853f0523bf314505ab0e5581f11a5724252fe Mon Sep 17 00:00:00 2001
From: oca-travis
Date: Tue, 17 Dec 2019 21:14:06 +0000
Subject: [PATCH 03/13] [UPD] Update base_user_role_history.pot
---
.../i18n/base_user_role_history.pot | 62 +++++++++----------
1 file changed, 30 insertions(+), 32 deletions(-)
diff --git a/base_user_role_history/i18n/base_user_role_history.pot b/base_user_role_history/i18n/base_user_role_history.pot
index dbf1e4c9..c8299c7f 100644
--- a/base_user_role_history/i18n/base_user_role_history.pot
+++ b/base_user_role_history/i18n/base_user_role_history.pot
@@ -4,10 +4,8 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 9.0c\n"
+"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-09-30 11:50+0000\n"
-"PO-Revision-Date: 2019-09-30 11:50+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -16,23 +14,23 @@ msgstr ""
"Plural-Forms: \n"
#. module: base_user_role_history
-#: model:ir.ui.view,arch_db:base_user_role_history.res_users_form_view
+#: model_terms:ir.ui.view,arch_db:base_user_role_history.res_users_form_view
msgid "Last update of roles"
msgstr ""
#. module: base_user_role_history
-#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_performed_action
-#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_search_view
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__performed_action
+#: model_terms:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_search_view
msgid "Action"
msgstr ""
#. module: base_user_role_history
-#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_new_is_enabled
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__new_is_enabled
msgid "Active after edit"
msgstr ""
#. module: base_user_role_history
-#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_old_is_enabled
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__old_is_enabled
msgid "Active before edit"
msgstr ""
@@ -42,18 +40,18 @@ msgid "Add"
msgstr ""
#. module: base_user_role_history
-#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_create_uid
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__create_uid
msgid "Created by"
msgstr ""
#. module: base_user_role_history
-#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_create_date
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__create_date
msgid "Created on"
msgstr ""
#. module: base_user_role_history
-#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_form_view
-#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_tree_view
+#: model_terms:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_form_view
+#: model_terms:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_tree_view
msgid "Date and time of edition"
msgstr ""
@@ -63,7 +61,7 @@ msgid "Delete"
msgstr ""
#. module: base_user_role_history
-#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_display_name
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__display_name
msgid "Display Name"
msgstr ""
@@ -73,18 +71,18 @@ msgid "Edit"
msgstr ""
#. module: base_user_role_history
-#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_form_view
+#: model_terms:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_form_view
msgid "Edited user"
msgstr ""
#. module: base_user_role_history
-#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_form_view
-#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_tree_view
+#: model_terms:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_form_view
+#: model_terms:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_tree_view
msgid "Editor"
msgstr ""
#. module: base_user_role_history
-#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_search_view
+#: model_terms:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_search_view
msgid "Group By"
msgstr ""
@@ -94,71 +92,71 @@ msgid "History of user roles"
msgstr ""
#. module: base_user_role_history
-#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_id
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__id
msgid "ID"
msgstr ""
#. module: base_user_role_history
-#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history___last_update
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history____last_update
msgid "Last Modified on"
msgstr ""
#. module: base_user_role_history
-#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_write_uid
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__write_uid
msgid "Last Updated by"
msgstr ""
#. module: base_user_role_history
-#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_write_date
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__write_date
msgid "Last Updated on"
msgstr ""
#. module: base_user_role_history
-#: model:ir.model.fields,field_description:base_user_role_history.field_res_users_last_role_line_modification
+#: model:ir.model.fields,field_description:base_user_role_history.field_res_users__last_role_line_modification
msgid "Last roles modification"
msgstr ""
#. module: base_user_role_history
-#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_new_date_to
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__new_date_to
msgid "New end date"
msgstr ""
#. module: base_user_role_history
-#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_new_role_id
-#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_search_view
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__new_role_id
+#: model_terms:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_search_view
msgid "New role"
msgstr ""
#. module: base_user_role_history
-#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_new_date_from
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__new_date_from
msgid "New start date"
msgstr ""
#. module: base_user_role_history
-#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_old_date_to
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__old_date_to
msgid "Old end date"
msgstr ""
#. module: base_user_role_history
-#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_old_role_id
-#: model:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_search_view
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__old_role_id
+#: model_terms:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_search_view
msgid "Old role"
msgstr ""
#. module: base_user_role_history
-#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_old_date_from
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__old_date_from
msgid "Old start date"
msgstr ""
#. module: base_user_role_history
#: code:addons/base_user_role_history/models/res_users.py:70
-#: model:ir.ui.view,arch_db:base_user_role_history.res_users_form_view
+#: model_terms:ir.ui.view,arch_db:base_user_role_history.res_users_form_view
#, python-format
msgid "Roles history"
msgstr ""
#. module: base_user_role_history
-#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history_user_id
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__user_id
msgid "User"
msgstr ""
From 9b52525f4a6d8cf7d241bfa4d211020cb2cee3f8 Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Tue, 17 Dec 2019 21:19:35 +0000
Subject: [PATCH 04/13] [UPD] README.rst
---
base_user_role_history/README.rst | 16 ++++++++--------
.../static/description/index.html | 8 ++++----
2 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/base_user_role_history/README.rst b/base_user_role_history/README.rst
index 369df50b..08f2e118 100644
--- a/base_user_role_history/README.rst
+++ b/base_user_role_history/README.rst
@@ -13,14 +13,14 @@ Base User Role History
.. |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--tools-lightgray.png?logo=github
- :target: https://github.com/OCA/server-tools/tree/9.0/base_user_role_history
- :alt: OCA/server-tools
+.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--backend-lightgray.png?logo=github
+ :target: https://github.com/OCA/server-backend/tree/12.0/base_user_role_history
+ :alt: OCA/server-backend
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/server-tools-9-0/server-tools-9-0-base_user_role_history
+ :target: https://translation.odoo-community.org/projects/server-backend-12-0/server-backend-12-0-base_user_role_history
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/149/9.0
+ :target: https://runbot.odoo-community.org/runbot/253/12.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -50,10 +50,10 @@ a role deletion, module could be upgraded.
Bug Tracker
===========
-Bugs are tracked on `GitHub Issues `_.
+Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-`feedback `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -92,6 +92,6 @@ Current `maintainer `__:
|maintainer-ThomasBinsfeld|
-This module is part of the `OCA/server-tools `_ project on GitHub.
+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_user_role_history/static/description/index.html b/base_user_role_history/static/description/index.html
index ad88ec88..e41f5790 100644
--- a/base_user_role_history/static/description/index.html
+++ b/base_user_role_history/static/description/index.html
@@ -367,7 +367,7 @@ ul.auto-toc {
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-
+
This addon provides history for roles modifications on users.
Each time a role is added/updated/unlinked on a user, a new role history line
is created mentioning what changes were made and who made them.
@@ -398,10 +398,10 @@ a role deletion, module could be upgraded.
Bugs are tracked on GitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-feedback.
-
From df21cb484ff85544a6528d1381e6a17f457c24e5 Mon Sep 17 00:00:00 2001
From: oca-travis
Date: Wed, 17 Jun 2020 21:46:15 +0000
Subject: [PATCH 09/13] [UPD] Update base_user_role_history.pot
---
base_user_role_history/i18n/base_user_role_history.pot | 2 --
1 file changed, 2 deletions(-)
diff --git a/base_user_role_history/i18n/base_user_role_history.pot b/base_user_role_history/i18n/base_user_role_history.pot
index 0f006e86..a155070b 100644
--- a/base_user_role_history/i18n/base_user_role_history.pot
+++ b/base_user_role_history/i18n/base_user_role_history.pot
@@ -6,8 +6,6 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-12-18 11:07+0000\n"
-"PO-Revision-Date: 2019-12-18 11:07+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
From 9a4c1eb74453010cae324afbcda9e51e0374da1a Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Wed, 17 Jun 2020 23:42:54 +0000
Subject: [PATCH 10/13] [UPD] README.rst
---
base_user_role_history/README.rst | 10 +++++-----
base_user_role_history/static/description/index.html | 6 +++---
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/base_user_role_history/README.rst b/base_user_role_history/README.rst
index 08f2e118..8d59667a 100644
--- a/base_user_role_history/README.rst
+++ b/base_user_role_history/README.rst
@@ -14,13 +14,13 @@ Base User Role History
: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/12.0/base_user_role_history
+ :target: https://github.com/OCA/server-backend/tree/13.0/base_user_role_history
: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-12-0/server-backend-12-0-base_user_role_history
+ :target: https://translation.odoo-community.org/projects/server-backend-13-0/server-backend-13-0-base_user_role_history
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/253/12.0
+ :target: https://runbot.odoo-community.org/runbot/253/13.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -53,7 +53,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-`feedback `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -92,6 +92,6 @@ Current `maintainer `__:
|maintainer-ThomasBinsfeld|
-This module is part of the `OCA/server-backend `_ project on GitHub.
+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_user_role_history/static/description/index.html b/base_user_role_history/static/description/index.html
index e41f5790..5a41e7b1 100644
--- a/base_user_role_history/static/description/index.html
+++ b/base_user_role_history/static/description/index.html
@@ -367,7 +367,7 @@ ul.auto-toc {
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-
+
This addon provides history for roles modifications on users.
Each time a role is added/updated/unlinked on a user, a new role history line
is created mentioning what changes were made and who made them.
@@ -401,7 +401,7 @@ a role deletion, module could be upgraded.
Bugs are tracked on GitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-feedback.
From 4f0f5cde7da83a439e7ed0a19152a69ece2ac57c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ana=20Su=C3=A1rez?=
Date: Tue, 16 Mar 2021 16:17:16 +0000
Subject: [PATCH 11/13] Added translation using Weblate (Spanish)
---
base_user_role_history/i18n/es.po | 167 ++++++++++++++++++++++++++++++
1 file changed, 167 insertions(+)
create mode 100644 base_user_role_history/i18n/es.po
diff --git a/base_user_role_history/i18n/es.po b/base_user_role_history/i18n/es.po
new file mode 100644
index 00000000..8cb75072
--- /dev/null
+++ b/base_user_role_history/i18n/es.po
@@ -0,0 +1,167 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * base_user_role_history
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 13.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#. module: base_user_role_history
+#: model_terms:ir.ui.view,arch_db:base_user_role_history.res_users_form_view
+msgid "Last update of roles"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__performed_action
+#: model_terms:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_search_view
+msgid "Action"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__new_is_enabled
+msgid "Active after edit"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__old_is_enabled
+msgid "Active before edit"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields.selection,name:base_user_role_history.selection__base_user_role_line_history__performed_action__add
+msgid "Add"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__create_uid
+msgid "Created by"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__create_date
+msgid "Created on"
+msgstr ""
+
+#. module: base_user_role_history
+#: model_terms:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_form_view
+#: model_terms:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_tree_view
+msgid "Date and time of edition"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields.selection,name:base_user_role_history.selection__base_user_role_line_history__performed_action__unlink
+msgid "Delete"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__display_name
+msgid "Display Name"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields.selection,name:base_user_role_history.selection__base_user_role_line_history__performed_action__edit
+msgid "Edit"
+msgstr ""
+
+#. module: base_user_role_history
+#: model_terms:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_form_view
+msgid "Edited user"
+msgstr ""
+
+#. module: base_user_role_history
+#: model_terms:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_form_view
+#: model_terms:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_tree_view
+msgid "Editor"
+msgstr ""
+
+#. module: base_user_role_history
+#: model_terms:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_search_view
+msgid "Group By"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model,name:base_user_role_history.model_base_user_role_line_history
+msgid "History of user roles"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__id
+msgid "ID"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history____last_update
+msgid "Last Modified on"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__write_uid
+msgid "Last Updated by"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__write_date
+msgid "Last Updated on"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_res_users__last_role_line_modification
+msgid "Last roles modification"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__new_date_to
+msgid "New end date"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__new_role_id
+#: model_terms:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_search_view
+msgid "New role"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__new_date_from
+msgid "New start date"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__old_date_to
+msgid "Old end date"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__old_role_id
+#: model_terms:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_search_view
+msgid "Old role"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__old_date_from
+msgid "Old start date"
+msgstr ""
+
+#. module: base_user_role_history
+#: code:addons/base_user_role_history/models/res_users.py:0
+#: model_terms:ir.ui.view,arch_db:base_user_role_history.res_users_form_view
+#, python-format
+msgid "Roles history"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__user_id
+msgid "User"
+msgstr ""
+
+#. module: base_user_role_history
+#: model:ir.model,name:base_user_role_history.model_res_users
+msgid "Users"
+msgstr ""
From c0ecb18e51ae6016c291b26b2332198432c3f860 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ana=20Su=C3=A1rez?=
Date: Tue, 16 Mar 2021 16:21:04 +0000
Subject: [PATCH 12/13] Translated using Weblate (Spanish)
Currently translated at 100.0% (29 of 29 strings)
Translation: server-backend-13.0/server-backend-13.0-base_user_role_history
Translate-URL: https://translation.odoo-community.org/projects/server-backend-13-0/server-backend-13-0-base_user_role_history/es/
---
base_user_role_history/i18n/es.po | 62 ++++++++++++++++---------------
1 file changed, 32 insertions(+), 30 deletions(-)
diff --git a/base_user_role_history/i18n/es.po b/base_user_role_history/i18n/es.po
index 8cb75072..9942b679 100644
--- a/base_user_role_history/i18n/es.po
+++ b/base_user_role_history/i18n/es.po
@@ -6,162 +6,164 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2021-03-16 18:45+0000\n"
+"Last-Translator: Ana Suárez \n"
"Language-Team: none\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.3.2\n"
#. module: base_user_role_history
#: model_terms:ir.ui.view,arch_db:base_user_role_history.res_users_form_view
msgid "Last update of roles"
-msgstr ""
+msgstr "Última actualización de roles"
#. module: base_user_role_history
#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__performed_action
#: model_terms:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_search_view
msgid "Action"
-msgstr ""
+msgstr "Acción"
#. module: base_user_role_history
#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__new_is_enabled
msgid "Active after edit"
-msgstr ""
+msgstr "Activo después de editar"
#. module: base_user_role_history
#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__old_is_enabled
msgid "Active before edit"
-msgstr ""
+msgstr "Activo antes de editar"
#. module: base_user_role_history
#: model:ir.model.fields.selection,name:base_user_role_history.selection__base_user_role_line_history__performed_action__add
msgid "Add"
-msgstr ""
+msgstr "Añadir"
#. module: base_user_role_history
#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__create_uid
msgid "Created by"
-msgstr ""
+msgstr "Creado por"
#. module: base_user_role_history
#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__create_date
msgid "Created on"
-msgstr ""
+msgstr "Creado el"
#. module: base_user_role_history
#: model_terms:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_form_view
#: model_terms:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_tree_view
msgid "Date and time of edition"
-msgstr ""
+msgstr "Fecha y hora de edición"
#. module: base_user_role_history
#: model:ir.model.fields.selection,name:base_user_role_history.selection__base_user_role_line_history__performed_action__unlink
msgid "Delete"
-msgstr ""
+msgstr "Eliminar"
#. module: base_user_role_history
#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__display_name
msgid "Display Name"
-msgstr ""
+msgstr "Nombre mostrado"
#. module: base_user_role_history
#: model:ir.model.fields.selection,name:base_user_role_history.selection__base_user_role_line_history__performed_action__edit
msgid "Edit"
-msgstr ""
+msgstr "Editar"
#. module: base_user_role_history
#: model_terms:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_form_view
msgid "Edited user"
-msgstr ""
+msgstr "Usuario editado"
#. module: base_user_role_history
#: model_terms:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_form_view
#: model_terms:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_tree_view
msgid "Editor"
-msgstr ""
+msgstr "Editor"
#. module: base_user_role_history
#: model_terms:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_search_view
msgid "Group By"
-msgstr ""
+msgstr "Agrupar por"
#. module: base_user_role_history
#: model:ir.model,name:base_user_role_history.model_base_user_role_line_history
msgid "History of user roles"
-msgstr ""
+msgstr "Historial de roles"
#. module: base_user_role_history
#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__id
msgid "ID"
-msgstr ""
+msgstr "ID"
#. module: base_user_role_history
#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history____last_update
msgid "Last Modified on"
-msgstr ""
+msgstr "Última modificación el"
#. module: base_user_role_history
#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__write_uid
msgid "Last Updated by"
-msgstr ""
+msgstr "Última actualización por"
#. module: base_user_role_history
#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__write_date
msgid "Last Updated on"
-msgstr ""
+msgstr "Última actualización el"
#. module: base_user_role_history
#: model:ir.model.fields,field_description:base_user_role_history.field_res_users__last_role_line_modification
msgid "Last roles modification"
-msgstr ""
+msgstr "Última modificación roles"
#. module: base_user_role_history
#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__new_date_to
msgid "New end date"
-msgstr ""
+msgstr "Nueva fecha fin"
#. module: base_user_role_history
#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__new_role_id
#: model_terms:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_search_view
msgid "New role"
-msgstr ""
+msgstr "Nuevo rol"
#. module: base_user_role_history
#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__new_date_from
msgid "New start date"
-msgstr ""
+msgstr "Nueva fecha inicio"
#. module: base_user_role_history
#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__old_date_to
msgid "Old end date"
-msgstr ""
+msgstr "Antigua fecha fin"
#. module: base_user_role_history
#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__old_role_id
#: model_terms:ir.ui.view,arch_db:base_user_role_history.base_user_role_line_history_search_view
msgid "Old role"
-msgstr ""
+msgstr "Antiguo rol"
#. module: base_user_role_history
#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__old_date_from
msgid "Old start date"
-msgstr ""
+msgstr "Antigua fecha inicio"
#. module: base_user_role_history
#: code:addons/base_user_role_history/models/res_users.py:0
#: model_terms:ir.ui.view,arch_db:base_user_role_history.res_users_form_view
#, python-format
msgid "Roles history"
-msgstr ""
+msgstr "Historial Roles"
#. module: base_user_role_history
#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__user_id
msgid "User"
-msgstr ""
+msgstr "Usuario"
#. module: base_user_role_history
#: model:ir.model,name:base_user_role_history.model_res_users
msgid "Users"
-msgstr ""
+msgstr "Usuarios"
From 842fca200fc30f3dcd22a31c454a9280d4f5a267 Mon Sep 17 00:00:00 2001
From: Arnaud Pineux
Date: Tue, 16 Aug 2022 16:27:55 +0200
Subject: [PATCH 13/13] [MIG] base_user_role_history: Migration to 16.0
---
base_user_role_history/README.rst | 14 +++++++-------
base_user_role_history/__manifest__.py | 2 +-
.../i18n/base_user_role_history.pot | 2 +-
base_user_role_history/i18n/es.po | 2 +-
.../models/base_user_role_line_history.py | 3 +--
base_user_role_history/models/res_users.py | 17 +++++++++++------
.../static/description/index.html | 6 +++---
.../tests/test_base_user_role_history.py | 6 +++---
.../odoo/addons/base_user_role_history | 1 +
setup/base_user_role_history/setup.py | 6 ++++++
10 files changed, 35 insertions(+), 24 deletions(-)
create mode 120000 setup/base_user_role_history/odoo/addons/base_user_role_history
create mode 100644 setup/base_user_role_history/setup.py
diff --git a/base_user_role_history/README.rst b/base_user_role_history/README.rst
index 8d59667a..f7f5d727 100644
--- a/base_user_role_history/README.rst
+++ b/base_user_role_history/README.rst
@@ -14,16 +14,16 @@ Base User Role History
: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/13.0/base_user_role_history
+ :target: https://github.com/OCA/server-backend/tree/16.0/base_user_role_history
: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-13-0/server-backend-13-0-base_user_role_history
+ :target: https://translation.odoo-community.org/projects/server-backend-16-0/server-backend-16-0-base_user_role_history
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/253/13.0
+ :target: https://runbot.odoo-community.org/runbot/253/16.0
:alt: Try me on Runbot
-|badge1| |badge2| |badge3| |badge4| |badge5|
+|badge1| |badge2| |badge3| |badge4| |badge5|
This addon provides history for roles modifications on users.
Each time a role is added/updated/unlinked on a user, a new role history line
@@ -53,7 +53,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-`feedback `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -90,8 +90,8 @@ promote its widespread use.
Current `maintainer `__:
-|maintainer-ThomasBinsfeld|
+|maintainer-ThomasBinsfeld|
-This module is part of the `OCA/server-backend `_ project on GitHub.
+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_user_role_history/__manifest__.py b/base_user_role_history/__manifest__.py
index 6b74e8fa..218388d7 100644
--- a/base_user_role_history/__manifest__.py
+++ b/base_user_role_history/__manifest__.py
@@ -5,7 +5,7 @@
"name": "Base User Role History",
"summary": """
This module allows to track the changes on users roles.""",
- "version": "13.0.1.0.0",
+ "version": "16.0.1.0.0",
"license": "AGPL-3",
"author": "ACSONE SA/NV, " "Odoo Community Association (OCA)",
"website": "https://github.com/OCA/server-backend",
diff --git a/base_user_role_history/i18n/base_user_role_history.pot b/base_user_role_history/i18n/base_user_role_history.pot
index a155070b..8825e17d 100644
--- a/base_user_role_history/i18n/base_user_role_history.pot
+++ b/base_user_role_history/i18n/base_user_role_history.pot
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 13.0\n"
+"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
diff --git a/base_user_role_history/i18n/es.po b/base_user_role_history/i18n/es.po
index 9942b679..a5e159dc 100644
--- a/base_user_role_history/i18n/es.po
+++ b/base_user_role_history/i18n/es.po
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 13.0\n"
+"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2021-03-16 18:45+0000\n"
"Last-Translator: Ana Suárez \n"
diff --git a/base_user_role_history/models/base_user_role_line_history.py b/base_user_role_history/models/base_user_role_line_history.py
index 4e2e85d1..328fe5bf 100644
--- a/base_user_role_history/models/base_user_role_line_history.py
+++ b/base_user_role_history/models/base_user_role_line_history.py
@@ -114,5 +114,4 @@ class BaseUserRoleLineHistory(models.Model):
)
# Create the history lines with sudo
# (nobody has the create right)
- for role_history_vals in role_history_line_vals_by_role_line.values():
- self.sudo().create(role_history_vals)
+ self.sudo().create(list(role_history_line_vals_by_role_line.values()))
diff --git a/base_user_role_history/models/res_users.py b/base_user_role_history/models/res_users.py
index 6ff60b4c..2a408287 100644
--- a/base_user_role_history/models/res_users.py
+++ b/base_user_role_history/models/res_users.py
@@ -34,26 +34,31 @@ class ResUsers(models.Model):
@api.model_create_multi
def create(self, vals_list):
res = super().create(vals_list)
- for vals in vals_list:
- if "role_line_ids" not in vals:
- return res
+ if all("role_line_ids" not in vals for vals in vals_list):
+ return res
new_role_line_values_by_user = res._get_role_line_values_by_user()
+ new_role_line_to_create = {}
+ users = self.browse()
+ for user, lines in new_role_line_values_by_user.items():
+ if lines:
+ new_role_line_to_create[user] = lines
+ user |= user
self.env["base.user.role.line.history"].create_from_vals(
- {}, new_role_line_values_by_user
+ {}, new_role_line_to_create
)
- res.last_role_line_modification = fields.Datetime.now()
+ users.last_role_line_modification = fields.Datetime.now()
return res
def write(self, vals):
if "role_line_ids" not in vals:
return super().write(vals)
old_role_line_values_by_user = self._get_role_line_values_by_user()
+ vals["last_role_line_modification"] = fields.Datetime.now()
res = super().write(vals)
new_role_line_values_by_user = self._get_role_line_values_by_user()
self.env["base.user.role.line.history"].create_from_vals(
old_role_line_values_by_user, new_role_line_values_by_user
)
- self.write({"last_role_line_modification": fields.Datetime.now()})
return res
def show_role_lines_history(self): # pragma: no cover
diff --git a/base_user_role_history/static/description/index.html b/base_user_role_history/static/description/index.html
index 5a41e7b1..20d074fe 100644
--- a/base_user_role_history/static/description/index.html
+++ b/base_user_role_history/static/description/index.html
@@ -367,7 +367,7 @@ ul.auto-toc {
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-
+
This addon provides history for roles modifications on users.
Each time a role is added/updated/unlinked on a user, a new role history line
is created mentioning what changes were made and who made them.
@@ -401,7 +401,7 @@ a role deletion, module could be upgraded.
Bugs are tracked on GitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-feedback.