From b61200ea03ee9feecbd71fe098ae4f1be399b96f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Mon, 22 Jan 2024 10:50:21 +0100 Subject: [PATCH 01/20] [ADD] hr_dms_field: New module TT46804 [UPD] Update hr_dms_field.pot [BOT] post-merge updates --- hr_dms_field/README.rst | 103 ++++ hr_dms_field/__init__.py | 3 + hr_dms_field/__manifest__.py | 20 + hr_dms_field/demo/dms_data.xml | 20 + hr_dms_field/i18n/es.po | 50 ++ hr_dms_field/i18n/hr_dms_field.pot | 46 ++ hr_dms_field/models/__init__.py | 4 + hr_dms_field/models/dms_field_template.py | 17 + hr_dms_field/models/hr_employee_public.py | 16 + hr_dms_field/readme/CONFIGURE.rst | 4 + hr_dms_field/readme/CONTRIBUTORS.rst | 4 + hr_dms_field/readme/DESCRIPTION.rst | 1 + hr_dms_field/readme/USAGE.rst | 4 + hr_dms_field/static/description/icon.png | Bin 0 -> 9455 bytes hr_dms_field/static/description/index.html | 443 ++++++++++++++++++ .../static/src/js/base/dms_tree_controller.js | 15 + hr_dms_field/tests/__init__.py | 1 + hr_dms_field/tests/test_hr_dms_field.py | 66 +++ hr_dms_field/views/hr_employee_view.xml | 39 ++ 19 files changed, 856 insertions(+) create mode 100644 hr_dms_field/README.rst create mode 100644 hr_dms_field/__init__.py create mode 100644 hr_dms_field/__manifest__.py create mode 100644 hr_dms_field/demo/dms_data.xml create mode 100644 hr_dms_field/i18n/es.po create mode 100644 hr_dms_field/i18n/hr_dms_field.pot create mode 100644 hr_dms_field/models/__init__.py create mode 100644 hr_dms_field/models/dms_field_template.py create mode 100644 hr_dms_field/models/hr_employee_public.py create mode 100644 hr_dms_field/readme/CONFIGURE.rst create mode 100644 hr_dms_field/readme/CONTRIBUTORS.rst create mode 100644 hr_dms_field/readme/DESCRIPTION.rst create mode 100644 hr_dms_field/readme/USAGE.rst create mode 100644 hr_dms_field/static/description/icon.png create mode 100644 hr_dms_field/static/description/index.html create mode 100644 hr_dms_field/static/src/js/base/dms_tree_controller.js create mode 100644 hr_dms_field/tests/__init__.py create mode 100644 hr_dms_field/tests/test_hr_dms_field.py create mode 100644 hr_dms_field/views/hr_employee_view.xml diff --git a/hr_dms_field/README.rst b/hr_dms_field/README.rst new file mode 100644 index 000000000..9716192e7 --- /dev/null +++ b/hr_dms_field/README.rst @@ -0,0 +1,103 @@ +=========================== +Add dms field for employees +=========================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:420f21e5b71335f81807b2d0fb9d44333e7697d72b1f4f4a714036de241b98f3 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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%2Fdms-lightgray.png?logo=github + :target: https://github.com/OCA/dms/tree/15.0/hr_dms_field + :alt: OCA/dms +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/dms-15-0/dms-15-0-hr_dms_field + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/dms&target_branch=15.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +Add the Documents tab with the files in the employee's form view. + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +#. *Go to Documents > Configuration > File templates* and create a new record. +#. Set a storage, a model (hr.employee) and the access groups you want. +#. Click on the "Documents" tab icon and a folder hierarchy will be created. +#. You can set here the hierarchy of directories, subdirectories and files you need, this hierarchy will be used as a base when creating a new record (res.partner for example). + +Usage +===== + +#. Go to the form view of an existing employee and click on the "Documents" tab icon, a hierarchy of +folders and files linked to that record will be created. +#. Create a new employee. A hierarchy of folders and files linked to that record will be created. + + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Tecnativa + +Contributors +~~~~~~~~~~~~ + +* `Tecnativa `_: + + * Víctor Martínez + * Pedro M. Baeza + +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-victoralmau| image:: https://github.com/victoralmau.png?size=40px + :target: https://github.com/victoralmau + :alt: victoralmau + +Current `maintainer `__: + +|maintainer-victoralmau| + +This module is part of the `OCA/dms `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/hr_dms_field/__init__.py b/hr_dms_field/__init__.py new file mode 100644 index 000000000..4b76c7b2d --- /dev/null +++ b/hr_dms_field/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from . import models diff --git a/hr_dms_field/__manifest__.py b/hr_dms_field/__manifest__.py new file mode 100644 index 000000000..3a405654b --- /dev/null +++ b/hr_dms_field/__manifest__.py @@ -0,0 +1,20 @@ +# Copyright 2024 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +{ + "name": "Add dms field for employees", + "version": "15.0.1.1.0", + "category": "Human Resources", + "website": "https://github.com/OCA/dms", + "author": "Tecnativa, Odoo Community Association (OCA)", + "license": "AGPL-3", + "depends": ["hr", "dms_field"], + "installable": True, + "data": ["views/hr_employee_view.xml"], + "demo": ["demo/dms_data.xml"], + "assets": { + "web.assets_backend": [ + "hr_dms_field/static/src/js/**/*", + ], + }, + "maintainers": ["victoralmau"], +} diff --git a/hr_dms_field/demo/dms_data.xml b/hr_dms_field/demo/dms_data.xml new file mode 100644 index 000000000..dafdbc9a7 --- /dev/null +++ b/hr_dms_field/demo/dms_data.xml @@ -0,0 +1,20 @@ + + + + Everyone for Employee DMS + + + + + + + Employee + + + + + + + + + diff --git a/hr_dms_field/i18n/es.po b/hr_dms_field/i18n/es.po new file mode 100644 index 000000000..25ed48f53 --- /dev/null +++ b/hr_dms_field/i18n/es.po @@ -0,0 +1,50 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_dms_field +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 15.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-02-07 16:03+0000\n" +"PO-Revision-Date: 2024-02-07 17:04+0100\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: \n" +"X-Generator: Poedit 3.0.1\n" + +#. module: hr_dms_field +#: model:ir.model.fields,field_description:hr_dms_field.field_dms_field_template__dms_directory_ids +#: model:ir.model.fields,field_description:hr_dms_field.field_hr_employee_public__dms_directory_ids +msgid "DMS Directories" +msgstr "Directorios DMS" + +#. module: hr_dms_field +#: model:ir.model,name:hr_dms_field.model_dms_field_template +msgid "Dms Field Template" +msgstr "" + +#. module: hr_dms_field +#: model_terms:ir.ui.view,arch_db:hr_dms_field.hr_employee_public_view_form +#: model_terms:ir.ui.view,arch_db:hr_dms_field.view_employee_form +msgid "Documents" +msgstr "Documentos" + +#. module: hr_dms_field +#: model:dms.access.group,name:hr_dms_field.read_access_hr_employee_group +msgid "Everyone for Employee DMS" +msgstr "Todos para empleados DMS" + +#. module: hr_dms_field +#: model:ir.model.fields,field_description:hr_dms_field.field_hr_employee_public__is_logged +msgid "Is Logged" +msgstr "Está registrado/a" + +#. module: hr_dms_field +#: model:ir.model,name:hr_dms_field.model_hr_employee_public +msgid "Public Employee" +msgstr "Empleado Público" diff --git a/hr_dms_field/i18n/hr_dms_field.pot b/hr_dms_field/i18n/hr_dms_field.pot new file mode 100644 index 000000000..7b873d84e --- /dev/null +++ b/hr_dms_field/i18n/hr_dms_field.pot @@ -0,0 +1,46 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_dms_field +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 15.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: hr_dms_field +#: model:ir.model.fields,field_description:hr_dms_field.field_dms_field_template__dms_directory_ids +#: model:ir.model.fields,field_description:hr_dms_field.field_hr_employee_public__dms_directory_ids +msgid "DMS Directories" +msgstr "" + +#. module: hr_dms_field +#: model:ir.model,name:hr_dms_field.model_dms_field_template +msgid "Dms Field Template" +msgstr "" + +#. module: hr_dms_field +#: model_terms:ir.ui.view,arch_db:hr_dms_field.hr_employee_public_view_form +#: model_terms:ir.ui.view,arch_db:hr_dms_field.view_employee_form +msgid "Documents" +msgstr "" + +#. module: hr_dms_field +#: model:dms.access.group,name:hr_dms_field.read_access_hr_employee_group +msgid "Everyone for Employee DMS" +msgstr "" + +#. module: hr_dms_field +#: model:ir.model.fields,field_description:hr_dms_field.field_hr_employee_public__is_logged +msgid "Is Logged" +msgstr "" + +#. module: hr_dms_field +#: model:ir.model,name:hr_dms_field.model_hr_employee_public +msgid "Public Employee" +msgstr "" diff --git a/hr_dms_field/models/__init__.py b/hr_dms_field/models/__init__.py new file mode 100644 index 000000000..39b394d6d --- /dev/null +++ b/hr_dms_field/models/__init__.py @@ -0,0 +1,4 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from . import dms_field_template +from . import hr_employee_public diff --git a/hr_dms_field/models/dms_field_template.py b/hr_dms_field/models/dms_field_template.py new file mode 100644 index 000000000..22e325047 --- /dev/null +++ b/hr_dms_field/models/dms_field_template.py @@ -0,0 +1,17 @@ +# Copyright 2024 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import models + + +class DmsFieldTemplate(models.Model): + _inherit = "dms.field.template" + + def _create_dms_directory(self): + """Custom method to define the directory automatically in demo data avoiding + error if it already exists.""" + self.ensure_one() + if not self.dms_directory_ids: + self.with_context( + res_model=self._name, res_id=self.id + ).create_dms_directory() diff --git a/hr_dms_field/models/hr_employee_public.py b/hr_dms_field/models/hr_employee_public.py new file mode 100644 index 000000000..83fd1a448 --- /dev/null +++ b/hr_dms_field/models/hr_employee_public.py @@ -0,0 +1,16 @@ +# Copyright 2024 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class HrEmployeePublic(models.Model): + _inherit = "hr.employee.public" + + is_logged = fields.Boolean(compute="_compute_is_logged", store=False) + + def _compute_is_logged(self): + self.is_logged = False + for record in self: + if self.env.user == record.user_id: + record.is_logged = True diff --git a/hr_dms_field/readme/CONFIGURE.rst b/hr_dms_field/readme/CONFIGURE.rst new file mode 100644 index 000000000..0d29022ea --- /dev/null +++ b/hr_dms_field/readme/CONFIGURE.rst @@ -0,0 +1,4 @@ +#. *Go to Documents > Configuration > File templates* and create a new record. +#. Set a storage, a model (hr.employee) and the access groups you want. +#. Click on the "Documents" tab icon and a folder hierarchy will be created. +#. You can set here the hierarchy of directories, subdirectories and files you need, this hierarchy will be used as a base when creating a new record (res.partner for example). diff --git a/hr_dms_field/readme/CONTRIBUTORS.rst b/hr_dms_field/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..5fb713053 --- /dev/null +++ b/hr_dms_field/readme/CONTRIBUTORS.rst @@ -0,0 +1,4 @@ +* `Tecnativa `_: + + * Víctor Martínez + * Pedro M. Baeza diff --git a/hr_dms_field/readme/DESCRIPTION.rst b/hr_dms_field/readme/DESCRIPTION.rst new file mode 100644 index 000000000..4769e05dc --- /dev/null +++ b/hr_dms_field/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +Add the Documents tab with the files in the employee's form view. diff --git a/hr_dms_field/readme/USAGE.rst b/hr_dms_field/readme/USAGE.rst new file mode 100644 index 000000000..b8dab615f --- /dev/null +++ b/hr_dms_field/readme/USAGE.rst @@ -0,0 +1,4 @@ +#. Go to the form view of an existing employee and click on the "Documents" tab icon, a hierarchy of +folders and files linked to that record will be created. +#. Create a new employee. A hierarchy of folders and files linked to that record will be created. + diff --git a/hr_dms_field/static/description/icon.png b/hr_dms_field/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 diff --git a/hr_dms_field/static/description/index.html b/hr_dms_field/static/description/index.html new file mode 100644 index 000000000..51937df81 --- /dev/null +++ b/hr_dms_field/static/description/index.html @@ -0,0 +1,443 @@ + + + + + +Add dms field for employees + + + +
+

Add dms field for employees

+ + +

Beta License: AGPL-3 OCA/dms Translate me on Weblate Try me on Runboat

+

Add the Documents tab with the files in the employee’s form view.

+

Table of contents

