Skip to content

Commit 96db0af

Browse files
committed
[ADD] hr_collective_agreement
1 parent 613514a commit 96db0af

23 files changed

Lines changed: 1619 additions & 0 deletions

hr_collective_agreement/README.rst

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
=======================
2+
Hr Collective Agreement
3+
=======================
4+
5+
..
6+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
7+
!! This file is generated by oca-gen-addon-readme !!
8+
!! changes will be overwritten. !!
9+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10+
!! source digest: sha256:2436b8e3249d6ef12b27a5fecd49444bbcabdf28e3e9d09a841bbef9b1c9d1bc
11+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12+
13+
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
14+
:target: https://odoo-community.org/page/development-status
15+
:alt: Beta
16+
.. |badge2| image:: https://img.shields.io/badge/licence-LGPL--3-blue.png
17+
:target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
18+
:alt: License: LGPL-3
19+
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fhr-lightgray.png?logo=github
20+
:target: https://github.com/OCA/hr/tree/18.0/hr_collective_agreement
21+
:alt: OCA/hr
22+
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
23+
:target: https://translation.odoo-community.org/projects/hr-18-0/hr-18-0-hr_collective_agreement
24+
:alt: Translate me on Weblate
25+
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
26+
:target: https://runboat.odoo-community.org/builds?repo=OCA/hr&target_branch=18.0
27+
:alt: Try me on Runboat
28+
29+
|badge1| |badge2| |badge3| |badge4| |badge5|
30+
31+
This module provides a core model to manage collective wage agreements
32+
in a multi-company environment. It allows defining and maintaining
33+
collective agreements with information such as code, name, scope,
34+
publication dates, official publications, state and observations.
35+
36+
**Table of contents**
37+
38+
.. contents::
39+
:local:
40+
41+
Installation
42+
============
43+
44+
To install this module, you need to:
45+
46+
- Only install
47+
48+
Usage
49+
=====
50+
51+
Collective agreements are managed from:
52+
53+
**Human Resources → Configuration → Collective Agreements**
54+
55+
From this menu, HR Administrators can create, review and maintain
56+
collective agreements.
57+
58+
Two auxiliary configuration models are available under the same menu:
59+
60+
- **Scopes**: Define the scope of application of a collective agreement.
61+
- **Official Publications**: Define the official publication source of
62+
the agreement.
63+
64+
This module have a global action **“Update agreement states”**. This
65+
action reviews all agreements in *Draft* and *Active* states and updates
66+
their state automatically based on their validity dates.
67+
68+
Bug Tracker
69+
===========
70+
71+
Bugs are tracked on `GitHub Issues <https://github.com/OCA/hr/issues>`_.
72+
In case of trouble, please check there if your issue has already been reported.
73+
If you spotted it first, help us to smash it by providing a detailed and welcomed
74+
`feedback <https://github.com/OCA/hr/issues/new?body=module:%20hr_collective_agreement%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
75+
76+
Do not contact contributors directly about support or help with technical issues.
77+
78+
Credits
79+
=======
80+
81+
Authors
82+
-------
83+
84+
* Sygel
85+
86+
Contributors
87+
------------
88+
89+
- `Sygel <https://www.sygel.es>`__:
90+
91+
- Ángel Rivas
92+
- Valentín Vinagre
93+
94+
Maintainers
95+
-----------
96+
97+
This module is maintained by the OCA.
98+
99+
.. image:: https://odoo-community.org/logo.png
100+
:alt: Odoo Community Association
101+
:target: https://odoo-community.org
102+
103+
OCA, or the Odoo Community Association, is a nonprofit organization whose
104+
mission is to support the collaborative development of Odoo features and
105+
promote its widespread use.
106+
107+
This module is part of the `OCA/hr <https://github.com/OCA/hr/tree/18.0/hr_collective_agreement>`_ project on GitHub.
108+
109+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Copyright 2025 Ángel Rivas <angel.rivas@sygel.es>
2+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
3+
4+
from . import models
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Copyright 2025 Ángel Rivas <angel.rivas@sygel.es>
2+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
3+
4+
{
5+
"name": "Hr Collective Agreement",
6+
"summary": "Create and manage collective agreements",
7+
"version": "18.0.1.0.0",
8+
"author": "Sygel, Odoo Community Association (OCA)",
9+
"category": "Human Resources",
10+
"website": "https://github.com/OCA/hr",
11+
"depends": ["hr_contract"],
12+
"data": [
13+
"security/ir.model.access.csv",
14+
"views/collective_agreement_views.xml",
15+
"views/collective_agreement_scope_views.xml",
16+
"views/collective_agreement_publication_views.xml",
17+
],
18+
"license": "LGPL-3",
19+
}

