From d39d3a3b7cc66b7a85a9b39d9ef7daddb79dc954 Mon Sep 17 00:00:00 2001
From: Iryna Vyshnevska
Date: Thu, 3 Jan 2019 14:39:28 +0200
Subject: [PATCH 01/17] hr_job_category: Migrate to 11.0
---
hr_job_category/README.rst | 103 ++++
hr_job_category/__init__.py | 2 +
hr_job_category/__manifest__.py | 22 +
hr_job_category/i18n/de.po | 43 ++
hr_job_category/i18n/es.po | 41 ++
hr_job_category/i18n/fi.po | 40 ++
hr_job_category/i18n/fr.po | 40 ++
hr_job_category/i18n/hr_job_category.pot | 35 ++
hr_job_category/i18n/it.po | 40 ++
hr_job_category/i18n/pt_BR.po | 41 ++
hr_job_category/i18n/ro.po | 41 ++
hr_job_category/i18n/sl.po | 42 ++
hr_job_category/models/__init__.py | 1 +
hr_job_category/models/hr.py | 74 +++
hr_job_category/readme/CONTRIBUTORS.rst | 3 +
hr_job_category/readme/DESCRIPTION.rst | 6 +
hr_job_category/readme/INSTALL.rst | 7 +
hr_job_category/readme/USAGE.rst | 6 +
hr_job_category/static/description/icon.png | Bin 0 -> 5938 bytes
hr_job_category/static/description/index.html | 449 ++++++++++++++++++
hr_job_category/tests/__init__.py | 1 +
.../tests/test_hr_job_categories.py | 59 +++
hr_job_category/views/hr_view.xml | 16 +
23 files changed, 1112 insertions(+)
create mode 100644 hr_job_category/README.rst
create mode 100644 hr_job_category/__init__.py
create mode 100644 hr_job_category/__manifest__.py
create mode 100644 hr_job_category/i18n/de.po
create mode 100644 hr_job_category/i18n/es.po
create mode 100644 hr_job_category/i18n/fi.po
create mode 100644 hr_job_category/i18n/fr.po
create mode 100644 hr_job_category/i18n/hr_job_category.pot
create mode 100644 hr_job_category/i18n/it.po
create mode 100644 hr_job_category/i18n/pt_BR.po
create mode 100644 hr_job_category/i18n/ro.po
create mode 100644 hr_job_category/i18n/sl.po
create mode 100644 hr_job_category/models/__init__.py
create mode 100644 hr_job_category/models/hr.py
create mode 100644 hr_job_category/readme/CONTRIBUTORS.rst
create mode 100644 hr_job_category/readme/DESCRIPTION.rst
create mode 100644 hr_job_category/readme/INSTALL.rst
create mode 100644 hr_job_category/readme/USAGE.rst
create mode 100644 hr_job_category/static/description/icon.png
create mode 100644 hr_job_category/static/description/index.html
create mode 100644 hr_job_category/tests/__init__.py
create mode 100644 hr_job_category/tests/test_hr_job_categories.py
create mode 100644 hr_job_category/views/hr_view.xml
diff --git a/hr_job_category/README.rst b/hr_job_category/README.rst
new file mode 100644
index 00000000000..2343da29acb
--- /dev/null
+++ b/hr_job_category/README.rst
@@ -0,0 +1,103 @@
+==========================
+HR Job Employee Categories
+==========================
+
+.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! This file is generated by oca-gen-addon-readme !!
+ !! changes will be overwritten. !!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
+ :target: https://odoo-community.org/page/development-status
+ :alt: Beta
+.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
+ :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
+ :alt: License: AGPL-3
+.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fhr-lightgray.png?logo=github
+ :target: https://github.com/OCA/hr/tree/11.0/hr_job_category
+ :alt: OCA/hr
+.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
+ :target: https://translation.odoo-community.org/projects/hr-11-0/hr-11-0-hr_job_category
+ :alt: Translate me on Weblate
+.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
+ :target: https://runbot.odoo-community.org/runbot/116/11.0
+ :alt: Try me on Runbot
+
+|badge1| |badge2| |badge3| |badge4| |badge5|
+
+This module was written to extend the functionality of jobs
+to support tagging employees based on their job positions.
+For example, all Supervisors could be attached to the Supervisors category.
+Define which categories a job belongs to in the configuration for the job.
+When an employee is assigned a particular job the categories attached to that
+job will be attached to the employee record as well.
+
+**Table of contents**
+
+.. contents::
+ :local:
+
+Installation
+============
+
+To install this module, you need to:
+
+* clone the branch 11.0 of the repository https://github.com/OCA/hr
+* add the path to this repository in your configuration (addons-path)
+* update the module list
+* search for "HR Job Employee Categories" in your addons
+* install the module
+
+Usage
+=====
+
+Just like on Employee form, you can select Tags on every Job form view.
+Once a contract is defined for an employee, the tags assigned to the job
+position selected are copied to the employee.
+
+Note: If the job position is changed on the same contract, the tags from
+old job position will be removed from employee.
+
+Bug Tracker
+===========
+
+Bugs are tracked on `GitHub Issues `_.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us smashing it by providing a detailed and welcomed
+`feedback `_.
+
+Do not contact contributors directly about support or help with technical issues.
+
+Credits
+=======
+
+Authors
+~~~~~~~
+
+* Michael Telahun Makonnen
+* Savoir-faire Linux
+* Fekete Mihai (FBSR)
+
+Contributors
+~~~~~~~~~~~~
+
+* Michael Telahun Makonnen
+* Savoir-faire Linux
+* Fekete Mihai
+
+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.
+
+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_job_category/__init__.py b/hr_job_category/__init__.py
new file mode 100644
index 00000000000..a9e3372262c
--- /dev/null
+++ b/hr_job_category/__init__.py
@@ -0,0 +1,2 @@
+
+from . import models
diff --git a/hr_job_category/__manifest__.py b/hr_job_category/__manifest__.py
new file mode 100644
index 00000000000..9cccc0513f1
--- /dev/null
+++ b/hr_job_category/__manifest__.py
@@ -0,0 +1,22 @@
+# Copyright 2013 Michael Telahun Makonnen
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+{
+ 'name': 'HR Job Employee Categories',
+ 'version': '11.0.1.0.0',
+ 'category': 'Generic Modules/Human Resources',
+ 'summary': 'Adds tags to employee trough contract and job position',
+ 'author': "Michael Telahun Makonnen , "
+ "Savoir-faire Linux, "
+ "Fekete Mihai (FBSR), "
+ "Odoo Community Association (OCA)",
+ 'website': 'https://github.com/OCA/hr',
+ 'license': 'AGPL-3',
+ 'depends': [
+ 'hr_contract',
+ ],
+ 'data': [
+ 'views/hr_view.xml',
+ ],
+ 'installable': True,
+}
diff --git a/hr_job_category/i18n/de.po b/hr_job_category/i18n/de.po
new file mode 100644
index 00000000000..452fe8e8c95
--- /dev/null
+++ b/hr_job_category/i18n/de.po
@@ -0,0 +1,43 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * hr_job_category
+#
+# Translators:
+# Rudolf Schnapka , 2016
+# Thomas A. Jaeger, 2015
+# Thomas A. Jaeger, 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: hr (8.0)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-11-30 05:19+0000\n"
+"PO-Revision-Date: 2016-01-26 09:53+0000\n"
+"Last-Translator: Rudolf Schnapka \n"
+"Language-Team: German (http://www.transifex.com/oca/OCA-hr-8-0/language/"
+"de/)\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: hr_job_category
+#: model:ir.model.fields,field_description:hr_job_category.field_hr_job_category_ids
+msgid "Associated Tags"
+msgstr "Assoziierte Schlagwörter"
+
+#. module: hr_job_category
+#: model:ir.model,name:hr_job_category.model_hr_contract
+#, fuzzy
+msgid "Employee Contract"
+msgstr "Vertrag"
+
+#. module: hr_job_category
+#: model:ir.model,name:hr_job_category.model_hr_job
+msgid "Job Position"
+msgstr "Arbeitsplatzpositionen"
+
+#. module: hr_job_category
+#: model:ir.ui.view,arch_db:hr_job_category.view_job_form
+msgid "e.g. Part Time"
+msgstr "z. B. Teilzeit"
diff --git a/hr_job_category/i18n/es.po b/hr_job_category/i18n/es.po
new file mode 100644
index 00000000000..fd0bf4e5740
--- /dev/null
+++ b/hr_job_category/i18n/es.po
@@ -0,0 +1,41 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * hr_job_category
+#
+# Translators:
+# Antonio Trueba, 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: hr (8.0)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-11-30 05:19+0000\n"
+"PO-Revision-Date: 2016-02-10 16:53+0000\n"
+"Last-Translator: Antonio Trueba\n"
+"Language-Team: Spanish (http://www.transifex.com/oca/OCA-hr-8-0/language/"
+"es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: hr_job_category
+#: model:ir.model.fields,field_description:hr_job_category.field_hr_job_category_ids
+msgid "Associated Tags"
+msgstr "Etiquetas asociadas"
+
+#. module: hr_job_category
+#: model:ir.model,name:hr_job_category.model_hr_contract
+#, fuzzy
+msgid "Employee Contract"
+msgstr "Contrato"
+
+#. module: hr_job_category
+#: model:ir.model,name:hr_job_category.model_hr_job
+msgid "Job Position"
+msgstr ""
+
+#. module: hr_job_category
+#: model:ir.ui.view,arch_db:hr_job_category.view_job_form
+msgid "e.g. Part Time"
+msgstr "p.e., Tiempo parcial"
diff --git a/hr_job_category/i18n/fi.po b/hr_job_category/i18n/fi.po
new file mode 100644
index 00000000000..764acdf482b
--- /dev/null
+++ b/hr_job_category/i18n/fi.po
@@ -0,0 +1,40 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * hr_job_category
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: hr (8.0)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2016-04-14 04:15+0000\n"
+"PO-Revision-Date: 2016-04-04 11:09+0000\n"
+"Last-Translator: Jarmo Kortetjärvi \n"
+"Language-Team: Finnish (http://www.transifex.com/oca/OCA-hr-8-0/language/"
+"fi/)\n"
+"Language: fi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: hr_job_category
+#: model:ir.model.fields,field_description:hr_job_category.field_hr_job_category_ids
+msgid "Associated Tags"
+msgstr ""
+
+#. module: hr_job_category
+#: model:ir.model,name:hr_job_category.model_hr_contract
+#, fuzzy
+msgid "Employee Contract"
+msgstr "Sopimus"
+
+#. module: hr_job_category
+#: model:ir.model,name:hr_job_category.model_hr_job
+msgid "Job Position"
+msgstr ""
+
+#. module: hr_job_category
+#: model:ir.ui.view,arch_db:hr_job_category.view_job_form
+msgid "e.g. Part Time"
+msgstr ""
diff --git a/hr_job_category/i18n/fr.po b/hr_job_category/i18n/fr.po
new file mode 100644
index 00000000000..b25096e93ad
--- /dev/null
+++ b/hr_job_category/i18n/fr.po
@@ -0,0 +1,40 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * hr_job_category
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: hr (8.0)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-08-18 13:10+0000\n"
+"PO-Revision-Date: 2015-07-27 23:44+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: French (http://www.transifex.com/oca/OCA-hr-8-0/language/"
+"fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. module: hr_job_category
+#: model:ir.model.fields,field_description:hr_job_category.field_hr_job_category_ids
+msgid "Associated Tags"
+msgstr ""
+
+#. module: hr_job_category
+#: model:ir.model,name:hr_job_category.model_hr_contract
+#, fuzzy
+msgid "Employee Contract"
+msgstr "Contrat"
+
+#. module: hr_job_category
+#: model:ir.model,name:hr_job_category.model_hr_job
+msgid "Job Position"
+msgstr "Poste"
+
+#. module: hr_job_category
+#: model:ir.ui.view,arch_db:hr_job_category.view_job_form
+msgid "e.g. Part Time"
+msgstr "p.e. À temps partiel"
diff --git a/hr_job_category/i18n/hr_job_category.pot b/hr_job_category/i18n/hr_job_category.pot
new file mode 100644
index 00000000000..e36422bf37e
--- /dev/null
+++ b/hr_job_category/i18n/hr_job_category.pot
@@ -0,0 +1,35 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * hr_job_category
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 11.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_job_category
+#: model:ir.model.fields,field_description:hr_job_category.field_hr_job_category_ids
+msgid "Associated Tags"
+msgstr ""
+
+#. module: hr_job_category
+#: model:ir.model,name:hr_job_category.model_hr_contract
+msgid "Employee Contract"
+msgstr ""
+
+#. module: hr_job_category
+#: model:ir.model,name:hr_job_category.model_hr_job
+msgid "Job Position"
+msgstr ""
+
+#. module: hr_job_category
+#: model:ir.ui.view,arch_db:hr_job_category.view_job_form
+msgid "e.g. Part Time"
+msgstr ""
+
diff --git a/hr_job_category/i18n/it.po b/hr_job_category/i18n/it.po
new file mode 100644
index 00000000000..0b8a13ccdce
--- /dev/null
+++ b/hr_job_category/i18n/it.po
@@ -0,0 +1,40 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * hr_job_category
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: hr (8.0)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2016-03-12 12:02+0000\n"
+"PO-Revision-Date: 2015-07-27 23:44+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: Italian (http://www.transifex.com/oca/OCA-hr-8-0/language/"
+"it/)\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"
+
+#. module: hr_job_category
+#: model:ir.model.fields,field_description:hr_job_category.field_hr_job_category_ids
+msgid "Associated Tags"
+msgstr ""
+
+#. module: hr_job_category
+#: model:ir.model,name:hr_job_category.model_hr_contract
+#, fuzzy
+msgid "Employee Contract"
+msgstr "Contratto"
+
+#. module: hr_job_category
+#: model:ir.model,name:hr_job_category.model_hr_job
+msgid "Job Position"
+msgstr ""
+
+#. module: hr_job_category
+#: model:ir.ui.view,arch_db:hr_job_category.view_job_form
+msgid "e.g. Part Time"
+msgstr ""
diff --git a/hr_job_category/i18n/pt_BR.po b/hr_job_category/i18n/pt_BR.po
new file mode 100644
index 00000000000..3d78a3f3bca
--- /dev/null
+++ b/hr_job_category/i18n/pt_BR.po
@@ -0,0 +1,41 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * hr_job_category
+#
+# Translators:
+# danimaribeiro , 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: hr (8.0)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2016-03-11 01:48+0000\n"
+"PO-Revision-Date: 2016-03-08 03:19+0000\n"
+"Last-Translator: danimaribeiro \n"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/OCA-hr-8-0/"
+"language/pt_BR/)\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. module: hr_job_category
+#: model:ir.model.fields,field_description:hr_job_category.field_hr_job_category_ids
+msgid "Associated Tags"
+msgstr ""
+
+#. module: hr_job_category
+#: model:ir.model,name:hr_job_category.model_hr_contract
+#, fuzzy
+msgid "Employee Contract"
+msgstr "Contrato"
+
+#. module: hr_job_category
+#: model:ir.model,name:hr_job_category.model_hr_job
+msgid "Job Position"
+msgstr "Cargo"
+
+#. module: hr_job_category
+#: model:ir.ui.view,arch_db:hr_job_category.view_job_form
+msgid "e.g. Part Time"
+msgstr "ex. Meio período"
diff --git a/hr_job_category/i18n/ro.po b/hr_job_category/i18n/ro.po
new file mode 100644
index 00000000000..849a5206086
--- /dev/null
+++ b/hr_job_category/i18n/ro.po
@@ -0,0 +1,41 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * hr_job_category
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: hr (8.0)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-08-18 13:10+0000\n"
+"PO-Revision-Date: 2015-07-27 23:44+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: Romanian (http://www.transifex.com/oca/OCA-hr-8-0/language/"
+"ro/)\n"
+"Language: ro\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?"
+"2:1));\n"
+
+#. module: hr_job_category
+#: model:ir.model.fields,field_description:hr_job_category.field_hr_job_category_ids
+msgid "Associated Tags"
+msgstr ""
+
+#. module: hr_job_category
+#: model:ir.model,name:hr_job_category.model_hr_contract
+#, fuzzy
+msgid "Employee Contract"
+msgstr "Contract"
+
+#. module: hr_job_category
+#: model:ir.model,name:hr_job_category.model_hr_job
+msgid "Job Position"
+msgstr "Funcție"
+
+#. module: hr_job_category
+#: model:ir.ui.view,arch_db:hr_job_category.view_job_form
+msgid "e.g. Part Time"
+msgstr ""
diff --git a/hr_job_category/i18n/sl.po b/hr_job_category/i18n/sl.po
new file mode 100644
index 00000000000..9c4a3aafebd
--- /dev/null
+++ b/hr_job_category/i18n/sl.po
@@ -0,0 +1,42 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * hr_job_category
+#
+# Translators:
+# Matjaž Mozetič , 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: hr (8.0)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-08-18 13:10+0000\n"
+"PO-Revision-Date: 2015-08-01 15:48+0000\n"
+"Last-Translator: Matjaž Mozetič \n"
+"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-hr-8-0/language/"
+"sl/)\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_job_category
+#: model:ir.model.fields,field_description:hr_job_category.field_hr_job_category_ids
+msgid "Associated Tags"
+msgstr "Povezane oznake"
+
+#. module: hr_job_category
+#: model:ir.model,name:hr_job_category.model_hr_contract
+#, fuzzy
+msgid "Employee Contract"
+msgstr "Pogodba"
+
+#. module: hr_job_category
+#: model:ir.model,name:hr_job_category.model_hr_job
+msgid "Job Position"
+msgstr "Delovno mesto"
+
+#. module: hr_job_category
+#: model:ir.ui.view,arch_db:hr_job_category.view_job_form
+msgid "e.g. Part Time"
+msgstr "npr. Občasno"
diff --git a/hr_job_category/models/__init__.py b/hr_job_category/models/__init__.py
new file mode 100644
index 00000000000..b80db13ee6b
--- /dev/null
+++ b/hr_job_category/models/__init__.py
@@ -0,0 +1 @@
+from . import hr
diff --git a/hr_job_category/models/hr.py b/hr_job_category/models/hr.py
new file mode 100644
index 00000000000..63389b10136
--- /dev/null
+++ b/hr_job_category/models/hr.py
@@ -0,0 +1,74 @@
+# Copyright 2013 Michael Telahun Makonnen
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+from odoo import models, fields, api
+import logging
+
+_logger = logging.getLogger(__name__)
+
+
+class HRJob(models.Model):
+ _inherit = 'hr.job'
+
+ category_ids = fields.Many2many('hr.employee.category',
+ 'job_category_rel',
+ 'job_id',
+ 'category_id',
+ string='Associated Tags')
+
+
+class HRContract(models.Model):
+ _inherit = 'hr.contract'
+
+ @api.multi
+ def _remove_tags(self, employee_id=None, job_id=None):
+ # TODO write tags only once
+ if not employee_id or not job_id:
+ return
+ employee = self.env['hr.employee'].browse(employee_id)
+ empl_tags = employee.category_ids
+ job = self.env['hr.job'].browse(job_id)
+ _logger.debug('Removing employee tags if tag exists on contract '
+ 'job: %s', empl_tags)
+ for tag in job.category_ids:
+ if tag in empl_tags:
+ employee.write({'category_ids': [(3, tag.id)]})
+
+ @api.multi
+ def _tag_employees(self, employee_id=None, job_id=None):
+ if not employee_id or not job_id:
+ return
+ employee = self.env['hr.employee'].browse(employee_id)
+ empl_tags = employee.category_ids
+ job = self.env['hr.job'].browse(job_id)
+ for tag in job.category_ids:
+ if tag not in empl_tags:
+ _logger.debug("Adding employee tag if job tag doesn't "
+ "exists: %s", tag.name)
+ employee.write({'category_ids': [(4, tag.id)]})
+
+ @api.model
+ def create(self, vals):
+ res = super().create(vals)
+ self._tag_employees(vals.get('employee_id', False),
+ vals.get('job_id', False))
+ return res
+
+ @api.multi
+ def write(self, vals):
+ prev_data = self.read(['job_id'])
+
+ res = super().write(vals)
+
+ # Go through each record and delete tags associated with the previous
+ # job, then add the tags of the new job.
+ #
+ for contract in self:
+ for data in prev_data:
+ if (data.get('id') == contract.id and data['job_id'] and
+ data['job_id'][0] != contract.job_id.id):
+ self._remove_tags(contract.employee_id.id,
+ data['job_id'][0])
+ self._tag_employees(contract.employee_id.id,
+ contract.job_id.id)
+ return res
diff --git a/hr_job_category/readme/CONTRIBUTORS.rst b/hr_job_category/readme/CONTRIBUTORS.rst
new file mode 100644
index 00000000000..53714833f12
--- /dev/null
+++ b/hr_job_category/readme/CONTRIBUTORS.rst
@@ -0,0 +1,3 @@
+* Michael Telahun Makonnen
+* Savoir-faire Linux
+* Fekete Mihai
\ No newline at end of file
diff --git a/hr_job_category/readme/DESCRIPTION.rst b/hr_job_category/readme/DESCRIPTION.rst
new file mode 100644
index 00000000000..e5cddb071ba
--- /dev/null
+++ b/hr_job_category/readme/DESCRIPTION.rst
@@ -0,0 +1,6 @@
+This module was written to extend the functionality of jobs
+to support tagging employees based on their job positions.
+For example, all Supervisors could be attached to the Supervisors category.
+Define which categories a job belongs to in the configuration for the job.
+When an employee is assigned a particular job the categories attached to that
+job will be attached to the employee record as well.
\ No newline at end of file
diff --git a/hr_job_category/readme/INSTALL.rst b/hr_job_category/readme/INSTALL.rst
new file mode 100644
index 00000000000..e3253deed81
--- /dev/null
+++ b/hr_job_category/readme/INSTALL.rst
@@ -0,0 +1,7 @@
+To install this module, you need to:
+
+* clone the branch 11.0 of the repository https://github.com/OCA/hr
+* add the path to this repository in your configuration (addons-path)
+* update the module list
+* search for "HR Job Employee Categories" in your addons
+* install the module
\ No newline at end of file
diff --git a/hr_job_category/readme/USAGE.rst b/hr_job_category/readme/USAGE.rst
new file mode 100644
index 00000000000..108d6a55429
--- /dev/null
+++ b/hr_job_category/readme/USAGE.rst
@@ -0,0 +1,6 @@
+Just like on Employee form, you can select Tags on every Job form view.
+Once a contract is defined for an employee, the tags assigned to the job
+position selected are copied to the employee.
+
+Note: If the job position is changed on the same contract, the tags from
+old job position will be removed from employee.
\ No newline at end of file
diff --git a/hr_job_category/static/description/icon.png b/hr_job_category/static/description/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..297dc71c85c5fdd8deafabfbb46093e04adc32d1
GIT binary patch
literal 5938
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 HxC&%52rYWz659b%5VwO|`_
zaaQ#=6u&oY2zu6@mqcZA?3^$LLA1@GkSu(6^PPQWZZY;7F6YC8a_lpM(DkSGftGO%
z_um`BHhClkx;H`JSk~Ttd5GY({L&1e?@ro;X?i4Ydl);F;wRVRx9Bn&kc!o)Sl~z_
z5CQ#86V0KQ-(9hBGUwud@rXduz%Mk|H{?8!wKzZ-O|LnpQ?+E;o^A!~V>^k6D6xnd
zIH(qQ2<1O5{oVuI+Z|4ljOkl$8fWCQoRVkuv)in~o164Wzg-7S+U)G*09}+29bg-k
z6|fFK0<%QNWb+Fb+3iD13oqZpvlsX3_mojiiInYFH`6Hf7)O~;ahL_4ubvp9`%UGp
z$4M(6d~&)2-lA0-nLOpnwZuxjB`(iIufhdS;V%yiTBR5ca;J7Iwk%4mY5;+dFI7V;
zz7^=|Q!NMo{@GM4@(t6Bw4yNg>M1as7
z(YKyLW4AaK(X=h#HMD}7BWG+}9EgNBfcL11b-Jw{g-ZnBAypD%V{C=a_RP9+%&mXv
zYA!=`cuYK?S`G+ECwenaSJ^Yf?T3E1pL`42z?_cH$B1^Uy`R%FUR#geTc;oQU4v5O
zDWGtLejeaw9f<(a^=oi+1*;)Np4onst25!+{sHy+FbRRd
zPn{b1<`{#;i4{Pd-v>#1N^|3=j~2yNm1MJzAOMP%14VIuUuBixf~dO?jso!wj36qN#&u}7i(
z(&mmB*QfBxJUKMh_Wbz~@Oh@10!Aik%d(Qjwj{icpZ#2S^1pDcuy{pM!1qsjWuJci
zcS>gZplI~L&iaGBn5~cfKOpe&@Q8B$d%XO5yaHmp{9-&j>^yw`@*g!m+W*Jk?rG=j
z5cK~yWRfPA{WFmNH$m6a;X{D6k3B*_KmeDshpVrxwU<4Yr;lU)xdg?(CInSQ4TVNI
HtLXm&e3x``
literal 0
HcmV?d00001
diff --git a/hr_job_category/static/description/index.html b/hr_job_category/static/description/index.html
new file mode 100644
index 00000000000..07358b4528b
--- /dev/null
+++ b/hr_job_category/static/description/index.html
@@ -0,0 +1,449 @@
+
+
+
+
+
+
+HR Job Employee Categories
+
+
+
+
+
HR Job Employee Categories
+
+
+
+
This module was written to extend the functionality of jobs
+to support tagging employees based on their job positions.
+For example, all Supervisors could be attached to the Supervisors category.
+Define which categories a job belongs to in the configuration for the job.
+When an employee is assigned a particular job the categories attached to that
+job will be attached to the employee record as well.
Just like on Employee form, you can select Tags on every Job form view.
+Once a contract is defined for an employee, the tags assigned to the job
+position selected are copied to the employee.
+
Note: If the job position is changed on the same contract, the tags from
+old job position will be removed from employee.
Bugs are tracked on GitHub Issues.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us smashing it by providing a detailed and welcomed
+feedback.
+
Do not contact contributors directly about support or help with technical issues.
OCA, or the Odoo Community Association, is a nonprofit organization whose
+mission is to support the collaborative development of Odoo features and
+promote its widespread use.
+
This module is part of the OCA/hr project on GitHub.
This module was written to extend the functionality of jobs to support
tagging employees based on their job positions. For example, all
Supervisors could be attached to the Supervisors category. Define which
@@ -390,7 +395,7 @@
Just like on Employee form, you can select Tags on every Job form view.
Once a contract is defined for an employee, the tags assigned to the job
position selected are copied to the employee.
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
@@ -406,9 +411,9 @@
This module was written to extend the functionality of jobs to support
tagging employees based on their job positions. For example, all
Supervisors could be attached to the Supervisors category. Define which
@@ -407,7 +407,7 @@
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.
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.
-
This module is part of the OCA/hr project on GitHub.
+
This module is part of the OCA/hr project on GitHub.