+ +
+

Configuration

+
    +
  1. Go to Documents > Configuration > File templates and create a new record.
  2. +
  3. Set a storage, a model (hr.employee) and the access groups you want.
  4. +
  5. Click on the “Documents” tab icon and a folder hierarchy will be created.
  6. +
  7. You can set here the hierarchy of directories, subdirectories and files you need, this hierarchy will be used as a base when creating a new record (res.partner for example).
  8. +
+
+
+

Usage

+

#. Go to the form view of an existing employee and click on the “Documents” tab icon, a hierarchy of +folders and files linked to that record will be created. +#. Create a new employee. A hierarchy of folders and files linked to that record will be created.

+
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

+

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

+
+
+

Credits

+
+

Authors

+
    +
  • Tecnativa
  • +
+
+
+

Contributors

+
    +
  • Tecnativa:
      +
    • Víctor Martínez
    • +
    • Pedro M. Baeza
    • +
    +
  • +
+
+
+

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:

+

victoralmau

+

This module is part of the OCA/dms project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/hr_dms_field/static/src/js/base/dms_tree_controller.js b/hr_dms_field/static/src/js/base/dms_tree_controller.js new file mode 100644 index 000000000..14e884382 --- /dev/null +++ b/hr_dms_field/static/src/js/base/dms_tree_controller.js @@ -0,0 +1,15 @@ +odoo.define("hr_dms_field.DmsTreeController", function (require) { + "use strict"; + var FormController = require("web.FormController"); + var DmsTreeController = require("dms.DmsTreeController"); + const DmsTreeControllerExtension = { + sanitizeDMSModel: function (model) { + if (model === "hr.employee.public") { + return "hr.employee"; + } + return this._super(...arguments); + }, + }; + FormController.include(DmsTreeControllerExtension); + DmsTreeController.Controller.include(DmsTreeControllerExtension); +}); diff --git a/hr_dms_field/tests/__init__.py b/hr_dms_field/tests/__init__.py new file mode 100644 index 000000000..788e27983 --- /dev/null +++ b/hr_dms_field/tests/__init__.py @@ -0,0 +1 @@ +from . import test_hr_dms_field diff --git a/hr_dms_field/tests/test_hr_dms_field.py b/hr_dms_field/tests/test_hr_dms_field.py new file mode 100644 index 000000000..e38c22b34 --- /dev/null +++ b/hr_dms_field/tests/test_hr_dms_field.py @@ -0,0 +1,66 @@ +# Copyright 2024 Tecnativa - Víctor Martínez +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). + +from odoo.tests import common, new_test_user + + +class TestHrDmsField(common.TransactionCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.env = cls.env( + context=dict( + cls.env.context, + mail_create_nolog=True, + mail_create_nosubscribe=True, + mail_notrack=True, + no_reset_password=True, + tracking_disable=True, + ) + ) + cls.template = cls.env.ref("hr_dms_field.field_template_employee") + cls.storage = cls.template.storage_id + cls.access_group = cls.template.group_ids + cls.env["dms.directory"].create( + { + "name": "Payrolls", + "parent_id": cls.template.dms_directory_ids[0].id, + "storage_id": cls.template.storage_id.id, + } + ) + cls.env["dms.directory"].create( + { + "name": "Contracts", + "parent_id": cls.template.dms_directory_ids[0].id, + "storage_id": cls.template.storage_id.id, + } + ) + cls.user = new_test_user(cls.env, login="test-user") + cls.employee_model = cls.env["hr.employee"] + + def test_employee_exists(self): + employee = self.employee_model.search([], limit=1) + self.assertEqual(len(employee.dms_directory_ids), 0) + + def test_employee_create_01(self): + employee = self.employee_model.create({"name": "Test employee"}) + employee.refresh() + directory = employee.dms_directory_ids + self.assertEqual(len(directory), 1) + self.assertEqual(directory.storage_id, self.storage) + self.assertIn("Autogenerate group", directory.group_ids.name) + self.assertNotIn(self.access_group, directory.group_ids) + self.assertNotIn(self.user, directory.group_ids.explicit_user_ids) + child_directory_names = directory.mapped("child_directory_ids.name") + self.assertIn("Payrolls", child_directory_names) + self.assertIn("Contracts", child_directory_names) + + def test_employee_create_02(self): + employee = self.employee_model.create( + { + "name": "Test employee", + "user_id": self.user.id, + } + ) + employee.refresh() + self.assertIn(self.user, employee.dms_directory_ids.group_ids.explicit_user_ids) diff --git a/hr_dms_field/views/hr_employee_view.xml b/hr_dms_field/views/hr_employee_view.xml new file mode 100644 index 000000000..c4c6d8546 --- /dev/null +++ b/hr_dms_field/views/hr_employee_view.xml @@ -0,0 +1,39 @@ + + + + hr.employee.form + hr.employee + + + + + + + + + + + hr.employee.public.form + hr.employee.public + + + + + + + + + + + + + + From ce1d40b6bbfb4e65567722201e4a86fba5ab2edf Mon Sep 17 00:00:00 2001 From: Ivorra78 Date: Sat, 23 Mar 2024 07:24:11 +0000 Subject: [PATCH 02/20] Translated using Weblate (Spanish) Currently translated at 100.0% (6 of 6 strings) Translation: dms-15.0/dms-15.0-hr_dms_field Translate-URL: https://translation.odoo-community.org/projects/dms-15-0/dms-15-0-hr_dms_field/es/ --- hr_dms_field/i18n/es.po | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/hr_dms_field/i18n/es.po b/hr_dms_field/i18n/es.po index 25ed48f53..017c454ff 100644 --- a/hr_dms_field/i18n/es.po +++ b/hr_dms_field/i18n/es.po @@ -7,15 +7,15 @@ msgstr "" "Project-Id-Version: Odoo Server 15.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-02-07 16:03+0000\n" -"PO-Revision-Date: 2024-02-07 17:04+0100\n" -"Last-Translator: \n" +"PO-Revision-Date: 2024-03-23 09:34+0000\n" +"Last-Translator: Ivorra78 \n" "Language-Team: \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: \n" -"X-Generator: Poedit 3.0.1\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" #. module: hr_dms_field #: model:ir.model.fields,field_description:hr_dms_field.field_dms_field_template__dms_directory_ids @@ -26,7 +26,7 @@ msgstr "Directorios DMS" #. module: hr_dms_field #: model:ir.model,name:hr_dms_field.model_dms_field_template msgid "Dms Field Template" -msgstr "" +msgstr "Plantilla de Campo Dms" #. module: hr_dms_field #: model_terms:ir.ui.view,arch_db:hr_dms_field.hr_employee_public_view_form From 01802e04e86ee3005612f06f77b28972bf18f387 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Wed, 12 Jun 2024 12:19:57 +0200 Subject: [PATCH 03/20] [FIX] dms_field + hr_dms_field: Avoid auto-generate multiple access groups + Refactoring Now the process will be as follows: - The auto-generated access group will be created. - The user will be defined in explicit_user_ids of the group created in the previous step. In the directory created (from the corresponding record) the auto-generated group (for the user to have access) + the access groups that the template had will be used. [UPD] Update hr_dms_field.pot [BOT] post-merge updates --- hr_dms_field/README.rst | 2 +- hr_dms_field/__manifest__.py | 2 +- hr_dms_field/i18n/hr_dms_field.pot | 6 ++++ hr_dms_field/models/__init__.py | 1 + hr_dms_field/models/hr_employee.py | 33 ++++++++++++++++++++++ hr_dms_field/static/description/index.html | 2 +- hr_dms_field/tests/test_hr_dms_field.py | 30 +++++++++++++++++--- 7 files changed, 69 insertions(+), 7 deletions(-) create mode 100644 hr_dms_field/models/hr_employee.py diff --git a/hr_dms_field/README.rst b/hr_dms_field/README.rst index 9716192e7..edbd6b9ae 100644 --- a/hr_dms_field/README.rst +++ b/hr_dms_field/README.rst @@ -7,7 +7,7 @@ Add dms field for employees !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:420f21e5b71335f81807b2d0fb9d44333e7697d72b1f4f4a714036de241b98f3 + !! source digest: sha256:75c4cb1c0cd65b8bcfa4c07c1a764db17142895a46365763c1fcadae513db0a6 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/hr_dms_field/__manifest__.py b/hr_dms_field/__manifest__.py index 3a405654b..621c120ee 100644 --- a/hr_dms_field/__manifest__.py +++ b/hr_dms_field/__manifest__.py @@ -2,7 +2,7 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). { "name": "Add dms field for employees", - "version": "15.0.1.1.0", + "version": "15.0.1.2.0", "category": "Human Resources", "website": "https://github.com/OCA/dms", "author": "Tecnativa, Odoo Community Association (OCA)", diff --git a/hr_dms_field/i18n/hr_dms_field.pot b/hr_dms_field/i18n/hr_dms_field.pot index 7b873d84e..50abb61cd 100644 --- a/hr_dms_field/i18n/hr_dms_field.pot +++ b/hr_dms_field/i18n/hr_dms_field.pot @@ -15,6 +15,7 @@ msgstr "" #. module: hr_dms_field #: model:ir.model.fields,field_description:hr_dms_field.field_dms_field_template__dms_directory_ids +#: model:ir.model.fields,field_description:hr_dms_field.field_hr_employee__dms_directory_ids #: model:ir.model.fields,field_description:hr_dms_field.field_hr_employee_public__dms_directory_ids msgid "DMS Directories" msgstr "" @@ -30,6 +31,11 @@ msgstr "" msgid "Documents" msgstr "" +#. module: hr_dms_field +#: model:ir.model,name:hr_dms_field.model_hr_employee +msgid "Employee" +msgstr "" + #. module: hr_dms_field #: model:dms.access.group,name:hr_dms_field.read_access_hr_employee_group msgid "Everyone for Employee DMS" diff --git a/hr_dms_field/models/__init__.py b/hr_dms_field/models/__init__.py index 39b394d6d..9cf62bd2e 100644 --- a/hr_dms_field/models/__init__.py +++ b/hr_dms_field/models/__init__.py @@ -1,4 +1,5 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). from . import dms_field_template +from . import hr_employee from . import hr_employee_public diff --git a/hr_dms_field/models/hr_employee.py b/hr_dms_field/models/hr_employee.py new file mode 100644 index 000000000..a15a6305b --- /dev/null +++ b/hr_dms_field/models/hr_employee.py @@ -0,0 +1,33 @@ +# Copyright 2024 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import models + + +class HrEmployee(models.Model): + _inherit = "hr.employee" + + def write(self, vals): + """When modifying a record that has linked directories and changing the + user_id field it is necessary to update the auto-generated access group + (name and explicit_user_ids). + """ + res = super().write(vals) + for item in self.filtered("dms_directory_ids"): + if "user_id": + template = self.env["dms.field.template"]._get_template_from_model( + item._name + ) + if template: + template._get_autogenerated_group(item) + return res + + def unlink(self): + """When deleting a record, we also delete the linked directories and the + auto-generated access group. + """ + for record in self.filtered("dms_directory_ids"): + group = self.env["dms.access.group"]._get_item_from_dms_field_ref(record) + record.sudo().dms_directory_ids.unlink() + group.sudo().unlink() + return super().unlink() diff --git a/hr_dms_field/static/description/index.html b/hr_dms_field/static/description/index.html index 51937df81..a3247778b 100644 --- a/hr_dms_field/static/description/index.html +++ b/hr_dms_field/static/description/index.html @@ -366,7 +366,7 @@

Add dms field for employees

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:420f21e5b71335f81807b2d0fb9d44333e7697d72b1f4f4a714036de241b98f3 +!! source digest: sha256:75c4cb1c0cd65b8bcfa4c07c1a764db17142895a46365763c1fcadae513db0a6 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Beta License: AGPL-3 OCA/dms Translate me on Weblate Try me on Runboat

Add the Documents tab with the files in the employee’s form view.

