41 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
| from odoo import fields, models, api
 | |
| 
 | |
| class ResPartner(models.Model):
 | |
|     _inherit = 'res.partner'
 | |
| 
 | |
|     subscription_list_ids = fields.One2many('mail.mass_mailing.list_contact_rel',
 | |
|         'related_partner_id', string='Subscription Information', domain=[('mailchimp_list_id','!=',False)])
 | |
| 
 | |
|     @api.multi
 | |
|     def get_mailing_partner(self, email):
 | |
|         query = """
 | |
|                         SELECT id 
 | |
|                           FROM mail_mass_mailing_contact
 | |
|                         WHERE LOWER(substring(email, '([^ ,;<@]+@[^> ,;]+)')) = LOWER(substring('{}', '([^ ,;<@]+@[^> ,;]+)'))""".format(email)
 | |
|         self._cr.execute(query)
 | |
|         return self._cr.fetchone()
 | |
| 
 | |
|     @api.model
 | |
|     def create(self, vals):
 | |
|         res = super(ResPartner, self).create(vals)
 | |
|         if vals.get('email', False):
 | |
|             mailing_contact = self.env['mail.mass_mailing.contact']
 | |
|             partner_record = self.get_mailing_partner(vals.get('email'))
 | |
|             if partner_record:
 | |
|                 mailing_contact.browse(partner_record[0]).related_partner_id = res.id
 | |
|         return res
 | |
| 
 | |
|     @api.multi
 | |
|     def write(self, vals):
 | |
|         if vals.get('email', False):
 | |
|             mailing_contact = self.env['mail.mass_mailing.contact']
 | |
|             partner_record = self.get_mailing_partner(vals.get('email'))
 | |
|             if partner_record:
 | |
|                 mailing_contact.browse(partner_record[0]).related_partner_id = self.id
 | |
|             else:
 | |
|                 partner_record = self.get_mailing_partner(self.email)
 | |
|                 if partner_record:
 | |
|                     mailing_contact.browse(partner_record[0]).write({'related_partner_id':False})
 | |
|         res = super(ResPartner, self).write(vals)
 | |
|         return res
 |