From 5fcffc231c2340c9be3fa8b0b385857c4a9ade5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Thu, 22 Feb 2024 17:12:19 +0100 Subject: [PATCH 1/4] [ADD] hr_professional_category: New module TT47832 [UPD] Update hr_professional_category.pot --- hr_professional_category/README.rst | 102 ++++ hr_professional_category/__init__.py | 1 + hr_professional_category/__manifest__.py | 21 + .../demo/hr_professional_category_demo.xml | 11 + hr_professional_category/i18n/es.po | 102 ++++ .../i18n/hr_professional_category.pot | 98 ++++ hr_professional_category/models/__init__.py | 2 + .../models/hr_contract.py | 12 + .../models/hr_professional_category.py | 25 + hr_professional_category/readme/CONFIGURE.rst | 1 + .../readme/CONTRIBUTORS.rst | 6 + .../readme/DESCRIPTION.rst | 1 + hr_professional_category/readme/USAGE.rst | 4 + .../security/ir.model.access.csv | 3 + .../security/security.xml | 9 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 442 ++++++++++++++++++ hr_professional_category/tests/__init__.py | 1 + .../tests/test_hr_professional_category.py | 36 ++ .../views/hr_contract_views.xml | 41 ++ .../views/hr_professional_category_views.xml | 80 ++++ 21 files changed, 998 insertions(+) create mode 100644 hr_professional_category/README.rst create mode 100644 hr_professional_category/__init__.py create mode 100644 hr_professional_category/__manifest__.py create mode 100644 hr_professional_category/demo/hr_professional_category_demo.xml create mode 100644 hr_professional_category/i18n/es.po create mode 100644 hr_professional_category/i18n/hr_professional_category.pot create mode 100644 hr_professional_category/models/__init__.py create mode 100644 hr_professional_category/models/hr_contract.py create mode 100644 hr_professional_category/models/hr_professional_category.py create mode 100644 hr_professional_category/readme/CONFIGURE.rst create mode 100644 hr_professional_category/readme/CONTRIBUTORS.rst create mode 100644 hr_professional_category/readme/DESCRIPTION.rst create mode 100644 hr_professional_category/readme/USAGE.rst create mode 100644 hr_professional_category/security/ir.model.access.csv create mode 100644 hr_professional_category/security/security.xml create mode 100644 hr_professional_category/static/description/icon.png create mode 100644 hr_professional_category/static/description/index.html create mode 100644 hr_professional_category/tests/__init__.py create mode 100644 hr_professional_category/tests/test_hr_professional_category.py create mode 100644 hr_professional_category/views/hr_contract_views.xml create mode 100644 hr_professional_category/views/hr_professional_category_views.xml diff --git a/hr_professional_category/README.rst b/hr_professional_category/README.rst new file mode 100644 index 00000000000..c06af57eeb1 --- /dev/null +++ b/hr_professional_category/README.rst @@ -0,0 +1,102 @@ +======================== +HR Professional Category +======================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:f215ad7cd34e764f95848f536c2b28ad6b6d5af9fcfd06f3020f86c0fdfe0d24 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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%2Fhr-lightgray.png?logo=github + :target: https://github.com/OCA/hr/tree/16.0/hr_professional_category + :alt: OCA/hr +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/hr-16-0/hr-16-0-hr_professional_category + :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/hr&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module adds professional categories to be set in employee contracts. + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +Go to *Employes > Configuration > Professional Categories* and create the ones you need. + +Usage +===== + +To use this module, you need to: + +#. Go to a contract. +#. Set a professional category. + +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 +~~~~~~~~~~~~ + +* César Fernández Domínguez + +* `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/hr `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/hr_professional_category/__init__.py b/hr_professional_category/__init__.py new file mode 100644 index 00000000000..0650744f6bc --- /dev/null +++ b/hr_professional_category/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/hr_professional_category/__manifest__.py b/hr_professional_category/__manifest__.py new file mode 100644 index 00000000000..a13379f64bf --- /dev/null +++ b/hr_professional_category/__manifest__.py @@ -0,0 +1,21 @@ +# Copyright 2021 César Fernández Domínguez +# Copyright 2024 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +{ + "name": "HR Professional Category", + "version": "16.0.1.0.0", + "category": "Human Resources", + "website": "https://github.com/OCA/hr", + "author": "Tecnativa, Odoo Community Association (OCA)", + "license": "AGPL-3", + "depends": ["hr_contract"], + "installable": True, + "data": [ + "security/ir.model.access.csv", + "security/security.xml", + "views/hr_professional_category_views.xml", + "views/hr_contract_views.xml", + ], + "demo": ["demo/hr_professional_category_demo.xml"], + "maintainers": ["victoralmau"], +} diff --git a/hr_professional_category/demo/hr_professional_category_demo.xml b/hr_professional_category/demo/hr_professional_category_demo.xml new file mode 100644 index 00000000000..7dd98efe6bd --- /dev/null +++ b/hr_professional_category/demo/hr_professional_category_demo.xml @@ -0,0 +1,11 @@ + + + + 1 + Engineer + + + 2 + Administrative + + diff --git a/hr_professional_category/i18n/es.po b/hr_professional_category/i18n/es.po new file mode 100644 index 00000000000..e33ae2096ca --- /dev/null +++ b/hr_professional_category/i18n/es.po @@ -0,0 +1,102 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_professional_category +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-02-22 16:30+0000\n" +"PO-Revision-Date: 2024-02-22 17:30+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_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category__active +msgid "Active" +msgstr "Activo" + +#. module: hr_professional_category +#: model_terms:ir.ui.view,arch_db:hr_professional_category.hr_professional_category_tree_view_form +#: model_terms:ir.ui.view,arch_db:hr_professional_category.hr_professional_category_view_search +msgid "Archived" +msgstr "Archivado" + +#. module: hr_professional_category +#: model_terms:ir.actions.act_window,help:hr_professional_category.hr_professional_category_action +msgid "Click to create a Professional Category." +msgstr "Haga click para crear una categoría profesional." + +#. module: hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category__code +msgid "Code" +msgstr "Código" + +#. module: hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category__company_id +msgid "Company" +msgstr "Compañía" + +#. module: hr_professional_category +#: model:ir.model,name:hr_professional_category.model_hr_contract +msgid "Contract" +msgstr "Contrato de empleado" + +#. module: hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category__create_date +msgid "Created on" +msgstr "Creado el" + +#. module: hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category__display_name +msgid "Display Name" +msgstr "Nombre mostrado" + +#. module: hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category__id +msgid "ID" +msgstr "ID" + +#. module: hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category____last_update +msgid "Last Modified on" +msgstr "Última modificación el" + +#. module: hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category__write_uid +msgid "Last Updated by" +msgstr "Últ. actualización por" + +#. module: hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category__write_date +msgid "Last Updated on" +msgstr "Actualizado el" + +#. module: hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category__name +msgid "Name" +msgstr "Nombre" + +#. module: hr_professional_category +#: model:ir.ui.menu,name:hr_professional_category.menu_hr_professional_category_action +msgid "Professional Categories" +msgstr "Categorías profesionales" + +#. module: hr_professional_category +#: model:ir.actions.act_window,name:hr_professional_category.hr_professional_category_action +#: model:ir.model,name:hr_professional_category.model_hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_contract__professional_category_id +#: model_terms:ir.ui.view,arch_db:hr_professional_category.hr_contract_view_search +msgid "Professional Category" +msgstr "Categoría profesional" diff --git a/hr_professional_category/i18n/hr_professional_category.pot b/hr_professional_category/i18n/hr_professional_category.pot new file mode 100644 index 00000000000..5c535ad56af --- /dev/null +++ b/hr_professional_category/i18n/hr_professional_category.pot @@ -0,0 +1,98 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_professional_category +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category__active +msgid "Active" +msgstr "" + +#. module: hr_professional_category +#: model_terms:ir.ui.view,arch_db:hr_professional_category.hr_professional_category_tree_view_form +#: model_terms:ir.ui.view,arch_db:hr_professional_category.hr_professional_category_view_search +msgid "Archived" +msgstr "" + +#. module: hr_professional_category +#: model_terms:ir.actions.act_window,help:hr_professional_category.hr_professional_category_action +msgid "Click to create a Professional Category." +msgstr "" + +#. module: hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category__code +msgid "Code" +msgstr "" + +#. module: hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category__company_id +msgid "Company" +msgstr "" + +#. module: hr_professional_category +#: model:ir.model,name:hr_professional_category.model_hr_contract +msgid "Contract" +msgstr "" + +#. module: hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category__create_uid +msgid "Created by" +msgstr "" + +#. module: hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category__create_date +msgid "Created on" +msgstr "" + +#. module: hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category__display_name +msgid "Display Name" +msgstr "" + +#. module: hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category__id +msgid "ID" +msgstr "" + +#. module: hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category____last_update +msgid "Last Modified on" +msgstr "" + +#. module: hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category__write_date +msgid "Last Updated on" +msgstr "" + +#. module: hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category__name +msgid "Name" +msgstr "" + +#. module: hr_professional_category +#: model:ir.ui.menu,name:hr_professional_category.menu_hr_professional_category_action +msgid "Professional Categories" +msgstr "" + +#. module: hr_professional_category +#: model:ir.actions.act_window,name:hr_professional_category.hr_professional_category_action +#: model:ir.model,name:hr_professional_category.model_hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_contract__professional_category_id +#: model_terms:ir.ui.view,arch_db:hr_professional_category.hr_contract_view_search +msgid "Professional Category" +msgstr "" diff --git a/hr_professional_category/models/__init__.py b/hr_professional_category/models/__init__.py new file mode 100644 index 00000000000..e52479d5dfa --- /dev/null +++ b/hr_professional_category/models/__init__.py @@ -0,0 +1,2 @@ +from . import hr_contract +from . import hr_professional_category diff --git a/hr_professional_category/models/hr_contract.py b/hr_professional_category/models/hr_contract.py new file mode 100644 index 00000000000..34ff2f8fbfa --- /dev/null +++ b/hr_professional_category/models/hr_contract.py @@ -0,0 +1,12 @@ +# Copyright 2021 César Fernández Domínguez +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class HrContract(models.Model): + _inherit = "hr.contract" + + professional_category_id = fields.Many2one( + comodel_name="hr.professional.category", string="Professional Category" + ) diff --git a/hr_professional_category/models/hr_professional_category.py b/hr_professional_category/models/hr_professional_category.py new file mode 100644 index 00000000000..c16d2083d75 --- /dev/null +++ b/hr_professional_category/models/hr_professional_category.py @@ -0,0 +1,25 @@ +# Copyright 2021 César Fernández Domínguez +# Copyright 2024 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class HrProfessionalCategory(models.Model): + _name = "hr.professional.category" + _description = "Professional Category" + _order = "code, id" + _rec_names_search = ["name", "code"] + + active = fields.Boolean(default=True) + code = fields.Integer() + name = fields.Char(required=True) + company_id = fields.Many2one( + comodel_name="res.company", + string="Company", + store=True, + index=True, + ) + + def name_get(self): + return [(x.id, "%d - %s" % (x.code, x.name)) for x in self] diff --git a/hr_professional_category/readme/CONFIGURE.rst b/hr_professional_category/readme/CONFIGURE.rst new file mode 100644 index 00000000000..b7f8ce210d6 --- /dev/null +++ b/hr_professional_category/readme/CONFIGURE.rst @@ -0,0 +1 @@ +Go to *Employes > Configuration > Professional Categories* and create the ones you need. diff --git a/hr_professional_category/readme/CONTRIBUTORS.rst b/hr_professional_category/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000000..fcd2c48a9e4 --- /dev/null +++ b/hr_professional_category/readme/CONTRIBUTORS.rst @@ -0,0 +1,6 @@ +* César Fernández Domínguez + +* `Tecnativa `_: + + * Víctor Martínez + * Pedro M. Baeza diff --git a/hr_professional_category/readme/DESCRIPTION.rst b/hr_professional_category/readme/DESCRIPTION.rst new file mode 100644 index 00000000000..2d78c82d7fd --- /dev/null +++ b/hr_professional_category/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +This module adds professional categories to be set in employee contracts. diff --git a/hr_professional_category/readme/USAGE.rst b/hr_professional_category/readme/USAGE.rst new file mode 100644 index 00000000000..78b53c0519e --- /dev/null +++ b/hr_professional_category/readme/USAGE.rst @@ -0,0 +1,4 @@ +To use this module, you need to: + +#. Go to a contract. +#. Set a professional category. diff --git a/hr_professional_category/security/ir.model.access.csv b/hr_professional_category/security/ir.model.access.csv new file mode 100644 index 00000000000..88b2356f0dd --- /dev/null +++ b/hr_professional_category/security/ir.model.access.csv @@ -0,0 +1,3 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_hr_professional_category,hr.professional.category,model_hr_professional_category,hr.group_hr_user,1,0,0,0 +access_hr_professional_category_manager,hr.professional.category,model_hr_professional_category,hr.group_hr_manager,1,1,1,1 diff --git a/hr_professional_category/security/security.xml b/hr_professional_category/security/security.xml new file mode 100644 index 00000000000..9427c7591da --- /dev/null +++ b/hr_professional_category/security/security.xml @@ -0,0 +1,9 @@ + + + + Hr Professional Category multi-company + + + [('company_id', 'in', [False] + company_ids)] + + diff --git a/hr_professional_category/static/description/icon.png b/hr_professional_category/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_professional_category/static/description/index.html b/hr_professional_category/static/description/index.html new file mode 100644 index 00000000000..fc4d2ab7e0a --- /dev/null +++ b/hr_professional_category/static/description/index.html @@ -0,0 +1,442 @@ + + + + + + +HR Professional Category + + + +
+

