From 23ba605a5abd9bddca83e8c608b5826d4eb590f2 Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Thu, 1 Mar 2018 00:19:21 +0100 Subject: [PATCH 01/34] Add module l10n_fr_hr_check_ssnid --- l10n_fr_hr_check_ssnid/README.rst | 49 ++++++++++++++++++++ l10n_fr_hr_check_ssnid/__init__.py | 3 ++ l10n_fr_hr_check_ssnid/__manifest__.py | 18 +++++++ l10n_fr_hr_check_ssnid/models/__init__.py | 3 ++ l10n_fr_hr_check_ssnid/models/hr_employee.py | 45 ++++++++++++++++++ l10n_fr_hr_check_ssnid/tests/__init__.py | 3 ++ l10n_fr_hr_check_ssnid/tests/test_ssnid.py | 18 +++++++ l10n_fr_hr_check_ssnid/views/hr_employee.xml | 21 +++++++++ 8 files changed, 160 insertions(+) create mode 100644 l10n_fr_hr_check_ssnid/README.rst create mode 100644 l10n_fr_hr_check_ssnid/__init__.py create mode 100644 l10n_fr_hr_check_ssnid/__manifest__.py create mode 100644 l10n_fr_hr_check_ssnid/models/__init__.py create mode 100644 l10n_fr_hr_check_ssnid/models/hr_employee.py create mode 100644 l10n_fr_hr_check_ssnid/tests/__init__.py create mode 100644 l10n_fr_hr_check_ssnid/tests/test_ssnid.py create mode 100644 l10n_fr_hr_check_ssnid/views/hr_employee.xml diff --git a/l10n_fr_hr_check_ssnid/README.rst b/l10n_fr_hr_check_ssnid/README.rst new file mode 100644 index 000000000..ab828a1c1 --- /dev/null +++ b/l10n_fr_hr_check_ssnid/README.rst @@ -0,0 +1,49 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +================================================== +French Localization - Check Social Security Number +================================================== + +With this module, the social security number of employees of French companies will be checked: if the length or checksum is wrong, an error message will be displayed. + +Usage +===== + +Check that the country of the company is France. Go to the menu *Employees > Employees*, select an employee. In the tab *Personal Information*, enter the French social security number in the field *SSN No*. + +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Try me on Runbot + :target: https://runbot.odoo-community.org/runbot/121/10.0 + +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. + +Credits +======= + +Contributors +------------ + +* Alexis de Lattre + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +This module is maintained by the OCA. + +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. + +To contribute to this module, please visit https://odoo-community.org. diff --git a/l10n_fr_hr_check_ssnid/__init__.py b/l10n_fr_hr_check_ssnid/__init__.py new file mode 100644 index 000000000..cde864bae --- /dev/null +++ b/l10n_fr_hr_check_ssnid/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import models diff --git a/l10n_fr_hr_check_ssnid/__manifest__.py b/l10n_fr_hr_check_ssnid/__manifest__.py new file mode 100644 index 000000000..cf33c7491 --- /dev/null +++ b/l10n_fr_hr_check_ssnid/__manifest__.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +# Copyright 2018 Akretion (Alexis de Lattre ) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + 'name': 'French Localization - Check Social Security Number', + 'version': '10.0.1.0.0', + 'category': 'Human Resources', + 'license': 'AGPL-3', + 'summary': 'Check validity of Social Security Numbers in French companies', + 'author': 'Akretion,Odoo Community Association (OCA)', + 'website': 'http://www.akretion.com', + 'depends': ['hr'], + 'data': [ + 'views/hr_employee.xml' + ], + 'installable': True, +} diff --git a/l10n_fr_hr_check_ssnid/models/__init__.py b/l10n_fr_hr_check_ssnid/models/__init__.py new file mode 100644 index 000000000..58f27f478 --- /dev/null +++ b/l10n_fr_hr_check_ssnid/models/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import hr_employee diff --git a/l10n_fr_hr_check_ssnid/models/hr_employee.py b/l10n_fr_hr_check_ssnid/models/hr_employee.py new file mode 100644 index 000000000..c7a702bed --- /dev/null +++ b/l10n_fr_hr_check_ssnid/models/hr_employee.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# Copyright 2018 Akretion (Alexis de Lattre ) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, models, _ +from odoo.exceptions import ValidationError + + +class HrEmployee(models.Model): + _inherit = 'hr.employee' + + @api.model + def france_check_ssnid(self, ssnid): + assert ssnid, 'missing ssnid arg' + tech_ssnid = ssnid.replace(' ', '').upper() + if len(tech_ssnid) != 15: + raise ValidationError(_( + "French Social Security Numbers should have 15 caracters. " + "The number '%s' has %d caracters.") + % (ssnid, len(tech_ssnid))) + # Handle Corsica + if tech_ssnid[5:7] == '2A': + tech_ssnid = '%s19%s' % (tech_ssnid[:5], tech_ssnid[7:]) + elif tech_ssnid[5:7] == '2B': + tech_ssnid = '%s18%s' % (tech_ssnid[:5], tech_ssnid[7:]) + if not tech_ssnid.isdigit(): + raise ValidationError(_( + "French Social Security Numbers should only contain digits " + "(except when the birth department is Corsica). " + "The number '%s' has non-digit caracters.") % ssnid) + check_number = int(tech_ssnid[:13]) + checksum = int(tech_ssnid[13:]) + theoric_checksum = 97 - (check_number % 97) + if checksum != theoric_checksum: + raise ValidationError(_( + "The Social Security Number '%s' has an invalid " + "checksum (%s, should be %s)") + % (ssnid, checksum, theoric_checksum)) + return True + + @api.constrains('ssnid') + def france_ssnid_constrain(self): + for empl in self: + if empl.company_id.country_id.code == 'FR' and empl.ssnid: + self.france_check_ssnid(empl.ssnid) diff --git a/l10n_fr_hr_check_ssnid/tests/__init__.py b/l10n_fr_hr_check_ssnid/tests/__init__.py new file mode 100644 index 000000000..d95b06a92 --- /dev/null +++ b/l10n_fr_hr_check_ssnid/tests/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import test_ssnid diff --git a/l10n_fr_hr_check_ssnid/tests/test_ssnid.py b/l10n_fr_hr_check_ssnid/tests/test_ssnid.py new file mode 100644 index 000000000..662e7f259 --- /dev/null +++ b/l10n_fr_hr_check_ssnid/tests/test_ssnid.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +# Copyright 2018 Akretion (Alexis de Lattre ) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo.tests.common import TransactionCase +from odoo.exceptions import ValidationError + + +class TestSsnidCheck(TransactionCase): + + def test_validate_ssnid(self): + heo = self.env['hr.employee'] + with self.assertRaises(ValidationError): + heo.france_check_ssnid('1 91 12') + with self.assertRaises(ValidationError): + heo.france_check_ssnid('1 91 02 99 412 042 19') + self.assertTrue(heo.france_check_ssnid('1 91 02 99 412 042 42')) + self.assertTrue(heo.france_check_ssnid('1 55 01 2A 011 222 86')) diff --git a/l10n_fr_hr_check_ssnid/views/hr_employee.xml b/l10n_fr_hr_check_ssnid/views/hr_employee.xml new file mode 100644 index 000000000..0c3bd5d03 --- /dev/null +++ b/l10n_fr_hr_check_ssnid/views/hr_employee.xml @@ -0,0 +1,21 @@ + + + + + + + + hr.employee + + + + + + + + + + From 06f17b799ee638f5d2912488c0bb0b2003354bca Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Thu, 1 Mar 2018 21:38:34 +0100 Subject: [PATCH 02/34] l10n_fr_hr_check_ssnid: Use the stdnum lib --- l10n_fr_hr_check_ssnid/README.rst | 9 ++++ l10n_fr_hr_check_ssnid/__manifest__.py | 5 +-- l10n_fr_hr_check_ssnid/models/hr_employee.py | 43 ++++++-------------- l10n_fr_hr_check_ssnid/tests/test_ssnid.py | 8 ++-- 4 files changed, 28 insertions(+), 37 deletions(-) diff --git a/l10n_fr_hr_check_ssnid/README.rst b/l10n_fr_hr_check_ssnid/README.rst index ab828a1c1..99468b8ca 100644 --- a/l10n_fr_hr_check_ssnid/README.rst +++ b/l10n_fr_hr_check_ssnid/README.rst @@ -8,6 +8,15 @@ French Localization - Check Social Security Number With this module, the social security number of employees of French companies will be checked: if the length or checksum is wrong, an error message will be displayed. +Installation +============ + +This module require the Python `stdnum `_ library. To install it, run: + +.. code:: + + pip install stdnum + Usage ===== diff --git a/l10n_fr_hr_check_ssnid/__manifest__.py b/l10n_fr_hr_check_ssnid/__manifest__.py index cf33c7491..5557cc24d 100644 --- a/l10n_fr_hr_check_ssnid/__manifest__.py +++ b/l10n_fr_hr_check_ssnid/__manifest__.py @@ -11,8 +11,7 @@ 'author': 'Akretion,Odoo Community Association (OCA)', 'website': 'http://www.akretion.com', 'depends': ['hr'], - 'data': [ - 'views/hr_employee.xml' - ], + 'external_dependencies': {'python': ['stdnum']}, + 'data': ['views/hr_employee.xml'], 'installable': True, } diff --git a/l10n_fr_hr_check_ssnid/models/hr_employee.py b/l10n_fr_hr_check_ssnid/models/hr_employee.py index c7a702bed..8782b6df8 100644 --- a/l10n_fr_hr_check_ssnid/models/hr_employee.py +++ b/l10n_fr_hr_check_ssnid/models/hr_employee.py @@ -4,42 +4,25 @@ from odoo import api, models, _ from odoo.exceptions import ValidationError +import logging +logger = logging.getLogger(__name__) + +try: + from stdnum.fr.nir import validate +except ImportError: + logger.debug('Cannot import stdnum') class HrEmployee(models.Model): _inherit = 'hr.employee' - @api.model - def france_check_ssnid(self, ssnid): - assert ssnid, 'missing ssnid arg' - tech_ssnid = ssnid.replace(' ', '').upper() - if len(tech_ssnid) != 15: - raise ValidationError(_( - "French Social Security Numbers should have 15 caracters. " - "The number '%s' has %d caracters.") - % (ssnid, len(tech_ssnid))) - # Handle Corsica - if tech_ssnid[5:7] == '2A': - tech_ssnid = '%s19%s' % (tech_ssnid[:5], tech_ssnid[7:]) - elif tech_ssnid[5:7] == '2B': - tech_ssnid = '%s18%s' % (tech_ssnid[:5], tech_ssnid[7:]) - if not tech_ssnid.isdigit(): - raise ValidationError(_( - "French Social Security Numbers should only contain digits " - "(except when the birth department is Corsica). " - "The number '%s' has non-digit caracters.") % ssnid) - check_number = int(tech_ssnid[:13]) - checksum = int(tech_ssnid[13:]) - theoric_checksum = 97 - (check_number % 97) - if checksum != theoric_checksum: - raise ValidationError(_( - "The Social Security Number '%s' has an invalid " - "checksum (%s, should be %s)") - % (ssnid, checksum, theoric_checksum)) - return True - @api.constrains('ssnid') def france_ssnid_constrain(self): for empl in self: if empl.company_id.country_id.code == 'FR' and empl.ssnid: - self.france_check_ssnid(empl.ssnid) + try: + validate(empl.ssnid) + except Exception, e: + raise ValidationError(_( + "The French Social Security Number '%s' is invalid. " + "(%s)") % (empl.ssnid, e)) diff --git a/l10n_fr_hr_check_ssnid/tests/test_ssnid.py b/l10n_fr_hr_check_ssnid/tests/test_ssnid.py index 662e7f259..df4f2d294 100644 --- a/l10n_fr_hr_check_ssnid/tests/test_ssnid.py +++ b/l10n_fr_hr_check_ssnid/tests/test_ssnid.py @@ -11,8 +11,8 @@ class TestSsnidCheck(TransactionCase): def test_validate_ssnid(self): heo = self.env['hr.employee'] with self.assertRaises(ValidationError): - heo.france_check_ssnid('1 91 12') + heo.create({'name': 'AA', 'ssnid': '1 91 12'}) with self.assertRaises(ValidationError): - heo.france_check_ssnid('1 91 02 99 412 042 19') - self.assertTrue(heo.france_check_ssnid('1 91 02 99 412 042 42')) - self.assertTrue(heo.france_check_ssnid('1 55 01 2A 011 222 86')) + heo.create({'name': 'AB', 'ssnid': '1 91 02 99 412 042 19'}) + heo.create({'name': 'AC', 'ssnid': '1 91 02 99 412 042 42'}) + heo.create({'name': 'AD', 'ssnid': '1 55 01 2A 011 222 86'}) From 524c3bfbd9824d7c21342bdb12ee6250ec66c17a Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Thu, 1 Mar 2018 23:59:49 +0100 Subject: [PATCH 03/34] Fix python lib name --- l10n_fr_hr_check_ssnid/README.rst | 2 +- l10n_fr_hr_check_ssnid/__manifest__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/l10n_fr_hr_check_ssnid/README.rst b/l10n_fr_hr_check_ssnid/README.rst index 99468b8ca..b047e1f0d 100644 --- a/l10n_fr_hr_check_ssnid/README.rst +++ b/l10n_fr_hr_check_ssnid/README.rst @@ -15,7 +15,7 @@ This module require the Python `stdnum .. code:: - pip install stdnum + pip install python-stdnum Usage ===== diff --git a/l10n_fr_hr_check_ssnid/__manifest__.py b/l10n_fr_hr_check_ssnid/__manifest__.py index 5557cc24d..5434d4f1a 100644 --- a/l10n_fr_hr_check_ssnid/__manifest__.py +++ b/l10n_fr_hr_check_ssnid/__manifest__.py @@ -11,7 +11,7 @@ 'author': 'Akretion,Odoo Community Association (OCA)', 'website': 'http://www.akretion.com', 'depends': ['hr'], - 'external_dependencies': {'python': ['stdnum']}, + 'external_dependencies': {'python': ['python-stdnum']}, 'data': ['views/hr_employee.xml'], 'installable': True, } From bacdc502e084fcc88054691c6cfc9c0f77071411 Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Fri, 2 Mar 2018 00:10:47 +0100 Subject: [PATCH 04/34] Fix lib name in external_dependencies --- l10n_fr_hr_check_ssnid/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/l10n_fr_hr_check_ssnid/__manifest__.py b/l10n_fr_hr_check_ssnid/__manifest__.py index 5434d4f1a..5557cc24d 100644 --- a/l10n_fr_hr_check_ssnid/__manifest__.py +++ b/l10n_fr_hr_check_ssnid/__manifest__.py @@ -11,7 +11,7 @@ 'author': 'Akretion,Odoo Community Association (OCA)', 'website': 'http://www.akretion.com', 'depends': ['hr'], - 'external_dependencies': {'python': ['python-stdnum']}, + 'external_dependencies': {'python': ['stdnum']}, 'data': ['views/hr_employee.xml'], 'installable': True, } From 3f5f7f994caa064f4624b82b319dd869a11d4cf7 Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Thu, 8 Mar 2018 11:27:35 +0100 Subject: [PATCH 05/34] Filter exceptions raised by stdnum Fix tests --- l10n_fr_hr_check_ssnid/models/hr_employee.py | 5 +++-- l10n_fr_hr_check_ssnid/tests/test_ssnid.py | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/l10n_fr_hr_check_ssnid/models/hr_employee.py b/l10n_fr_hr_check_ssnid/models/hr_employee.py index 8782b6df8..6af65bc40 100644 --- a/l10n_fr_hr_check_ssnid/models/hr_employee.py +++ b/l10n_fr_hr_check_ssnid/models/hr_employee.py @@ -8,7 +8,8 @@ logger = logging.getLogger(__name__) try: - from stdnum.fr.nir import validate + from stdnum.fr.nir import validate, InvalidFormat,\ + InvalidLength, InvalidChecksum except ImportError: logger.debug('Cannot import stdnum') @@ -22,7 +23,7 @@ def france_ssnid_constrain(self): if empl.company_id.country_id.code == 'FR' and empl.ssnid: try: validate(empl.ssnid) - except Exception, e: + except (InvalidFormat, InvalidLength, InvalidChecksum) as e: raise ValidationError(_( "The French Social Security Number '%s' is invalid. " "(%s)") % (empl.ssnid, e)) diff --git a/l10n_fr_hr_check_ssnid/tests/test_ssnid.py b/l10n_fr_hr_check_ssnid/tests/test_ssnid.py index df4f2d294..9a73f0a50 100644 --- a/l10n_fr_hr_check_ssnid/tests/test_ssnid.py +++ b/l10n_fr_hr_check_ssnid/tests/test_ssnid.py @@ -10,6 +10,8 @@ class TestSsnidCheck(TransactionCase): def test_validate_ssnid(self): heo = self.env['hr.employee'] + # Set company to France + self.env.user.company_id.country_id = self.env.ref('base.fr').id with self.assertRaises(ValidationError): heo.create({'name': 'AA', 'ssnid': '1 91 12'}) with self.assertRaises(ValidationError): From 14aa1fe63ea1891c9c0d04280edde99131cda186 Mon Sep 17 00:00:00 2001 From: OCA Transbot Date: Sat, 14 Apr 2018 06:26:45 +0200 Subject: [PATCH 06/34] OCA Transbot updated translations from Transifex --- l10n_fr_hr_check_ssnid/i18n/fr.po | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 l10n_fr_hr_check_ssnid/i18n/fr.po diff --git a/l10n_fr_hr_check_ssnid/i18n/fr.po b/l10n_fr_hr_check_ssnid/i18n/fr.po new file mode 100644 index 000000000..c14566c26 --- /dev/null +++ b/l10n_fr_hr_check_ssnid/i18n/fr.po @@ -0,0 +1,30 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_fr_hr_check_ssnid +# +# Translators: +# Quentin THEURET , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-24 05:38+0000\n" +"PO-Revision-Date: 2018-03-24 05:38+0000\n" +"Last-Translator: Quentin THEURET , 2018\n" +"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: l10n_fr_hr_check_ssnid +#: model:ir.model,name:l10n_fr_hr_check_ssnid.model_hr_employee +msgid "Employee" +msgstr "Employé" + +#. module: l10n_fr_hr_check_ssnid +#: code:addons/l10n_fr_hr_check_ssnid/models/hr_employee.py:27 +#, python-format +msgid "The French Social Security Number '%s' is invalid. (%s)" +msgstr "Le numéro de sécurité sociale '%s' est invalide. (%s)" From b3d4750fbb52268073bbf900b06b821512c2c68b Mon Sep 17 00:00:00 2001 From: oca-travis Date: Fri, 22 Jun 2018 20:44:02 +0000 Subject: [PATCH 07/34] [UPD] Update l10n_fr_hr_check_ssnid.pot --- l10n_fr_hr_check_ssnid/i18n/fr.po | 4 +-- .../i18n/l10n_fr_hr_check_ssnid.pot | 26 +++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 l10n_fr_hr_check_ssnid/i18n/l10n_fr_hr_check_ssnid.pot diff --git a/l10n_fr_hr_check_ssnid/i18n/fr.po b/l10n_fr_hr_check_ssnid/i18n/fr.po index c14566c26..ca60576ee 100644 --- a/l10n_fr_hr_check_ssnid/i18n/fr.po +++ b/l10n_fr_hr_check_ssnid/i18n/fr.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * l10n_fr_hr_check_ssnid -# +# # Translators: # Quentin THEURET , 2018 msgid "" @@ -12,10 +12,10 @@ msgstr "" "PO-Revision-Date: 2018-03-24 05:38+0000\n" "Last-Translator: Quentin THEURET , 2018\n" "Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #. module: l10n_fr_hr_check_ssnid diff --git a/l10n_fr_hr_check_ssnid/i18n/l10n_fr_hr_check_ssnid.pot b/l10n_fr_hr_check_ssnid/i18n/l10n_fr_hr_check_ssnid.pot new file mode 100644 index 000000000..66ca31219 --- /dev/null +++ b/l10n_fr_hr_check_ssnid/i18n/l10n_fr_hr_check_ssnid.pot @@ -0,0 +1,26 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_fr_hr_check_ssnid +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.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: l10n_fr_hr_check_ssnid +#: model:ir.model,name:l10n_fr_hr_check_ssnid.model_hr_employee +msgid "Employee" +msgstr "" + +#. module: l10n_fr_hr_check_ssnid +#: code:addons/l10n_fr_hr_check_ssnid/models/hr_employee.py:27 +#, python-format +msgid "The French Social Security Number '%s' is invalid. (%s)" +msgstr "" + From 03e77be926e4bfc7915cfdc3f6523e54590fb7ed Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Wed, 3 Apr 2019 02:53:09 +0000 Subject: [PATCH 08/34] [ADD] icon.png --- .../static/description/icon.png | Bin 0 -> 9455 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 l10n_fr_hr_check_ssnid/static/description/icon.png diff --git a/l10n_fr_hr_check_ssnid/static/description/icon.png b/l10n_fr_hr_check_ssnid/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 From e352baa51ff4a1ba9c20f2b831705b47f0283e2d Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Sat, 10 Oct 2020 00:15:59 +0200 Subject: [PATCH 09/34] [MIG] l10n_fr_hr_check_ssnid from v10 to v14 Convert README to new sub-dir format --- l10n_fr_hr_check_ssnid/__init__.py | 2 -- l10n_fr_hr_check_ssnid/__manifest__.py | 8 ++++---- l10n_fr_hr_check_ssnid/models/__init__.py | 2 -- l10n_fr_hr_check_ssnid/models/hr_employee.py | 4 ++-- l10n_fr_hr_check_ssnid/readme/CONTRIBUTORS.rst | 1 + l10n_fr_hr_check_ssnid/readme/DESCRIPTION.rst | 1 + l10n_fr_hr_check_ssnid/readme/INSTALL.rst | 5 +++++ l10n_fr_hr_check_ssnid/readme/USAGE.rst | 1 + l10n_fr_hr_check_ssnid/tests/__init__.py | 2 -- l10n_fr_hr_check_ssnid/tests/test_ssnid.py | 4 ++-- l10n_fr_hr_check_ssnid/views/hr_employee.xml | 3 ++- 11 files changed, 18 insertions(+), 15 deletions(-) create mode 100644 l10n_fr_hr_check_ssnid/readme/CONTRIBUTORS.rst create mode 100644 l10n_fr_hr_check_ssnid/readme/DESCRIPTION.rst create mode 100644 l10n_fr_hr_check_ssnid/readme/INSTALL.rst create mode 100644 l10n_fr_hr_check_ssnid/readme/USAGE.rst diff --git a/l10n_fr_hr_check_ssnid/__init__.py b/l10n_fr_hr_check_ssnid/__init__.py index cde864bae..0650744f6 100644 --- a/l10n_fr_hr_check_ssnid/__init__.py +++ b/l10n_fr_hr_check_ssnid/__init__.py @@ -1,3 +1 @@ -# -*- coding: utf-8 -*- - from . import models diff --git a/l10n_fr_hr_check_ssnid/__manifest__.py b/l10n_fr_hr_check_ssnid/__manifest__.py index 5557cc24d..c7c52cdbe 100644 --- a/l10n_fr_hr_check_ssnid/__manifest__.py +++ b/l10n_fr_hr_check_ssnid/__manifest__.py @@ -1,15 +1,15 @@ -# -*- coding: utf-8 -*- -# Copyright 2018 Akretion (Alexis de Lattre ) +# Copyright 2018-2020 Akretion France (http://www.akretion.com/) +# @author: Alexis de Lattre # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { 'name': 'French Localization - Check Social Security Number', - 'version': '10.0.1.0.0', + 'version': '14.0.1.0.0', 'category': 'Human Resources', 'license': 'AGPL-3', 'summary': 'Check validity of Social Security Numbers in French companies', 'author': 'Akretion,Odoo Community Association (OCA)', - 'website': 'http://www.akretion.com', + 'website': 'https://github.com/OCA/l10n-france/', 'depends': ['hr'], 'external_dependencies': {'python': ['stdnum']}, 'data': ['views/hr_employee.xml'], diff --git a/l10n_fr_hr_check_ssnid/models/__init__.py b/l10n_fr_hr_check_ssnid/models/__init__.py index 58f27f478..e11a62f98 100644 --- a/l10n_fr_hr_check_ssnid/models/__init__.py +++ b/l10n_fr_hr_check_ssnid/models/__init__.py @@ -1,3 +1 @@ -# -*- coding: utf-8 -*- - from . import hr_employee diff --git a/l10n_fr_hr_check_ssnid/models/hr_employee.py b/l10n_fr_hr_check_ssnid/models/hr_employee.py index 6af65bc40..24ae6ec2e 100644 --- a/l10n_fr_hr_check_ssnid/models/hr_employee.py +++ b/l10n_fr_hr_check_ssnid/models/hr_employee.py @@ -1,5 +1,5 @@ -# -*- coding: utf-8 -*- -# Copyright 2018 Akretion (Alexis de Lattre ) +# Copyright 2018-2020 Akretion France (http://www.akretion.com/) +# @author: Alexis de Lattre # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from odoo import api, models, _ diff --git a/l10n_fr_hr_check_ssnid/readme/CONTRIBUTORS.rst b/l10n_fr_hr_check_ssnid/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..ff65d68ce --- /dev/null +++ b/l10n_fr_hr_check_ssnid/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* Alexis de Lattre diff --git a/l10n_fr_hr_check_ssnid/readme/DESCRIPTION.rst b/l10n_fr_hr_check_ssnid/readme/DESCRIPTION.rst new file mode 100644 index 000000000..341ea5f3e --- /dev/null +++ b/l10n_fr_hr_check_ssnid/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +With this module, the social security number of employees of French companies will be checked: if the length or checksum is wrong, an error message will be displayed. diff --git a/l10n_fr_hr_check_ssnid/readme/INSTALL.rst b/l10n_fr_hr_check_ssnid/readme/INSTALL.rst new file mode 100644 index 000000000..287dc0b0e --- /dev/null +++ b/l10n_fr_hr_check_ssnid/readme/INSTALL.rst @@ -0,0 +1,5 @@ +This module require the Python `stdnum `_ library. To install it, run: + +.. code:: + + pip3 install python-stdnum diff --git a/l10n_fr_hr_check_ssnid/readme/USAGE.rst b/l10n_fr_hr_check_ssnid/readme/USAGE.rst new file mode 100644 index 000000000..825e6abba --- /dev/null +++ b/l10n_fr_hr_check_ssnid/readme/USAGE.rst @@ -0,0 +1 @@ +Check that the country of the company is **France**. Go to the menu *Employees > Employees*, select an employee. In the tab *Private Information*, enter the French social security number in the field *SSN No*. diff --git a/l10n_fr_hr_check_ssnid/tests/__init__.py b/l10n_fr_hr_check_ssnid/tests/__init__.py index d95b06a92..53639e4cf 100644 --- a/l10n_fr_hr_check_ssnid/tests/__init__.py +++ b/l10n_fr_hr_check_ssnid/tests/__init__.py @@ -1,3 +1 @@ -# -*- coding: utf-8 -*- - from . import test_ssnid diff --git a/l10n_fr_hr_check_ssnid/tests/test_ssnid.py b/l10n_fr_hr_check_ssnid/tests/test_ssnid.py index 9a73f0a50..a9841d638 100644 --- a/l10n_fr_hr_check_ssnid/tests/test_ssnid.py +++ b/l10n_fr_hr_check_ssnid/tests/test_ssnid.py @@ -1,5 +1,5 @@ -# -*- coding: utf-8 -*- -# Copyright 2018 Akretion (Alexis de Lattre ) +# Copyright 2018-2020 Akretion France (http://www.akretion.com/) +# @author: Alexis de Lattre # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from odoo.tests.common import TransactionCase diff --git a/l10n_fr_hr_check_ssnid/views/hr_employee.xml b/l10n_fr_hr_check_ssnid/views/hr_employee.xml index 0c3bd5d03..0b48db1e2 100644 --- a/l10n_fr_hr_check_ssnid/views/hr_employee.xml +++ b/l10n_fr_hr_check_ssnid/views/hr_employee.xml @@ -1,6 +1,7 @@ From 6ee3f907f78f6c8347bc4632d851af98dc7aae19 Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Sat, 10 Oct 2020 00:17:35 +0200 Subject: [PATCH 10/34] l10n_fr_hr_check_ssnid: black, isort and all that stuff --- l10n_fr_hr_check_ssnid/__manifest__.py | 22 +++++++++--------- l10n_fr_hr_check_ssnid/models/hr_employee.py | 24 +++++++++++--------- l10n_fr_hr_check_ssnid/tests/test_ssnid.py | 15 ++++++------ l10n_fr_hr_check_ssnid/views/hr_employee.xml | 23 ++++++++----------- 4 files changed, 40 insertions(+), 44 deletions(-) diff --git a/l10n_fr_hr_check_ssnid/__manifest__.py b/l10n_fr_hr_check_ssnid/__manifest__.py index c7c52cdbe..03d976351 100644 --- a/l10n_fr_hr_check_ssnid/__manifest__.py +++ b/l10n_fr_hr_check_ssnid/__manifest__.py @@ -3,15 +3,15 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { - 'name': 'French Localization - Check Social Security Number', - 'version': '14.0.1.0.0', - 'category': 'Human Resources', - 'license': 'AGPL-3', - 'summary': 'Check validity of Social Security Numbers in French companies', - 'author': 'Akretion,Odoo Community Association (OCA)', - 'website': 'https://github.com/OCA/l10n-france/', - 'depends': ['hr'], - 'external_dependencies': {'python': ['stdnum']}, - 'data': ['views/hr_employee.xml'], - 'installable': True, + "name": "French Localization - Check Social Security Number", + "version": "14.0.1.0.0", + "category": "Human Resources", + "license": "AGPL-3", + "summary": "Check validity of Social Security Numbers in French companies", + "author": "Akretion,Odoo Community Association (OCA)", + "website": "https://github.com/OCA/l10n-france/", + "depends": ["hr"], + "external_dependencies": {"python": ["stdnum"]}, + "data": ["views/hr_employee.xml"], + "installable": True, } diff --git a/l10n_fr_hr_check_ssnid/models/hr_employee.py b/l10n_fr_hr_check_ssnid/models/hr_employee.py index 24ae6ec2e..3fec5c24d 100644 --- a/l10n_fr_hr_check_ssnid/models/hr_employee.py +++ b/l10n_fr_hr_check_ssnid/models/hr_employee.py @@ -2,28 +2,30 @@ # @author: Alexis de Lattre # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from odoo import api, models, _ -from odoo.exceptions import ValidationError import logging + +from odoo import _, api, models +from odoo.exceptions import ValidationError + logger = logging.getLogger(__name__) try: - from stdnum.fr.nir import validate, InvalidFormat,\ - InvalidLength, InvalidChecksum + from stdnum.fr.nir import InvalidChecksum, InvalidFormat, InvalidLength, validate except ImportError: - logger.debug('Cannot import stdnum') + logger.debug("Cannot import stdnum") class HrEmployee(models.Model): - _inherit = 'hr.employee' + _inherit = "hr.employee" - @api.constrains('ssnid') + @api.constrains("ssnid") def france_ssnid_constrain(self): for empl in self: - if empl.company_id.country_id.code == 'FR' and empl.ssnid: + if empl.company_id.country_id.code == "FR" and empl.ssnid: try: validate(empl.ssnid) except (InvalidFormat, InvalidLength, InvalidChecksum) as e: - raise ValidationError(_( - "The French Social Security Number '%s' is invalid. " - "(%s)") % (empl.ssnid, e)) + raise ValidationError( + _("The French Social Security Number '%s' is invalid. " "(%s)") + % (empl.ssnid, e) + ) diff --git a/l10n_fr_hr_check_ssnid/tests/test_ssnid.py b/l10n_fr_hr_check_ssnid/tests/test_ssnid.py index a9841d638..1a112200e 100644 --- a/l10n_fr_hr_check_ssnid/tests/test_ssnid.py +++ b/l10n_fr_hr_check_ssnid/tests/test_ssnid.py @@ -2,19 +2,18 @@ # @author: Alexis de Lattre # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from odoo.tests.common import TransactionCase from odoo.exceptions import ValidationError +from odoo.tests.common import TransactionCase class TestSsnidCheck(TransactionCase): - def test_validate_ssnid(self): - heo = self.env['hr.employee'] + heo = self.env["hr.employee"] # Set company to France - self.env.user.company_id.country_id = self.env.ref('base.fr').id + self.env.user.company_id.country_id = self.env.ref("base.fr").id with self.assertRaises(ValidationError): - heo.create({'name': 'AA', 'ssnid': '1 91 12'}) + heo.create({"name": "AA", "ssnid": "1 91 12"}) with self.assertRaises(ValidationError): - heo.create({'name': 'AB', 'ssnid': '1 91 02 99 412 042 19'}) - heo.create({'name': 'AC', 'ssnid': '1 91 02 99 412 042 42'}) - heo.create({'name': 'AD', 'ssnid': '1 55 01 2A 011 222 86'}) + heo.create({"name": "AB", "ssnid": "1 91 02 99 412 042 19"}) + heo.create({"name": "AC", "ssnid": "1 91 02 99 412 042 42"}) + heo.create({"name": "AD", "ssnid": "1 55 01 2A 011 222 86"}) diff --git a/l10n_fr_hr_check_ssnid/views/hr_employee.xml b/l10n_fr_hr_check_ssnid/views/hr_employee.xml index 0b48db1e2..078f59ec0 100644 --- a/l10n_fr_hr_check_ssnid/views/hr_employee.xml +++ b/l10n_fr_hr_check_ssnid/views/hr_employee.xml @@ -1,22 +1,17 @@ - + - - - - - hr.employee - - - - + + hr.employee + + + + + - - - - + From 14a343de3d3a9f8f88753a585d4a925ba99e3f4c Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Thu, 15 Oct 2020 07:39:04 +0000 Subject: [PATCH 11/34] [UPD] README.rst --- l10n_fr_hr_check_ssnid/README.rst | 69 ++- .../static/description/index.html | 432 ++++++++++++++++++ 2 files changed, 481 insertions(+), 20 deletions(-) create mode 100644 l10n_fr_hr_check_ssnid/static/description/index.html diff --git a/l10n_fr_hr_check_ssnid/README.rst b/l10n_fr_hr_check_ssnid/README.rst index b047e1f0d..994c200be 100644 --- a/l10n_fr_hr_check_ssnid/README.rst +++ b/l10n_fr_hr_check_ssnid/README.rst @@ -1,13 +1,37 @@ -.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg - :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html - :alt: License: AGPL-3 - ================================================== French Localization - Check Social Security Number ================================================== +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! 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%2Fl10n--france-lightgray.png?logo=github + :target: https://github.com/OCA/l10n-france/tree/14.0/l10n_fr_hr_check_ssnid + :alt: OCA/l10n-france +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/l10n-france-14-0/l10n-france-14-0-l10n_fr_hr_check_ssnid + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/121/14.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + With this module, the social security number of employees of French companies will be checked: if the length or checksum is wrong, an error message will be displayed. +**Table of contents** + +.. contents:: + :local: + Installation ============ @@ -15,44 +39,49 @@ This module require the Python `stdnum .. code:: - pip install python-stdnum + pip3 install python-stdnum Usage ===== -Check that the country of the company is France. Go to the menu *Employees > Employees*, select an employee. In the tab *Personal Information*, enter the French social security number in the field *SSN No*. - -.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas - :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/121/10.0 +Check that the country of the company is **France**. Go to the menu *Employees > Employees*, select an employee. In the tab *Private Information*, enter the French social security number in the field *SSN No*. 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. +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 +~~~~~~~ + +* Akretion + Contributors ------------- +~~~~~~~~~~~~ * Alexis de Lattre -Maintainer ----------- +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. .. image:: https://odoo-community.org/logo.png :alt: Odoo Community Association :target: https://odoo-community.org -This module is maintained by the OCA. - 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. -To contribute to this module, please visit https://odoo-community.org. +This module is part of the `OCA/l10n-france `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/l10n_fr_hr_check_ssnid/static/description/index.html b/l10n_fr_hr_check_ssnid/static/description/index.html new file mode 100644 index 000000000..a63309f9d --- /dev/null +++ b/l10n_fr_hr_check_ssnid/static/description/index.html @@ -0,0 +1,432 @@ + + + + + + +French Localization - Check Social Security Number + + + +
+

