Skip to content

Commit

Permalink
[MIG] 10.0 Porting hr_employee_id (OCA#272)
Browse files Browse the repository at this point in the history
  • Loading branch information
astirpe authored and Fekete Mihai committed Nov 14, 2017
1 parent f89af25 commit 3ced927
Show file tree
Hide file tree
Showing 20 changed files with 195 additions and 182 deletions.
17 changes: 13 additions & 4 deletions hr_employee_id/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Installation

To install this module, you need to:

* clone the branch 8.0 of the repository https://github.com/OCA/hr
* clone the branch 10.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 "Employee Identification Numbers" in your addons
Expand All @@ -33,6 +33,11 @@ Settings -> Technical -> Sequences & Identifiers -> Sequences
and search for the "Employee ID" sequence, where you modify
its prefix and numbering formats.

To configure the 'ID Generation Method', the '# of Digits' and
the 'Sequence', activate the developer mode and go to
Employees -> Configuration -> Employee ID.


Usage
=====

Expand All @@ -41,15 +46,19 @@ assigned automatically with the next number of the predefined sequence.

.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/116/8.0
:target: https://runbot.odoo-community.org/runbot/116/10.0

Known issues / Roadmap
======================

* When installing the module, the ID of existing employees is not generated automatically

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/hr/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
`here <https://github.com/OCA/hr/issues/new?body=module:%20hr_employee_id%0Aversion:%208.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
If you spotted it first, help us smashing it by providing a detailed and welcomed feedback.

Credits
=======
Expand Down
5 changes: 2 additions & 3 deletions hr_employee_id/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{
'name': 'Employee ID',
'version': '8.0.1.0.0',
'version': '10.0.1.0.0',
'license': 'AGPL-3',
'category': 'Generic Modules/Human Resources',
'author': 'Michael Telahun Makonnen, '
Expand All @@ -16,9 +16,8 @@
],
'data': [
'views/res_config_views.xml',
'views/res_company.xml',
'views/hr_employee_views.xml',
'data/hr_employee_sequence.xml',
],
'installable': False,
'installable': True,
}
24 changes: 10 additions & 14 deletions hr_employee_id/data/hr_employee_sequence.xml
Original file line number Diff line number Diff line change
@@ -1,15 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<record id="seq_type_employeeid_ref" model="ir.sequence.type">
<field name="name">Default Employee ID Seq</field>
<field name="code">employeeid.default.seq</field>
</record>
<record id="seq_employeeid_ref" model="ir.sequence">
<field name="name">Default Employee ID Seq</field>
<field name="code">employeeid.default.seq</field>
<field name="prefix">%(y)s</field>
<field name="padding">5</field>
</record>
</data>
</openerp>
<odoo noupdate="1">

<record id="seq_employeeid_ref" model="ir.sequence">
<field name="name">Default Employee ID Seq</field>
<field name="code">employeeid.default.seq</field>
<field name="prefix">%(y)s</field>
<field name="padding">5</field>
</record>

</odoo>
2 changes: 1 addition & 1 deletion hr_employee_id/i18n/ar.po
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ msgstr ""
#. module: hr_employee_id
#: help:hr.config.settings,employee_id_sequence:0
#: help:res.company,employee_id_sequence:0
msgid "Pattern to be used for used for ID Generation"
msgid "Pattern to be used for employee ID Generation"
msgstr ""

#. module: hr_employee_id
Expand Down
2 changes: 1 addition & 1 deletion hr_employee_id/i18n/de.po
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ msgstr ""
#. module: hr_employee_id
#: help:hr.config.settings,employee_id_sequence:0
#: help:res.company,employee_id_sequence:0
msgid "Pattern to be used for used for ID Generation"
msgid "Pattern to be used for employee ID Generation"
msgstr ""

#. module: hr_employee_id
Expand Down
2 changes: 1 addition & 1 deletion hr_employee_id/i18n/es.po
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ msgstr ""
#. module: hr_employee_id
#: help:hr.config.settings,employee_id_sequence:0
#: help:res.company,employee_id_sequence:0
msgid "Pattern to be used for used for ID Generation"
msgid "Pattern to be used for employee ID Generation"
msgstr ""

#. module: hr_employee_id
Expand Down
2 changes: 1 addition & 1 deletion hr_employee_id/i18n/fi.po
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ msgstr ""
#. module: hr_employee_id
#: help:hr.config.settings,employee_id_sequence:0
#: help:res.company,employee_id_sequence:0
msgid "Pattern to be used for used for ID Generation"
msgid "Pattern to be used for employee ID Generation"
msgstr ""

#. module: hr_employee_id
Expand Down
25 changes: 13 additions & 12 deletions hr_employee_id/i18n/fr.po
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@
# * hr_employee_id
#
# Translators:
# Christophe CHAUVET <christophe.chauvet@gmail.com>, 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-09 14:56+0000\n"
"Last-Translator: <>\n"
"POT-Creation-Date: 2016-07-05 18:30+0000\n"
"PO-Revision-Date: 2016-07-04 06:52+0000\n"
"Last-Translator: Christophe CHAUVET <christophe.chauvet@gmail.com>\n"
"Language-Team: French (http://www.transifex.com/oca/OCA-hr-8-0/language/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
Expand All @@ -21,7 +22,7 @@ msgstr ""
#: field:hr.config.settings,employee_id_random_digits:0
#: field:res.company,employee_id_random_digits:0
msgid "# of Digits"
msgstr ""
msgstr "# de chiffres"

#. module: hr_employee_id
#: model:ir.model,name:hr_employee_id.model_res_company
Expand All @@ -37,31 +38,31 @@ msgstr "Employé"
#: view:hr.config.settings:hr_employee_id.view_human_resources_configuration
#: view:res.company:hr_employee_id.view_company_form
msgid "Employee ID"
msgstr ""
msgstr "ID de l'employé"

#. module: hr_employee_id
#: field:hr.config.settings,employee_id_gen_method:0
#: field:res.company,employee_id_gen_method:0
msgid "ID Generation Method"
msgstr ""
msgstr "Méthode de génération de l'ID"

#. module: hr_employee_id
#: help:hr.config.settings,employee_id_random_digits:0
#: help:res.company,employee_id_random_digits:0
msgid "Number of digits making up the ID"
msgstr ""
msgstr "Nombre de chiffres pour fabriquer l'ID"

#. module: hr_employee_id
#: help:hr.config.settings,employee_id_sequence:0
#: help:res.company,employee_id_sequence:0
msgid "Pattern to be used for used for ID Generation"
msgstr ""
msgid "Pattern to be used for employee ID Generation"
msgstr "Modèle à utiliser pour la génération de l'ID"

#. module: hr_employee_id
#: selection:hr.config.settings,employee_id_gen_method:0
#: selection:res.company,employee_id_gen_method:0
msgid "Random"
msgstr ""
msgstr "Aléatoire"

#. module: hr_employee_id
#: selection:hr.config.settings,employee_id_gen_method:0
Expand All @@ -74,11 +75,11 @@ msgstr "Séquence"
#. module: hr_employee_id
#: sql_constraint:hr.employee:0
msgid "The Employee Number must be unique across the company(s)."
msgstr ""
msgstr "Le numéro d'employé doit être unique par société(s)."

#. module: hr_employee_id
#: code:addons/hr_employee_id/models/hr_employee.py:50
#, python-format
msgid ""
"Unable to generate an Employee ID number that is unique."
msgstr ""
msgstr "Impossible de générer le numéro d'ID employé qui doit être unique."
2 changes: 1 addition & 1 deletion hr_employee_id/i18n/it.po
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ msgstr ""
#. module: hr_employee_id
#: help:hr.config.settings,employee_id_sequence:0
#: help:res.company,employee_id_sequence:0
msgid "Pattern to be used for used for ID Generation"
msgid "Pattern to be used for employee ID Generation"
msgstr ""

#. module: hr_employee_id
Expand Down
2 changes: 1 addition & 1 deletion hr_employee_id/i18n/nl_NL.po
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ msgstr ""
#. module: hr_employee_id
#: help:hr.config.settings,employee_id_sequence:0
#: help:res.company,employee_id_sequence:0
msgid "Pattern to be used for used for ID Generation"
msgid "Pattern to be used for employee ID Generation"
msgstr ""

#. module: hr_employee_id
Expand Down
2 changes: 1 addition & 1 deletion hr_employee_id/i18n/pt_BR.po
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ msgstr ""
#. module: hr_employee_id
#: help:hr.config.settings,employee_id_sequence:0
#: help:res.company,employee_id_sequence:0
msgid "Pattern to be used for used for ID Generation"
msgid "Pattern to be used for employee ID Generation"
msgstr ""

#. module: hr_employee_id
Expand Down
2 changes: 1 addition & 1 deletion hr_employee_id/i18n/ro.po
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ msgstr ""
#. module: hr_employee_id
#: help:hr.config.settings,employee_id_sequence:0
#: help:res.company,employee_id_sequence:0
msgid "Pattern to be used for used for ID Generation"
msgid "Pattern to be used for employee ID Generation"
msgstr ""

#. module: hr_employee_id
Expand Down
2 changes: 1 addition & 1 deletion hr_employee_id/i18n/sl.po
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ msgstr "Število znakov, ki sestavlja ID"
#. module: hr_employee_id
#: help:hr.config.settings,employee_id_sequence:0
#: help:res.company,employee_id_sequence:0
msgid "Pattern to be used for used for ID Generation"
msgid "Pattern to be used for employee ID Generation"
msgstr "Vzorec uporabljen za ustvarjanje ID"

#. module: hr_employee_id
Expand Down
4 changes: 2 additions & 2 deletions hr_employee_id/models/hr_employee.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@

import random
import string
from openerp import models, fields, api, _
from openerp.exceptions import Warning as UserWarning
from odoo import models, fields, api, _
from odoo.exceptions import Warning as UserWarning


class HrEmployee(models.Model):
Expand Down
6 changes: 3 additions & 3 deletions hr_employee_id/models/res_company.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# © 2016 OpenSynergy Indonesia
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

from openerp import models, fields
from odoo import models, fields


class ResCompany(models.Model):
Expand All @@ -24,6 +24,6 @@ class ResCompany(models.Model):
)
employee_id_sequence = fields.Many2one(
comodel_name='ir.sequence',
string='Sequence',
help="Pattern to be used for used for ID Generation",
string='Employee ID Sequence',
help="Pattern to be used for employee ID Generation"
)
70 changes: 34 additions & 36 deletions hr_employee_id/models/res_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,53 +3,51 @@
# © 2016 OpenSynergy Indonesia
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

from openerp import models, fields, api
from odoo import models, fields


class HumanResourcesConfiguration(models.TransientModel):
_inherit = 'hr.config.settings'
_inherit = 'res.config.settings'
_name = 'hr.employeeid.config.settings'

def _default_id_gen_method(self):
gen_method = self.env.user.company_id.employee_id_gen_method
if not gen_method:
gen_method = self.env['res.company'].default_get(
['employee_id_gen_method']
)['employee_id_gen_method']
return gen_method

def _default_id_random_digits(self):
digits = self.env.user.company_id.employee_id_random_digits
if not digits:
digits = self.env['res.company'].default_get(
['employee_id_random_digits']
)['employee_id_random_digits']
return digits

def _default_id_sequence(self):
sequence = self.env.ref('hr_employee_id.seq_employeeid_ref')
sequence = self.env.user.company_id.employee_id_sequence
if not sequence:
sequence = self.env.ref('hr_employee_id.seq_employeeid_ref')
return sequence and sequence.id or False

company_id = fields.Many2one(
'res.company',
string='Company',
required=True,
default=lambda self: self.env.user.company_id)

employee_id_gen_method = fields.Selection(
selection=[
('random', 'Random'),
('sequence', 'Sequence'),
],
string="ID Generation Method",
default='random'
related='company_id.employee_id_gen_method',
default=_default_id_gen_method
)
employee_id_random_digits = fields.Integer(
string='# of Digits',
default=5,
help="Number of digits making up the ID"
related='company_id.employee_id_random_digits',
default=_default_id_random_digits
)
employee_id_sequence = fields.Many2one(
comodel_name='ir.sequence',
string='Sequence',
help="Pattern to be used for used for ID Generation",
'ir.sequence',
related='company_id.employee_id_sequence',
default=_default_id_sequence
)

@api.model
def get_default_employee_id_values(self, fields):
company = self.env.user.company_id
return {
'employee_id_gen_method': company.employee_id_gen_method,
'employee_id_random_digits': company.employee_id_random_digits,
'employee_id_sequence': company.employee_id_sequence.id,
}

@api.one
def set_employee_id_values(self):
company = self.env.user.company_id
company.employee_id_gen_method = self.employee_id_gen_method
company.employee_id_random_digits = self.employee_id_random_digits
company.employee_id_sequence = self.employee_id_sequence

@api.onchange('employee_id_gen_method')
def onchange_employee_id_gen_method(self):
if self.employee_id_gen_method == 'sequence':
self.employee_id_sequence = self._default_id_sequence()
14 changes: 13 additions & 1 deletion hr_employee_id/tests/test_employee_id.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# © 2016 OpenSynergy Indonesia
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

from openerp.tests import common
from odoo.tests import common


class TestEmployeeID(common.TransactionCase):
Expand Down Expand Up @@ -34,3 +34,15 @@ def test_sequences_id_generation(self):
employee = self.employee_model.create({'name': 'Employee'})

self.assertTrue(len(employee.identification_id))

def test_configuration_default_values(self):
# test loading of default configuration values
self.company.write({'employee_id_gen_method': None,
'employee_id_random_digits': None,
'employee_id_sequence': None})
config_model = self.env['hr.employeeid.config.settings']
config = config_model.create({})
self.assertTrue(config.company_id.id == self.company.id)
self.assertTrue(config.employee_id_gen_method == 'random')
self.assertTrue(config.employee_id_random_digits == 5)
self.assertFalse(config.employee_id_sequence is False)
Loading

0 comments on commit 3ced927

Please sign in to comment.