diff --git a/hr_dms_field/tests/test_hr_dms_field.py b/hr_dms_field/tests/test_hr_dms_field.py index e38c22b34..7cc3cea31 100644 --- a/hr_dms_field/tests/test_hr_dms_field.py +++ b/hr_dms_field/tests/test_hr_dms_field.py @@ -2,6 +2,7 @@ # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). from odoo.tests import common, new_test_user +from odoo.tools import mute_logger class TestHrDmsField(common.TransactionCase): @@ -48,9 +49,9 @@ def test_employee_create_01(self): directory = employee.dms_directory_ids self.assertEqual(len(directory), 1) self.assertEqual(directory.storage_id, self.storage) - self.assertIn("Autogenerate group", directory.group_ids.name) - self.assertNotIn(self.access_group, directory.group_ids) - self.assertNotIn(self.user, directory.group_ids.explicit_user_ids) + group_custom = directory.group_ids.filtered("dms_field_ref") + self.assertIn(self.access_group, directory.group_ids) + self.assertNotIn(self.user, group_custom.explicit_user_ids) child_directory_names = directory.mapped("child_directory_ids.name") self.assertIn("Payrolls", child_directory_names) self.assertIn("Contracts", child_directory_names) @@ -63,4 +64,25 @@ def test_employee_create_02(self): } ) employee.refresh() - self.assertIn(self.user, employee.dms_directory_ids.group_ids.explicit_user_ids) + group_custom = employee.dms_directory_ids.group_ids.filtered("dms_field_ref") + self.assertIn(self.user, group_custom.explicit_user_ids) + + @mute_logger("odoo.models.unlink") + def test_employee_full_process(self): + employee = self.employee_model.create( + { + "name": "Test employee", + "user_id": self.user.id, + } + ) + employee.refresh() + directory_0 = employee.dms_directory_ids[0] + group_custom = directory_0.group_ids.filtered("dms_field_ref") + self.assertIn(self.user, group_custom.explicit_user_ids) + employee.write({"user_id": False}) + self.assertFalse(group_custom.explicit_user_ids) + employee.write({"user_id": self.user.id}) + self.assertIn(self.user, group_custom.explicit_user_ids) + employee.unlink() + self.assertFalse(directory_0.exists()) + self.assertFalse(group_custom.exists()) From d5ff1c456268b95d9dc27eade57577b5a908d426 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Mon, 3 Jun 2024 08:15:42 +0200 Subject: [PATCH 04/20] [MIG] hr_dms_field: Migration to 16.0 TT48870 [UPD] Update hr_dms_field.pot [BOT] post-merge updates --- hr_dms_field/README.rst | 12 ++++---- hr_dms_field/__manifest__.py | 2 +- hr_dms_field/i18n/hr_dms_field.pot | 16 +++++----- hr_dms_field/models/hr_employee.py | 30 ++----------------- hr_dms_field/static/description/index.html | 8 ++--- .../src/js/base/dms_list_controller.esm.js | 16 ++++++++++ .../static/src/js/base/dms_tree_controller.js | 15 ---------- hr_dms_field/tests/test_hr_dms_field.py | 28 ++++++++--------- hr_dms_field/views/hr_employee_view.xml | 4 +-- 9 files changed, 52 insertions(+), 79 deletions(-) create mode 100644 hr_dms_field/static/src/js/base/dms_list_controller.esm.js delete mode 100644 hr_dms_field/static/src/js/base/dms_tree_controller.js diff --git a/hr_dms_field/README.rst b/hr_dms_field/README.rst index edbd6b9ae..ad8751403 100644 --- a/hr_dms_field/README.rst +++ b/hr_dms_field/README.rst @@ -7,7 +7,7 @@ Add dms field for employees !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:75c4cb1c0cd65b8bcfa4c07c1a764db17142895a46365763c1fcadae513db0a6 + !! source digest: sha256:b7f18580a215d7c509b59f1e27607ad97ff06df4cc445bd45e838ead8c9e5164 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png @@ -17,13 +17,13 @@ Add dms field for employees :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fdms-lightgray.png?logo=github - :target: https://github.com/OCA/dms/tree/15.0/hr_dms_field + :target: https://github.com/OCA/dms/tree/16.0/hr_dms_field :alt: OCA/dms .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/dms-15-0/dms-15-0-hr_dms_field + :target: https://translation.odoo-community.org/projects/dms-16-0/dms-16-0-hr_dms_field :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/dms&target_branch=15.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/dms&target_branch=16.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -57,7 +57,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 to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -98,6 +98,6 @@ Current `maintainer `__: |maintainer-victoralmau| -This module is part of the `OCA/dms `_ project on GitHub. +This module is part of the `OCA/dms `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/hr_dms_field/__manifest__.py b/hr_dms_field/__manifest__.py index 621c120ee..f82b0ee60 100644 --- a/hr_dms_field/__manifest__.py +++ b/hr_dms_field/__manifest__.py @@ -2,7 +2,7 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). { "name": "Add dms field for employees", - "version": "15.0.1.2.0", + "version": "16.0.1.0.0", "category": "Human Resources", "website": "https://github.com/OCA/dms", "author": "Tecnativa, Odoo Community Association (OCA)", diff --git a/hr_dms_field/i18n/hr_dms_field.pot b/hr_dms_field/i18n/hr_dms_field.pot index 50abb61cd..0c77b370b 100644 --- a/hr_dms_field/i18n/hr_dms_field.pot +++ b/hr_dms_field/i18n/hr_dms_field.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 15.0\n" +"Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -14,9 +14,12 @@ msgstr "" "Plural-Forms: \n" #. module: hr_dms_field -#: model:ir.model.fields,field_description:hr_dms_field.field_dms_field_template__dms_directory_ids -#: model:ir.model.fields,field_description:hr_dms_field.field_hr_employee__dms_directory_ids -#: model:ir.model.fields,field_description:hr_dms_field.field_hr_employee_public__dms_directory_ids +#: model:ir.model,name:hr_dms_field.model_hr_employee_base +msgid "Basic Employee" +msgstr "" + +#. module: hr_dms_field +#: model:ir.model.fields,field_description:hr_dms_field.field_hr_employee_base__dms_directory_ids msgid "DMS Directories" msgstr "" @@ -31,11 +34,6 @@ msgstr "" msgid "Documents" msgstr "" -#. module: hr_dms_field -#: model:ir.model,name:hr_dms_field.model_hr_employee -msgid "Employee" -msgstr "" - #. module: hr_dms_field #: model:dms.access.group,name:hr_dms_field.read_access_hr_employee_group msgid "Everyone for Employee DMS" diff --git a/hr_dms_field/models/hr_employee.py b/hr_dms_field/models/hr_employee.py index a15a6305b..0e6d9856c 100644 --- a/hr_dms_field/models/hr_employee.py +++ b/hr_dms_field/models/hr_employee.py @@ -4,30 +4,6 @@ from odoo import models -class HrEmployee(models.Model): - _inherit = "hr.employee" - - def write(self, vals): - """When modifying a record that has linked directories and changing the - user_id field it is necessary to update the auto-generated access group - (name and explicit_user_ids). - """ - res = super().write(vals) - for item in self.filtered("dms_directory_ids"): - if "user_id": - template = self.env["dms.field.template"]._get_template_from_model( - item._name - ) - if template: - template._get_autogenerated_group(item) - return res - - def unlink(self): - """When deleting a record, we also delete the linked directories and the - auto-generated access group. - """ - for record in self.filtered("dms_directory_ids"): - group = self.env["dms.access.group"]._get_item_from_dms_field_ref(record) - record.sudo().dms_directory_ids.unlink() - group.sudo().unlink() - return super().unlink() +class HrEmployeeBase(models.AbstractModel): + _name = "hr.employee.base" + _inherit = ["hr.employee.base", "dms.field.mixin"] diff --git a/hr_dms_field/static/description/index.html b/hr_dms_field/static/description/index.html index a3247778b..55ca36328 100644 --- a/hr_dms_field/static/description/index.html +++ b/hr_dms_field/static/description/index.html @@ -366,9 +366,9 @@

Add dms field for employees

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:75c4cb1c0cd65b8bcfa4c07c1a764db17142895a46365763c1fcadae513db0a6 +!! source digest: sha256:b7f18580a215d7c509b59f1e27607ad97ff06df4cc445bd45e838ead8c9e5164 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/dms Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/dms Translate me on Weblate Try me on Runboat

Add the Documents tab with the files in the employee’s form view.

Table of contents

@@ -404,7 +404,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 to smash it by providing a detailed and welcomed -feedback.

+feedback.

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

@@ -434,7 +434,7 @@

Maintainers

promote its widespread use.

Current maintainer:

victoralmau

-

This module is part of the OCA/dms project on GitHub.

+

This module is part of the OCA/dms project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