French Localization - Check Social Security Number

+ + +

Beta License: AGPL-3 OCA/l10n-france Translate me on Weblate Try me on Runbot

+

With this module, the social security number of employees of French companies will be checked: if the length or checksum is wrong, an error message will be displayed.

+

Table of contents

+ +
+

Installation

+

This module require the Python stdnum library. To install it, run:

+
+pip3 install python-stdnum
+
+
+
+

Usage

+

Check that the country of the company is France. Go to the menu Employees > Employees, select an employee. In the tab Private Information, enter the French social security number in the field SSN No.

+
+
+

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

+
    +
  • Akretion
  • +
+
+
+

Contributors

+ +
+
+

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.

+

This module is part of the OCA/l10n-france project on GitHub.

+

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

+
+
+
+ + From fbe056980fc117c76b50405b2cc012d1afac151b Mon Sep 17 00:00:00 2001 From: oca-git-bot Date: Sun, 1 Nov 2020 15:58:10 +0100 Subject: [PATCH 12/34] [IMP] update dotfiles [ci skip] --- l10n_fr_hr_check_ssnid/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/l10n_fr_hr_check_ssnid/__manifest__.py b/l10n_fr_hr_check_ssnid/__manifest__.py index 03d976351..d406a1e7e 100644 --- a/l10n_fr_hr_check_ssnid/__manifest__.py +++ b/l10n_fr_hr_check_ssnid/__manifest__.py @@ -9,7 +9,7 @@ "license": "AGPL-3", "summary": "Check validity of Social Security Numbers in French companies", "author": "Akretion,Odoo Community Association (OCA)", - "website": "https://github.com/OCA/l10n-france/", + "website": "https://github.com/OCA/l10n-france", "depends": ["hr"], "external_dependencies": {"python": ["stdnum"]}, "data": ["views/hr_employee.xml"], From 07b5f0c5bf78f81c7469c3ed9e3c710f6ec6e09b Mon Sep 17 00:00:00 2001 From: oca-travis Date: Tue, 10 Aug 2021 22:13:04 +0000 Subject: [PATCH 13/34] [UPD] Update l10n_fr_hr_check_ssnid.pot --- .../i18n/l10n_fr_hr_check_ssnid.pot | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/l10n_fr_hr_check_ssnid/i18n/l10n_fr_hr_check_ssnid.pot b/l10n_fr_hr_check_ssnid/i18n/l10n_fr_hr_check_ssnid.pot index 66ca31219..78993e3f3 100644 --- a/l10n_fr_hr_check_ssnid/i18n/l10n_fr_hr_check_ssnid.pot +++ b/l10n_fr_hr_check_ssnid/i18n/l10n_fr_hr_check_ssnid.pot @@ -1,26 +1,40 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * l10n_fr_hr_check_ssnid +# * l10n_fr_hr_check_ssnid # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 10.0\n" +"Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: <>\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: l10n_fr_hr_check_ssnid +#: model:ir.model.fields,field_description:l10n_fr_hr_check_ssnid.field_hr_employee__display_name +msgid "Display Name" +msgstr "" + #. module: l10n_fr_hr_check_ssnid #: model:ir.model,name:l10n_fr_hr_check_ssnid.model_hr_employee msgid "Employee" msgstr "" #. module: l10n_fr_hr_check_ssnid -#: code:addons/l10n_fr_hr_check_ssnid/models/hr_employee.py:27 +#: model:ir.model.fields,field_description:l10n_fr_hr_check_ssnid.field_hr_employee__id +msgid "ID" +msgstr "" + +#. module: l10n_fr_hr_check_ssnid +#: model:ir.model.fields,field_description:l10n_fr_hr_check_ssnid.field_hr_employee____last_update +msgid "Last Modified on" +msgstr "" + +#. module: l10n_fr_hr_check_ssnid +#: code:addons/l10n_fr_hr_check_ssnid/models/hr_employee.py:0 #, python-format msgid "The French Social Security Number '%s' is invalid. (%s)" msgstr "" - From 0b122f4bb043052c10ce123ae7bffce5b928919a Mon Sep 17 00:00:00 2001 From: OCA Transbot Date: Tue, 10 Aug 2021 22:17:19 +0000 Subject: [PATCH 14/34] Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: l10n-france-14.0/l10n-france-14.0-l10n_fr_hr_check_ssnid Translate-URL: https://translation.odoo-community.org/projects/l10n-france-14-0/l10n-france-14-0-l10n_fr_hr_check_ssnid/ --- l10n_fr_hr_check_ssnid/i18n/fr.po | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/l10n_fr_hr_check_ssnid/i18n/fr.po b/l10n_fr_hr_check_ssnid/i18n/fr.po index ca60576ee..ed05e34c1 100644 --- a/l10n_fr_hr_check_ssnid/i18n/fr.po +++ b/l10n_fr_hr_check_ssnid/i18n/fr.po @@ -18,13 +18,28 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +#. module: l10n_fr_hr_check_ssnid +#: model:ir.model.fields,field_description:l10n_fr_hr_check_ssnid.field_hr_employee__display_name +msgid "Display Name" +msgstr "" + #. module: l10n_fr_hr_check_ssnid #: model:ir.model,name:l10n_fr_hr_check_ssnid.model_hr_employee msgid "Employee" msgstr "Employé" #. module: l10n_fr_hr_check_ssnid -#: code:addons/l10n_fr_hr_check_ssnid/models/hr_employee.py:27 +#: model:ir.model.fields,field_description:l10n_fr_hr_check_ssnid.field_hr_employee__id +msgid "ID" +msgstr "" + +#. module: l10n_fr_hr_check_ssnid +#: model:ir.model.fields,field_description:l10n_fr_hr_check_ssnid.field_hr_employee____last_update +msgid "Last Modified on" +msgstr "" + +#. module: l10n_fr_hr_check_ssnid +#: code:addons/l10n_fr_hr_check_ssnid/models/hr_employee.py:0 #, python-format msgid "The French Social Security Number '%s' is invalid. (%s)" msgstr "Le numéro de sécurité sociale '%s' est invalide. (%s)" From 71263971d81597a43a6b72a8fec710deff5faced Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Wed, 1 Sep 2021 22:51:51 +0200 Subject: [PATCH 15/34] Restore tests and remove Alpha status Unfuck the "Donald Trump" pull request: this is the real/serious work made by the anti-Donald Trump squad. --- l10n_fr_hr_check_ssnid/__manifest__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/l10n_fr_hr_check_ssnid/__manifest__.py b/l10n_fr_hr_check_ssnid/__manifest__.py index d406a1e7e..9912449e0 100644 --- a/l10n_fr_hr_check_ssnid/__manifest__.py +++ b/l10n_fr_hr_check_ssnid/__manifest__.py @@ -9,6 +9,7 @@ "license": "AGPL-3", "summary": "Check validity of Social Security Numbers in French companies", "author": "Akretion,Odoo Community Association (OCA)", + "maintainers": ["alexis-via"], "website": "https://github.com/OCA/l10n-france", "depends": ["hr"], "external_dependencies": {"python": ["stdnum"]}, From 73311239c381fbf4a26bd9cd1c999aca3c85be97 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Thu, 2 Sep 2021 12:13:44 +0000 Subject: [PATCH 16/34] [UPD] README.rst --- l10n_fr_hr_check_ssnid/README.rst | 8 ++++++++ l10n_fr_hr_check_ssnid/static/description/index.html | 2 ++ 2 files changed, 10 insertions(+) diff --git a/l10n_fr_hr_check_ssnid/README.rst b/l10n_fr_hr_check_ssnid/README.rst index 994c200be..629431c64 100644 --- a/l10n_fr_hr_check_ssnid/README.rst +++ b/l10n_fr_hr_check_ssnid/README.rst @@ -82,6 +82,14 @@ 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-alexis-via| image:: https://github.com/alexis-via.png?size=40px + :target: https://github.com/alexis-via + :alt: alexis-via + +Current `maintainer `__: + +|maintainer-alexis-via| + This module is part of the `OCA/l10n-france `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/l10n_fr_hr_check_ssnid/static/description/index.html b/l10n_fr_hr_check_ssnid/static/description/index.html index a63309f9d..cdbe6c07b 100644 --- a/l10n_fr_hr_check_ssnid/static/description/index.html +++ b/l10n_fr_hr_check_ssnid/static/description/index.html @@ -423,6 +423,8 @@

