bemade-addons/bemade_helpdesk_mailcow_blacklist/models/helpdesk_ticket.py

28 lines
780 B
Python
Raw Normal View History

2023-07-18 06:56:51 -04:00
from odoo import api, fields, models
from odoo.exceptions import UserError
2023-07-20 13:20:02 -04:00
import re
2023-07-18 06:56:51 -04:00
class HelpdeskTicket(models.Model):
_inherit = 'helpdesk.ticket'
2023-07-20 13:20:02 -04:00
def action_add_blacklist(self):
2023-07-18 06:56:51 -04:00
self.ensure_one()
2023-07-20 13:20:02 -04:00
email_regex = r'<([^<>]+)>'
email_to_blacklist = re.findall(email_regex, self.email)[0]
2023-07-18 06:56:51 -04:00
# Create a new blacklist record
2023-07-20 13:20:02 -04:00
blacklist = self.env['mail.mailcow.blacklist'].create({
'email': email_to_blacklist,
2023-07-18 06:56:51 -04:00
})
# Assign 'spam' as a closed stage
spam_stage = self.env.ref('bemade_helpdesk_mailcow_blacklist.helpdesk_stage_spam')
if spam_stage:
self.stage_id = spam_stage.id
else:
raise UserError(_('The Spam stage does not exist.'))
return True