From e697ffe37595039f4c41e5a9a354e2c7d41da9ed Mon Sep 17 00:00:00 2001 From: root Date: Mon, 8 Aug 2022 22:50:53 +0200 Subject: [PATCH] corrections --- controllers/portal.py | 2 +- models/partner_import.py | 60 ++++++++++++++++++++++------------------ 2 files changed, 34 insertions(+), 28 deletions(-) diff --git a/controllers/portal.py b/controllers/portal.py index dda6c58..d918cfe 100644 --- a/controllers/portal.py +++ b/controllers/portal.py @@ -76,7 +76,7 @@ class PortalOpendons(CustomerPortal): donation = request.env['donation.line'].sudo().search([]) domain = [ - ('partner_id', '=',int(partner.id) ) + ('donation_id.state','=','done'),('partner_id', '=',int(partner.id) ) ] searchbar_sortings = { diff --git a/models/partner_import.py b/models/partner_import.py index 7901bc1..e8be326 100644 --- a/models/partner_import.py +++ b/models/partner_import.py @@ -2,12 +2,13 @@ from odoo import models, fields, api from odoo.exceptions import UserError, ValidationError, Warning from psycopg2 import sql, DatabaseError from odoo.tools.safe_eval import safe_eval, datetime - +from odoo import fields, http, SUPERUSER_ID, tools, _ from werkzeug import utils import csv import base64 import io -import json +import json +import re @@ -53,35 +54,40 @@ class opendons_partnerdraftfile(models.Model): partners=self.env['opendons.partnerdraft'].search([]) fields=self.env['opendons.partnerdraftfile_mapping'].search([]) if partners: + for p in partners: - - vals={} - for f in fields: - if f.partner_field=='country_id': - if p[f.odoo_field]!='': - country=self.env['res.country'].search([('name','=',p[f.odoo_field])]) - if country:vals[f.partner_field]=country.id - else:vals[f.partner_field]=False - - elif f.partner_field=='title': - if p[f.odoo_field]!='': - title=self.env['res.partner.title'].search([('name','=',p[f.odoo_field])]) - if title:vals[f.partner_field]=title.id - else:vals[f.partner_field]=False - else: - vals[f.partner_field]=False - - elif f.partner_field in ('origine','statut_contact'): - if p[f.odoo_field]!=False: - vals[f.partner_field]=p[f.odoo_field].lower() + regex = re.compile(r'([A-Za-z0-9]+[.-_])*[A-Za-z0-9]+@[A-Za-z0-9-]+(\.[A-Z|a-z]{2,})+') + if re.fullmatch(regex, p.email) and p.name!='': - else: + vals={} + for f in fields: + if f.partner_field=='country_id': + if p[f.odoo_field]!='': + country=self.env['res.country'].search([('name','=',p[f.odoo_field])]) + if country:vals[f.partner_field]=country.id + else:vals[f.partner_field]=False + + elif f.partner_field=='title': + if p[f.odoo_field]!='': + title=self.env['res.partner.title'].search([('name','=',p[f.odoo_field])]) + if title:vals[f.partner_field]=title.id + else:vals[f.partner_field]=False + else: + vals[f.partner_field]=False - vals[f.partner_field]=p[f.odoo_field] - - vals['company_type']='person' + elif f.partner_field in ('origine'): + continue + elif f.partner_field in ('origine','statut_contact'): + if p[f.odoo_field]!=False: + vals[f.partner_field]=p[f.odoo_field].lower() + + else: + + vals[f.partner_field]=p[f.odoo_field] + + vals['company_type']='person' - self.env['res.partner'].create(vals) + self.env['res.partner'].create(vals) partners=self.env['opendons.partnerdraft'].search([]).unlink()