Maintainers

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:

+

alexis-via

This module is part of the OCA/l10n-france project on GitHub.

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

From 3d54c90441b4a42303ad9d20f7ec14be9e364abc Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Thu, 2 Sep 2021 12:13:56 +0000 Subject: [PATCH 17/34] l10n_fr_hr_check_ssnid 14.0.1.0.1 --- l10n_fr_hr_check_ssnid/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/l10n_fr_hr_check_ssnid/__manifest__.py b/l10n_fr_hr_check_ssnid/__manifest__.py index 9912449e0..65b43f2f8 100644 --- a/l10n_fr_hr_check_ssnid/__manifest__.py +++ b/l10n_fr_hr_check_ssnid/__manifest__.py @@ -4,7 +4,7 @@ { "name": "French Localization - Check Social Security Number", - "version": "14.0.1.0.0", + "version": "14.0.1.0.1", "category": "Human Resources", "license": "AGPL-3", "summary": "Check validity of Social Security Numbers in French companies", From 8efc93b9c40f13dd9bf5f0b2b8e413d581113028 Mon Sep 17 00:00:00 2001 From: syera bonneaux Date: Fri, 21 Oct 2022 10:55:16 +0200 Subject: [PATCH 18/34] [MIG] l10n_fr_hr_check_ssnid: Migration to 16.0 --- l10n_fr_hr_check_ssnid/__manifest__.py | 3 ++- .../i18n/l10n_fr_hr_check_ssnid.pot | 21 ++++--------------- l10n_fr_hr_check_ssnid/models/hr_employee.py | 9 +++++--- 3 files changed, 12 insertions(+), 21 deletions(-) diff --git a/l10n_fr_hr_check_ssnid/__manifest__.py b/l10n_fr_hr_check_ssnid/__manifest__.py index 65b43f2f8..df3c21cbe 100644 --- a/l10n_fr_hr_check_ssnid/__manifest__.py +++ b/l10n_fr_hr_check_ssnid/__manifest__.py @@ -4,8 +4,9 @@ { "name": "French Localization - Check Social Security Number", - "version": "14.0.1.0.1", + "version": "16.0.1.0.0", "category": "Human Resources", + "development_status": "Mature", "license": "AGPL-3", "summary": "Check validity of Social Security Numbers in French companies", "author": "Akretion,Odoo Community Association (OCA)", diff --git a/l10n_fr_hr_check_ssnid/i18n/l10n_fr_hr_check_ssnid.pot b/l10n_fr_hr_check_ssnid/i18n/l10n_fr_hr_check_ssnid.pot index 78993e3f3..ae1d9f4c4 100644 --- a/l10n_fr_hr_check_ssnid/i18n/l10n_fr_hr_check_ssnid.pot +++ b/l10n_fr_hr_check_ssnid/i18n/l10n_fr_hr_check_ssnid.pot @@ -4,8 +4,10 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" +"Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-10-21 08:47+0000\n" +"PO-Revision-Date: 2022-10-21 08:47+0000\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -13,28 +15,13 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" -#. module: l10n_fr_hr_check_ssnid -#: model:ir.model.fields,field_description:l10n_fr_hr_check_ssnid.field_hr_employee__display_name -msgid "Display Name" -msgstr "" - #. module: l10n_fr_hr_check_ssnid #: model:ir.model,name:l10n_fr_hr_check_ssnid.model_hr_employee msgid "Employee" msgstr "" -#. module: l10n_fr_hr_check_ssnid -#: model:ir.model.fields,field_description:l10n_fr_hr_check_ssnid.field_hr_employee__id -msgid "ID" -msgstr "" - -#. module: l10n_fr_hr_check_ssnid -#: model:ir.model.fields,field_description:l10n_fr_hr_check_ssnid.field_hr_employee____last_update -msgid "Last Modified on" -msgstr "" - #. module: l10n_fr_hr_check_ssnid #: code:addons/l10n_fr_hr_check_ssnid/models/hr_employee.py:0 #, python-format -msgid "The French Social Security Number '%s' is invalid. (%s)" +msgid "The French Social Security Number '%(ssnid)s' is invalid. (%(e)s)" msgstr "" diff --git a/l10n_fr_hr_check_ssnid/models/hr_employee.py b/l10n_fr_hr_check_ssnid/models/hr_employee.py index 3fec5c24d..ece6728bd 100644 --- a/l10n_fr_hr_check_ssnid/models/hr_employee.py +++ b/l10n_fr_hr_check_ssnid/models/hr_employee.py @@ -26,6 +26,9 @@ def france_ssnid_constrain(self): validate(empl.ssnid) except (InvalidFormat, InvalidLength, InvalidChecksum) as e: raise ValidationError( - _("The French Social Security Number '%s' is invalid. " "(%s)") - % (empl.ssnid, e) - ) + _( + "The French Social Security Number '%(ssnid)s' " + "is invalid. (%(e)s)" + ) + % {"ssnid": empl.ssnid, "e": e} + ) from e From 6a46ad573e1ecc1609dda38a726a5080cea0e25e Mon Sep 17 00:00:00 2001 From: syera bonneaux Date: Fri, 21 Oct 2022 11:43:15 +0200 Subject: [PATCH 19/34] [TRANS] l10n_fr_hr_check_ssnid: fr --- l10n_fr_hr_check_ssnid/i18n/fr.po | 29 ++++++++--------------------- 1 file changed, 8 insertions(+), 21 deletions(-) diff --git a/l10n_fr_hr_check_ssnid/i18n/fr.po b/l10n_fr_hr_check_ssnid/i18n/fr.po index ed05e34c1..c8c60f2f8 100644 --- a/l10n_fr_hr_check_ssnid/i18n/fr.po +++ b/l10n_fr_hr_check_ssnid/i18n/fr.po @@ -8,38 +8,25 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 10.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-03-24 05:38+0000\n" -"PO-Revision-Date: 2018-03-24 05:38+0000\n" +"POT-Creation-Date: 2022-10-21 08:47+0000\n" +"PO-Revision-Date: 2022-10-21 11:38+0200\n" "Last-Translator: Quentin THEURET , 2018\n" "Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" - -#. module: l10n_fr_hr_check_ssnid -#: model:ir.model.fields,field_description:l10n_fr_hr_check_ssnid.field_hr_employee__display_name -msgid "Display Name" -msgstr "" +"X-Generator: Poedit 3.0.1\n" #. module: l10n_fr_hr_check_ssnid #: model:ir.model,name:l10n_fr_hr_check_ssnid.model_hr_employee msgid "Employee" msgstr "Employé" -#. module: l10n_fr_hr_check_ssnid -#: model:ir.model.fields,field_description:l10n_fr_hr_check_ssnid.field_hr_employee__id -msgid "ID" -msgstr "" - -#. module: l10n_fr_hr_check_ssnid -#: model:ir.model.fields,field_description:l10n_fr_hr_check_ssnid.field_hr_employee____last_update -msgid "Last Modified on" -msgstr "" - #. module: l10n_fr_hr_check_ssnid #: code:addons/l10n_fr_hr_check_ssnid/models/hr_employee.py:0 -#, python-format -msgid "The French Social Security Number '%s' is invalid. (%s)" -msgstr "Le numéro de sécurité sociale '%s' est invalide. (%s)" +#, fuzzy, python-format +#| msgid "The French Social Security Number '%s' is invalid. (%s)" +msgid "The French Social Security Number '%(ssnid)s' is invalid. (%(e)s)" +msgstr "Le numéro de sécurité sociale '%(ssnid)s' est invalide. (%(e)s)" From 246f789ac1494e3c442a2e2313ef53c7659256ce Mon Sep 17 00:00:00 2001 From: oca-ci Date: Thu, 3 Nov 2022 15:36:42 +0000 Subject: [PATCH 20/34] [UPD] Update l10n_fr_hr_check_ssnid.pot --- l10n_fr_hr_check_ssnid/i18n/l10n_fr_hr_check_ssnid.pot | 2 -- 1 file changed, 2 deletions(-) diff --git a/l10n_fr_hr_check_ssnid/i18n/l10n_fr_hr_check_ssnid.pot b/l10n_fr_hr_check_ssnid/i18n/l10n_fr_hr_check_ssnid.pot index ae1d9f4c4..0b7161aca 100644 --- a/l10n_fr_hr_check_ssnid/i18n/l10n_fr_hr_check_ssnid.pot +++ b/l10n_fr_hr_check_ssnid/i18n/l10n_fr_hr_check_ssnid.pot @@ -6,8 +6,6 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-21 08:47+0000\n" -"PO-Revision-Date: 2022-10-21 08:47+0000\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" From a20a85d2299d100303ee62d6348c2cab83579d39 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Thu, 3 Nov 2022 15:39:16 +0000 Subject: [PATCH 21/34] [UPD] README.rst --- l10n_fr_hr_check_ssnid/README.rst | 14 +++++++------- .../static/description/index.html | 6 +++--- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/l10n_fr_hr_check_ssnid/README.rst b/l10n_fr_hr_check_ssnid/README.rst index 629431c64..04bbe31e4 100644 --- a/l10n_fr_hr_check_ssnid/README.rst +++ b/l10n_fr_hr_check_ssnid/README.rst @@ -7,20 +7,20 @@ French Localization - Check Social Security Number !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png +.. |badge1| image:: https://img.shields.io/badge/maturity-Mature-brightgreen.png :target: https://odoo-community.org/page/development-status - :alt: Beta + :alt: Mature .. |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%2Fl10n--france-lightgray.png?logo=github - :target: https://github.com/OCA/l10n-france/tree/14.0/l10n_fr_hr_check_ssnid + :target: https://github.com/OCA/l10n-france/tree/16.0/l10n_fr_hr_check_ssnid :alt: OCA/l10n-france .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/l10n-france-14-0/l10n-france-14-0-l10n_fr_hr_check_ssnid + :target: https://translation.odoo-community.org/projects/l10n-france-16-0/l10n-france-16-0-l10n_fr_hr_check_ssnid :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/121/14.0 + :target: https://runbot.odoo-community.org/runbot/121/16.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -52,7 +52,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 smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -90,6 +90,6 @@ Current `maintainer `__: |maintainer-alexis-via| -This module is part of the `OCA/l10n-france `_ project on GitHub. +This module is part of the `OCA/l10n-france `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/l10n_fr_hr_check_ssnid/static/description/index.html b/l10n_fr_hr_check_ssnid/static/description/index.html index cdbe6c07b..23ba76b89 100644 --- a/l10n_fr_hr_check_ssnid/static/description/index.html +++ b/l10n_fr_hr_check_ssnid/static/description/index.html @@ -367,7 +367,7 @@

French Localization - Check Social Security Number

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/l10n-france Translate me on Weblate Try me on Runbot

+

Mature License: AGPL-3 OCA/l10n-france Translate me on Weblate Try me on Runbot

With this module, the social security number of employees of French companies will be checked: if the length or checksum is wrong, an error message will be displayed.

Table of contents

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

+feedback.

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

@@ -425,7 +425,7 @@

Maintainers

promote its widespread use.

Current maintainer:

alexis-via

-

This module is part of the OCA/l10n-france project on GitHub.

+

This module is part of the OCA/l10n-france project on GitHub.

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

From 31f2e96f7487a65870fbecdb674850c877741263 Mon Sep 17 00:00:00 2001 From: Weblate Date: Thu, 3 Nov 2022 19:29:52 +0000 Subject: [PATCH 22/34] Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: l10n-france-16.0/l10n-france-16.0-l10n_fr_hr_check_ssnid Translate-URL: https://translation.odoo-community.org/projects/l10n-france-16-0/l10n-france-16-0-l10n_fr_hr_check_ssnid/ --- l10n_fr_hr_check_ssnid/i18n/fr.po | 1 - 1 file changed, 1 deletion(-) diff --git a/l10n_fr_hr_check_ssnid/i18n/fr.po b/l10n_fr_hr_check_ssnid/i18n/fr.po index c8c60f2f8..b50d331a9 100644 --- a/l10n_fr_hr_check_ssnid/i18n/fr.po +++ b/l10n_fr_hr_check_ssnid/i18n/fr.po @@ -27,6 +27,5 @@ msgstr "Employé" #. module: l10n_fr_hr_check_ssnid #: code:addons/l10n_fr_hr_check_ssnid/models/hr_employee.py:0 #, fuzzy, python-format -#| msgid "The French Social Security Number '%s' is invalid. (%s)" msgid "The French Social Security Number '%(ssnid)s' is invalid. (%(e)s)" msgstr "Le numéro de sécurité sociale '%(ssnid)s' est invalide. (%(e)s)" From f17a18b545f84b809ff7efbbf4b859a9e1ce0878 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Thu, 24 Nov 2022 09:01:32 +0000 Subject: [PATCH 23/34] [UPD] Update l10n_fr_hr_check_ssnid.pot --- l10n_fr_hr_check_ssnid/i18n/l10n_fr_hr_check_ssnid.pot | 1 + 1 file changed, 1 insertion(+) diff --git a/l10n_fr_hr_check_ssnid/i18n/l10n_fr_hr_check_ssnid.pot b/l10n_fr_hr_check_ssnid/i18n/l10n_fr_hr_check_ssnid.pot index 0b7161aca..6dab02527 100644 --- a/l10n_fr_hr_check_ssnid/i18n/l10n_fr_hr_check_ssnid.pot +++ b/l10n_fr_hr_check_ssnid/i18n/l10n_fr_hr_check_ssnid.pot @@ -19,6 +19,7 @@ msgid "Employee" msgstr "" #. module: l10n_fr_hr_check_ssnid +#. odoo-python #: code:addons/l10n_fr_hr_check_ssnid/models/hr_employee.py:0 #, python-format msgid "The French Social Security Number '%(ssnid)s' is invalid. (%(e)s)" From 46a25a73ef34fbc61a3f47fc5e8443104b4e6de2 Mon Sep 17 00:00:00 2001 From: Weblate Date: Thu, 24 Nov 2022 09:04:07 +0000 Subject: [PATCH 24/34] Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: l10n-france-16.0/l10n-france-16.0-l10n_fr_hr_check_ssnid Translate-URL: https://translation.odoo-community.org/projects/l10n-france-16-0/l10n-france-16-0-l10n_fr_hr_check_ssnid/ --- l10n_fr_hr_check_ssnid/i18n/fr.po | 1 + 1 file changed, 1 insertion(+) diff --git a/l10n_fr_hr_check_ssnid/i18n/fr.po b/l10n_fr_hr_check_ssnid/i18n/fr.po index b50d331a9..7933210eb 100644 --- a/l10n_fr_hr_check_ssnid/i18n/fr.po +++ b/l10n_fr_hr_check_ssnid/i18n/fr.po @@ -25,6 +25,7 @@ msgid "Employee" msgstr "Employé" #. module: l10n_fr_hr_check_ssnid +#. odoo-python #: code:addons/l10n_fr_hr_check_ssnid/models/hr_employee.py:0 #, fuzzy, python-format msgid "The French Social Security Number '%(ssnid)s' is invalid. (%(e)s)" From 2ab25b26c2f12ffa4f064ff48c603da3c12dff91 Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Tue, 20 Jun 2023 13:59:53 +0000 Subject: [PATCH 25/34] Translated using Weblate (French) Currently translated at 100.0% (2 of 2 strings) Translation: l10n-france-16.0/l10n-france-16.0-l10n_fr_hr_check_ssnid Translate-URL: https://translation.odoo-community.org/projects/l10n-france-16-0/l10n-france-16-0-l10n_fr_hr_check_ssnid/fr/ --- l10n_fr_hr_check_ssnid/i18n/fr.po | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/l10n_fr_hr_check_ssnid/i18n/fr.po b/l10n_fr_hr_check_ssnid/i18n/fr.po index 7933210eb..4de051d20 100644 --- a/l10n_fr_hr_check_ssnid/i18n/fr.po +++ b/l10n_fr_hr_check_ssnid/i18n/fr.po @@ -9,15 +9,15 @@ msgstr "" "Project-Id-Version: Odoo Server 10.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-21 08:47+0000\n" -"PO-Revision-Date: 2022-10-21 11:38+0200\n" -"Last-Translator: Quentin THEURET , 2018\n" +"PO-Revision-Date: 2023-06-20 16:08+0000\n" +"Last-Translator: Alexis de Lattre \n" "Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Poedit 3.0.1\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.17\n" #. module: l10n_fr_hr_check_ssnid #: model:ir.model,name:l10n_fr_hr_check_ssnid.model_hr_employee @@ -27,6 +27,7 @@ msgstr "Employé" #. module: l10n_fr_hr_check_ssnid #. odoo-python #: code:addons/l10n_fr_hr_check_ssnid/models/hr_employee.py:0 -#, fuzzy, python-format +#, python-format msgid "The French Social Security Number '%(ssnid)s' is invalid. (%(e)s)" -msgstr "Le numéro de sécurité sociale '%(ssnid)s' est invalide. (%(e)s)" +msgstr "" +"Le numéro de sécurité sociale français '%(ssnid)s' est invalide. (%(e)s)" From 5245a3f50157ffec409e1c6ab73f613fe85f5ec5 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Sun, 3 Sep 2023 13:34:52 +0000 Subject: [PATCH 26/34] [UPD] README.rst --- l10n_fr_hr_check_ssnid/README.rst | 15 ++++--- .../static/description/index.html | 44 ++++++++++--------- 2 files changed, 32 insertions(+), 27 deletions(-) diff --git a/l10n_fr_hr_check_ssnid/README.rst b/l10n_fr_hr_check_ssnid/README.rst index 04bbe31e4..4ea45b9b9 100644 --- a/l10n_fr_hr_check_ssnid/README.rst +++ b/l10n_fr_hr_check_ssnid/README.rst @@ -2,10 +2,13 @@ French Localization - Check Social Security Number ================================================== -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:1fb9caeba4bb9a98002935ff1da28a061578a28a5a09c910a190e89f53a30922 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Mature-brightgreen.png :target: https://odoo-community.org/page/development-status @@ -19,11 +22,11 @@ French Localization - Check Social Security Number .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png :target: https://translation.odoo-community.org/projects/l10n-france-16-0/l10n-france-16-0-l10n_fr_hr_check_ssnid :alt: Translate me on Weblate -.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/121/16.0 - :alt: Try me on Runbot +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/l10n-france&target_branch=16.0 + :alt: Try me on Runboat -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| With this module, the social security number of employees of French companies will be checked: if the length or checksum is wrong, an error message will be displayed. @@ -51,7 +54,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 smashing it by providing a detailed and welcomed +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. diff --git a/l10n_fr_hr_check_ssnid/static/description/index.html b/l10n_fr_hr_check_ssnid/static/description/index.html index 23ba76b89..b16d15a85 100644 --- a/l10n_fr_hr_check_ssnid/static/description/index.html +++ b/l10n_fr_hr_check_ssnid/static/description/index.html @@ -1,20 +1,20 @@ - + - + French Localization - Check Social Security Number