mirror of
https://github.com/bringout/oca-ocb-mail.git
synced 2026-04-23 09:22:05 +02:00
377 lines
26 KiB
XML
377 lines
26 KiB
XML
<?xml version="1.0"?>
|
|
<odoo>
|
|
<data>
|
|
|
|
<record id="discuss_channel_view_search" model="ir.ui.view">
|
|
<field name="name">discuss.channel.search</field>
|
|
<field name="model">discuss.channel</field>
|
|
<field name="arch" type="xml">
|
|
<search string="Search history">
|
|
<field name="livechat_agent_partner_ids" string="Agent"/>
|
|
<field name="livechat_agent_requesting_help_history"/>
|
|
<field name="livechat_agent_providing_help_history"/>
|
|
<field name="country_id" string="Country"/>
|
|
<field name="livechat_customer_partner_ids" string="Customer"/>
|
|
<filter name="filter_my_sessions" domain="[('livechat_operator_id.user_ids', '=', uid)]" string="My Sessions"/>
|
|
<separator/>
|
|
<filter name="ongoing" string="Ongoing" domain="[('livechat_end_dt', '=', False)]"/>
|
|
<separator/>
|
|
<filter name="filter_session_rating_happy" domain="[('rating_ids', '!=', False), ('rating_avg', '>=', 3.66)]" string="Happy"/>
|
|
<filter name="filter_session_rating_neutral" domain="[('rating_ids', '!=', False), ('rating_avg', '>=', 2.33), ('rating_avg', '<', 3.66)]" string="Neutral"/>
|
|
<filter name="fiter_session_rating_unhappy" domain="[('rating_ids', '!=', False), ('rating_avg', '<', 2.33) ]" string="Unhappy"/>
|
|
<filter name="filter_session_unrated" domain="[('rating_ids', '=', False)]" string="Unrated"/>
|
|
<separator />
|
|
<filter name="filter_session_date" date="create_date" string="Session Date">
|
|
<filter name="rated_on_last_24_hours" string="Last 24 Hours" domain="[('create_date', '>', '-1d')]"/>
|
|
<filter name="rated_on_last_7_days" string="Last 7 Days" domain="[('create_date', '>', 'today -7d +1d')]"/>
|
|
<filter name="rated_on_last_30_days" string="Last 30 Days" domain="[('create_date', '>', 'today -30d +1d')]"/>
|
|
<filter name="rated_on_last_365_days" string="Last 365 Days" domain="[('create_date', '>', 'today -365d +1d')]"/>
|
|
</filter>
|
|
<separator/>
|
|
<group>
|
|
<filter name="group_by_channel" string="Channel" domain="[]" context="{'group_by':'livechat_channel_id'}"/>
|
|
<filter name="group_by_agent" string="Agent" domain="[]" context="{'group_by':'livechat_agent_partner_ids'}"/>
|
|
<filter name="group_by_agent_requesting_help" domain="[]" context="{'group_by': 'livechat_agent_requesting_help_history'}"/>
|
|
<filter name="group_by_agent_providing_help" domain="[]" context="{'group_by': 'livechat_agent_providing_help_history'}"/>
|
|
<filter name="group_by_rating" string="Rating" domain="[]" context="{'group_by':'rating_last_text'}"/>
|
|
<filter name="group_by_country" string="Country" domain="[]" context="{'group_by':'country_id'}"/>
|
|
<filter name="group_by_customer_partner" string="Customer" domain="[]" context="{'group_by':'livechat_customer_partner_ids'}"/>
|
|
<separator orientation="vertical"/>
|
|
<filter name="group_by_month" string="Session Date" domain="[]" context="{'group_by':'create_date:month'}"/>
|
|
</group>
|
|
<group>
|
|
<filter name="escalated" string="Escalated" domain="[('livechat_is_escalated', '=', True)]" invisible="1"/>
|
|
<filter name="handled_by_agent" string="Handled by Agent" domain="[('livechat_agent_history_ids', '!=', False)]" invisible="1"/>
|
|
<filter name="handled_by_bot" string="Handled by Bot" domain="[('livechat_channel_member_history_ids.livechat_member_type', '=', 'bot'), ('livechat_agent_history_ids', '=', False)]" invisible="1"/>
|
|
<filter name="in_call" string="In Call" domain="[('livechat_agent_history_ids.call_history_ids.end_dt', '=', False)]" invisible="1"/>
|
|
</group>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="discuss_channel_view_tree" model="ir.ui.view">
|
|
<field name="name">discuss.channel.list</field>
|
|
<field name="model">discuss.channel</field>
|
|
<field name="arch" type="xml">
|
|
<list js_class="im_livechat.discuss_channel_list" sample="1" string="History" create="false" default_order="create_date desc, id desc">
|
|
<field name="create_date" string="Date"/>
|
|
<field name="livechat_customer_history_ids" string="Customer" widget="many2many_tags_avatar" optional="show"/>
|
|
<field name="livechat_agent_history_ids" string="Agents" widget="many2many_tags_avatar" optional="show"/>
|
|
<field name="livechat_agent_requesting_help_history" widget="many2one_avatar" optional="hide"/>
|
|
<field name="livechat_agent_providing_help_history" widget="many2one_avatar" optional="hide"/>
|
|
<field name="livechat_bot_history_ids" string="Chatbot" widget="many2many_tags_avatar" optional="hide"/>
|
|
<field name="country_id" optional="show"/>
|
|
<field name="livechat_lang_id" optional="show"/>
|
|
<field name="livechat_expertise_ids" string="Expertise" widget="many2many_tags" optional="show"/>
|
|
<field name="livechat_conversation_tag_ids" string="Tags" widget="many2many_tags" options="{'color_field': 'color'}" optional="hide"/>
|
|
<field name="livechat_channel_id" optional="hide"/>
|
|
<field name="duration" widget="float_time" options="{'displaySeconds': True}" optional="show"/>
|
|
<field name="message_count" string="Messages" optional="show"/>
|
|
<field name="rating_last_text" string="Rating" decoration-danger="rating_last_text == 'ko'"
|
|
decoration-warning="rating_last_text == 'ok'" decoration-success="rating_last_text == 'top'"
|
|
widget="badge" optional="show"/>
|
|
<field name="rating_last_feedback" string="Comment" optional="hide"/>
|
|
</list>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="discuss_channel_view_kanban" model="ir.ui.view">
|
|
<field name="name">discuss.channel.kanban</field>
|
|
<field name="model">discuss.channel</field>
|
|
<field name="arch" type="xml">
|
|
<kanban js_class="im_livechat.discuss_channel_kanban" class="o_kanban_mobile" sample="1" quick_create="false" create="False" default_order="create_date desc">
|
|
<templates>
|
|
<t t-name="card">
|
|
<div class="d-flex">
|
|
<div class="d-flex flex-column">
|
|
<field class="fw-bolder" name="livechat_customer_history_ids" widget="im_livechat.one2many_names"/>
|
|
<span class="fw-bold">Date: <field name="create_date" class="fw-normal"/></span>
|
|
<span class="fw-bold">Duration: <field class="d-inline fw-normal" name="duration" widget="float_time" options="{'displaySeconds': True}"/></span>
|
|
<span class="fw-bold">Messages: <field name="message_count" class="fw-normal"/></span>
|
|
<field name="livechat_failure" invisible="1"/>
|
|
<field name="livechat_is_escalated" invisible="1"/>
|
|
<span t-if="record.livechat_is_escalated.raw_value or record.livechat_failure.raw_value" class="fw-bold">
|
|
Status:
|
|
<span class="fw-normal">
|
|
<t t-if="record.livechat_is_escalated.raw_value">Escalated</t>
|
|
<t t-elif="record.livechat_failure.raw_value === 'no_failure'">Success</t>
|
|
<t t-else="" t-esc="record.livechat_failure.value"/>
|
|
</span>
|
|
</span>
|
|
</div>
|
|
<field name="rating_last_image" string="Rating" widget="image" options='{"size": [40, 40], "img_class": "bg-transparent"}' class="ms-auto" invisible="not rating_last_image"/>
|
|
</div>
|
|
<footer class="pt-0">
|
|
<t t-if="record.country_id.raw_value">
|
|
<span class="fw-bold">Country: </span><field string="Country" name="country_id"/>
|
|
</t>
|
|
<field name="livechat_agent_partner_ids" widget="many2many_avatar_user" class="ms-auto me-1"/>
|
|
</footer>
|
|
</t>
|
|
</templates>
|
|
</kanban>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="discuss_channel_view_form" model="ir.ui.view">
|
|
<field name="name">discuss.channel.form</field>
|
|
<field name="model">discuss.channel</field>
|
|
<field name="arch" type="xml">
|
|
<form string="Session Form" create="false" edit="false" js_class="livechat_session_form">
|
|
<sheet>
|
|
<div style="width:50%" class="float-end">
|
|
<field name="rating_last_image" widget="image" options='{"img_class": "bg-transparent"}' class="float-end bg-view" readonly="1" nolabel="1"/>
|
|
<field name="rating_last_feedback" nolabel="1"/>
|
|
</div>
|
|
<div style="width:50%" class="float-start">
|
|
<group>
|
|
<field name="name" string="Participants"/>
|
|
<field name="create_date" readonly="1" string="Session Date"/>
|
|
</group>
|
|
</div>
|
|
</sheet>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="discuss_channel_view_pivot" model="ir.ui.view">
|
|
<field name="name">discuss.channel.pivot</field>
|
|
<field name="model">discuss.channel</field>
|
|
<field name="arch" type="xml">
|
|
<pivot string="Sessions" display_quantity="1" sample="1">
|
|
<field name="livechat_operator_id" type="row"/>
|
|
<field name="create_date" interval="day" type="col"/>
|
|
<field name="rating_last_value" type="measure" string="Rating (%)" widget="im_livechat.rating_percentage"/>
|
|
</pivot>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="discuss_channel_view_graph" model="ir.ui.view">
|
|
<field name="name">discuss.channel.graph</field>
|
|
<field name="model">discuss.channel</field>
|
|
<field name="arch" type="xml">
|
|
<graph string="Sessions" sample="1">
|
|
<field name="create_date" interval="day"/>
|
|
<field name="rating_last_value" type="measure" string="Rating (%)" widget="im_livechat.rating_percentage"/>
|
|
</graph>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="discuss_channel_action" model="ir.actions.act_window">
|
|
<field name="name">Sessions</field>
|
|
<field name="res_model">discuss.channel</field>
|
|
<field name="view_mode">kanban,list,pivot,graph,form</field>
|
|
<field name="search_view_id" ref="im_livechat.discuss_channel_view_search"/>
|
|
<field name="domain">[('livechat_channel_id', '!=', None)]</field>
|
|
<field name="context">
|
|
{
|
|
"search_default_filter_session_date": "custom_rated_on_last_30_days",
|
|
"im_livechat_hide_partner_company": True,
|
|
}
|
|
</field>
|
|
<field name="help" type="html">
|
|
<p class="o_view_nocontent_empty_folder">
|
|
No data yet!
|
|
</p><p>
|
|
Start a conversation to populate your chat history.
|
|
</p>
|
|
</field>
|
|
</record>
|
|
<record id="discuss_channel_action_kanban" model="ir.actions.act_window.view">
|
|
<field name="sequence">1</field>
|
|
<field name="view_mode">kanban</field>
|
|
<field name="view_id" ref="im_livechat.discuss_channel_view_kanban"/>
|
|
<field name="act_window_id" ref="im_livechat.discuss_channel_action"/>
|
|
</record>
|
|
|
|
<record id="discuss_channel_action_tree" model="ir.actions.act_window.view">
|
|
<field name="sequence">2</field>
|
|
<field name="view_mode">list</field>
|
|
<field name="view_id" ref="im_livechat.discuss_channel_view_tree"/>
|
|
<field name="act_window_id" ref="im_livechat.discuss_channel_action"/>
|
|
</record>
|
|
|
|
<record id="discuss_channel_action_pivot" model="ir.actions.act_window.view">
|
|
<field name="sequence">3</field>
|
|
<field name="view_mode">pivot</field>
|
|
<field name="view_id" ref="im_livechat.discuss_channel_view_pivot"/>
|
|
<field name="act_window_id" ref="im_livechat.discuss_channel_action"/>
|
|
</record>
|
|
|
|
<record id="discuss_channel_action_graph" model="ir.actions.act_window.view">
|
|
<field name="sequence">4</field>
|
|
<field name="view_mode">graph</field>
|
|
<field name="view_id" ref="im_livechat.discuss_channel_view_graph"/>
|
|
<field name="act_window_id" ref="im_livechat.discuss_channel_action"/>
|
|
</record>
|
|
|
|
<record id="discuss_channel_action_form" model="ir.actions.act_window.view">
|
|
<field name="sequence">5</field>
|
|
<field name="view_mode">form</field>
|
|
<field name="view_id" ref="im_livechat.discuss_channel_view_form"/>
|
|
<field name="act_window_id" ref="im_livechat.discuss_channel_action"/>
|
|
</record>
|
|
|
|
<record id="discuss_channel_action_from_livechat_channel" model="ir.actions.act_window">
|
|
<field name="name">Sessions</field>
|
|
<field name="res_model">discuss.channel</field>
|
|
<field name="view_mode">kanban,list,pivot,graph,form</field>
|
|
<field name="domain">[('livechat_channel_id', 'in', [active_id])]</field>
|
|
<field name="context">{
|
|
'search_default_livechat_channel_id': [active_id],
|
|
'default_livechat_channel_id': active_id,
|
|
}</field>
|
|
<field name="search_view_id" ref="discuss_channel_view_search"/>
|
|
<field name="help" type="html">
|
|
<p class="o_view_nocontent_empty_folder">No data yet!</p>
|
|
<p>Start a conversation to populate your chat history.</p>
|
|
</field>
|
|
</record>
|
|
<record id="discuss_channel_action_livechat_kanban" model="ir.actions.act_window.view">
|
|
<field name="sequence">1</field>
|
|
<field name="view_mode">kanban</field>
|
|
<field name="view_id" ref="im_livechat.discuss_channel_view_kanban"/>
|
|
<field name="act_window_id" ref="im_livechat.discuss_channel_action_from_livechat_channel"/>
|
|
</record>
|
|
<record id="discuss_channel_action_livechat_tree" model="ir.actions.act_window.view">
|
|
<field name="sequence">2</field>
|
|
<field name="view_mode">list</field>
|
|
<field name="view_id" ref="im_livechat.discuss_channel_view_tree"/>
|
|
<field name="act_window_id" ref="im_livechat.discuss_channel_action_from_livechat_channel"/>
|
|
</record>
|
|
<record id="discuss_channel_action_livechat_pivot" model="ir.actions.act_window.view">
|
|
<field name="sequence">3</field>
|
|
<field name="view_mode">pivot</field>
|
|
<field name="view_id" ref="im_livechat.discuss_channel_view_pivot"/>
|
|
<field name="act_window_id" ref="im_livechat.discuss_channel_action_from_livechat_channel"/>
|
|
</record>
|
|
<record id="discuss_channel_action_livechat_graph" model="ir.actions.act_window.view">
|
|
<field name="sequence">4</field>
|
|
<field name="view_mode">graph</field>
|
|
<field name="view_id" ref="im_livechat.discuss_channel_view_graph"/>
|
|
<field name="act_window_id" ref="im_livechat.discuss_channel_action_from_livechat_channel"/>
|
|
</record>
|
|
|
|
<record id="discuss_channel_action_livechat_form" model="ir.actions.act_window.view">
|
|
<field name="sequence">5</field>
|
|
<field name="view_mode">form</field>
|
|
<field name="view_id" ref="im_livechat.discuss_channel_view_form"/>
|
|
<field name="act_window_id" ref="im_livechat.discuss_channel_action_from_livechat_channel"/>
|
|
</record>
|
|
|
|
<record id="discuss_channel_looking_for_help_view_search" model="ir.ui.view">
|
|
<field name="name">discuss.channel.looking.for.help.view.search</field>
|
|
<field name="model">discuss.channel</field>
|
|
<field name="arch" type="xml">
|
|
<search string="Search history">
|
|
<field name="livechat_agent_partner_ids" string="Agent"/>
|
|
<field name="description"/>
|
|
<field name="country_id"/>
|
|
<field name="livechat_lang_id"/>
|
|
<field name="livechat_expertise_ids" string="Expertise"/>
|
|
<field name="livechat_conversation_tag_ids" string="Tags"/>
|
|
<field name="livechat_bot_partner_ids" string="Chatbot"/>
|
|
<field name="livechat_customer_partner_ids" string="Customer"/>
|
|
<filter name="filter_my_sessions" domain="[('livechat_operator_id.user_ids', '=', uid)]" string="My Sessions"/>
|
|
<filter name="filter_my_languages" string="My Languages" domain="[('livechat_matches_self_lang', '=', True)]"/>
|
|
<filter name="filter_my_expertise" string="My Expertise" domain="[('livechat_matches_self_expertise', '=', True)]"/>
|
|
<separator />
|
|
<filter name="filter_session_date" date="create_date" string="Session Date">
|
|
<filter name="created_on_last_24_hours" string="Last 24 Hours" domain="[('create_date', '>', '-24H')]"/>
|
|
<filter name="created_on_last_7_days" string="Last 7 Days" domain="[('create_date', '>=', 'today -7d +1d')]"/>
|
|
<filter name="created_on_last_30_days" string="Last 30 Days" domain="[('create_date', '>=', 'today -30d +1d')]"/>
|
|
<filter name="created_on_last_365_days" string="Last 365 Days" domain="[('create_date', '>=', 'today -365d +1d')]"/>
|
|
</filter>
|
|
<separator/>
|
|
<group>
|
|
<filter name="group_by_channel" string="Channel" domain="[]" context="{'group_by':'livechat_channel_id'}"/>
|
|
<filter name="group_by_agent" string="Agent" domain="[]" context="{'group_by':'livechat_agent_partner_ids'}"/>
|
|
<filter name="group_by_country" string="Country" domain="[]" context="{'group_by':'country_id'}"/>
|
|
<filter name="group_by_lang" string="Language" domain="[]" context="{'group_by':'livechat_lang_id'}"/>
|
|
<filter name="group_by_expertise" string="Expertise" domain="[]" context="{'group_by':'livechat_expertise_ids'}"/>
|
|
<filter name="group_by_tags" string="Tags" domain="[]" context="{'group_by':'livechat_conversation_tag_ids'}"/>
|
|
<filter name="group_by_chatbot" string="Chatbot" domain="[]" context="{'group_by':'livechat_bot_partner_ids'}"/>
|
|
<filter name="group_by_customer_partner" string="Customer" domain="[]" context="{'group_by':'livechat_customer_partner_ids'}"/>
|
|
<separator orientation="vertical"/>
|
|
<filter name="group_by_month" string="Session Date" domain="[]" context="{'group_by':'create_date:month'}"/>
|
|
</group>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
<record id="discuss_channel_looking_for_help_action" model="ir.actions.act_window">
|
|
<field name="name">Looking for Help</field>
|
|
<field name="res_model">discuss.channel</field>
|
|
<field name="view_mode">list,kanban,form</field>
|
|
<field name="domain">[("livechat_status", "=", "need_help")]</field>
|
|
<field name="context">
|
|
{
|
|
"search_default_filter_session_date": "custom_created_on_last_30_days",
|
|
"im_livechat_hide_partner_company": True,
|
|
}
|
|
</field>
|
|
<field name="search_view_id" ref="im_livechat.discuss_channel_looking_for_help_view_search"/>
|
|
<field name="help" type="html">
|
|
<p class="o_view_nocontent_empty_folder">No conversations found</p>
|
|
<p>Help out by joining requests from teammates, or mark your own conversations as needing help.</p>
|
|
</field>
|
|
</record>
|
|
<record id="discuss_channel_looking_for_help_view_list" model="ir.ui.view">
|
|
<field name="name">discuss.channel.looking.for.help.list</field>
|
|
<field name="model">discuss.channel</field>
|
|
<field name="arch" type="xml">
|
|
<list js_class="im_livechat.discuss_channel_looking_for_help_list" sample="1" string="History" create="false" default_order="create_date asc">
|
|
<field name="create_date" string="Date"/>
|
|
<field name="description" string="Description" optional="show"/>
|
|
<field name="livechat_agent_history_ids" string="Agents" widget="many2many_tags_avatar" optional="show"/>
|
|
<field name="livechat_bot_history_ids" string="Bot" widget="many2many_tags_avatar" optional="hide"/>
|
|
<field name="livechat_customer_history_ids" string="Customer" widget="many2many_tags_avatar" optional="show"/>
|
|
<field name="country_id" optional="show"/>
|
|
<field name="livechat_lang_id"/>
|
|
<field name="livechat_expertise_ids" string="Expertise" widget="many2many_tags" optional="show"/>
|
|
<field name="livechat_conversation_tag_ids" string="Tags" widget="many2many_tags" options="{'color_field': 'color'}" optional="hide"/>
|
|
<field name="livechat_channel_id" optional="hide"/>
|
|
<field name="duration" widget="float_time" options="{'displaySeconds': True}" optional="hide"/>
|
|
<field name="message_count" string="Messages" optional="hide"/>
|
|
</list>
|
|
</field>
|
|
</record>
|
|
<record id="discuss_channel_looking_for_help_action_list" model="ir.actions.act_window.view">
|
|
<field name="sequence">1</field>
|
|
<field name="view_mode">list</field>
|
|
<field name="view_id" ref="im_livechat.discuss_channel_looking_for_help_view_list"/>
|
|
<field name="act_window_id" ref="im_livechat.discuss_channel_looking_for_help_action"/>
|
|
</record>
|
|
<record id="discuss_channel_looking_for_help_view_kanban" model="ir.ui.view">
|
|
<field name="name">discuss.channel.kanban</field>
|
|
<field name="model">discuss.channel</field>
|
|
<field name="arch" type="xml">
|
|
<kanban js_class="im_livechat.discuss_channel_looking_for_help_kanban" class="o_kanban_mobile" sample="1" quick_create="false" create="False" default_order="create_date desc">
|
|
<templates>
|
|
<t t-name="card">
|
|
<field class="fw-bolder" name="livechat_customer_history_ids" widget="im_livechat.one2many_names"/>
|
|
<span class="fw-bold">Date: <field name="create_date" class="fw-normal"/></span>
|
|
<span class="fw-bold" t-if="record.country_id.raw_value">Country: <field name="country_id" class="fw-normal"/></span>
|
|
<span class="fw-bold" t-if="record.livechat_lang_id.raw_value">Language: <field name="livechat_lang_id" class="fw-normal"/></span>
|
|
<div class="d-flex gap-1 fw-bold" t-if="record.livechat_expertise_ids.raw_value.length">Expertise: <field name="livechat_expertise_ids" class="fw-normal"/></div>
|
|
<footer class="pt-0">
|
|
<field name="livechat_agent_partner_ids" widget="many2many_avatar_user" class="ms-auto me-1"/>
|
|
</footer>
|
|
</t>
|
|
</templates>
|
|
</kanban>
|
|
</field>
|
|
</record>
|
|
<record id="discuss_channel_looking_for_help_action_kanban" model="ir.actions.act_window.view">
|
|
<field name="sequence">2</field>
|
|
<field name="view_mode">kanban</field>
|
|
<field name="view_id" ref="im_livechat.discuss_channel_looking_for_help_view_kanban"/>
|
|
<field name="act_window_id" ref="im_livechat.discuss_channel_looking_for_help_action"/>
|
|
</record>
|
|
<record id="discuss_channel_looking_for_help_action_form" model="ir.actions.act_window.view">
|
|
<field name="sequence">3</field>
|
|
<field name="view_mode">form</field>
|
|
<field name="view_id" ref="im_livechat.discuss_channel_view_form"/>
|
|
<field name="act_window_id" ref="im_livechat.discuss_channel_looking_for_help_action"/>
|
|
</record>
|
|
</data>
|
|
</odoo>
|