|
|
@ -117,4 +117,27 @@ class ResPartner(models.Model): |
|
|
|
regex = re.compile(r'([A-Za-z0-9-]+[.-_])*[A-Za-z0-9-]+@[A-Za-z0-9-]+(\.[A-Z|a-z]{2,})+') |
|
|
|
if not re.fullmatch(regex, self.email): |
|
|
|
|
|
|
|
raise ValidationError('Invalid email') |
|
|
|
raise ValidationError('Invalid email') |
|
|
|
|
|
|
|
def partners_near_saint_cosme(self): |
|
|
|
|
|
|
|
mailing_list=self.env['mailing.list'].sudo().search([('name','=','Habitants départements 28, 61, 72')]) |
|
|
|
|
|
|
|
partner=self.env['res.partner'].search(['|','|',('zip','=like','28%'),('zip','=like','61%'),('zip','=like','72%')]) |
|
|
|
for p in partner: |
|
|
|
|
|
|
|
mailing_contact=self.env['mailing.contact'].sudo().search([('email','=',p.email)],limit=1) |
|
|
|
#si le contact n'existe pas comme mailing contact, création |
|
|
|
if not mailing_contact: |
|
|
|
vals={} |
|
|
|
vals['email']=p.email |
|
|
|
vals['name']=p.name |
|
|
|
vals['title_id']=int(p.title) |
|
|
|
vals['country_id']=int(p.country_id) |
|
|
|
vals['list_ids']=[(4,int(mailing_list.id))] |
|
|
|
mailing_contact=self.env['mailing.contact'].sudo().create(vals) |
|
|
|
else: |
|
|
|
#si le contact existe, si la liste de diffusion n'est pas lié au contact, on l'ajoute |
|
|
|
if not mailing_list in mailing_contact.list_ids: |
|
|
|
mailing_contact.sudo().write({'list_ids':[(4,int(mailing_list.id))]}) |
|
|
|
|