hr_collective_agreement/i18n/ca.po

Lines changed: 248 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,248 @@
1+
# Translation of Odoo Server.
2+
# This file contains the translation of the following modules:
3+
# * hr_collective_agreement
4+
#
5+
msgid ""
6+
msgstr ""
7+
"Project-Id-Version: Odoo Server 18.0\n"
8+
"Report-Msgid-Bugs-To: \n"
9+
"POT-Creation-Date: 2026-02-09 14:01+0000\n"
10+
"PO-Revision-Date: 2026-02-09 15:08+0100\n"
11+
"Last-Translator: \n"
12+
"Language-Team: \n"
13+
"Language: ca\n"
14+
"MIME-Version: 1.0\n"
15+
"Content-Type: text/plain; charset=UTF-8\n"
16+
"Content-Transfer-Encoding: 8bit\n"
17+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
18+
"X-Generator: Poedit 3.8\n"
19+
20+
#. module: hr_collective_agreement
21+
#: model_terms:ir.ui.view,arch_db:hr_collective_agreement.view_form_collective_agreement
22+
msgid "Activate"
23+
msgstr "Activar"
24+
25+
#. module: hr_collective_agreement
26+
#: model:ir.model.fields,field_description:hr_collective_agreement.field_collective_agreement__active
27+
#: model:ir.model.fields.selection,name:hr_collective_agreement.selection__collective_agreement__state__active
28+
msgid "Active"
29+
msgstr "Actiu"
30+
31+
#. module: hr_collective_agreement
32+
#: model_terms:ir.ui.view,arch_db:hr_collective_agreement.view_form_collective_agreement
33+
msgid "Cancel"
34+
msgstr "Cancel·lar"
35+
36+
#. module: hr_collective_agreement
37+
#: model:ir.model.fields.selection,name:hr_collective_agreement.selection__collective_agreement__state__cancelled
38+
msgid "Cancelled"
39+
msgstr "Cancel·lat"
40+
41+
#. module: hr_collective_agreement
42+
#: model:ir.model.fields,field_description:hr_collective_agreement.field_collective_agreement__code
43+
msgid "Code"
44+
msgstr "Codi"
45+
46+
#. module: hr_collective_agreement
47+
#: model:ir.model,name:hr_collective_agreement.model_collective_agreement
48+
#: model_terms:ir.ui.view,arch_db:hr_collective_agreement.view_form_collective_agreement
49+
msgid "Collective Agreement"
50+
msgstr "Conveni col·lectiu"
51+
52+
#. module: hr_collective_agreement
53+
#: model:ir.model,name:hr_collective_agreement.model_collective_agreement_official_publication
54+
msgid "Collective Agreement Official Publication"
55+
msgstr "Publicació Oficial del Conveni Col·lectiu"
56+
57+
#. module: hr_collective_agreement
58+
#: model:ir.model,name:hr_collective_agreement.model_collective_agreement_scope
59+
msgid "Collective Agreement Scope"
60+
msgstr "Àmbit del conveni col·lectiu"
61+
62+
#. module: hr_collective_agreement
63+
#: model:ir.actions.act_window,name:hr_collective_agreement.action_collective_agreement
64+
#: model:ir.ui.menu,name:hr_collective_agreement.menu_collective_agreement
65+
#: model:ir.ui.menu,name:hr_collective_agreement.menu_collective_agreement_root
66+
#: model_terms:ir.ui.view,arch_db:hr_collective_agreement.view_collective_agreement_search
67+
#: model_terms:ir.ui.view,arch_db:hr_collective_agreement.view_list_collective_agreement
68+
msgid "Collective Agreements"
69+
msgstr "Convenis col·lectius"
70+
71+
#. module: hr_collective_agreement
72+
#: model:ir.model.fields,field_description:hr_collective_agreement.field_collective_agreement__company_id
73+
msgid "Company"
74+
msgstr "Empresa"
75+
76+
#. module: hr_collective_agreement
77+
#: model:ir.model.fields,field_description:hr_collective_agreement.field_collective_agreement__create_uid
78+
#: model:ir.model.fields,field_description:hr_collective_agreement.field_collective_agreement_official_publication__create_uid
79+
#: model:ir.model.fields,field_description:hr_collective_agreement.field_collective_agreement_scope__create_uid
80+
msgid "Created by"
81+
msgstr "Creat per"
82+
83+
#. module: hr_collective_agreement
84+
#: model:ir.model.fields,field_description:hr_collective_agreement.field_collective_agreement__create_date
85+
#: model:ir.model.fields,field_description:hr_collective_agreement.field_collective_agreement_official_publication__create_date
86+
#: model:ir.model.fields,field_description:hr_collective_agreement.field_collective_agreement_scope__create_date
87+
msgid "Created on"
88+
msgstr "Creat el"
89+
90+
#. module: hr_collective_agreement
91+
#: model:ir.model.fields,field_description:hr_collective_agreement.field_collective_agreement__display_name
92+
#: model:ir.model.fields,field_description:hr_collective_agreement.field_collective_agreement_official_publication__display_name
93+
#: model:ir.model.fields,field_description:hr_collective_agreement.field_collective_agreement_scope__display_name
94+
msgid "Display Name"
95+
msgstr "Nom mostrat"
96+
97+
#. module: hr_collective_agreement
98+
#: model:ir.model.fields.selection,name:hr_collective_agreement.selection__collective_agreement__state__draft
99+
msgid "Draft"
100+
msgstr "Esborrany"
101+
102+
#. module: hr_collective_agreement
103+
#: model:ir.model.fields,field_description:hr_collective_agreement.field_collective_agreement__end_date
104+
msgid "End Date"
105+
msgstr "Data de finalització"
106+
107+
#. module: hr_collective_agreement
108+
#: model_terms:ir.ui.view,arch_db:hr_collective_agreement.view_form_collective_agreement
109+
msgid "Finish"
110+
msgstr "Finalitzar"
111+
112+
#. module: hr_collective_agreement
113+
#: model:ir.model.fields.selection,name:hr_collective_agreement.selection__collective_agreement__state__finished
114+
msgid "Finished"
115+
msgstr "Finalitzat"
116+
117+
#. module: hr_collective_agreement
118+
#: model:ir.model.fields,field_description:hr_collective_agreement.field_collective_agreement__id
119+
#: model:ir.model.fields,field_description:hr_collective_agreement.field_collective_agreement_official_publication__id
120+
#: model:ir.model.fields,field_description:hr_collective_agreement.field_collective_agreement_scope__id
121+
msgid "ID"
122+
msgstr ""
123+
124+
#. module: hr_collective_agreement
125+
#: model:ir.model.fields,field_description:hr_collective_agreement.field_collective_agreement__write_uid
126+
#: model:ir.model.fields,field_description:hr_collective_agreement.field_collective_agreement_official_publication__write_uid
127+
#: model:ir.model.fields,field_description:hr_collective_agreement.field_collective_agreement_scope__write_uid
128+
msgid "Last Updated by"
129+
msgstr "Última actualització per"
130+
131+
#. module: hr_collective_agreement
132+
#: model:ir.model.fields,field_description:hr_collective_agreement.field_collective_agreement__write_date
133+
#: model:ir.model.fields,field_description:hr_collective_agreement.field_collective_agreement_official_publication__write_date
134+
#: model:ir.model.fields,field_description:hr_collective_agreement.field_collective_agreement_scope__write_date
135+
msgid "Last Updated on"
136+
msgstr "Última actualització a"
137+
138+
#. module: hr_collective_agreement
139+
#: model:ir.model.fields,field_description:hr_collective_agreement.field_collective_agreement__name
140+
#: model:ir.model.fields,field_description:hr_collective_agreement.field_collective_agreement_official_publication__name
141+
#: model:ir.model.fields,field_description:hr_collective_agreement.field_collective_agreement_scope__name
142+
msgid "Name"
143+
msgstr "Nom"
144+
145+
#. module: hr_collective_agreement
146+
#: model_terms:ir.ui.view,arch_db:hr_collective_agreement.view_collective_agreement_search
147+
msgid "Name or Code"
148+
msgstr "Nom o codi"
149+
150+
#. module: hr_collective_agreement
151+
#: model:ir.model.fields,field_description:hr_collective_agreement.field_collective_agreement__observations
152+
#: model_terms:ir.ui.view,arch_db:hr_collective_agreement.view_form_collective_agreement
153+
msgid "Observations"
154+
msgstr "Observacions"
155+
156+
#. module: hr_collective_agreement
157+
#: model:ir.model.fields,field_description:hr_collective_agreement.field_collective_agreement__official_publication_id
158+
msgid "Official Publication"
159+
msgstr "Publicació Oficial"
160+
161+
#. module: hr_collective_agreement
162+
#: model:ir.actions.act_window,name:hr_collective_agreement.action_collective_agreement_official_publication
163+
#: model:ir.ui.menu,name:hr_collective_agreement.menu_collective_agreement_official_publication
164+
msgid "Official Publications"
165+
msgstr "Publicacions oficials"
166+
167+
#. module: hr_collective_agreement
168+
#: model:ir.model.fields,field_description:hr_collective_agreement.field_collective_agreement__partner_ids
169+
#: model_terms:ir.ui.view,arch_db:hr_collective_agreement.view_form_collective_agreement
170+
msgid "Partners"
171+
msgstr "Empresas"
172+
173+
#. module: hr_collective_agreement
174+
#: model:ir.model.fields,field_description:hr_collective_agreement.field_collective_agreement__publication_date
175+
msgid "Publication Date"
176+
msgstr "Data de publicació"
177+
178+
#. module: hr_collective_agreement
179+
#: model_terms:ir.ui.view,arch_db:hr_collective_agreement.view_form_collective_agreement
180+
msgid "Reset to Draft"
181+
msgstr "Restablir a esborrany"
182+
183+
#. module: hr_collective_agreement
184+
#: model:ir.model.fields,field_description:hr_collective_agreement.field_collective_agreement__scope_id
185+
msgid "Scope"
186+
msgstr "Àmbit"
187+
188+
#. module: hr_collective_agreement
189+
#: model:ir.actions.act_window,name:hr_collective_agreement.action_collective_agreement_scope
190+
#: model:ir.ui.menu,name:hr_collective_agreement.menu_collective_agreement_scope
191+
msgid "Scopes"
192+
msgstr "Àmbits"
193+
194+
#. module: hr_collective_agreement
195+
#: model:ir.model.fields,field_description:hr_collective_agreement.field_collective_agreement__state
196+
msgid "State"
197+
msgstr "Estat"
198+
199+
#. module: hr_collective_agreement
200+
#: model_terms:ir.ui.view,arch_db:hr_collective_agreement.view_form_collective_agreement
201+
msgid ""
202+
"The agreement validity period has not ended yet. Do you want to finish it "
203+
"anyway?"
204+
msgstr ""
205+
"¿El període de vigència del conveni encara no ha finalitzat. Voleu "
206+
"finalitzar-lo igualment?"
207+
208+
#. module: hr_collective_agreement
209+
#: model:ir.model.constraint,message:hr_collective_agreement.constraint_collective_agreement_code_uniq
210+
msgid "The code must be unique"
211+
msgstr "El codi ha de ser únic"
212+
213+
#. module: hr_collective_agreement
214+
#. odoo-python
215+
#: code:addons/hr_collective_agreement/models/collective_agreement.py:0
216+
msgid ""
217+
"The collective agreement cannot be activated because its end date has "
218+
"already passed."
219+
msgstr ""
220+
"El conveni col·lectiu no es pot activar perquè la seva data de "
221+
"finalització ja s’ha superat."
222+
223+
#. module: hr_collective_agreement
224+
#. odoo-python
225+
#: code:addons/hr_collective_agreement/models/collective_agreement.py:0
226+
msgid "The end date cannot be earlier than the publication date."
227+
msgstr "La data de finalització no pot ser anterior a la data de publicació."
228+
229+
#. module: hr_collective_agreement
230+
#: model:ir.model.constraint,message:hr_collective_agreement.constraint_collective_agreement_name_uniq
231+
msgid "The name must be unique"
232+
msgstr "El nom ha de ser únic"
233+
234+
#. module: hr_collective_agreement
235+
#: model:ir.model.constraint,message:hr_collective_agreement.constraint_collective_agreement_official_publication_name_uniq
236+
#: model:ir.model.constraint,message:hr_collective_agreement.constraint_collective_agreement_scope_name_uniq
237+
msgid "The name must be unique."
238+
msgstr "El nom ha de ser únic."
239+
240+
#. module: hr_collective_agreement
241+
#: model_terms:ir.ui.view,arch_db:hr_collective_agreement.view_form_collective_agreement
242+
msgid "This agreement has linked partners. Do you want to cancel it anyway?"
243+
msgstr "¿Aquest conveni té socis vinculats. Voleu cancel·lar-lo igualment?"
244+
245+
#. module: hr_collective_agreement
246+
#: model_terms:ir.ui.view,arch_db:hr_collective_agreement.view_list_collective_agreement
247+
msgid "Update agreement states"
248+
msgstr "Actualitzar l’estat dels convenis"

0 commit comments

Comments
 (0)