diff --git a/__manifest__.py b/__manifest__.py
index d11394f..5fb2936 100644
--- a/__manifest__.py
+++ b/__manifest__.py
@@ -45,7 +45,8 @@
'wizard/operation_duplicate_wizard.xml',
'report/report_donationtax.xml',
'report/report.xml',
- 'views/donation_tax_receipt.xml'
+ 'views/donation_tax_receipt.xml',
+ 'views/laposte_ref.xml'
#'views/website_donation.xml'
diff --git a/i18n/fr.po b/i18n/fr.po
index dfd7dc9..b02de9d 100644
--- a/i18n/fr.po
+++ b/i18n/fr.po
@@ -15,6 +15,47 @@ msgstr ""
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
+#. module: base
+#: model_terms:ir.ui.view,arch_db:base.view_partner_form
+msgid ""
+"\n"
+" Company Address\n"
+" Invoice Address\n"
+" Delivery Address\n"
+" Other Address\n"
+" Private Address\n"
+" Address\n"
+" "
+msgstr ""
+"\n"
+" Adresse de la société\n"
+" Adresse de facturation\n"
+" Adresse de livraison\n"
+" Autre Adresse\n"
+" Adresse\n"
+" Adresse\n"
+" "
+
+
+#. module: base
+#: model:ir.model.fields,field_description:base.field_res_partner__title
+#: model:ir.model.fields,field_description:base.field_res_partner_title__name
+#: model:ir.model.fields,field_description:base.field_res_users__title
+#: model_terms:ir.ui.view,arch_db:opendons.view_partner_tree
+msgid "Title"
+msgstr "Civilité"
+
+#. module: account
+#: model_terms:ir.ui.view,arch_db:account.view_partner_property_form
+msgid "Invoicing"
+msgstr "Infos bancaires"
+
+#. module: opendons
+#: model:ir.model.fields,field_description:opendons.field_res_partner__locality
+#: model_terms:ir.ui.view,arch_db:opendons.view_partner_form
+msgid "Locality"
+msgstr "Lieu dit"
+
#. module: opendons
#: model:ir.model.fields,field_description:opendons.field_res_partner__address_count
#: model:ir.model.fields,field_description:opendons.field_res_users__address_count
@@ -641,8 +682,9 @@ msgstr ""
#. module: opendons
#: model:ir.model.fields,field_description:opendons.field_res_partner__key
#: model:ir.model.fields,field_description:opendons.field_res_users__key
+#: model_terms:ir.ui.view,arch_db:opendons.view_partner_tree
msgid "Key"
-msgstr ""
+msgstr "Clé"
#. module: opendons
#: model:ir.model.fields,field_description:opendons.field_donation_donation____last_update
@@ -976,19 +1018,19 @@ msgstr "Trimestriel"
#: model:ir.actions.act_window,name:opendons.donation_recurring_action
#: model:ir.ui.menu,name:opendons.recurring_donation_menu
msgid "Recurring Donations"
-msgstr "Dons récurrents"
+msgstr "Prélèvements automatiques"
#. module: opendons
#: model:ir.ui.menu,name:opendons.recurring_donation_title_menu
#: model:ir.ui.menu,name:opendons.recurring_donation_top_menu
msgid "Recurring donations"
-msgstr "Dons récurrents"
+msgstr "Prélèvements automatiques"
#. module: opendons
#: model:ir.actions.act_window,name:opendons.act_partner_recurring_donation
#: model_terms:ir.ui.view,arch_db:opendons.view_partner_form
msgid "Recurring_donation"
-msgstr ""
+msgstr "Prélèvements automatiques"
#. module: opendons
#: model:ir.model.fields.selection,name:opendons.selection__opendons_returnmail__return_type__refusee
diff --git a/models/__init__.py b/models/__init__.py
index baaf148..bd27d8b 100644
--- a/models/__init__.py
+++ b/models/__init__.py
@@ -16,3 +16,4 @@ from . import aggregate
from . import duplicate
from . import template_rf
from . import donation_tax_receipt
+from . import laposte_ref
\ No newline at end of file
diff --git a/models/laposte_ref.py b/models/laposte_ref.py
new file mode 100644
index 0000000..a536601
--- /dev/null
+++ b/models/laposte_ref.py
@@ -0,0 +1,21 @@
+from odoo import models, fields, api
+from odoo.exceptions import UserError, ValidationError
+from psycopg2 import sql, DatabaseError
+from odoo.tools.safe_eval import safe_eval, datetime
+
+from werkzeug import utils
+
+
+
+class opendons_laposte_ref(models.Model):
+ _name = 'opendons.laposte_ref'
+ _description = 'La Poste referential'
+
+ #https://www.data.gouv.fr/fr/datasets/r/554590ab-ae62-40ac-8353-ee75162c05ee
+
+ code_commune_insee=fields.Char('Code_commune_insee')
+ nom_commune=fields.Char('Nom_commune')
+ code_postal=fields.Integer('Code postal')
+ ligne_5=fields.Char('Ligne 5')
+ libelle_acheminement=fields.Char('Libelle acheminement')
+ coordonnees_gps=fields.Char('coordonnees_gps')
\ No newline at end of file
diff --git a/models/partner.py b/models/partner.py
index 6a8d014..9fee0dc 100644
--- a/models/partner.py
+++ b/models/partner.py
@@ -143,7 +143,16 @@ class partner(models.Model):
firstname=fields.Char(string="First name")
npai_count=fields.Integer(String="NPAI count", readonly=True)
source=fields.Char(String="source")
+
+ donor_id=fields.Char('Donor id',compute="_compute_donor_id")
+
+ def _compute_donor_id(self):
+ for rec in self:
+ rec.donor_id=str(rec.id)+rec.key
+
+
+
def _alpha(self,id):
alpha={}
alpha[0]='A'
@@ -160,19 +169,18 @@ class partner(models.Model):
alpha[11]='L'
alpha[12]='M'
alpha[13]='N'
- alpha[14]='O'
- alpha[15]='P'
- alpha[16]='Q'
- alpha[17]='R'
- alpha[18]='S'
- alpha[19]='T'
- alpha[20]='U'
- alpha[21]='V'
- alpha[22]='W'
- alpha[23]='X'
- alpha[24]='Y'
- alpha[25]='Z'
- return (alpha[id%26])
+ alpha[14]='P'
+ alpha[15]='Q'
+ alpha[16]='R'
+ alpha[17]='S'
+ alpha[18]='T'
+ alpha[19]='U'
+ alpha[20]='V'
+ alpha[21]='W'
+ alpha[22]='X'
+ alpha[23]='Y'
+ alpha[24]='Z'
+ return (alpha[id%25])
def _compute_key(self):
@@ -282,9 +290,9 @@ class partner(models.Model):
regex = re.compile(r'(^(?:(?:IT|SM)\d{2}[A-Z]\d{22}|CY\d{2}[A-Z]\d{23}|NL\d{2}[A-Z]{4}\d{10}|LV\d{2}[A-Z]{4}\d{13}|(?:BG|BH|GB|IE)\d{2}[A-Z]{4}\d{14}|GI\d{2}[A-Z]{4}\d{15}|RO\d{2}[A-Z]{4}\d{16}|KW\d{2}[A-Z]{4}\d{22}|MT\d{2}[A-Z]{4}\d{23}|NO\d{13}|(?:DK|FI|GL|FO)\d{16}|MK\d{17}|(?:AT|EE|KZ|LU|XK)\d{18}|(?:BA|HR|LI|CH|CR)\d{19}|(?:GE|DE|LT|ME|RS)\d{20}|IL\d{21}|(?:AD|CZ|ES|MD|SA)\d{22}|PT\d{23}|(?:BE|IS)\d{24}|(?:FR|MR|MC)\d{25}|(?:AL|DO|LB|PL)\d{26}|(?:AZ|HU)\d{27}|(?:GR|MU)\d{28})$)+')
- if not re.fullmatch(regex, self.acc_number):
+ #if not re.fullmatch(regex, self.acc_number):
- raise Warning('Invalid IBAN')
+ # raise Warning('Invalid IBAN')
@api.constrains('acc_number')
def _onchange_acc_number(self):
@@ -294,6 +302,6 @@ class partner(models.Model):
regex = re.compile(r'(/^(?:(?:IT|SM)\d{2}[A-Z]\d{22}|CY\d{2}[A-Z]\d{23}|NL\d{2}[A-Z]{4}\d{10}|LV\d{2}[A-Z]{4}\d{13}|(?:BG|BH|GB|IE)\d{2}[A-Z]{4}\d{14}|GI\d{2}[A-Z]{4}\d{15}|RO\d{2}[A-Z]{4}\d{16}|KW\d{2}[A-Z]{4}\d{22}|MT\d{2}[A-Z]{4}\d{23}|NO\d{13}|(?:DK|FI|GL|FO)\d{16}|MK\d{17}|(?:AT|EE|KZ|LU|XK)\d{18}|(?:BA|HR|LI|CH|CR)\d{19}|(?:GE|DE|LT|ME|RS)\d{20}|IL\d{21}|(?:AD|CZ|ES|MD|SA)\d{22}|PT\d{23}|(?:BE|IS)\d{24}|(?:FR|MR|MC)\d{25}|(?:AL|DO|LB|PL)\d{26}|(?:AZ|HU)\d{27}|(?:GR|MU)\d{28})$)+')
- if not re.fullmatch(regex, self.acc_number):
+ #if not re.fullmatch(regex, self.acc_number):
- raise Warning('Invalid IBAN')
\ No newline at end of file
+ # raise Warning('Invalid IBAN')
\ No newline at end of file
diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv
index 66f9534..e44956b 100644
--- a/security/ir.model.access.csv
+++ b/security/ir.model.access.csv
@@ -32,3 +32,5 @@ access_opendons_duplicate_partner,opendons_duplicate_partner,model_opendons_dupl
access_opendons_template_rf,opendons_template_rf,model_opendons_template_rf,donation.group_donation_manager,1,1,1,1
+
+access_opendons_laposte_ref,opendons_laposte_ref,model_opendons_laposte_ref,donation.group_donation_manager,1,1,1,1
diff --git a/views/laposte_ref.xml b/views/laposte_ref.xml
new file mode 100644
index 0000000..0d98f97
--- /dev/null
+++ b/views/laposte_ref.xml
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ opendons_laposte_ref list
+ opendons.laposte_ref
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ opendons_laposte_ref Form
+ opendons.laposte_ref
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/views/partner.xml b/views/partner.xml
index 761b3ce..84153e3 100644
--- a/views/partner.xml
+++ b/views/partner.xml
@@ -80,7 +80,38 @@
+
+ tree,form,kanban
+
+
+
+ kanban
+
+
+
+
+
+ opendons.res.partner.tree
+ res.partner
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
opendons.res.partner.form
res.partner
@@ -88,7 +119,19 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -113,13 +156,15 @@
-
+
+
+
-
-
-
-
+
+
+
+
@@ -207,6 +252,12 @@
+
+ laposte_refs
+ opendons.laposte_ref
+ tree,form
+
+
@@ -233,6 +284,8 @@
-
+
+