Odoo13:如何通过控制器将关注者分配给记录
Odoo13: How to assign followers to a record via Controller
在我的网络表单控制器中,我试图将在网络表单中输入的电子邮件地址分配给给定记录。这是我的控制器中负责的代码片段
if 'followers' in request.params:
raw_emails = request.httprequest.form.get('followers').split(',')
emails = [user.strip() for user in raw_emails]
#emails = ['foo@bar.com', 'foo2@bar.com',..]
for email in emails:
follower = request.env['res.users'].search(
[('email', '=', email)])
if bool(follower):
reg = {
'res_id': new_ticket.id,
'res_model': 'helpdesk.ticket',
'partner_id': follower.id
}
request.env['mail.followers'].create(reg)
else:
message = "TO DO: Add {} to the system and make the user a follower of this ticket".format(
email)
new_ticket.message_post(body=message)
我得到了奇怪的结果,即在网络表单上输入“用户 A”作为关注者后,“用户 B”被添加为关注者。我认为问题可能出在将错误的用户记录加载到 follower 变量中,但我不明白为什么。任何反馈将不胜感激。
您可以使用 message_subscribe 方法将关注者添加到记录集中。
def message_subscribe(self, partner_ids=None, channel_ids=None, subtype_ids=None):
""" Main public API to add followers to a record set. Its main purpose is
to perform access rights checks before calling _message_subscribe
. """
您在帐户移动中已经有一个示例,在 message_new 添加合作伙伴列表的方法中。
# Assign followers.
all_followers_ids = set(partner.id for partner in followers + senders + partners if is_internal_partner(partner))
move.message_subscribe(list(all_followers_ids))
在我的网络表单控制器中,我试图将在网络表单中输入的电子邮件地址分配给给定记录。这是我的控制器中负责的代码片段
if 'followers' in request.params:
raw_emails = request.httprequest.form.get('followers').split(',')
emails = [user.strip() for user in raw_emails]
#emails = ['foo@bar.com', 'foo2@bar.com',..]
for email in emails:
follower = request.env['res.users'].search(
[('email', '=', email)])
if bool(follower):
reg = {
'res_id': new_ticket.id,
'res_model': 'helpdesk.ticket',
'partner_id': follower.id
}
request.env['mail.followers'].create(reg)
else:
message = "TO DO: Add {} to the system and make the user a follower of this ticket".format(
email)
new_ticket.message_post(body=message)
我得到了奇怪的结果,即在网络表单上输入“用户 A”作为关注者后,“用户 B”被添加为关注者。我认为问题可能出在将错误的用户记录加载到 follower 变量中,但我不明白为什么。任何反馈将不胜感激。
您可以使用 message_subscribe 方法将关注者添加到记录集中。
def message_subscribe(self, partner_ids=None, channel_ids=None, subtype_ids=None):
""" Main public API to add followers to a record set. Its main purpose is
to perform access rights checks before calling_message_subscribe
. """
您在帐户移动中已经有一个示例,在 message_new 添加合作伙伴列表的方法中。
# Assign followers.
all_followers_ids = set(partner.id for partner in followers + senders + partners if is_internal_partner(partner))
move.message_subscribe(list(all_followers_ids))