- Added comprehensive README files for all three sync modules - Implemented advanced logging system with multiple log levels (DEBUG, INFO, WARNING, ERROR) - Added automatic sensitive data masking for security in log payloads - Implemented log retention policy (90 days local, 7 years in AWS S3 Glacier) - Added AWS S3 integration for long-term log archiving - Fixed validation error with bemade_instance_id in sync model creation - Refactored model inheritance structure from _inherit to _inherits for proper delegation - Fixed duplicate sync model prevention logic - Restored Test Connection button in instance view - Fixed connection test logging to properly record success/failure - Fixed queue creation for connection test logs - Removed unnecessary Synchronized Module tab from odoo_to_odoo_bemade - Added database indexing on create_date for performance optimization - Fixed foreign key constraint violations in field mappings creation - Enhanced error handling throughout the synchronization process
105 lines
4.9 KiB
XML
105 lines
4.9 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<!-- Vue formulaire pour les éléments de file d'attente -->
|
|
<record id="view_odoo_to_bemade_sync_queue_form" model="ir.ui.view">
|
|
<field name="name">odoo.to.bemade.sync.queue.form</field>
|
|
<field name="model">odoo.to.bemade.sync.queue</field>
|
|
<field name="arch" type="xml">
|
|
<form>
|
|
<header>
|
|
<field name="state" widget="statusbar"
|
|
statusbar_visible="draft,pending,in_progress,done,error"/>
|
|
</header>
|
|
<sheet>
|
|
<div class="oe_title">
|
|
<h1><field name="name"/></h1>
|
|
</div>
|
|
<group>
|
|
<group>
|
|
<field name="model_id"/>
|
|
<field name="record_id"/>
|
|
<field name="operation"/>
|
|
</group>
|
|
<group>
|
|
<field name="create_date"/>
|
|
<field name="priority"/>
|
|
<field name="retry_count"/>
|
|
</group>
|
|
</group>
|
|
<notebook>
|
|
<page string="Errors">
|
|
<field name="error_message"/>
|
|
</page>
|
|
</notebook>
|
|
</sheet>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
|
|
<!-- Vue liste pour les éléments de file d'attente -->
|
|
<record id="view_odoo_to_bemade_sync_queue_tree" model="ir.ui.view">
|
|
<field name="name">odoo.to.bemade.sync.queue.tree</field>
|
|
<field name="model">odoo.to.bemade.sync.queue</field>
|
|
<field name="arch" type="xml">
|
|
<list
|
|
decoration-success="state == 'done'"
|
|
decoration-info="state in ('draft', 'pending')"
|
|
decoration-warning="state == 'processing'"
|
|
decoration-danger="state == 'error'"
|
|
decoration-muted="state == 'cancelled'">
|
|
<field name="name"/>
|
|
<field name="model_id"/>
|
|
<field name="record_id"/>
|
|
<field name="operation"/>
|
|
<field name="create_date"/>
|
|
<field name="priority"/>
|
|
<field name="retry_count"/>
|
|
<field name="state" optional="hide"/>
|
|
</list>
|
|
</field>
|
|
</record>
|
|
|
|
<!-- Vue recherche pour les éléments de file d'attente -->
|
|
<record id="view_odoo_to_bemade_sync_queue_search" model="ir.ui.view">
|
|
<field name="name">odoo.to.bemade.sync.queue.search</field>
|
|
<field name="model">odoo.to.bemade.sync.queue</field>
|
|
<field name="arch" type="xml">
|
|
<search>
|
|
<field name="name"/>
|
|
<field name="model_id"/>
|
|
<field name="record_id"/>
|
|
<separator/>
|
|
<filter string="À traiter" name="to_process" domain="[('state', 'in', ['draft', 'pending'])]"/>
|
|
<filter string="En cours" name="in_progress" domain="[('state', '=', 'processing')]"/>
|
|
<filter string="En erreur" name="error" domain="[('state', '=', 'error')]"/>
|
|
<filter string="Terminé" name="done" domain="[('state', '=', 'done')]"/>
|
|
<filter string="Annulé" name="cancel" domain="[('state', '=', 'cancelled')]"/>
|
|
<separator/>
|
|
<filter string="Priorité haute" name="high_priority" domain="[('priority', '<=', 5)]"/>
|
|
<group expand="0">
|
|
<filter string="Modèle" name="groupby_model" domain="[]" context="{'group_by': 'model_id'}"/>
|
|
<filter string="Opération" name="groupby_operation" domain="[]" context="{'group_by': 'operation'}"/>
|
|
<filter string="État" name="groupby_state" domain="[]" context="{'group_by': 'state'}"/>
|
|
<filter string="Date de création" name="groupby_create_date" domain="[]" context="{'group_by': 'create_date:day'}"/>
|
|
</group>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
|
|
<!-- Action pour la file d'attente -->
|
|
<record id="action_odoo_to_bemade_sync_queue" model="ir.actions.act_window">
|
|
<field name="name">File d'attente de synchronisation</field>
|
|
<field name="res_model">odoo.to.bemade.sync.queue</field>
|
|
<field name="view_mode">list,form</field>
|
|
<field name="context">{'search_default_to_process': 1}</field>
|
|
<field name="help" type="html">
|
|
<p class="o_view_nocontent_smiling_face">
|
|
La file d'attente est vide!
|
|
</p>
|
|
<p>
|
|
Les éléments de la file d'attente sont créés automatiquement
|
|
lorsque des enregistrements sont modifiés dans les modèles synchronisés.
|
|
</p>
|
|
</field>
|
|
</record>
|
|
</odoo>
|