Files
shcool/odoosh_connector/views/odoosh_sync_log_views.xml
2026-09-10 19:36:08 +08:00

106 lines
5.2 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="odoosh_sync_log_view_list" model="ir.ui.view">
<field name="name">odoosh.sync.log.list</field>
<field name="model">odoosh.sync.log</field>
<field name="arch" type="xml">
<list string="Sync queue" decoration-danger="state == 'failed'"
decoration-muted="state in ('cancelled', 'skipped')" decoration-success="state == 'done'">
<field name="login"/>
<field name="external_id"/>
<field name="operation"/>
<field name="state"/>
<field name="attempts"/>
<field name="force" optional="hide"/>
<field name="next_retry_at" optional="show"/>
<field name="error_code" optional="show"/>
<field name="last_error" optional="hide"/>
<field name="synced_at" optional="hide"/>
<button name="action_retry" type="object" string="Retry" icon="fa-refresh"
invisible="state not in ('failed', 'cancelled')"/>
</list>
</field>
</record>
<record id="odoosh_sync_log_view_form" model="ir.ui.view">
<field name="name">odoosh.sync.log.form</field>
<field name="model">odoosh.sync.log</field>
<field name="arch" type="xml">
<form string="Sync record">
<header>
<button name="action_retry" type="object" string="Retry now" class="btn-primary"
invisible="state == 'done'"/>
<button name="action_cancel" type="object" string="Cancel"
invisible="state not in ('pending', 'failed')"/>
<field name="state" widget="statusbar" statusbar_visible="pending,done"/>
</header>
<sheet>
<group>
<group>
<field name="user_id"/>
<field name="login"/>
<field name="external_id"/>
<field name="operation"/>
</group>
<group>
<field name="attempts"/>
<field name="next_retry_at"/>
<field name="synced_at"/>
<field name="error_code"/>
</group>
</group>
<group string="Last error" invisible="not last_error">
<field name="last_error" nolabel="1" readonly="1"/>
</group>
<notebook>
<page string="Payload">
<field name="payload_preview" nolabel="1" readonly="1" widget="text"/>
</page>
<page string="Response">
<field name="result" nolabel="1" readonly="1" widget="text"/>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="odoosh_sync_log_view_search" model="ir.ui.view">
<field name="name">odoosh.sync.log.search</field>
<field name="model">odoosh.sync.log</field>
<field name="arch" type="xml">
<search string="Sync queue">
<field name="login"/>
<field name="external_id"/>
<field name="error_code"/>
<filter name="f_pending" string="Pending" domain="[('state', '=', 'pending')]"/>
<filter name="f_failed" string="Failed" domain="[('state', '=', 'failed')]"/>
<filter name="f_done" string="Done" domain="[('state', '=', 'done')]"/>
<filter name="f_skipped" string="No change" domain="[('state', '=', 'skipped')]"/>
<separator/>
<filter name="f_upsert" string="Create / Update" domain="[('operation', '=', 'upsert')]"/>
<filter name="f_deactivate" string="Deactivate" domain="[('operation', '=', 'deactivate')]"/>
<filter name="f_delete" string="Delete" domain="[('operation', '=', 'delete')]"/>
<group expand="0" string="Group By">
<filter name="g_state" string="Status" context="{'group_by': 'state'}"/>
<filter name="g_op" string="Operation" context="{'group_by': 'operation'}"/>
<filter name="g_code" string="Error code" context="{'group_by': 'error_code'}"/>
</group>
</search>
</field>
</record>
<record id="action_odoosh_sync_log" model="ir.actions.act_window">
<field name="name">Sync queue</field>
<field name="res_model">odoosh.sync.log</field>
<field name="view_mode">list,form</field>
<field name="context">{'search_default_f_failed': 1, 'search_default_f_pending': 1}</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">The sync queue is empty</p>
<p>Creating, updating, archiving or deleting a user adds a row here, processed in the background.</p>
</field>
</record>
</odoo>