File: mail_group_message_reject.py

package info (click to toggle)
odoo 18.0.0%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 878,716 kB
  • sloc: javascript: 927,937; python: 685,670; xml: 388,524; sh: 1,033; sql: 415; makefile: 26
file content (42 lines) | stat: -rw-r--r-- 1,892 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.

from odoo import api, fields, models, tools, _


class MailGroupMessageReject(models.TransientModel):
    _name = 'mail.group.message.reject'
    _description = 'Reject Group Message'

    subject = fields.Char('Subject', store=True, readonly=False, compute='_compute_subject')
    body = fields.Html('Contents', default='', sanitize_style=True)
    email_from_normalized = fields.Char('Email From', related='mail_group_message_id.email_from_normalized')
    mail_group_message_id = fields.Many2one('mail.group.message', string="Message", required=True, readonly=True)
    action = fields.Selection([('reject', 'Reject'), ('ban', 'Ban')], string='Action', required=True)

    send_email = fields.Boolean('Send Email', help='Send an email to the author of the message', compute='_compute_send_email')

    @api.depends('mail_group_message_id')
    def _compute_subject(self):
        for wizard in self:
            wizard.subject = _('Re: %s', wizard.mail_group_message_id.subject or '')

    @api.depends('body')
    def _compute_send_email(self):
        for wizard in self:
            wizard.send_email = not tools.is_html_empty(wizard.body)

    def action_send_mail(self):
        self.ensure_one()

        # Reject
        if self.action == 'reject' and self.send_email:
            self.mail_group_message_id.action_moderate_reject_with_comment(self.subject, self.body)
        elif self.action == 'reject' and not self.send_email:
            self.mail_group_message_id.action_moderate_reject()

        # Ban
        elif self.action == 'ban' and self.send_email:
            self.mail_group_message_id.action_moderate_ban_with_comment(self.subject, self.body)
        elif self.action == 'ban' and not self.send_email:
            self.mail_group_message_id.action_moderate_ban()