feat(odoo): add conversation and partner views
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
80
odoo_whatsapp_hub/views/res_partner_views.xml
Normal file
80
odoo_whatsapp_hub/views/res_partner_views.xml
Normal file
@@ -0,0 +1,80 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<odoo>
|
||||
<!-- Inherit Partner Form -->
|
||||
<record id="view_partner_form_whatsapp" model="ir.ui.view">
|
||||
<field name="name">res.partner.form.whatsapp</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="inherit_id" ref="base.view_partner_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<!-- Add WhatsApp button box -->
|
||||
<xpath expr="//div[@name='button_box']" position="inside">
|
||||
<button name="action_open_whatsapp_conversations" type="object" class="oe_stat_button" icon="fa-whatsapp">
|
||||
<div class="o_field_widget o_stat_info">
|
||||
<span class="o_stat_value">
|
||||
<field name="whatsapp_conversation_count"/>
|
||||
</span>
|
||||
<span class="o_stat_text">WhatsApp</span>
|
||||
</div>
|
||||
</button>
|
||||
</xpath>
|
||||
|
||||
<!-- Add WhatsApp action buttons -->
|
||||
<xpath expr="//div[hasclass('oe_title')]" position="after">
|
||||
<div class="mb-2" invisible="not mobile and not phone">
|
||||
<button name="action_send_whatsapp" string="Enviar WhatsApp" type="object" class="btn btn-success" icon="fa-whatsapp"/>
|
||||
<button name="action_open_whatsapp_chat" string="Abrir Chat" type="object" class="btn btn-outline-success ms-1" icon="fa-comments"/>
|
||||
</div>
|
||||
</xpath>
|
||||
|
||||
<!-- Add WhatsApp notebook page -->
|
||||
<xpath expr="//notebook" position="inside">
|
||||
<page string="WhatsApp" name="whatsapp" invisible="whatsapp_conversation_count == 0">
|
||||
<field name="whatsapp_conversation_ids" mode="tree" readonly="1">
|
||||
<tree>
|
||||
<field name="account_id"/>
|
||||
<field name="status" widget="badge"/>
|
||||
<field name="last_message_at"/>
|
||||
<field name="last_message_preview"/>
|
||||
<field name="unread_count" widget="badge" decoration-danger="unread_count > 0"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Partner Tree - Add WhatsApp indicator -->
|
||||
<record id="view_partner_tree_whatsapp" model="ir.ui.view">
|
||||
<field name="name">res.partner.tree.whatsapp</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="inherit_id" ref="base.view_partner_tree"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='phone']" position="after">
|
||||
<field name="whatsapp_unread_count" widget="badge" decoration-danger="whatsapp_unread_count > 0" optional="show"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Server Action: Send WhatsApp -->
|
||||
<record id="action_partner_send_whatsapp" model="ir.actions.server">
|
||||
<field name="name">Enviar WhatsApp</field>
|
||||
<field name="model_id" ref="base.model_res_partner"/>
|
||||
<field name="binding_model_id" ref="base.model_res_partner"/>
|
||||
<field name="binding_view_types">list,form</field>
|
||||
<field name="state">code</field>
|
||||
<field name="code">
|
||||
if records:
|
||||
if len(records) == 1:
|
||||
action = records.action_send_whatsapp()
|
||||
else:
|
||||
action = {
|
||||
'type': 'ir.actions.act_window',
|
||||
'name': 'Envío Masivo WhatsApp',
|
||||
'res_model': 'whatsapp.mass.wizard',
|
||||
'view_mode': 'form',
|
||||
'target': 'new',
|
||||
'context': {'default_partner_ids': records.ids},
|
||||
}
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user