PURPOSE Make various changes to the website.visitor views to improve readability and ease marketing analysis. SPECS The changes include notably: - Add/rename/move fields/filters elements - Remove some unnecessary information or put it in optional="hide" in tree view - Add website_id information (with the multi-website group) - Slightly rework layouts (new widgets / spacing / images / buttons / ...) - Move some technical information into the "debug mode" LINKS Task 2092302 ENT PR odoo/enterprise#14611 UPG PR odoo/upgrade#1902 closes odoo/odoo#61417 Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
165 lines
8.5 KiB
XML
165 lines
8.5 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo><data>
|
|
<record id="website_visitor_livechat_session_action" model="ir.actions.act_window">
|
|
<field name="name">Visitor's Sessions</field>
|
|
<field name="res_model">mail.channel</field>
|
|
<field name="view_mode">tree,form</field>
|
|
<field name="view_id" ref="im_livechat.mail_channel_view_tree"/>
|
|
<field name="domain">[('livechat_visitor_id', '=', active_id), ('channel_message_ids', '!=', False)]</field>
|
|
<field name="context">{
|
|
'search_default_livechat_visitor_id': [active_id],
|
|
'default_livechat_visitor_id': active_id,
|
|
}</field>
|
|
</record>
|
|
|
|
<record id="website_visitor_livechat_session_action_tree" model="ir.actions.act_window.view">
|
|
<field name="sequence">1</field>
|
|
<field name="view_mode">tree</field>
|
|
<field name="view_id" ref="im_livechat.mail_channel_view_tree"/>
|
|
<field name="act_window_id" ref="website_livechat.website_visitor_livechat_session_action"/>
|
|
</record>
|
|
|
|
<record id="website_visitor_livechat_session_action_form" model="ir.actions.act_window.view">
|
|
<field name="sequence">2</field>
|
|
<field name="view_mode">form</field>
|
|
<field name="view_id" ref="im_livechat.mail_channel_view_form"/>
|
|
<field name="act_window_id" ref="website_livechat.website_visitor_livechat_session_action"/>
|
|
</record>
|
|
|
|
<!-- website visitor views -->
|
|
<record id="website_visitor_view_kanban" model="ir.ui.view">
|
|
<field name="name">website.visitor.view.kanban.inherit.website.livechat</field>
|
|
<field name="model">website.visitor</field>
|
|
<field name="inherit_id" ref="website.website_visitor_view_kanban"/>
|
|
<field name="arch" type="xml">
|
|
<field name="page_ids" position="after">
|
|
<field name="livechat_operator_id"/>
|
|
</field>
|
|
<xpath expr="//div[hasclass('w_visitor_kanban_actions')]" position="before">
|
|
<div>Chats<span class="float-right font-weight-bold"><field name="session_count"/></span></div>
|
|
<div t-if="record.livechat_operator_id.raw_value">
|
|
Speaking With
|
|
<div name="livechat_operator_id"
|
|
class="o_field_many2one_avatar o_field_widget font-weight-bold float-right d-inline-block">
|
|
<img t-attf-src="/web/image/res.partner/#{record.livechat_operator_id.raw_value}/image_128"
|
|
alt="Operator Avatar" class="o_m2o_avatar"/>
|
|
<field name="livechat_operator_name"/>
|
|
</div>
|
|
</div>
|
|
<t t-else="">
|
|
<br attrs="{'invisible': ['|', ('livechat_operator_id', '!=', False), ('is_connected', '=', False)]}"/>
|
|
</t>
|
|
</xpath>
|
|
<xpath expr="//div[hasclass('w_visitor_kanban_actions_ungrouped')]" position="before">
|
|
<div class="col mx-2">
|
|
<b>
|
|
<field name="session_count"/>
|
|
</b>
|
|
<div>Chats</div>
|
|
</div>
|
|
<div class="col mx-2">
|
|
<div t-if="record.livechat_operator_id.raw_value"
|
|
class="o_field_many2one_avatar o_field_widget font-weight-bold" name="livechat_operator_id">
|
|
<img t-attf-src="/web/image/res.partner/#{record.livechat_operator_id.raw_value}/image_128"
|
|
alt="Operator Avatar" class="o_m2o_avatar"/>
|
|
<field name="livechat_operator_name"/>
|
|
</div>
|
|
<div t-if="record.livechat_operator_id.raw_value">Speaking With</div>
|
|
</div>
|
|
</xpath>
|
|
<xpath expr="//div[hasclass('w_visitor_kanban_actions')]" position="inside">
|
|
<button name="action_send_chat_request" type="object"
|
|
class="btn btn-secondary"
|
|
attrs="{'invisible': ['|', ('livechat_operator_id', '!=', False), ('is_connected', '=', False)]}">
|
|
Chat
|
|
</button>
|
|
</xpath>
|
|
<xpath expr="//div[hasclass('w_visitor_kanban_actions_ungrouped')]" position="inside">
|
|
<button name="action_send_chat_request" type="object"
|
|
class="btn btn-secondary border"
|
|
attrs="{'invisible': ['|', ('livechat_operator_id', '!=', False), ('is_connected', '=', False)]}">
|
|
Chat
|
|
</button>
|
|
</xpath>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="website_visitor_view_form" model="ir.ui.view">
|
|
<field name="name">website.visitor.view.form.inherit.website.livechat</field>
|
|
<field name="model">website.visitor</field>
|
|
<field name="inherit_id" ref="website.website_visitor_view_form"/>
|
|
<field name="arch" type="xml">
|
|
<xpath expr="//header" position="inside">
|
|
<button name="action_send_chat_request" string="Send chat request" type="object" class="oe_highlight"
|
|
attrs="{'invisible': ['|', ('livechat_operator_id', '!=', False), ('is_connected', '=', False)]}"/>
|
|
</xpath>
|
|
<xpath expr="//group[@id='general_info']" position="before">
|
|
<group id="livechat_info" attrs="{'invisible': [('livechat_operator_id', '=', False)]}">
|
|
<field name="livechat_operator_id" widget="many2one_avatar"/>
|
|
</group>
|
|
</xpath>
|
|
<xpath expr="//div[hasclass('oe_button_box')]" position="inside">
|
|
<button name="%(website_visitor_livechat_session_action)d" type="action" class="oe_stat_button" icon="fa-comment"
|
|
attrs="{'invisible': [('session_count', '=', 0)]}">
|
|
<field name="session_count" widget="statinfo" string="Chats"/>
|
|
</button>
|
|
</xpath>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="website_visitor_view_tree" model="ir.ui.view">
|
|
<field name="name">website.visitor.view.tree.inherit.website.livechat</field>
|
|
<field name="model">website.visitor</field>
|
|
<field name="inherit_id" ref="website.website_visitor_view_tree"/>
|
|
<field name="arch" type="xml">
|
|
<xpath expr="//field[@name='email']" position="after">
|
|
<field name="livechat_operator_id" optional="hide"/>
|
|
<button name="action_send_chat_request" string="Chat" type="object" icon="fa-comments"
|
|
attrs="{'invisible': ['|', ('livechat_operator_id', '!=', False), ('is_connected', '=', False)]}"/>
|
|
</xpath>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="website_visitor_view_search" model="ir.ui.view">
|
|
<field name="name">website.visitor.view.search.website.livechat</field>
|
|
<field name="model">website.visitor</field>
|
|
<field name="inherit_id" ref="website.website_visitor_view_search"/>
|
|
<field name="arch" type="xml">
|
|
<xpath expr="//filter[@name='filter_is_connected']" position="after">
|
|
<separator/>
|
|
<filter string="Available" name="filter_not_in_conversation" domain="[('livechat_operator_id', '=', False)]"/>
|
|
<filter string="In Conversation" name="filter_in_conversation" domain="[('livechat_operator_id', '!=', False)]"/>
|
|
</xpath>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="website_livechat_send_chat_request_action_server" model="ir.actions.server">
|
|
<field name="name">Send Chat Requests</field>
|
|
<field name="type">ir.actions.server</field>
|
|
<field name="model_id" ref="model_website_visitor"/>
|
|
<field name="binding_model_id" ref="model_website_visitor"/>
|
|
<field name="binding_view_types">list</field>
|
|
<field name="state">code</field>
|
|
<field name="code">
|
|
if records:
|
|
action = records.action_send_chat_request()
|
|
</field>
|
|
</record>
|
|
|
|
<record id="website.website_visitors_action" model="ir.actions.act_window">
|
|
<field name="help" type="html">
|
|
<p class="o_view_nocontent_smiling_face">
|
|
Wait for visitors to come to your website to see their history.</p>
|
|
<p>Interact with them by sending them messages.</p>
|
|
</field>
|
|
</record>
|
|
|
|
<menuitem
|
|
id="website_livechat_visitor_menu"
|
|
name="Visitors"
|
|
parent="im_livechat.menu_livechat_root"
|
|
action="website.website_visitors_action"
|
|
groups="im_livechat.im_livechat_group_user"
|
|
sequence="15"/>
|
|
</data></odoo>
|