HR Professional Category

+ + +

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

+

This module adds professional categories to be set in employee contracts.

+

Table of contents

+ +
+

Configuration

+

Go to Employes > Configuration > Professional Categories and create the ones you need.

+
+
+

Usage

+

To use this module, you need to:

+
    +
  1. Go to a contract.
  2. +
  3. Set a professional category.
  4. +
+
+
+

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

+
    +
  • César Fernández Domínguez
  • +
  • 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/hr project on GitHub.

+

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

+
+
+
+ + diff --git a/hr_professional_category/tests/__init__.py b/hr_professional_category/tests/__init__.py new file mode 100644 index 00000000000..fd1ae2d31ba --- /dev/null +++ b/hr_professional_category/tests/__init__.py @@ -0,0 +1 @@ +from . import test_hr_professional_category diff --git a/hr_professional_category/tests/test_hr_professional_category.py b/hr_professional_category/tests/test_hr_professional_category.py new file mode 100644 index 00000000000..62a53dcaf7d --- /dev/null +++ b/hr_professional_category/tests/test_hr_professional_category.py @@ -0,0 +1,36 @@ +# Copyright 2024 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import fields + +from odoo.addons.base.tests.common import BaseCommon + + +class TestHrProfessionalCategory(BaseCommon): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.calendar = cls.env.ref("resource.resource_calendar_std") + cls.employee = cls.env["hr.employee"].create({"name": "Test employee"}) + cls.category = cls.env["hr.professional.category"].create( + { + "code": 123, + "name": "Test category", + } + ) + cls.contract = cls.env["hr.contract"].create( + { + "name": "Test contract", + "employee_id": cls.employee.id, + "resource_calendar_id": cls.calendar.id, + "date_start": fields.date.today(), + "professional_category_id": cls.category.id, + "wage": 1, + } + ) + + def test_hr_professional_category_name(self): + self.assertEqual(self.contract.professional_category_id, self.category) + res = self.category.name_get() + expected_name = "%s - %s" % (self.category.code, self.category.name) + self.assertEqual(res[0][1], expected_name) diff --git a/hr_professional_category/views/hr_contract_views.xml b/hr_professional_category/views/hr_contract_views.xml new file mode 100644 index 00000000000..c16602be7af --- /dev/null +++ b/hr_professional_category/views/hr_contract_views.xml @@ -0,0 +1,41 @@ + + + + hr.contract.tree + hr.contract + + + + + + + + + hr.contract.search + hr.contract + + + + + + + + + + + + hr.contract.form + hr.contract + + + + + + + + diff --git a/hr_professional_category/views/hr_professional_category_views.xml b/hr_professional_category/views/hr_professional_category_views.xml new file mode 100644 index 00000000000..e6e1a80fa77 --- /dev/null +++ b/hr_professional_category/views/hr_professional_category_views.xml @@ -0,0 +1,80 @@ + + + + hr.professional.category.tree + hr.professional.category + + + + + + + + + + hr.professional.category.form + hr.professional.category + +
+ + + +
+

