[IMP] mail: add model for message reactions

Add the model in the freeze for next version, the interface is not fully ready
to merge yet but it will be added in https://github.com/odoo/odoo/pull/75630

Part of task-2361194

closes odoo/odoo#75911

Signed-off-by: Samuel Degueldre <sdegueldre@users.noreply.github.com>
This commit is contained in:
Julien Giannone
2021-09-04 13:01:02 +00:00
committed by Samuel Degueldre
parent 55588eba57
commit 19c364ea2d
6 changed files with 58 additions and 0 deletions
+1
View File
@@ -41,6 +41,7 @@
'views/discuss_public_templates.xml',
'views/mail_alias_views.xml',
'views/mail_guest_views.xml',
'views/mail_message_reaction_views.xml',
'views/res_users_views.xml',
'views/res_users_settings_views.xml',
'views/mail_template_views.xml',
+1
View File
@@ -20,6 +20,7 @@ from . import mail_activity_type
from . import mail_activity
from . import mail_blacklist
from . import mail_followers
from . import mail_message_reaction
from . import mail_message_subtype
from . import mail_message
from . import mail_mail
@@ -0,0 +1,24 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models, fields
class MailMessageReaction(models.Model):
_name = 'mail.message.reaction'
_description = 'Message Reaction'
_order = 'id desc'
_log_access = False
message_id = fields.Many2one(string="Message", comodel_name='mail.message', ondelete='cascade', required=True, readonly=True)
content = fields.Char(string="Content", required=True, readonly=True)
partner_id = fields.Many2one(string="Reacting Partner", comodel_name='res.partner', ondelete='cascade', readonly=True)
guest_id = fields.Many2one(string="Reacting Guest", comodel_name='mail.guest', ondelete='cascade', readonly=True)
def init(self):
self.env.cr.execute("CREATE UNIQUE INDEX IF NOT EXISTS mail_message_reaction_partner_unique ON %s (message_id, content, partner_id) WHERE partner_id IS NOT NULL" % self._table)
self.env.cr.execute("CREATE UNIQUE INDEX IF NOT EXISTS mail_message_reaction_guest_unique ON %s (message_id, content, guest_id) WHERE guest_id IS NOT NULL" % self._table)
_sql_constraints = [
("partner_or_guest_exists", "CHECK((partner_id IS NOT NULL AND guest_id IS NULL) OR (partner_id IS NULL AND guest_id IS NOT NULL))", "A message reaction must be from a partner or from a guest."),
]
+2
View File
@@ -22,6 +22,8 @@ access_mail_channel_rtc_session_system,mail.channel.rtc.session.system,model_mai
access_mail_alias_all,mail.alias.all,model_mail_alias,,1,0,0,0
access_mail_alias_user,mail.alias.user,model_mail_alias,base.group_user,1,0,0,0
access_mail_alias_system,mail.alias.system,model_mail_alias,base.group_system,1,1,1,1
access_mail_message_reaction_all,mail.message.reaction.all,model_mail_message_reaction,,0,0,0,0
access_mail_message_reaction_system,mail.message.reaction.system,model_mail_message_reaction,base.group_system,1,1,1,1
access_mail_message_subtype_all,mail.message.subtype.all,model_mail_message_subtype,,1,0,0,0
access_mail_message_subtype_user,mail.message.subtype.user,model_mail_message_subtype,base.group_user,1,1,1,1
access_mail_tracking_value_all,mail.tracking.value.all,model_mail_tracking_value,,0,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
22 access_mail_alias_all mail.alias.all model_mail_alias 1 0 0 0
23 access_mail_alias_user mail.alias.user model_mail_alias base.group_user 1 0 0 0
24 access_mail_alias_system mail.alias.system model_mail_alias base.group_system 1 1 1 1
25 access_mail_message_reaction_all mail.message.reaction.all model_mail_message_reaction 0 0 0 0
26 access_mail_message_reaction_system mail.message.reaction.system model_mail_message_reaction base.group_system 1 1 1 1
27 access_mail_message_subtype_all mail.message.subtype.all model_mail_message_subtype 1 0 0 0
28 access_mail_message_subtype_user mail.message.subtype.user model_mail_message_subtype base.group_user 1 1 1 1
29 access_mail_tracking_value_all mail.tracking.value.all model_mail_tracking_value 0 0 0 0
+5
View File
@@ -113,6 +113,11 @@
action="action_ice_servers"
parent="mail.mail_menu_technical"
sequence="53"/>
<menuitem id="mail_message_reaction_menu"
name="Message Reactions"
action="mail_message_reaction_action"
parent="mail.mail_menu_technical"
sequence="54"/>
<!--
This menuitem will be activated by integrations modules (like github, twitter, ...). It
@@ -0,0 +1,25 @@
<?xml version="1.0"?>
<odoo>
<record id="mail_message_reaction_view_tree" model="ir.ui.view">
<field name="name">mail.message.reaction.tree</field>
<field name="model">mail.message.reaction</field>
<field name="priority">10</field>
<field name="arch" type="xml">
<tree string="Reaction">
<field name="id"/>
<field name="message_id"/>
<field name="content"/>
<field name="partner_id"/>
<field name="guest_id"/>
</tree>
</field>
</record>
<record id="mail_message_reaction_action" model="ir.actions.act_window">
<field name="name">Message Reactions</field>
<field name="res_model">mail.message.reaction</field>
<field name="view_mode">tree,form</field>
</record>
</odoo>