[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:
committed by
Samuel Degueldre
parent
55588eba57
commit
19c364ea2d
@@ -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',
|
||||
|
||||
@@ -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."),
|
||||
]
|
||||
@@ -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
|
||||
|
||||
|
@@ -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>
|
||||
Reference in New Issue
Block a user