diff --git a/hr_dms_field/static/src/js/base/dms_list_controller.esm.js b/hr_dms_field/static/src/js/base/dms_list_controller.esm.js new file mode 100644 index 000000000..52dde158a --- /dev/null +++ b/hr_dms_field/static/src/js/base/dms_list_controller.esm.js @@ -0,0 +1,16 @@ +/** @odoo-module **/ + +import {DMSListControllerObject} from "@dms_field/views/dms_list/dms_list_controller.esm"; +import {patch} from "@web/core/utils/patch"; + +patch(DMSListControllerObject, "hr_dms_field.DMSListControllerObject", { + // A basic user does not have access to hr.employee, only to hr.employee.public + // (Employee Directory), we have to get the data from hr.employee because that + // is where it is actually linked. + sanitizeDMSModel: function (model) { + if (model === "hr.employee.public") { + return "hr.employee"; + } + return this._super(...arguments); + }, +}); diff --git a/hr_dms_field/static/src/js/base/dms_tree_controller.js b/hr_dms_field/static/src/js/base/dms_tree_controller.js deleted file mode 100644 index 14e884382..000000000 --- a/hr_dms_field/static/src/js/base/dms_tree_controller.js +++ /dev/null @@ -1,15 +0,0 @@ -odoo.define("hr_dms_field.DmsTreeController", function (require) { - "use strict"; - var FormController = require("web.FormController"); - var DmsTreeController = require("dms.DmsTreeController"); - const DmsTreeControllerExtension = { - sanitizeDMSModel: function (model) { - if (model === "hr.employee.public") { - return "hr.employee"; - } - return this._super(...arguments); - }, - }; - FormController.include(DmsTreeControllerExtension); - DmsTreeController.Controller.include(DmsTreeControllerExtension); -}); diff --git a/hr_dms_field/tests/test_hr_dms_field.py b/hr_dms_field/tests/test_hr_dms_field.py index 7cc3cea31..d41e2b40e 100644 --- a/hr_dms_field/tests/test_hr_dms_field.py +++ b/hr_dms_field/tests/test_hr_dms_field.py @@ -1,24 +1,16 @@ # Copyright 2024 Tecnativa - Víctor Martínez # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). -from odoo.tests import common, new_test_user +from odoo.tests import new_test_user from odoo.tools import mute_logger +from odoo.addons.base.tests.common import BaseCommon -class TestHrDmsField(common.TransactionCase): + +class TestHrDmsField(BaseCommon): @classmethod def setUpClass(cls): super().setUpClass() - cls.env = cls.env( - context=dict( - cls.env.context, - mail_create_nolog=True, - mail_create_nosubscribe=True, - mail_notrack=True, - no_reset_password=True, - tracking_disable=True, - ) - ) cls.template = cls.env.ref("hr_dms_field.field_template_employee") cls.storage = cls.template.storage_id cls.access_group = cls.template.group_ids @@ -45,7 +37,9 @@ def test_employee_exists(self): def test_employee_create_01(self): employee = self.employee_model.create({"name": "Test employee"}) - employee.refresh() + # Manually refresh, similar to UX + # dms_field/static/src/views/dms_list/dms_list_renderer.esm.js#L450 + employee.invalidate_model() directory = employee.dms_directory_ids self.assertEqual(len(directory), 1) self.assertEqual(directory.storage_id, self.storage) @@ -63,7 +57,9 @@ def test_employee_create_02(self): "user_id": self.user.id, } ) - employee.refresh() + # Manually refresh, similar to UX + # dms_field/static/src/views/dms_list/dms_list_renderer.esm.js#L450 + employee.invalidate_model() group_custom = employee.dms_directory_ids.group_ids.filtered("dms_field_ref") self.assertIn(self.user, group_custom.explicit_user_ids) @@ -75,7 +71,9 @@ def test_employee_full_process(self): "user_id": self.user.id, } ) - employee.refresh() + # Manually refresh, similar to UX + # dms_field/static/src/views/dms_list/dms_list_renderer.esm.js#L450 + employee.invalidate_model() directory_0 = employee.dms_directory_ids[0] group_custom = directory_0.group_ids.filtered("dms_field_ref") self.assertIn(self.user, group_custom.explicit_user_ids) diff --git a/hr_dms_field/views/hr_employee_view.xml b/hr_dms_field/views/hr_employee_view.xml index c4c6d8546..88521ecf5 100644 --- a/hr_dms_field/views/hr_employee_view.xml +++ b/hr_dms_field/views/hr_employee_view.xml @@ -11,7 +11,7 @@ string="Documents" attrs="{'invisible': [('id', '=', False)]}" > - + @@ -31,7 +31,7 @@ string="Documents" attrs="{'invisible': [('is_logged', '=', False)]}" > - + From 70cc795a44305e99a6efdce862282ca667bd7c18 Mon Sep 17 00:00:00 2001 From: mymage Date: Mon, 24 Jun 2024 14:41:21 +0000 Subject: [PATCH 05/20] Added translation using Weblate (Italian) Translated using Weblate (Italian) Currently translated at 100.0% (7 of 7 strings) Translation: dms-16.0/dms-16.0-hr_dms_field Translate-URL: https://translation.odoo-community.org/projects/dms-16-0/dms-16-0-hr_dms_field/it/ --- hr_dms_field/i18n/it.po | 53 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 hr_dms_field/i18n/it.po diff --git a/hr_dms_field/i18n/it.po b/hr_dms_field/i18n/it.po new file mode 100644 index 000000000..5a2aa4dff --- /dev/null +++ b/hr_dms_field/i18n/it.po @@ -0,0 +1,53 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_dms_field +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-07-04 17:47+0000\n" +"Last-Translator: mymage \n" +"Language-Team: none\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: hr_dms_field +#: model:ir.model,name:hr_dms_field.model_hr_employee_base +msgid "Basic Employee" +msgstr "Dipendente base" + +#. module: hr_dms_field +#: model:ir.model.fields,field_description:hr_dms_field.field_hr_employee_base__dms_directory_ids +msgid "DMS Directories" +msgstr "Cartelle DMS" + +#. module: hr_dms_field +#: model:ir.model,name:hr_dms_field.model_dms_field_template +msgid "Dms Field Template" +msgstr "Modello campo DMS" + +#. module: hr_dms_field +#: model_terms:ir.ui.view,arch_db:hr_dms_field.hr_employee_public_view_form +#: model_terms:ir.ui.view,arch_db:hr_dms_field.view_employee_form +msgid "Documents" +msgstr "Documenti" + +#. module: hr_dms_field +#: model:dms.access.group,name:hr_dms_field.read_access_hr_employee_group +msgid "Everyone for Employee DMS" +msgstr "Tutti per il DMS dei dipendenti" + +#. module: hr_dms_field +#: model:ir.model.fields,field_description:hr_dms_field.field_hr_employee_public__is_logged +msgid "Is Logged" +msgstr "È collegato" + +#. module: hr_dms_field +#: model:ir.model,name:hr_dms_field.model_hr_employee_public +msgid "Public Employee" +msgstr "Dipendente pubblico" From 3052370b967709bb85b1396a988fbb0bf725bed4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Tue, 1 Oct 2024 09:20:16 +0200 Subject: [PATCH 06/20] [IMP] dms_field + hr_dms_field: Create dms directory automatically in the creation in install mode [UPD] Update hr_dms_field.pot [BOT] post-merge updates Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: dms-16.0/dms-16.0-hr_dms_field Translate-URL: https://translation.odoo-community.org/projects/dms-16-0/dms-16-0-hr_dms_field/ --- hr_dms_field/README.rst | 2 +- hr_dms_field/__manifest__.py | 2 +- hr_dms_field/demo/dms_data.xml | 3 --- hr_dms_field/i18n/es.po | 16 +++++++++------- hr_dms_field/i18n/hr_dms_field.pot | 5 ----- hr_dms_field/i18n/it.po | 8 +++----- hr_dms_field/models/__init__.py | 1 - hr_dms_field/models/dms_field_template.py | 17 ----------------- hr_dms_field/static/description/index.html | 13 ++++++++----- 9 files changed, 22 insertions(+), 45 deletions(-) delete mode 100644 hr_dms_field/models/dms_field_template.py diff --git a/hr_dms_field/README.rst b/hr_dms_field/README.rst index ad8751403..3b37af7f4 100644 --- a/hr_dms_field/README.rst +++ b/hr_dms_field/README.rst @@ -7,7 +7,7 @@ Add dms field for employees !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:b7f18580a215d7c509b59f1e27607ad97ff06df4cc445bd45e838ead8c9e5164 + !! source digest: sha256:184b6ffa724f34b343341e43199b5847be07bd28be8fac15ba3ea63aa17a9767 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/hr_dms_field/__manifest__.py b/hr_dms_field/__manifest__.py index f82b0ee60..4ea5a80f0 100644 --- a/hr_dms_field/__manifest__.py +++ b/hr_dms_field/__manifest__.py @@ -2,7 +2,7 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). { "name": "Add dms field for employees", - "version": "16.0.1.0.0", + "version": "16.0.1.0.1", "category": "Human Resources", "website": "https://github.com/OCA/dms", "author": "Tecnativa, Odoo Community Association (OCA)", diff --git a/hr_dms_field/demo/dms_data.xml b/hr_dms_field/demo/dms_data.xml index dafdbc9a7..20efbaad7 100644 --- a/hr_dms_field/demo/dms_data.xml +++ b/hr_dms_field/demo/dms_data.xml @@ -14,7 +14,4 @@ - - - diff --git a/hr_dms_field/i18n/es.po b/hr_dms_field/i18n/es.po index 017c454ff..f4c076e99 100644 --- a/hr_dms_field/i18n/es.po +++ b/hr_dms_field/i18n/es.po @@ -18,15 +18,14 @@ msgstr "" "X-Generator: Weblate 4.17\n" #. module: hr_dms_field -#: model:ir.model.fields,field_description:hr_dms_field.field_dms_field_template__dms_directory_ids -#: model:ir.model.fields,field_description:hr_dms_field.field_hr_employee_public__dms_directory_ids -msgid "DMS Directories" -msgstr "Directorios DMS" +#: model:ir.model,name:hr_dms_field.model_hr_employee_base +msgid "Basic Employee" +msgstr "" #. module: hr_dms_field -#: model:ir.model,name:hr_dms_field.model_dms_field_template -msgid "Dms Field Template" -msgstr "Plantilla de Campo Dms" +#: model:ir.model.fields,field_description:hr_dms_field.field_hr_employee_base__dms_directory_ids +msgid "DMS Directories" +msgstr "Directorios DMS" #. module: hr_dms_field #: model_terms:ir.ui.view,arch_db:hr_dms_field.hr_employee_public_view_form @@ -48,3 +47,6 @@ msgstr "Está registrado/a" #: model:ir.model,name:hr_dms_field.model_hr_employee_public msgid "Public Employee" msgstr "Empleado Público" + +#~ msgid "Dms Field Template" +#~ msgstr "Plantilla de Campo Dms" diff --git a/hr_dms_field/i18n/hr_dms_field.pot b/hr_dms_field/i18n/hr_dms_field.pot index 0c77b370b..6aab07ada 100644 --- a/hr_dms_field/i18n/hr_dms_field.pot +++ b/hr_dms_field/i18n/hr_dms_field.pot @@ -23,11 +23,6 @@ msgstr "" msgid "DMS Directories" msgstr "" -#. module: hr_dms_field -#: model:ir.model,name:hr_dms_field.model_dms_field_template -msgid "Dms Field Template" -msgstr "" - #. module: hr_dms_field #: model_terms:ir.ui.view,arch_db:hr_dms_field.hr_employee_public_view_form #: model_terms:ir.ui.view,arch_db:hr_dms_field.view_employee_form diff --git a/hr_dms_field/i18n/it.po b/hr_dms_field/i18n/it.po index 5a2aa4dff..d13aa6199 100644 --- a/hr_dms_field/i18n/it.po +++ b/hr_dms_field/i18n/it.po @@ -26,11 +26,6 @@ msgstr "Dipendente base" msgid "DMS Directories" msgstr "Cartelle DMS" -#. module: hr_dms_field -#: model:ir.model,name:hr_dms_field.model_dms_field_template -msgid "Dms Field Template" -msgstr "Modello campo DMS" - #. module: hr_dms_field #: model_terms:ir.ui.view,arch_db:hr_dms_field.hr_employee_public_view_form #: model_terms:ir.ui.view,arch_db:hr_dms_field.view_employee_form @@ -51,3 +46,6 @@ msgstr "È collegato" #: model:ir.model,name:hr_dms_field.model_hr_employee_public msgid "Public Employee" msgstr "Dipendente pubblico" + +#~ msgid "Dms Field Template" +#~ msgstr "Modello campo DMS" diff --git a/hr_dms_field/models/__init__.py b/hr_dms_field/models/__init__.py index 9cf62bd2e..39b647b36 100644 --- a/hr_dms_field/models/__init__.py +++ b/hr_dms_field/models/__init__.py @@ -1,5 +1,4 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). -from . import dms_field_template from . import hr_employee from . import hr_employee_public diff --git a/hr_dms_field/models/dms_field_template.py b/hr_dms_field/models/dms_field_template.py deleted file mode 100644 index 22e325047..000000000 --- a/hr_dms_field/models/dms_field_template.py +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright 2024 Tecnativa - Víctor Martínez -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -from odoo import models - - -class DmsFieldTemplate(models.Model): - _inherit = "dms.field.template" - - def _create_dms_directory(self): - """Custom method to define the directory automatically in demo data avoiding - error if it already exists.""" - self.ensure_one() - if not self.dms_directory_ids: - self.with_context( - res_model=self._name, res_id=self.id - ).create_dms_directory() diff --git a/hr_dms_field/static/description/index.html b/hr_dms_field/static/description/index.html index 55ca36328..1274c4bef 100644 --- a/hr_dms_field/static/description/index.html +++ b/hr_dms_field/static/description/index.html @@ -8,10 +8,11 @@ /* :Author: David Goodger (goodger@python.org) -:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $ +:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $ :Copyright: This stylesheet has been placed in the public domain. Default cascading style sheet for the HTML output of Docutils. +Despite the name, some widely supported CSS2 features are used. See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to customize this style sheet. @@ -274,7 +275,7 @@ margin-left: 2em ; margin-right: 2em } -pre.code .ln { color: grey; } /* line numbers */ +pre.code .ln { color: gray; } /* line numbers */ pre.code, code { background-color: #eeeeee } pre.code .comment, code .comment { color: #5C6576 } pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold } @@ -300,7 +301,7 @@ span.pre { white-space: pre } -span.problematic { +span.problematic, pre.problematic { color: red } span.section-subtitle { @@ -366,7 +367,7 @@

Add dms field for employees

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:b7f18580a215d7c509b59f1e27607ad97ff06df4cc445bd45e838ead8c9e5164 +!! source digest: sha256:184b6ffa724f34b343341e43199b5847be07bd28be8fac15ba3ea63aa17a9767 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Beta License: AGPL-3 OCA/dms Translate me on Weblate Try me on Runboat

Add the Documents tab with the files in the employee’s form view.

@@ -428,7 +429,9 @@

Contributors

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +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.

From 9e7c9b2e8cb30af2bb1e08adc62379507d1330f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Fri, 29 Nov 2024 09:06:02 +0100 Subject: [PATCH 07/20] [FIX] dms_field: Test compatibility We need to avoid applying a template except when testing functionality with dms_field* modules to avoid the error that a directory with the same name already exists (example: create partner). Related to https://github.com/OCA/dms/pull/378 [BOT] post-merge updates --- hr_dms_field/README.rst | 2 +- hr_dms_field/__manifest__.py | 2 +- hr_dms_field/static/description/index.html | 2 +- hr_dms_field/tests/test_hr_dms_field.py | 1 + 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/hr_dms_field/README.rst b/hr_dms_field/README.rst index 3b37af7f4..adb0f1a9e 100644 --- a/hr_dms_field/README.rst +++ b/hr_dms_field/README.rst @@ -7,7 +7,7 @@ Add dms field for employees !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:184b6ffa724f34b343341e43199b5847be07bd28be8fac15ba3ea63aa17a9767 + !! source digest: sha256:35dabc398679ff3e5845368e236159cafc6706dedb951dfaf579173643c91a6d !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/hr_dms_field/__manifest__.py b/hr_dms_field/__manifest__.py index 4ea5a80f0..6872cf7e8 100644 --- a/hr_dms_field/__manifest__.py +++ b/hr_dms_field/__manifest__.py @@ -2,7 +2,7 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). { "name": "Add dms field for employees", - "version": "16.0.1.0.1", + "version": "16.0.1.0.2", "category": "Human Resources", "website": "https://github.com/OCA/dms", "author": "Tecnativa, Odoo Community Association (OCA)", diff --git a/hr_dms_field/static/description/index.html b/hr_dms_field/static/description/index.html index 1274c4bef..5a94918c8 100644 --- a/hr_dms_field/static/description/index.html +++ b/hr_dms_field/static/description/index.html @@ -367,7 +367,7 @@

Add dms field for employees

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:184b6ffa724f34b343341e43199b5847be07bd28be8fac15ba3ea63aa17a9767 +!! source digest: sha256:35dabc398679ff3e5845368e236159cafc6706dedb951dfaf579173643c91a6d !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Beta License: AGPL-3 OCA/dms Translate me on Weblate Try me on Runboat

Add the Documents tab with the files in the employee’s form view.

diff --git a/hr_dms_field/tests/test_hr_dms_field.py b/hr_dms_field/tests/test_hr_dms_field.py index d41e2b40e..bf15b814c 100644 --- a/hr_dms_field/tests/test_hr_dms_field.py +++ b/hr_dms_field/tests/test_hr_dms_field.py @@ -11,6 +11,7 @@ class TestHrDmsField(BaseCommon): @classmethod def setUpClass(cls): super().setUpClass() + cls.env = cls.env(context=dict(cls.env.context, test_dms_field=True)) cls.template = cls.env.ref("hr_dms_field.field_template_employee") cls.storage = cls.template.storage_id cls.access_group = cls.template.group_ids From 78986ce52567b8b0e9d0f4d420fe4c2f6f3a3e61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Tue, 25 Mar 2025 14:51:51 +0100 Subject: [PATCH 08/20] [IMP] hr_dms_field: Add test to validate specific use cases TT55368 [BOT] post-merge updates --- hr_dms_field/README.rst | 2 +- hr_dms_field/__manifest__.py | 2 +- hr_dms_field/static/description/index.html | 2 +- hr_dms_field/tests/test_hr_dms_field.py | 25 ++++++++++++++++++++++ 4 files changed, 28 insertions(+), 3 deletions(-) diff --git a/hr_dms_field/README.rst b/hr_dms_field/README.rst index adb0f1a9e..9fa5b3907 100644 --- a/hr_dms_field/README.rst +++ b/hr_dms_field/README.rst @@ -7,7 +7,7 @@ Add dms field for employees !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:35dabc398679ff3e5845368e236159cafc6706dedb951dfaf579173643c91a6d + !! source digest: sha256:af0833e5fd156fe235251305220f05e7328980cd931e9fcd9394a244f3f65537 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/hr_dms_field/__manifest__.py b/hr_dms_field/__manifest__.py index 6872cf7e8..e63431eba 100644 --- a/hr_dms_field/__manifest__.py +++ b/hr_dms_field/__manifest__.py @@ -2,7 +2,7 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). { "name": "Add dms field for employees", - "version": "16.0.1.0.2", + "version": "16.0.1.0.3", "category": "Human Resources", "website": "https://github.com/OCA/dms", "author": "Tecnativa, Odoo Community Association (OCA)", diff --git a/hr_dms_field/static/description/index.html b/hr_dms_field/static/description/index.html index 5a94918c8..feecbd678 100644 --- a/hr_dms_field/static/description/index.html +++ b/hr_dms_field/static/description/index.html @@ -367,7 +367,7 @@

Add dms field for employees

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:35dabc398679ff3e5845368e236159cafc6706dedb951dfaf579173643c91a6d +!! source digest: sha256:af0833e5fd156fe235251305220f05e7328980cd931e9fcd9394a244f3f65537 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Beta License: AGPL-3 OCA/dms Translate me on Weblate Try me on Runboat

Add the Documents tab with the files in the employee’s form view.

diff --git a/hr_dms_field/tests/test_hr_dms_field.py b/hr_dms_field/tests/test_hr_dms_field.py index bf15b814c..60f494ef0 100644 --- a/hr_dms_field/tests/test_hr_dms_field.py +++ b/hr_dms_field/tests/test_hr_dms_field.py @@ -64,6 +64,31 @@ def test_employee_create_02(self): group_custom = employee.dms_directory_ids.group_ids.filtered("dms_field_ref") self.assertIn(self.user, group_custom.explicit_user_ids) + def test_employee_write_custom(self): + read_access_hr_employee_group = self.env.ref( + "hr_dms_field.read_access_hr_employee_group" + ) + read_access_hr_employee_group.write( + { + "group_ids": [(5, 0)], + "explicit_user_ids": [(6, 0, self.env.ref("base.user_admin").ids)], + } + ) + employee = self.employee_model.create({"name": "Test employee"}) + employee.invalidate_recordset() + directory = employee.dms_directory_ids + self.assertEqual(len(directory), 1) + directory_0 = employee.dms_directory_ids[0] + group_custom = directory_0.group_ids.filtered("dms_field_ref") + self.assertFalse(group_custom.explicit_user_ids) + # Use the demo user to modify the employee and link the user, it does not + # have access to the directory. + demo = self.env.ref("base.user_demo") + employee = employee.with_user(demo) + employee.invalidate_recordset() + employee.write({"user_id": self.user.id}) + self.assertIn(self.user, group_custom.explicit_user_ids) + @mute_logger("odoo.models.unlink") def test_employee_full_process(self): employee = self.employee_model.create( From 66d6b4f48a60fca3221989e8db29b5d44f5203dd Mon Sep 17 00:00:00 2001 From: Enric Tobella Date: Mon, 31 Mar 2025 12:10:26 +0200 Subject: [PATCH 09/20] [IMP] hr_dms_field: Allow to hide the documents by a group (activated by default) [UPD] Update hr_dms_field.pot [BOT] post-merge updates Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: dms-16.0/dms-16.0-hr_dms_field Translate-URL: https://translation.odoo-community.org/projects/dms-16-0/dms-16-0-hr_dms_field/ --- hr_dms_field/README.rst | 2 +- hr_dms_field/__manifest__.py | 8 +++-- hr_dms_field/i18n/es.po | 20 +++++++++++++ hr_dms_field/i18n/hr_dms_field.pot | 20 +++++++++++++ hr_dms_field/i18n/it.po | 20 +++++++++++++ hr_dms_field/models/__init__.py | 1 + hr_dms_field/models/res_config_settings.py | 12 ++++++++ hr_dms_field/security/security.xml | 17 +++++++++++ hr_dms_field/static/description/index.html | 2 +- hr_dms_field/views/hr_employee_view.xml | 7 ++++- .../views/res_config_settings_view.xml | 30 +++++++++++++++++++ 11 files changed, 134 insertions(+), 5 deletions(-) create mode 100644 hr_dms_field/models/res_config_settings.py create mode 100644 hr_dms_field/security/security.xml create mode 100644 hr_dms_field/views/res_config_settings_view.xml diff --git a/hr_dms_field/README.rst b/hr_dms_field/README.rst index 9fa5b3907..fbed0b0e9 100644 --- a/hr_dms_field/README.rst +++ b/hr_dms_field/README.rst @@ -7,7 +7,7 @@ Add dms field for employees !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:af0833e5fd156fe235251305220f05e7328980cd931e9fcd9394a244f3f65537 + !! source digest: sha256:c241e37322e6946ff8e28cc7ec1e680e747ba9f80fd16fe4d911fbe9a8a40cf4 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/hr_dms_field/__manifest__.py b/hr_dms_field/__manifest__.py index e63431eba..501a39b5f 100644 --- a/hr_dms_field/__manifest__.py +++ b/hr_dms_field/__manifest__.py @@ -2,14 +2,18 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). { "name": "Add dms field for employees", - "version": "16.0.1.0.3", + "version": "16.0.1.1.0", "category": "Human Resources", "website": "https://github.com/OCA/dms", "author": "Tecnativa, Odoo Community Association (OCA)", "license": "AGPL-3", "depends": ["hr", "dms_field"], "installable": True, - "data": ["views/hr_employee_view.xml"], + "data": [ + "security/security.xml", + "views/hr_employee_view.xml", + "views/res_config_settings_view.xml", + ], "demo": ["demo/dms_data.xml"], "assets": { "web.assets_backend": [ diff --git a/hr_dms_field/i18n/es.po b/hr_dms_field/i18n/es.po index f4c076e99..f26b1612f 100644 --- a/hr_dms_field/i18n/es.po +++ b/hr_dms_field/i18n/es.po @@ -17,16 +17,31 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.17\n" +#. module: hr_dms_field +#: model_terms:ir.ui.view,arch_db:hr_dms_field.res_config_settings_view_form +msgid "Allow employees to access their DMS Documents." +msgstr "" + #. module: hr_dms_field #: model:ir.model,name:hr_dms_field.model_hr_employee_base msgid "Basic Employee" msgstr "" +#. module: hr_dms_field +#: model:ir.model,name:hr_dms_field.model_res_config_settings +msgid "Config Settings" +msgstr "" + #. module: hr_dms_field #: model:ir.model.fields,field_description:hr_dms_field.field_hr_employee_base__dms_directory_ids msgid "DMS Directories" msgstr "Directorios DMS" +#. module: hr_dms_field +#: model:res.groups,name:hr_dms_field.group_hr_public_dms +msgid "DMS Is accessible publicly on employee profile" +msgstr "" + #. module: hr_dms_field #: model_terms:ir.ui.view,arch_db:hr_dms_field.hr_employee_public_view_form #: model_terms:ir.ui.view,arch_db:hr_dms_field.view_employee_form @@ -48,5 +63,10 @@ msgstr "Está registrado/a" msgid "Public Employee" msgstr "Empleado Público" +#. module: hr_dms_field +#: model:ir.model.fields,field_description:hr_dms_field.field_res_config_settings__group_hr_public_dms +msgid "Show DMS Documents to logged employees" +msgstr "" + #~ msgid "Dms Field Template" #~ msgstr "Plantilla de Campo Dms" diff --git a/hr_dms_field/i18n/hr_dms_field.pot b/hr_dms_field/i18n/hr_dms_field.pot index 6aab07ada..8602fa49a 100644 --- a/hr_dms_field/i18n/hr_dms_field.pot +++ b/hr_dms_field/i18n/hr_dms_field.pot @@ -13,16 +13,31 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: hr_dms_field +#: model_terms:ir.ui.view,arch_db:hr_dms_field.res_config_settings_view_form +msgid "Allow employees to access their DMS Documents." +msgstr "" + #. module: hr_dms_field #: model:ir.model,name:hr_dms_field.model_hr_employee_base msgid "Basic Employee" msgstr "" +#. module: hr_dms_field +#: model:ir.model,name:hr_dms_field.model_res_config_settings +msgid "Config Settings" +msgstr "" + #. module: hr_dms_field #: model:ir.model.fields,field_description:hr_dms_field.field_hr_employee_base__dms_directory_ids msgid "DMS Directories" msgstr "" +#. module: hr_dms_field +#: model:res.groups,name:hr_dms_field.group_hr_public_dms +msgid "DMS Is accessible publicly on employee profile" +msgstr "" + #. module: hr_dms_field #: model_terms:ir.ui.view,arch_db:hr_dms_field.hr_employee_public_view_form #: model_terms:ir.ui.view,arch_db:hr_dms_field.view_employee_form @@ -43,3 +58,8 @@ msgstr "" #: model:ir.model,name:hr_dms_field.model_hr_employee_public msgid "Public Employee" msgstr "" + +#. module: hr_dms_field +#: model:ir.model.fields,field_description:hr_dms_field.field_res_config_settings__group_hr_public_dms +msgid "Show DMS Documents to logged employees" +msgstr "" diff --git a/hr_dms_field/i18n/it.po b/hr_dms_field/i18n/it.po index d13aa6199..b97bfcc29 100644 --- a/hr_dms_field/i18n/it.po +++ b/hr_dms_field/i18n/it.po @@ -16,16 +16,31 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.17\n" +#. module: hr_dms_field +#: model_terms:ir.ui.view,arch_db:hr_dms_field.res_config_settings_view_form +msgid "Allow employees to access their DMS Documents." +msgstr "" + #. module: hr_dms_field #: model:ir.model,name:hr_dms_field.model_hr_employee_base msgid "Basic Employee" msgstr "Dipendente base" +#. module: hr_dms_field +#: model:ir.model,name:hr_dms_field.model_res_config_settings +msgid "Config Settings" +msgstr "" + #. module: hr_dms_field #: model:ir.model.fields,field_description:hr_dms_field.field_hr_employee_base__dms_directory_ids msgid "DMS Directories" msgstr "Cartelle DMS" +#. module: hr_dms_field +#: model:res.groups,name:hr_dms_field.group_hr_public_dms +msgid "DMS Is accessible publicly on employee profile" +msgstr "" + #. module: hr_dms_field #: model_terms:ir.ui.view,arch_db:hr_dms_field.hr_employee_public_view_form #: model_terms:ir.ui.view,arch_db:hr_dms_field.view_employee_form @@ -47,5 +62,10 @@ msgstr "È collegato" msgid "Public Employee" msgstr "Dipendente pubblico" +#. module: hr_dms_field +#: model:ir.model.fields,field_description:hr_dms_field.field_res_config_settings__group_hr_public_dms +msgid "Show DMS Documents to logged employees" +msgstr "" + #~ msgid "Dms Field Template" #~ msgstr "Modello campo DMS" diff --git a/hr_dms_field/models/__init__.py b/hr_dms_field/models/__init__.py index 39b647b36..4b0c3964b 100644 --- a/hr_dms_field/models/__init__.py +++ b/hr_dms_field/models/__init__.py @@ -2,3 +2,4 @@ from . import hr_employee from . import hr_employee_public +from . import res_config_settings diff --git a/hr_dms_field/models/res_config_settings.py b/hr_dms_field/models/res_config_settings.py new file mode 100644 index 000000000..2e947130c --- /dev/null +++ b/hr_dms_field/models/res_config_settings.py @@ -0,0 +1,12 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import fields, models + + +class ResConfigSettings(models.TransientModel): + _inherit = "res.config.settings" + + group_hr_public_dms = fields.Boolean( + string="Show DMS Documents to logged employees", + implied_group="hr_dms_field.group_hr_public_dms", + ) diff --git a/hr_dms_field/security/security.xml b/hr_dms_field/security/security.xml new file mode 100644 index 000000000..ac6da1e90 --- /dev/null +++ b/hr_dms_field/security/security.xml @@ -0,0 +1,17 @@ + + + + + DMS Is accessible publicly on employee profile + + + + + + + + + diff --git a/hr_dms_field/static/description/index.html b/hr_dms_field/static/description/index.html index feecbd678..631276ab5 100644 --- a/hr_dms_field/static/description/index.html +++ b/hr_dms_field/static/description/index.html @@ -367,7 +367,7 @@

Add dms field for employees

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

Beta License: AGPL-3 OCA/dms Translate me on Weblate Try me on Runboat

Add the Documents tab with the files in the employee’s form view.

diff --git a/hr_dms_field/views/hr_employee_view.xml b/hr_dms_field/views/hr_employee_view.xml index 88521ecf5..8ac937d8d 100644 --- a/hr_dms_field/views/hr_employee_view.xml +++ b/hr_dms_field/views/hr_employee_view.xml @@ -22,7 +22,11 @@ - + @@ -30,6 +34,7 @@ name="dms" string="Documents" attrs="{'invisible': [('is_logged', '=', False)]}" + groups="hr_dms_field.group_hr_public_dms" > diff --git a/hr_dms_field/views/res_config_settings_view.xml b/hr_dms_field/views/res_config_settings_view.xml new file mode 100644 index 000000000..2b9569cae --- /dev/null +++ b/hr_dms_field/views/res_config_settings_view.xml @@ -0,0 +1,30 @@ + + + + res.config.settings.view.form.inherit.hr + res.config.settings + + + + +
+
+ +
+
+
+
+
+
+
+
From 5c6599254cf51cf2161c6c724e7b2ae7ff292db4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Fri, 4 Apr 2025 08:26:38 +0000 Subject: [PATCH 10/20] Translated using Weblate (Spanish) Currently translated at 80.0% (8 of 10 strings) Translation: dms-16.0/dms-16.0-hr_dms_field Translate-URL: https://translation.odoo-community.org/projects/dms-16-0/dms-16-0-hr_dms_field/es/ --- hr_dms_field/i18n/es.po | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/hr_dms_field/i18n/es.po b/hr_dms_field/i18n/es.po index f26b1612f..5480d4167 100644 --- a/hr_dms_field/i18n/es.po +++ b/hr_dms_field/i18n/es.po @@ -7,20 +7,20 @@ msgstr "" "Project-Id-Version: Odoo Server 15.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-02-07 16:03+0000\n" -"PO-Revision-Date: 2024-03-23 09:34+0000\n" -"Last-Translator: Ivorra78 \n" +"PO-Revision-Date: 2025-04-04 11:06+0000\n" +"Last-Translator: Víctor Martínez \n" "Language-Team: \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.17\n" +"X-Generator: Weblate 5.10.2\n" #. module: hr_dms_field #: model_terms:ir.ui.view,arch_db:hr_dms_field.res_config_settings_view_form msgid "Allow employees to access their DMS Documents." -msgstr "" +msgstr "Permitir a los empleados acceder a sus Documentos DMS." #. module: hr_dms_field #: model:ir.model,name:hr_dms_field.model_hr_employee_base @@ -40,7 +40,7 @@ msgstr "Directorios DMS" #. module: hr_dms_field #: model:res.groups,name:hr_dms_field.group_hr_public_dms msgid "DMS Is accessible publicly on employee profile" -msgstr "" +msgstr "DMS es accesible públicamente en el perfil del empleado" #. module: hr_dms_field #: model_terms:ir.ui.view,arch_db:hr_dms_field.hr_employee_public_view_form @@ -66,7 +66,7 @@ msgstr "Empleado Público" #. module: hr_dms_field #: model:ir.model.fields,field_description:hr_dms_field.field_res_config_settings__group_hr_public_dms msgid "Show DMS Documents to logged employees" -msgstr "" +msgstr "Mostrar documentos DMS a las empleados logeados" #~ msgid "Dms Field Template" #~ msgstr "Plantilla de Campo Dms" From 184fd2c669ee30d2dc951b4d9529ae2410315e5a Mon Sep 17 00:00:00 2001 From: mymage Date: Sat, 5 Apr 2025 08:59:11 +0000 Subject: [PATCH 11/20] Translated using Weblate (Italian) Currently translated at 100.0% (10 of 10 strings) Translation: dms-16.0/dms-16.0-hr_dms_field Translate-URL: https://translation.odoo-community.org/projects/dms-16-0/dms-16-0-hr_dms_field/it/ --- hr_dms_field/i18n/it.po | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/hr_dms_field/i18n/it.po b/hr_dms_field/i18n/it.po index b97bfcc29..a14319ddc 100644 --- a/hr_dms_field/i18n/it.po +++ b/hr_dms_field/i18n/it.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-07-04 17:47+0000\n" +"PO-Revision-Date: 2025-04-05 11:06+0000\n" "Last-Translator: mymage \n" "Language-Team: none\n" "Language: it\n" @@ -14,12 +14,12 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.17\n" +"X-Generator: Weblate 5.10.2\n" #. module: hr_dms_field #: model_terms:ir.ui.view,arch_db:hr_dms_field.res_config_settings_view_form msgid "Allow employees to access their DMS Documents." -msgstr "" +msgstr "Consente ai dipendenti di accedere ai propri documenti DMS." #. module: hr_dms_field #: model:ir.model,name:hr_dms_field.model_hr_employee_base @@ -29,7 +29,7 @@ msgstr "Dipendente base" #. module: hr_dms_field #: model:ir.model,name:hr_dms_field.model_res_config_settings msgid "Config Settings" -msgstr "" +msgstr "Impostazioni configurazione" #. module: hr_dms_field #: model:ir.model.fields,field_description:hr_dms_field.field_hr_employee_base__dms_directory_ids @@ -39,7 +39,7 @@ msgstr "Cartelle DMS" #. module: hr_dms_field #: model:res.groups,name:hr_dms_field.group_hr_public_dms msgid "DMS Is accessible publicly on employee profile" -msgstr "" +msgstr "DMS è accessibile pubblicamente nel profilo dipendente" #. module: hr_dms_field #: model_terms:ir.ui.view,arch_db:hr_dms_field.hr_employee_public_view_form @@ -65,7 +65,7 @@ msgstr "Dipendente pubblico" #. module: hr_dms_field #: model:ir.model.fields,field_description:hr_dms_field.field_res_config_settings__group_hr_public_dms msgid "Show DMS Documents to logged employees" -msgstr "" +msgstr "Mostra i documenti DMS ai dipendenti collegati" #~ msgid "Dms Field Template" #~ msgstr "Modello campo DMS" From 4a1af8505680367c82135ac768fe142705fd1c9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Mon, 12 May 2025 09:05:40 +0200 Subject: [PATCH 12/20] [IMP] hr_dms_field: pre-commit auto fixes --- hr_dms_field/README.rst | 42 ++++++++++--------- hr_dms_field/pyproject.toml | 3 ++ hr_dms_field/readme/CONFIGURE.md | 8 ++++ hr_dms_field/readme/CONFIGURE.rst | 4 -- hr_dms_field/readme/CONTRIBUTORS.md | 3 ++ hr_dms_field/readme/CONTRIBUTORS.rst | 4 -- .../{DESCRIPTION.rst => DESCRIPTION.md} | 0 hr_dms_field/readme/USAGE.md | 4 ++ hr_dms_field/readme/USAGE.rst | 4 -- hr_dms_field/static/description/index.html | 23 ++++++---- 10 files changed, 55 insertions(+), 40 deletions(-) create mode 100644 hr_dms_field/pyproject.toml create mode 100644 hr_dms_field/readme/CONFIGURE.md delete mode 100644 hr_dms_field/readme/CONFIGURE.rst create mode 100644 hr_dms_field/readme/CONTRIBUTORS.md delete mode 100644 hr_dms_field/readme/CONTRIBUTORS.rst rename hr_dms_field/readme/{DESCRIPTION.rst => DESCRIPTION.md} (100%) create mode 100644 hr_dms_field/readme/USAGE.md delete mode 100644 hr_dms_field/readme/USAGE.rst diff --git a/hr_dms_field/README.rst b/hr_dms_field/README.rst index fbed0b0e9..083473286 100644 --- a/hr_dms_field/README.rst +++ b/hr_dms_field/README.rst @@ -17,13 +17,13 @@ Add dms field for employees :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fdms-lightgray.png?logo=github - :target: https://github.com/OCA/dms/tree/16.0/hr_dms_field + :target: https://github.com/OCA/dms/tree/18.0/hr_dms_field :alt: OCA/dms .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/dms-16-0/dms-16-0-hr_dms_field + :target: https://translation.odoo-community.org/projects/dms-18-0/dms-18-0-hr_dms_field :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/dms&target_branch=16.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/dms&target_branch=18.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -38,18 +38,22 @@ Add the Documents tab with the files in the employee's form view. Configuration ============= -#. *Go to Documents > Configuration > File templates* and create a new record. -#. Set a storage, a model (hr.employee) and the access groups you want. -#. Click on the "Documents" tab icon and a folder hierarchy will be created. -#. You can set here the hierarchy of directories, subdirectories and files you need, this hierarchy will be used as a base when creating a new record (res.partner for example). +1. *Go to Documents > Configuration > File templates* and create a new + record. +2. Set a storage, a model (hr.employee) and the access groups you want. +3. Click on the "Documents" tab icon and a folder hierarchy will be + created. +4. You can set here the hierarchy of directories, subdirectories and + files you need, this hierarchy will be used as a base when creating a + new record (res.partner for example). Usage ===== -#. Go to the form view of an existing employee and click on the "Documents" tab icon, a hierarchy of -folders and files linked to that record will be created. -#. Create a new employee. A hierarchy of folders and files linked to that record will be created. - +#. Go to the form view of an existing employee and click on the +"Documents" tab icon, a hierarchy of folders and files linked to that +record will be created. #. Create a new employee. A hierarchy of folders +and files linked to that record will be created. Bug Tracker =========== @@ -57,7 +61,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 to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -65,20 +69,20 @@ Credits ======= Authors -~~~~~~~ +------- * Tecnativa Contributors -~~~~~~~~~~~~ +------------ -* `Tecnativa `_: +- `Tecnativa `__: - * Víctor Martínez - * Pedro M. Baeza + - Víctor Martínez + - Pedro M. Baeza Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. @@ -98,6 +102,6 @@ Current `maintainer `__: |maintainer-victoralmau| -This module is part of the `OCA/dms `_ project on GitHub. +This module is part of the `OCA/dms `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/hr_dms_field/pyproject.toml b/hr_dms_field/pyproject.toml new file mode 100644 index 000000000..4231d0ccc --- /dev/null +++ b/hr_dms_field/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/hr_dms_field/readme/CONFIGURE.md b/hr_dms_field/readme/CONFIGURE.md new file mode 100644 index 000000000..23bf738ac --- /dev/null +++ b/hr_dms_field/readme/CONFIGURE.md @@ -0,0 +1,8 @@ +1. *Go to Documents \> Configuration \> File templates* and create a + new record. +2. Set a storage, a model (hr.employee) and the access groups you want. +3. Click on the "Documents" tab icon and a folder hierarchy will be + created. +4. You can set here the hierarchy of directories, subdirectories and + files you need, this hierarchy will be used as a base when creating + a new record (res.partner for example). diff --git a/hr_dms_field/readme/CONFIGURE.rst b/hr_dms_field/readme/CONFIGURE.rst deleted file mode 100644 index 0d29022ea..000000000 --- a/hr_dms_field/readme/CONFIGURE.rst +++ /dev/null @@ -1,4 +0,0 @@ -#. *Go to Documents > Configuration > File templates* and create a new record. -#. Set a storage, a model (hr.employee) and the access groups you want. -#. Click on the "Documents" tab icon and a folder hierarchy will be created. -#. You can set here the hierarchy of directories, subdirectories and files you need, this hierarchy will be used as a base when creating a new record (res.partner for example). diff --git a/hr_dms_field/readme/CONTRIBUTORS.md b/hr_dms_field/readme/CONTRIBUTORS.md new file mode 100644 index 000000000..5fee39042 --- /dev/null +++ b/hr_dms_field/readme/CONTRIBUTORS.md @@ -0,0 +1,3 @@ +- [Tecnativa](https://www.tecnativa.com): + - Víctor Martínez + - Pedro M. Baeza diff --git a/hr_dms_field/readme/CONTRIBUTORS.rst b/hr_dms_field/readme/CONTRIBUTORS.rst deleted file mode 100644 index 5fb713053..000000000 --- a/hr_dms_field/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,4 +0,0 @@ -* `Tecnativa `_: - - * Víctor Martínez - * Pedro M. Baeza diff --git a/hr_dms_field/readme/DESCRIPTION.rst b/hr_dms_field/readme/DESCRIPTION.md similarity index 100% rename from hr_dms_field/readme/DESCRIPTION.rst rename to hr_dms_field/readme/DESCRIPTION.md diff --git a/hr_dms_field/readme/USAGE.md b/hr_dms_field/readme/USAGE.md new file mode 100644 index 000000000..bb33eaa0f --- /dev/null +++ b/hr_dms_field/readme/USAGE.md @@ -0,0 +1,4 @@ +#\. Go to the form view of an existing employee and click on the +"Documents" tab icon, a hierarchy of folders and files linked to that +record will be created. \#. Create a new employee. A hierarchy of +folders and files linked to that record will be created. diff --git a/hr_dms_field/readme/USAGE.rst b/hr_dms_field/readme/USAGE.rst deleted file mode 100644 index b8dab615f..000000000 --- a/hr_dms_field/readme/USAGE.rst +++ /dev/null @@ -1,4 +0,0 @@ -#. Go to the form view of an existing employee and click on the "Documents" tab icon, a hierarchy of -folders and files linked to that record will be created. -#. Create a new employee. A hierarchy of folders and files linked to that record will be created. - diff --git a/hr_dms_field/static/description/index.html b/hr_dms_field/static/description/index.html index 631276ab5..4eb608c31 100644 --- a/hr_dms_field/static/description/index.html +++ b/hr_dms_field/static/description/index.html @@ -369,7 +369,7 @@

Add dms field for employees

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:c241e37322e6946ff8e28cc7ec1e680e747ba9f80fd16fe4d911fbe9a8a40cf4 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/dms Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/dms Translate me on Weblate Try me on Runboat

Add the Documents tab with the files in the employee’s form view.

Table of contents

@@ -388,24 +388,29 @@

Add dms field for employees

Configuration

    -
  1. Go to Documents > Configuration > File templates and create a new record.
  2. +
  3. Go to Documents > Configuration > File templates and create a new +record.
  4. Set a storage, a model (hr.employee) and the access groups you want.
  5. -
  6. Click on the “Documents” tab icon and a folder hierarchy will be created.
  7. -
  8. You can set here the hierarchy of directories, subdirectories and files you need, this hierarchy will be used as a base when creating a new record (res.partner for example).
  9. +
  10. Click on the “Documents” tab icon and a folder hierarchy will be +created.
  11. +
  12. You can set here the hierarchy of directories, subdirectories and +files you need, this hierarchy will be used as a base when creating a +new record (res.partner for example).

Usage

-

#. Go to the form view of an existing employee and click on the “Documents” tab icon, a hierarchy of -folders and files linked to that record will be created. -#. Create a new employee. A hierarchy of folders and files linked to that record will be created.

+

#. Go to the form view of an existing employee and click on the +“Documents” tab icon, a hierarchy of folders and files linked to that +record will be created. #. Create a new employee. A hierarchy of folders +and files linked to that record will be created.

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -feedback.

+feedback.

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

@@ -437,7 +442,7 @@

Maintainers

promote its widespread use.

Current maintainer:

victoralmau

-

This module is part of the OCA/dms project on GitHub.

+

This module is part of the OCA/dms project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

From ff0599f31ec2cd9980b585e28ddba5b372a8a097 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Mon, 12 May 2025 09:08:28 +0200 Subject: [PATCH 13/20] [MIG] hr_dms_field: Migration to 18.0 TT55524 --- hr_dms_field/__manifest__.py | 2 +- hr_dms_field/demo/dms_data.xml | 4 +++ hr_dms_field/i18n/es.po | 3 -- hr_dms_field/i18n/it.po | 3 -- .../src/js/base/dms_list_controller.esm.js | 32 +++++++++++-------- hr_dms_field/tests/test_hr_dms_field.py | 9 +++--- hr_dms_field/views/hr_employee_view.xml | 8 ++--- .../views/res_config_settings_view.xml | 7 ++-- 8 files changed, 32 insertions(+), 36 deletions(-) diff --git a/hr_dms_field/__manifest__.py b/hr_dms_field/__manifest__.py index 501a39b5f..d445cd3bf 100644 --- a/hr_dms_field/__manifest__.py +++ b/hr_dms_field/__manifest__.py @@ -2,7 +2,7 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). { "name": "Add dms field for employees", - "version": "16.0.1.1.0", + "version": "18.0.1.0.0", "category": "Human Resources", "website": "https://github.com/OCA/dms", "author": "Tecnativa, Odoo Community Association (OCA)", diff --git a/hr_dms_field/demo/dms_data.xml b/hr_dms_field/demo/dms_data.xml index 20efbaad7..1a1be244b 100644 --- a/hr_dms_field/demo/dms_data.xml +++ b/hr_dms_field/demo/dms_data.xml @@ -13,5 +13,9 @@ + + {{object.display_name}} (employee) diff --git a/hr_dms_field/i18n/es.po b/hr_dms_field/i18n/es.po index 5480d4167..84cdb7f21 100644 --- a/hr_dms_field/i18n/es.po +++ b/hr_dms_field/i18n/es.po @@ -67,6 +67,3 @@ msgstr "Empleado Público" #: model:ir.model.fields,field_description:hr_dms_field.field_res_config_settings__group_hr_public_dms msgid "Show DMS Documents to logged employees" msgstr "Mostrar documentos DMS a las empleados logeados" - -#~ msgid "Dms Field Template" -#~ msgstr "Plantilla de Campo Dms" diff --git a/hr_dms_field/i18n/it.po b/hr_dms_field/i18n/it.po index a14319ddc..76558def1 100644 --- a/hr_dms_field/i18n/it.po +++ b/hr_dms_field/i18n/it.po @@ -66,6 +66,3 @@ msgstr "Dipendente pubblico" #: model:ir.model.fields,field_description:hr_dms_field.field_res_config_settings__group_hr_public_dms msgid "Show DMS Documents to logged employees" msgstr "Mostra i documenti DMS ai dipendenti collegati" - -#~ msgid "Dms Field Template" -#~ msgstr "Modello campo DMS" diff --git a/hr_dms_field/static/src/js/base/dms_list_controller.esm.js b/hr_dms_field/static/src/js/base/dms_list_controller.esm.js index 52dde158a..8526c937d 100644 --- a/hr_dms_field/static/src/js/base/dms_list_controller.esm.js +++ b/hr_dms_field/static/src/js/base/dms_list_controller.esm.js @@ -1,16 +1,20 @@ -/** @odoo-module **/ - -import {DMSListControllerObject} from "@dms_field/views/dms_list/dms_list_controller.esm"; +import {DmsListController} from "@dms_field/views/dms_list/dms_list_controller.esm"; +import {X2ManyField} from "@web/views/fields/x2many/x2many_field"; import {patch} from "@web/core/utils/patch"; -patch(DMSListControllerObject, "hr_dms_field.DMSListControllerObject", { - // A basic user does not have access to hr.employee, only to hr.employee.public - // (Employee Directory), we have to get the data from hr.employee because that - // is where it is actually linked. - sanitizeDMSModel: function (model) { - if (model === "hr.employee.public") { - return "hr.employee"; - } - return this._super(...arguments); - }, -}); +function getSanitizeDMSModel() { + return { + // A basic user does not have access to hr.employee, only to hr.employee.public + // (Employee Directory), we have to get the data from hr.employee because that + // is where it is actually linked. + sanitizeDMSModel(model) { + if (model === "hr.employee.public") { + return "hr.employee"; + } + return super.sanitizeDMSModel(...arguments); + }, + }; +} + +patch(DmsListController.prototype, getSanitizeDMSModel()); +patch(X2ManyField.prototype, getSanitizeDMSModel()); diff --git a/hr_dms_field/tests/test_hr_dms_field.py b/hr_dms_field/tests/test_hr_dms_field.py index 60f494ef0..b3ee8a17b 100644 --- a/hr_dms_field/tests/test_hr_dms_field.py +++ b/hr_dms_field/tests/test_hr_dms_field.py @@ -1,6 +1,6 @@ -# Copyright 2024 Tecnativa - Víctor Martínez +# Copyright 2024-2025 Tecnativa - Víctor Martínez # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). - +from odoo import Command from odoo.tests import new_test_user from odoo.tools import mute_logger @@ -70,8 +70,8 @@ def test_employee_write_custom(self): ) read_access_hr_employee_group.write( { - "group_ids": [(5, 0)], - "explicit_user_ids": [(6, 0, self.env.ref("base.user_admin").ids)], + "group_ids": [Command.set([])], + "explicit_user_ids": [Command.set(self.env.ref("base.user_admin").ids)], } ) employee = self.employee_model.create({"name": "Test employee"}) @@ -84,6 +84,7 @@ def test_employee_write_custom(self): # Use the demo user to modify the employee and link the user, it does not # have access to the directory. demo = self.env.ref("base.user_demo") + demo.write({"groups_id": [Command.link(self.env.ref("hr.group_hr_user").id)]}) employee = employee.with_user(demo) employee.invalidate_recordset() employee.write({"user_id": self.user.id}) diff --git a/hr_dms_field/views/hr_employee_view.xml b/hr_dms_field/views/hr_employee_view.xml index 8ac937d8d..edb4cdbb3 100644 --- a/hr_dms_field/views/hr_employee_view.xml +++ b/hr_dms_field/views/hr_employee_view.xml @@ -6,11 +6,7 @@ - + @@ -33,7 +29,7 @@ diff --git a/hr_dms_field/views/res_config_settings_view.xml b/hr_dms_field/views/res_config_settings_view.xml index 2b9569cae..1d7e9b172 100644 --- a/hr_dms_field/views/res_config_settings_view.xml +++ b/hr_dms_field/views/res_config_settings_view.xml @@ -6,10 +6,7 @@ - +
- +
From 78d87f7cbc97f3012af1f4a184b37910b26260d1 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Tue, 13 May 2025 06:52:28 +0000 Subject: [PATCH 14/20] [UPD] Update hr_dms_field.pot --- hr_dms_field/i18n/hr_dms_field.pot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hr_dms_field/i18n/hr_dms_field.pot b/hr_dms_field/i18n/hr_dms_field.pot index 8602fa49a..4a3275e4a 100644 --- a/hr_dms_field/i18n/hr_dms_field.pot +++ b/hr_dms_field/i18n/hr_dms_field.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 16.0\n" +"Project-Id-Version: Odoo Server 18.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" From d07a98ab94c0de015dbfdea54ad62620c9fb3295 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Tue, 13 May 2025 06:55:09 +0000 Subject: [PATCH 15/20] [BOT] post-merge updates --- hr_dms_field/README.rst | 8 ++++---- hr_dms_field/static/description/index.html | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/hr_dms_field/README.rst b/hr_dms_field/README.rst index 083473286..b05ee2825 100644 --- a/hr_dms_field/README.rst +++ b/hr_dms_field/README.rst @@ -7,7 +7,7 @@ Add dms field for employees !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:c241e37322e6946ff8e28cc7ec1e680e747ba9f80fd16fe4d911fbe9a8a40cf4 + !! source digest: sha256:99c1af9016e8a5e75bd43f6403d63230fbb9cfea89cb2e5e7e5885ec751a9db0 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png @@ -76,10 +76,10 @@ Authors Contributors ------------ -- `Tecnativa `__: +- `Tecnativa `__: - - Víctor Martínez - - Pedro M. Baeza + - Víctor Martínez + - Pedro M. Baeza Maintainers ----------- diff --git a/hr_dms_field/static/description/index.html b/hr_dms_field/static/description/index.html index 4eb608c31..68604c591 100644 --- a/hr_dms_field/static/description/index.html +++ b/hr_dms_field/static/description/index.html @@ -367,7 +367,7 @@

Add dms field for employees

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:c241e37322e6946ff8e28cc7ec1e680e747ba9f80fd16fe4d911fbe9a8a40cf4 +!! source digest: sha256:99c1af9016e8a5e75bd43f6403d63230fbb9cfea89cb2e5e7e5885ec751a9db0 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Beta License: AGPL-3 OCA/dms Translate me on Weblate Try me on Runboat

Add the Documents tab with the files in the employee’s form view.

From eba68d994b307f4859f2cc2059d4a37b26a73923 Mon Sep 17 00:00:00 2001 From: Ed-Spain Date: Wed, 22 Apr 2026 12:42:30 +0000 Subject: [PATCH 16/20] Translated using Weblate (Spanish) Currently translated at 90.0% (9 of 10 strings) Translation: dms-18.0/dms-18.0-hr_dms_field Translate-URL: https://translation.odoo-community.org/projects/dms-18-0/dms-18-0-hr_dms_field/es/ --- hr_dms_field/i18n/es.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/hr_dms_field/i18n/es.po b/hr_dms_field/i18n/es.po index 84cdb7f21..fc6bc42f2 100644 --- a/hr_dms_field/i18n/es.po +++ b/hr_dms_field/i18n/es.po @@ -7,15 +7,15 @@ msgstr "" "Project-Id-Version: Odoo Server 15.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-02-07 16:03+0000\n" -"PO-Revision-Date: 2025-04-04 11:06+0000\n" -"Last-Translator: Víctor Martínez \n" +"PO-Revision-Date: 2026-04-22 14:45+0000\n" +"Last-Translator: Ed-Spain \n" "Language-Team: \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.10.2\n" +"X-Generator: Weblate 5.15.2\n" #. module: hr_dms_field #: model_terms:ir.ui.view,arch_db:hr_dms_field.res_config_settings_view_form @@ -25,7 +25,7 @@ msgstr "Permitir a los empleados acceder a sus Documentos DMS." #. module: hr_dms_field #: model:ir.model,name:hr_dms_field.model_hr_employee_base msgid "Basic Employee" -msgstr "" +msgstr "Empleado Básico" #. module: hr_dms_field #: model:ir.model,name:hr_dms_field.model_res_config_settings From 18c3d3354bd2e2a2aa8cb1038734192357dfe9b9 Mon Sep 17 00:00:00 2001 From: Mohamed Essam Salem Date: Thu, 14 May 2026 22:41:36 +0000 Subject: [PATCH 17/20] Added translation using Weblate (Arabic) --- hr_dms_field/i18n/ar.po | 67 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 hr_dms_field/i18n/ar.po diff --git a/hr_dms_field/i18n/ar.po b/hr_dms_field/i18n/ar.po new file mode 100644 index 000000000..b708cb794 --- /dev/null +++ b/hr_dms_field/i18n/ar.po @@ -0,0 +1,67 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_dms_field +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ar\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" + +#. module: hr_dms_field +#: model_terms:ir.ui.view,arch_db:hr_dms_field.res_config_settings_view_form +msgid "Allow employees to access their DMS Documents." +msgstr "" + +#. module: hr_dms_field +#: model:ir.model,name:hr_dms_field.model_hr_employee_base +msgid "Basic Employee" +msgstr "" + +#. module: hr_dms_field +#: model:ir.model,name:hr_dms_field.model_res_config_settings +msgid "Config Settings" +msgstr "" + +#. module: hr_dms_field +#: model:ir.model.fields,field_description:hr_dms_field.field_hr_employee_base__dms_directory_ids +msgid "DMS Directories" +msgstr "" + +#. module: hr_dms_field +#: model:res.groups,name:hr_dms_field.group_hr_public_dms +msgid "DMS Is accessible publicly on employee profile" +msgstr "" + +#. module: hr_dms_field +#: model_terms:ir.ui.view,arch_db:hr_dms_field.hr_employee_public_view_form +#: model_terms:ir.ui.view,arch_db:hr_dms_field.view_employee_form +msgid "Documents" +msgstr "" + +#. module: hr_dms_field +#: model:dms.access.group,name:hr_dms_field.read_access_hr_employee_group +msgid "Everyone for Employee DMS" +msgstr "" + +#. module: hr_dms_field +#: model:ir.model.fields,field_description:hr_dms_field.field_hr_employee_public__is_logged +msgid "Is Logged" +msgstr "" + +#. module: hr_dms_field +#: model:ir.model,name:hr_dms_field.model_hr_employee_public +msgid "Public Employee" +msgstr "" + +#. module: hr_dms_field +#: model:ir.model.fields,field_description:hr_dms_field.field_res_config_settings__group_hr_public_dms +msgid "Show DMS Documents to logged employees" +msgstr "" From 30db4083523a383095462b0e19e3356378e7c81d Mon Sep 17 00:00:00 2001 From: Matjaz Mozetic Date: Mon, 22 Jun 2026 09:22:53 +0000 Subject: [PATCH 18/20] Added translation using Weblate (Slovenian) --- hr_dms_field/i18n/sl.po | 67 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 hr_dms_field/i18n/sl.po diff --git a/hr_dms_field/i18n/sl.po b/hr_dms_field/i18n/sl.po new file mode 100644 index 000000000..417650f86 --- /dev/null +++ b/hr_dms_field/i18n/sl.po @@ -0,0 +1,67 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_dms_field +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || " +"n%100==4 ? 2 : 3;\n" + +#. module: hr_dms_field +#: model_terms:ir.ui.view,arch_db:hr_dms_field.res_config_settings_view_form +msgid "Allow employees to access their DMS Documents." +msgstr "" + +#. module: hr_dms_field +#: model:ir.model,name:hr_dms_field.model_hr_employee_base +msgid "Basic Employee" +msgstr "" + +#. module: hr_dms_field +#: model:ir.model,name:hr_dms_field.model_res_config_settings +msgid "Config Settings" +msgstr "" + +#. module: hr_dms_field +#: model:ir.model.fields,field_description:hr_dms_field.field_hr_employee_base__dms_directory_ids +msgid "DMS Directories" +msgstr "" + +#. module: hr_dms_field +#: model:res.groups,name:hr_dms_field.group_hr_public_dms +msgid "DMS Is accessible publicly on employee profile" +msgstr "" + +#. module: hr_dms_field +#: model_terms:ir.ui.view,arch_db:hr_dms_field.hr_employee_public_view_form +#: model_terms:ir.ui.view,arch_db:hr_dms_field.view_employee_form +msgid "Documents" +msgstr "" + +#. module: hr_dms_field +#: model:dms.access.group,name:hr_dms_field.read_access_hr_employee_group +msgid "Everyone for Employee DMS" +msgstr "" + +#. module: hr_dms_field +#: model:ir.model.fields,field_description:hr_dms_field.field_hr_employee_public__is_logged +msgid "Is Logged" +msgstr "" + +#. module: hr_dms_field +#: model:ir.model,name:hr_dms_field.model_hr_employee_public +msgid "Public Employee" +msgstr "" + +#. module: hr_dms_field +#: model:ir.model.fields,field_description:hr_dms_field.field_res_config_settings__group_hr_public_dms +msgid "Show DMS Documents to logged employees" +msgstr "" From e8631df2092d02b6c241c1caeb2f9000d05e83b5 Mon Sep 17 00:00:00 2001 From: Matjaz Mozetic Date: Mon, 22 Jun 2026 09:25:25 +0000 Subject: [PATCH 19/20] Translated using Weblate (Slovenian) Currently translated at 100.0% (10 of 10 strings) Translation: dms-18.0/dms-18.0-hr_dms_field Translate-URL: https://translation.odoo-community.org/projects/dms-18-0/dms-18-0-hr_dms_field/sl/ --- hr_dms_field/i18n/sl.po | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/hr_dms_field/i18n/sl.po b/hr_dms_field/i18n/sl.po index 417650f86..947ae8401 100644 --- a/hr_dms_field/i18n/sl.po +++ b/hr_dms_field/i18n/sl.po @@ -6,7 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 18.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2026-06-22 09:25+0000\n" +"Last-Translator: Matjaz Mozetic \n" "Language-Team: none\n" "Language: sl\n" "MIME-Version: 1.0\n" @@ -14,54 +15,57 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || " "n%100==4 ? 2 : 3;\n" +"X-Generator: Weblate 5.15.2\n" #. module: hr_dms_field #: model_terms:ir.ui.view,arch_db:hr_dms_field.res_config_settings_view_form msgid "Allow employees to access their DMS Documents." msgstr "" +"Zaposlenim omogočite dostop do njihovih dokumentov v sistemu za upravljanje " +"dokumentov (DMS)." #. module: hr_dms_field #: model:ir.model,name:hr_dms_field.model_hr_employee_base msgid "Basic Employee" -msgstr "" +msgstr "Osnovni zaposleni" #. module: hr_dms_field #: model:ir.model,name:hr_dms_field.model_res_config_settings msgid "Config Settings" -msgstr "" +msgstr "Nastavitve" #. module: hr_dms_field #: model:ir.model.fields,field_description:hr_dms_field.field_hr_employee_base__dms_directory_ids msgid "DMS Directories" -msgstr "" +msgstr "DMS mape" #. module: hr_dms_field #: model:res.groups,name:hr_dms_field.group_hr_public_dms msgid "DMS Is accessible publicly on employee profile" -msgstr "" +msgstr "DMS je javno dostopen v profilu zaposlenega" #. module: hr_dms_field #: model_terms:ir.ui.view,arch_db:hr_dms_field.hr_employee_public_view_form #: model_terms:ir.ui.view,arch_db:hr_dms_field.view_employee_form msgid "Documents" -msgstr "" +msgstr "Dokumenti" #. module: hr_dms_field #: model:dms.access.group,name:hr_dms_field.read_access_hr_employee_group msgid "Everyone for Employee DMS" -msgstr "" +msgstr "Vsi za DMS zaposlenih" #. module: hr_dms_field #: model:ir.model.fields,field_description:hr_dms_field.field_hr_employee_public__is_logged msgid "Is Logged" -msgstr "" +msgstr "Je prijavljen" #. module: hr_dms_field #: model:ir.model,name:hr_dms_field.model_hr_employee_public msgid "Public Employee" -msgstr "" +msgstr "Javni uslužbenec" #. module: hr_dms_field #: model:ir.model.fields,field_description:hr_dms_field.field_res_config_settings__group_hr_public_dms msgid "Show DMS Documents to logged employees" -msgstr "" +msgstr "Prikaži dokumente DMS prijavljenim zaposlenim" From 2c311494be19ccbf1e5d0271db03b421ac260b4c Mon Sep 17 00:00:00 2001 From: mmircoli-nexapp Date: Mon, 22 Jun 2026 16:52:17 +0200 Subject: [PATCH 20/20] [MIG] hr_dms_field: Migration to 19.0 --- hr_dms_field/__manifest__.py | 2 +- hr_dms_field/security/security.xml | 2 +- hr_dms_field/tests/test_hr_dms_field.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/hr_dms_field/__manifest__.py b/hr_dms_field/__manifest__.py index d445cd3bf..19decd6de 100644 --- a/hr_dms_field/__manifest__.py +++ b/hr_dms_field/__manifest__.py @@ -2,7 +2,7 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). { "name": "Add dms field for employees", - "version": "18.0.1.0.0", + "version": "19.0.1.0.0", "category": "Human Resources", "website": "https://github.com/OCA/dms", "author": "Tecnativa, Odoo Community Association (OCA)", diff --git a/hr_dms_field/security/security.xml b/hr_dms_field/security/security.xml index ac6da1e90..6b1ac3002 100644 --- a/hr_dms_field/security/security.xml +++ b/hr_dms_field/security/security.xml @@ -3,7 +3,7 @@ DMS Is accessible publicly on employee profile - + diff --git a/hr_dms_field/tests/test_hr_dms_field.py b/hr_dms_field/tests/test_hr_dms_field.py index b3ee8a17b..e8a818718 100644 --- a/hr_dms_field/tests/test_hr_dms_field.py +++ b/hr_dms_field/tests/test_hr_dms_field.py @@ -84,7 +84,7 @@ def test_employee_write_custom(self): # Use the demo user to modify the employee and link the user, it does not # have access to the directory. demo = self.env.ref("base.user_demo") - demo.write({"groups_id": [Command.link(self.env.ref("hr.group_hr_user").id)]}) + demo.write({"group_ids": [Command.link(self.env.ref("hr.group_hr_user").id)]}) employee = employee.with_user(demo) employee.invalidate_recordset() employee.write({"user_id": self.user.id})