Я хочу уведомить всех членов группы обслуживания, когда внутри этой конкретной команды создается новый запрос.
На данный момент у меня эта функция обрабатывается автоматическим действием, например следующим:
Код Python:
body_html = """
...
""" + record.name + """
...
"""
num_of_members = len(record.maintenance_team_id.member_ids)
if num_of_members:
members_emails = []
for i in range(num_of_members):
members_emails.append(record.maintenance_team_id.member_ids[i].email)
email_to = ",".join(members_emails)
mail_pool = env['mail.mail']
values={}
values.update({'subject': 'New maintenance request - ' + record.company_id.name})
values.update({'email_to': email_to})
values.update({'body_html': body_html})
msg_id = mail_pool.create(values)
if msg_id:
mail_pool.send([msg_id])
Но теперь я хотел бы преобразовать это решение в специальный модуль. Как правильно это сделать?
Должен ли я унаследовать maintenance.request
, переопределить метод создания и каким-то образом (как именно?) Отправить свое электронное письмо с жестко заданным телом?
class MaintenanceRequest(models.Model):
_inherit = 'maintenance.request'
@api.model
def create(self, vals):
req = super(MaintenanceRequest, self).create(vals)
body_html = """
...
""" + req.name + """
...
"""
# ...
if msg_id:
mail_pool.send([msg_id])
return req
Или есть способ подключиться к готовой функции для отправки уведомления и просто сказать, чтобы она запускалась также для членов команды? Я не хочу добавлять их всех в качестве подписчиков (потому что они получат спам с ненужными обновлениями о запросе) - только для того, чтобы уведомить их о новом запросе, а затем они могут следовать за ним, если им нужно.