+
+ + + + + + +
+
+
+
+ + hr.professional.category.search + hr.professional.category + + + + + + + + + + Professional Category + ir.actions.act_window + hr.professional.category + tree,form + + +

Click to create a Professional Category.

+
+
+ +
From d551c7a6adcd34f873960f2491b10897efd0c1a5 Mon Sep 17 00:00:00 2001 From: mymage Date: Tue, 27 Feb 2024 12:04:38 +0000 Subject: [PATCH 2/4] Added translation using Weblate (Italian) Translated using Weblate (Italian) Currently translated at 100.0% (16 of 16 strings) Translation: hr-16.0/hr-16.0-hr_professional_category Translate-URL: https://translation.odoo-community.org/projects/hr-16-0/hr-16-0-hr_professional_category/it/ Translated using Weblate (Italian) Currently translated at 100.0% (16 of 16 strings) Translation: hr-16.0/hr-16.0-hr_professional_category Translate-URL: https://translation.odoo-community.org/projects/hr-16-0/hr-16-0-hr_professional_category/it/ --- hr_professional_category/i18n/it.po | 101 ++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 hr_professional_category/i18n/it.po diff --git a/hr_professional_category/i18n/it.po b/hr_professional_category/i18n/it.po new file mode 100644 index 00000000000..c01a82dd3e3 --- /dev/null +++ b/hr_professional_category/i18n/it.po @@ -0,0 +1,101 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_professional_category +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-03-12 10:33+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_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category__active +msgid "Active" +msgstr "Attiva" + +#. module: hr_professional_category +#: model_terms:ir.ui.view,arch_db:hr_professional_category.hr_professional_category_tree_view_form +#: model_terms:ir.ui.view,arch_db:hr_professional_category.hr_professional_category_view_search +msgid "Archived" +msgstr "In archivio" + +#. module: hr_professional_category +#: model_terms:ir.actions.act_window,help:hr_professional_category.hr_professional_category_action +msgid "Click to create a Professional Category." +msgstr "Fare clic per creare un categoria professionale." + +#. module: hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category__code +msgid "Code" +msgstr "Codice" + +#. module: hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category__company_id +msgid "Company" +msgstr "Azienda" + +#. module: hr_professional_category +#: model:ir.model,name:hr_professional_category.model_hr_contract +msgid "Contract" +msgstr "Contratto" + +#. module: hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category__create_uid +msgid "Created by" +msgstr "Creato da" + +#. module: hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category__create_date +msgid "Created on" +msgstr "Creato il" + +#. module: hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category__display_name +msgid "Display Name" +msgstr "Nome visualizzato" + +#. module: hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category__id +msgid "ID" +msgstr "ID" + +#. module: hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category____last_update +msgid "Last Modified on" +msgstr "Ultima modifica il" + +#. module: hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category__write_uid +msgid "Last Updated by" +msgstr "Ultimo aggiornamento di" + +#. module: hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category__write_date +msgid "Last Updated on" +msgstr "Ultimo aggiornamento il" + +#. module: hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_professional_category__name +msgid "Name" +msgstr "Nome" + +#. module: hr_professional_category +#: model:ir.ui.menu,name:hr_professional_category.menu_hr_professional_category_action +msgid "Professional Categories" +msgstr "Categorie professionali" + +#. module: hr_professional_category +#: model:ir.actions.act_window,name:hr_professional_category.hr_professional_category_action +#: model:ir.model,name:hr_professional_category.model_hr_professional_category +#: model:ir.model.fields,field_description:hr_professional_category.field_hr_contract__professional_category_id +#: model_terms:ir.ui.view,arch_db:hr_professional_category.hr_contract_view_search +msgid "Professional Category" +msgstr "Categoria professionale" From 7a31f51badf0776ad1e82a44efc8a5e785878405 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Thu, 19 Dec 2024 17:30:20 +0100 Subject: [PATCH 3/4] [IMP] hr_professional_category: pre-commit auto fixes --- hr_professional_category/README.rst | 35 ++++++++++--------- hr_professional_category/pyproject.toml | 3 ++ hr_professional_category/readme/CONFIGURE.md | 2 ++ hr_professional_category/readme/CONFIGURE.rst | 1 - .../readme/CONTRIBUTORS.md | 4 +++ .../readme/CONTRIBUTORS.rst | 6 ---- .../readme/DESCRIPTION.md | 2 ++ .../readme/DESCRIPTION.rst | 1 - hr_professional_category/readme/USAGE.md | 4 +++ hr_professional_category/readme/USAGE.rst | 4 --- .../static/description/index.html | 24 +++++++------ 11 files changed, 47 insertions(+), 39 deletions(-) create mode 100644 hr_professional_category/pyproject.toml create mode 100644 hr_professional_category/readme/CONFIGURE.md delete mode 100644 hr_professional_category/readme/CONFIGURE.rst create mode 100644 hr_professional_category/readme/CONTRIBUTORS.md delete mode 100644 hr_professional_category/readme/CONTRIBUTORS.rst create mode 100644 hr_professional_category/readme/DESCRIPTION.md delete mode 100644 hr_professional_category/readme/DESCRIPTION.rst create mode 100644 hr_professional_category/readme/USAGE.md delete mode 100644 hr_professional_category/readme/USAGE.rst diff --git a/hr_professional_category/README.rst b/hr_professional_category/README.rst index c06af57eeb1..fc8fb85ce80 100644 --- a/hr_professional_category/README.rst +++ b/hr_professional_category/README.rst @@ -17,18 +17,19 @@ HR Professional Category :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fhr-lightgray.png?logo=github - :target: https://github.com/OCA/hr/tree/16.0/hr_professional_category + :target: https://github.com/OCA/hr/tree/17.0/hr_professional_category :alt: OCA/hr .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/hr-16-0/hr-16-0-hr_professional_category + :target: https://translation.odoo-community.org/projects/hr-17-0/hr-17-0-hr_professional_category :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/hr&target_branch=16.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/hr&target_branch=17.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| -This module adds professional categories to be set in employee contracts. +This module adds professional categories to be set in employee +contracts. **Table of contents** @@ -38,15 +39,16 @@ This module adds professional categories to be set in employee contracts. Configuration ============= -Go to *Employes > Configuration > Professional Categories* and create the ones you need. +Go to *Employes > Configuration > Professional Categories* and create +the ones you need. Usage ===== To use this module, you need to: -#. Go to a contract. -#. Set a professional category. +1. Go to a contract. +2. Set a professional category. Bug Tracker =========== @@ -54,7 +56,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. @@ -62,22 +64,21 @@ Credits ======= Authors -~~~~~~~ +------- * Tecnativa Contributors -~~~~~~~~~~~~ +------------ -* César Fernández Domínguez +- César Fernández Domínguez +- `Tecnativa `__: -* `Tecnativa `_: - - * Víctor Martínez - * Pedro M. Baeza + - Víctor Martínez + - Pedro M. Baeza Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. @@ -97,6 +98,6 @@ Current `maintainer `__: |maintainer-victoralmau| -This module is part of the `OCA/hr `_ project on GitHub. +This module is part of the `OCA/hr `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/hr_professional_category/pyproject.toml b/hr_professional_category/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/hr_professional_category/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/hr_professional_category/readme/CONFIGURE.md b/hr_professional_category/readme/CONFIGURE.md new file mode 100644 index 00000000000..6562927448b --- /dev/null +++ b/hr_professional_category/readme/CONFIGURE.md @@ -0,0 +1,2 @@ +Go to *Employes \> Configuration \> Professional Categories* and create +the ones you need. diff --git a/hr_professional_category/readme/CONFIGURE.rst b/hr_professional_category/readme/CONFIGURE.rst deleted file mode 100644 index b7f8ce210d6..00000000000 --- a/hr_professional_category/readme/CONFIGURE.rst +++ /dev/null @@ -1 +0,0 @@ -Go to *Employes > Configuration > Professional Categories* and create the ones you need. diff --git a/hr_professional_category/readme/CONTRIBUTORS.md b/hr_professional_category/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..4d8764ff4a7 --- /dev/null +++ b/hr_professional_category/readme/CONTRIBUTORS.md @@ -0,0 +1,4 @@ +- César Fernández Domínguez +- [Tecnativa](https://www.tecnativa.com): + - Víctor Martínez + - Pedro M. Baeza diff --git a/hr_professional_category/readme/CONTRIBUTORS.rst b/hr_professional_category/readme/CONTRIBUTORS.rst deleted file mode 100644 index fcd2c48a9e4..00000000000 --- a/hr_professional_category/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,6 +0,0 @@ -* César Fernández Domínguez - -* `Tecnativa `_: - - * Víctor Martínez - * Pedro M. Baeza diff --git a/hr_professional_category/readme/DESCRIPTION.md b/hr_professional_category/readme/DESCRIPTION.md new file mode 100644 index 00000000000..fe0bceb1801 --- /dev/null +++ b/hr_professional_category/readme/DESCRIPTION.md @@ -0,0 +1,2 @@ +This module adds professional categories to be set in employee +contracts. diff --git a/hr_professional_category/readme/DESCRIPTION.rst b/hr_professional_category/readme/DESCRIPTION.rst deleted file mode 100644 index 2d78c82d7fd..00000000000 --- a/hr_professional_category/readme/DESCRIPTION.rst +++ /dev/null @@ -1 +0,0 @@ -This module adds professional categories to be set in employee contracts. diff --git a/hr_professional_category/readme/USAGE.md b/hr_professional_category/readme/USAGE.md new file mode 100644 index 00000000000..45212739c5f --- /dev/null +++ b/hr_professional_category/readme/USAGE.md @@ -0,0 +1,4 @@ +To use this module, you need to: + +1. Go to a contract. +2. Set a professional category. diff --git a/hr_professional_category/readme/USAGE.rst b/hr_professional_category/readme/USAGE.rst deleted file mode 100644 index 78b53c0519e..00000000000 --- a/hr_professional_category/readme/USAGE.rst +++ /dev/null @@ -1,4 +0,0 @@ -To use this module, you need to: - -#. Go to a contract. -#. Set a professional category. diff --git a/hr_professional_category/static/description/index.html b/hr_professional_category/static/description/index.html index fc4d2ab7e0a..8cec8c225ca 100644 --- a/hr_professional_category/static/description/index.html +++ b/hr_professional_category/static/description/index.html @@ -1,4 +1,3 @@ - @@ -9,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. @@ -275,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 } @@ -301,7 +301,7 @@ span.pre { white-space: pre } -span.problematic { +span.problematic, pre.problematic { color: red } span.section-subtitle { @@ -369,8 +369,9 @@

