Skip to content
Extraits de code Groupes Projets
Valider 0cb9b058 rédigé par jordan's avatar jordan
Parcourir les fichiers

[update] refactor mass_mail_send function

parent b35cbd12
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -398,7 +398,7 @@ class Bordereau(models.Model):
self.ensure_one()
return self.validate_bordereau()
def validate_bordereau(self, **values_mail):
def validate_bordereau(self, mail_compose_message_id=False):
"""
- Affecte le nom du bordereau avec la séquence
- Valide les invoices
......@@ -411,25 +411,21 @@ class Bordereau(models.Model):
# Validation des invoices
self.validate_cotiz_cg()
# Envoi du mail
if values_mail:
model_id = self.env['ir.model'].search([
('model', '=', self._name)
]).id
mail_template = self.env['mail.template'].create({
'model_id': model_id,
'email_from': values_mail.get('email_from'),
'subject': values_mail.get('subject'),
'body_html': values_mail.get('body_html'),
})
mail_template.send_mail(
self.id,
email_values={
'recipient_ids': [(6, 0, self.recipient_ids.ids)]}
if mail_compose_message_id:
mail_compose_message = self.env['mail.compose.message'].browse(
mail_compose_message_id
)
mail_compose_message.update({
'partner_ids': [(6, 0, self.recipient_ids.ids)],
'res_id': self.id,
})
mail_compose_message.with_context(
mail_notify_force_send=False
).send_mail()
return self.id
@api.multi
def validate_bordereau_multi(self, **values):
def validate_bordereau_multi(self, mail_compose_message_id):
"""
Utilise job queue pour valider les bordereaux
"""
......@@ -439,7 +435,7 @@ class Bordereau(models.Model):
for bordereau in self:
bordereau.with_context(
job_batch=batch
).with_delay().validate_bordereau(**values)
).with_delay().validate_bordereau(mail_compose_message_id)
batch.enqueue()
@api.multi
......@@ -465,7 +461,6 @@ class Bordereau(models.Model):
'default_res_id': self.id,
'default_use_template': True,
'default_template_id': template_id.id,
'default_composition_mode': 'comment',
}
return {
'type': 'ir.actions.act_window',
......
......@@ -18,13 +18,11 @@ class ScopBordereauValidate(models.TransientModel):
template_id = self.env.ref(
'cgscop_cotisation_cg.email_template_cotisation_cg')
res.update({
'email_from': template_id.email_from,
'subject': template_id.subject,
'body_html': template_id.body_html,
})
return res
email_from = fields.Char('De:', translate=True, sanitize=False)
subject = fields.Char('Objet:', translate=True, sanitize=False)
body_html = fields.Html('Corps du mail:', translate=True, sanitize=False)
......@@ -41,11 +39,17 @@ class ScopBordereauValidate(models.TransientModel):
raise UserError(_("Impossible de valider un bordereau qui "
"n'est pas à l'état de brouillon"))
else:
values = {
'email_from': self.email_from,
template_id = self.env.ref(
'cgscop_cotisation_cg.email_template_cotisation_cg')
mail_compose_message_id = self.env['mail.compose.message'].create({
'subject': self.subject,
'body_html': self.body_html,
}
bordereau_ids.validate_bordereau_multi(**values)
'body': self.body_html,
'model': 'scop.bordereau',
'email_from': template_id.email_from,
'reply_to': template_id.reply_to,
'auto_delete': False,
'composition_mode': 'mass_mail',
})
bordereau_ids.validate_bordereau_multi(mail_compose_message_id.id)
return {'type': 'ir.actions.act_window_close'}
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter