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

+ + +

Beta License: AGPL-3 OCA/server-tools Translate me on Weblate Try me on Runbot

+

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

+ +
+

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
  • +
+
+ +
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

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:

+

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/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. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/server-tools Translate me on Weblate Try me on Runbot

+

Beta License: AGPL-3 OCA/server-backend Translate me on Weblate Try me on Runbot

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.

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.

@@ -428,7 +428,7 @@ mission is to support the collaborative development of Odoo features and promote its widespread use.

Current 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.

From e0ffc2c3cd4eaaa369a3e529725a7b0a8087681b Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Tue, 17 Dec 2019 21:19:36 +0000 Subject: [PATCH 05/13] [ADD] icon.png --- .../static/description/icon.png | Bin 0 -> 9455 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 base_user_role_history/static/description/icon.png diff --git a/base_user_role_history/static/description/icon.png b/base_user_role_history/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 From c3cd270067c5977d30d7ffa1151535398c32aeac Mon Sep 17 00:00:00 2001 From: Benoit Aimont Date: Wed, 18 Dec 2019 10:05:58 +0100 Subject: [PATCH 06/13] [IMP] base_user_role_history: black, isort --- base_user_role_history/__manifest__.py | 35 ++--- .../models/base_user_role_line_history.py | 116 ++++++-------- base_user_role_history/models/res_users.py | 52 +++---- .../tests/test_base_user_role_history.py | 146 ++++++++---------- 4 files changed, 148 insertions(+), 201 deletions(-) diff --git a/base_user_role_history/__manifest__.py b/base_user_role_history/__manifest__.py index 539a2d96..f5fe5eba 100644 --- a/base_user_role_history/__manifest__.py +++ b/base_user_role_history/__manifest__.py @@ -2,28 +2,25 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { - 'name': 'Base User Role History', - 'summary': """ + "name": "Base User Role History", + "summary": """ This module allows to track the changes on users roles.""", - 'version': '12.0.1.0.0', - 'license': 'AGPL-3', - 'author': 'ACSONE SA/NV, ' - 'Odoo Community Association (OCA)', - 'website': 'https://github.com/OCA/server-tools', - 'depends': [ + "version": "12.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', + "mail", # OCA - 'base_user_role', - 'base_suspend_security', + "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' + "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/models/base_user_role_line_history.py b/base_user_role_history/models/base_user_role_line_history.py index 76947f02..86da3836 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 @@ -5,71 +5,47 @@ from odoo import api, fields, models class BaseUserRoleLineHistory(models.Model): - _name = 'base.user.role.line.history' + _name = "base.user.role.line.history" _description = "History of user roles" - _order = 'id desc' + _order = "id desc" performed_action = fields.Selection( string="Action", - selection=[ - ('add', 'Add'), - ('unlink', 'Delete'), - ('edit', 'Edit') - ], + selection=[("add", "Add"), ("unlink", "Delete"), ("edit", "Edit")], required=True, readonly=True, ) user_id = fields.Many2one( string="User", - comodel_name='res.users', - ondelete='cascade', + 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', + 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', + 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, - ) + 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 + 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(): @@ -77,53 +53,51 @@ class BaseUserRoleLineHistory(models.Model): 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': + 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 + 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.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"], + } ) - 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': + 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 + 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.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"], + } ) - 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 + self, old_role_line_values_by_user, new_role_line_values_by_user ): """ This method creates user role line history objects based on given diff --git a/base_user_role_history/models/res_users.py b/base_user_role_history/models/res_users.py index da80471f..248f8bf7 100644 --- a/base_user_role_history/models/res_users.py +++ b/base_user_role_history/models/res_users.py @@ -1,25 +1,24 @@ # Copyright 2019 ACSONE SA/NV # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from odoo import api, fields, models, _ +from odoo import _, api, fields, models class ResUsers(models.Model): - _inherit = 'res.users' + _inherit = "res.users" last_role_line_modification = fields.Datetime( - string="Last roles modification", - readonly=True, + 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': role_line.date_from, - 'date_to': role_line.date_to, - 'is_enabled': role_line.is_enabled, + "user_id": role_line.user_id.id, + "role_id": role_line.role_id.id, + "date_from": role_line.date_from, + "date_to": role_line.date_to, + "is_enabled": role_line.is_enabled, } @api.multi @@ -28,48 +27,45 @@ class ResUsers(models.Model): 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) + 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_create_multi def create(self, vals_list): res = super().create(vals_list) for vals in vals_list: - if 'role_line_ids' not in 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 + 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: + if "role_line_ids" not in vals: return super().write(vals) old_role_line_values_by_user = self._get_role_line_values_by_user() 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.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() - }) + 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)] + 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, + "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/tests/test_base_user_role_history.py b/base_user_role_history/tests/test_base_user_role_history.py index 8a289f7a..c712f6b6 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 @@ -7,25 +7,20 @@ from odoo.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'] + 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", - }) + 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): """ @@ -43,80 +38,74 @@ class TestBaseUserRoleHistory(SavepointCase): 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) - ]) + 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.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.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.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.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, date.today()) self.assertFalse(history_lines_2.old_date_to) - self.assertEqual( - history_lines_2.new_date_to, - 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, {})]} + ) + 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.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.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.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, - 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, - 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): @@ -127,21 +116,17 @@ class TestBaseUserRoleHistory(SavepointCase): 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) - ]) + 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') + self.assertEqual(history_lines.performed_action, "add") def test_no_create_role_lines_on_new_user(self): """ @@ -151,11 +136,6 @@ class TestBaseUserRoleHistory(SavepointCase): 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) - ]) + 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) From 5bf6cab02e24fa4a4f9d03253342819e9f43242e Mon Sep 17 00:00:00 2001 From: Benoit Aimont Date: Wed, 18 Dec 2019 10:28:08 +0100 Subject: [PATCH 07/13] [MIG] base_user_role_history: Migration to 13.0 --- base_user_role_history/__manifest__.py | 5 +- .../i18n/base_user_role_history.pot | 17 ++--- base_user_role_history/i18n/fr.po | 71 +++++++++---------- base_user_role_history/i18n/fr_BE.po | 71 +++++++++---------- .../models/base_user_role_line_history.py | 4 +- base_user_role_history/models/res_users.py | 3 - 6 files changed, 83 insertions(+), 88 deletions(-) diff --git a/base_user_role_history/__manifest__.py b/base_user_role_history/__manifest__.py index f5fe5eba..6b74e8fa 100644 --- a/base_user_role_history/__manifest__.py +++ b/base_user_role_history/__manifest__.py @@ -5,16 +5,15 @@ "name": "Base User Role History", "summary": """ This module allows to track the changes on users roles.""", - "version": "12.0.1.0.0", + "version": "13.0.1.0.0", "license": "AGPL-3", "author": "ACSONE SA/NV, " "Odoo Community Association (OCA)", - "website": "https://github.com/OCA/server-tools", + "website": "https://github.com/OCA/server-backend", "depends": [ # Odoo "mail", # OCA "base_user_role", - "base_suspend_security", ], "data": [ "security/base_user_role_line_history.xml", 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 c8299c7f..0f006e86 100644 --- a/base_user_role_history/i18n/base_user_role_history.pot +++ b/base_user_role_history/i18n/base_user_role_history.pot @@ -1,12 +1,14 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * base_user_role_history +# * base_user_role_history # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" +"Project-Id-Version: Odoo Server 13.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: <>\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" "Content-Type: text/plain; charset=UTF-8\n" @@ -35,7 +37,7 @@ msgid "Active before edit" msgstr "" #. module: base_user_role_history -#: selection:base.user.role.line.history,performed_action:0 +#: model:ir.model.fields.selection,name:base_user_role_history.selection__base_user_role_line_history__performed_action__add msgid "Add" msgstr "" @@ -56,7 +58,7 @@ msgid "Date and time of edition" msgstr "" #. module: base_user_role_history -#: selection:base.user.role.line.history,performed_action:0 +#: model:ir.model.fields.selection,name:base_user_role_history.selection__base_user_role_line_history__performed_action__unlink msgid "Delete" msgstr "" @@ -66,7 +68,7 @@ msgid "Display Name" msgstr "" #. module: base_user_role_history -#: selection:base.user.role.line.history,performed_action:0 +#: model:ir.model.fields.selection,name:base_user_role_history.selection__base_user_role_line_history__performed_action__edit msgid "Edit" msgstr "" @@ -149,7 +151,7 @@ msgid "Old start date" msgstr "" #. module: base_user_role_history -#: code:addons/base_user_role_history/models/res_users.py:70 +#: 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" @@ -164,4 +166,3 @@ msgstr "" #: 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 index 39fbe849..395904e1 100644 --- a/base_user_role_history/i18n/fr.po +++ b/base_user_role_history/i18n/fr.po @@ -1,12 +1,12 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * base_user_role_history +# * 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" +"POT-Creation-Date: 2019-12-18 11:07+0000\n" "PO-Revision-Date: 2019-09-30 11:51+0000\n" "Last-Translator: <>\n" "Language-Team: \n" @@ -17,75 +17,75 @@ 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 "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 +#: 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 "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 +#: 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 +#: 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 +#: model:ir.model.fields.selection,name:base_user_role_history.selection__base_user_role_line_history__performed_action__add 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 +#: 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 +#: 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 +#: 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 "Date et heure de modification" #. module: base_user_role_history -#: selection:base.user.role.line.history,performed_action:0 +#: model:ir.model.fields.selection,name:base_user_role_history.selection__base_user_role_line_history__performed_action__unlink 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 +#: 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 +#: model:ir.model.fields.selection,name:base_user_role_history.selection__base_user_role_line_history__performed_action__edit 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 +#: model_terms: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 +#: 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 "Utilisateur modificateur" #. 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 "Regrouper par" @@ -95,71 +95,71 @@ 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 +#: 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 +#: 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 +#: 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 +#: 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 +#: 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 +#: 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 +#: 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 "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 +#: 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 +#: 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 +#: 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 "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 +#: 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 +#: 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 "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 +#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__user_id msgid "User" msgstr "Utilisateur" @@ -167,4 +167,3 @@ msgstr "Utilisateur" #: 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 index 457621b4..e108d9c7 100644 --- a/base_user_role_history/i18n/fr_BE.po +++ b/base_user_role_history/i18n/fr_BE.po @@ -1,12 +1,12 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * base_user_role_history +# * 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" +"POT-Creation-Date: 2019-12-18 11:07+0000\n" "PO-Revision-Date: 2019-09-30 11:50+0000\n" "Last-Translator: <>\n" "Language-Team: \n" @@ -17,75 +17,75 @@ 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 "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 +#: 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 "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 +#: 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 +#: 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 +#: model:ir.model.fields.selection,name:base_user_role_history.selection__base_user_role_line_history__performed_action__add 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 +#: 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 +#: 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 +#: 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 "Date et heure de modification" #. module: base_user_role_history -#: selection:base.user.role.line.history,performed_action:0 +#: model:ir.model.fields.selection,name:base_user_role_history.selection__base_user_role_line_history__performed_action__unlink 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 +#: 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 +#: model:ir.model.fields.selection,name:base_user_role_history.selection__base_user_role_line_history__performed_action__edit 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 +#: model_terms: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 +#: 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 "Utilisateur modificateur" #. 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 "Regrouper par" @@ -95,71 +95,71 @@ 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 +#: 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 +#: 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 +#: 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 +#: 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 +#: 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 +#: 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 +#: 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 "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 +#: 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 +#: 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 +#: 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 "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 +#: 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 +#: 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 "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 +#: model:ir.model.fields,field_description:base_user_role_history.field_base_user_role_line_history__user_id msgid "User" msgstr "Utilisateur" @@ -167,4 +167,3 @@ msgstr "Utilisateur" #: model:ir.model,name:base_user_role_history.model_res_users msgid "Users" msgstr "Utilisateurs" - 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 86da3836..4e2e85d1 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 @@ -112,7 +112,7 @@ class BaseUserRoleLineHistory(models.Model): 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 + # 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.suspend_security().create(role_history_vals) + self.sudo().create(role_history_vals) diff --git a/base_user_role_history/models/res_users.py b/base_user_role_history/models/res_users.py index 248f8bf7..6ff60b4c 100644 --- a/base_user_role_history/models/res_users.py +++ b/base_user_role_history/models/res_users.py @@ -21,7 +21,6 @@ class ResUsers(models.Model): "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: @@ -45,7 +44,6 @@ class ResUsers(models.Model): 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().write(vals) @@ -58,7 +56,6 @@ class ResUsers(models.Model): 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)] From 0a2d1def561802002f532a42623bf9bc9a44d639 Mon Sep 17 00:00:00 2001 From: Benoit Aimont Date: Fri, 12 Jun 2020 09:36:34 +0200 Subject: [PATCH 08/13] [FIX] base_user_role_history - prettier xml plugin --- .../security/base_user_role_line_history.xml | 17 ++- .../views/base_user_role_line_history.xml | 111 +++++++++--------- base_user_role_history/views/res_users.xml | 25 ++-- 3 files changed, 77 insertions(+), 76 deletions(-) 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 index c99c1365..5f339e2d 100644 --- a/base_user_role_history/security/base_user_role_line_history.xml +++ b/base_user_role_history/security/base_user_role_line_history.xml @@ -1,17 +1,14 @@ - + - - base.user.role.line.history access user - - - - - - + + + + + + - 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 index a1cabe9f..8031ba34 100644 --- a/base_user_role_history/views/base_user_role_line_history.xml +++ b/base_user_role_history/views/base_user_role_line_history.xml @@ -1,13 +1,12 @@ - + - - - - base.user.role.line.history.form (in base_user_role_history) + base.user.role.line.history.form (in base_user_role_history) base.user.role.line.history
@@ -15,75 +14,79 @@ - - - - - - - - - - - - + + + + + + + + + + + +
- - - base.user.role.line.history.tree (in base_user_role_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.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 index 8eea0cf0..0f659e06 100644 --- a/base_user_role_history/views/res_users.xml +++ b/base_user_role_history/views/res_users.xml @@ -1,29 +1,30 @@ - + - - - res.users.form (in base_user_role_history) res.users - +
-
-
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. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/server-backend Translate me on Weblate Try me on Runbot

+

Beta License: AGPL-3 OCA/server-backend Translate me on Weblate Try me on Runbot

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.

+feedback.

Do not contact contributors directly about support or help with technical issues.

@@ -428,7 +428,7 @@ mission is to support the collaborative development of Odoo features and promote its widespread use.

Current 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.

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. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/server-backend Translate me on Weblate Try me on Runbot

+

Beta License: AGPL-3 OCA/server-backend Translate me on Weblate Try me on Runbot

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.

+feedback.

Do not contact contributors directly about support or help with technical issues.

@@ -428,7 +428,7 @@ mission is to support the collaborative development of Odoo features and promote its widespread use.

Current 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/tests/test_base_user_role_history.py b/base_user_role_history/tests/test_base_user_role_history.py index c712f6b6..fa81febf 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 @@ -3,14 +3,14 @@ from datetime import date, timedelta -from odoo.tests.common import SavepointCase +from odoo.tests.common import TransactionCase -class TestBaseUserRoleHistory(SavepointCase): +class TestBaseUserRoleHistory(TransactionCase): @classmethod def setUpClass(cls): super(TestBaseUserRoleHistory, cls).setUpClass() - + cls.env = cls.env(context=dict(cls.env.context, tracking_disable=True)) # MODELS cls.history_line_model = cls.env["base.user.role.line.history"] diff --git a/setup/base_user_role_history/odoo/addons/base_user_role_history b/setup/base_user_role_history/odoo/addons/base_user_role_history new file mode 120000 index 00000000..858c5021 --- /dev/null +++ b/setup/base_user_role_history/odoo/addons/base_user_role_history @@ -0,0 +1 @@ +../../../../base_user_role_history \ No newline at end of file diff --git a/setup/base_user_role_history/setup.py b/setup/base_user_role_history/setup.py new file mode 100644 index 00000000..28c57bb6 --- /dev/null +++ b/setup/base_user_role_history/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)