HR Professional Category

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:f215ad7cd34e764f95848f536c2b28ad6b6d5af9fcfd06f3020f86c0fdfe0d24 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

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

-

This module adds professional categories to be set in employee contracts.

+

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

+

This module adds professional categories to be set in employee +contracts.

Table of contents

    @@ -387,7 +388,8 @@

    HR Professional Category

Configuration

-

Go to Employes > Configuration > Professional Categories and create the ones you need.

+

Go to Employes > Configuration > Professional Categories and create +the ones you need.

Usage

@@ -402,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.

@@ -427,13 +429,15 @@

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.

Current maintainer:

victoralmau

-

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

+

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

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

From 599980b97c6055cada9ea3043d1e43211ff8be67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Thu, 19 Dec 2024 17:34:18 +0100 Subject: [PATCH 4/4] [MIG] hr_professional_category: Migration to 17.0 TT52303 --- hr_professional_category/__manifest__.py | 2 +- .../models/hr_professional_category.py | 8 +++++--- .../tests/test_hr_professional_category.py | 6 +++--- .../views/hr_professional_category_views.xml | 2 +- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/hr_professional_category/__manifest__.py b/hr_professional_category/__manifest__.py index a13379f64bf..e484168f864 100644 --- a/hr_professional_category/__manifest__.py +++ b/hr_professional_category/__manifest__.py @@ -3,7 +3,7 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). { "name": "HR Professional Category", - "version": "16.0.1.0.0", + "version": "17.0.1.0.0", "category": "Human Resources", "website": "https://github.com/OCA/hr", "author": "Tecnativa, Odoo Community Association (OCA)", diff --git a/hr_professional_category/models/hr_professional_category.py b/hr_professional_category/models/hr_professional_category.py index c16d2083d75..74e5398b95e 100644 --- a/hr_professional_category/models/hr_professional_category.py +++ b/hr_professional_category/models/hr_professional_category.py @@ -2,7 +2,7 @@ # Copyright 2024 Tecnativa - Víctor Martínez # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -from odoo import fields, models +from odoo import api, fields, models class HrProfessionalCategory(models.Model): @@ -21,5 +21,7 @@ class HrProfessionalCategory(models.Model): index=True, ) - def name_get(self): - return [(x.id, "%d - %s" % (x.code, x.name)) for x in self] + @api.depends("code") + def _compute_display_name(self): + for record in self: + record.display_name = f"{record.code} - {record.name}" diff --git a/hr_professional_category/tests/test_hr_professional_category.py b/hr_professional_category/tests/test_hr_professional_category.py index 62a53dcaf7d..dd1f98dd4c5 100644 --- a/hr_professional_category/tests/test_hr_professional_category.py +++ b/hr_professional_category/tests/test_hr_professional_category.py @@ -31,6 +31,6 @@ def setUpClass(cls): def test_hr_professional_category_name(self): self.assertEqual(self.contract.professional_category_id, self.category) - res = self.category.name_get() - expected_name = "%s - %s" % (self.category.code, self.category.name) - self.assertEqual(res[0][1], expected_name) + self.assertEqual( + self.category.display_name, f"{self.category.code} - {self.category.name}" + ) diff --git a/hr_professional_category/views/hr_professional_category_views.xml b/hr_professional_category/views/hr_professional_category_views.xml index e6e1a80fa77..1a896dd0e8c 100644 --- a/hr_professional_category/views/hr_professional_category_views.xml +++ b/hr_professional_category/views/hr_professional_category_views.xml @@ -22,7 +22,7 @@ name="web_ribbon" title="Archived" bg_color="bg-danger" - attrs="{'invisible': [('active', '=', True)]}" + invisible="active" />