diff --git a/fusion-woo-odoo/fusion_woocommerce/data/cron.xml b/fusion-woo-odoo/fusion_woocommerce/data/cron.xml
index 8a4ed01e..0848d552 100644
--- a/fusion-woo-odoo/fusion_woocommerce/data/cron.xml
+++ b/fusion-woo-odoo/fusion_woocommerce/data/cron.xml
@@ -7,7 +7,7 @@
model._cron_sync_products()
15
minutes
- -1
+
True
@@ -18,7 +18,7 @@
model._cron_sync_orders()
5
minutes
- -1
+
True
@@ -29,7 +29,7 @@
model._cron_sync_inventory()
15
minutes
- -1
+
True
@@ -40,7 +40,7 @@
model._cron_sync_customers()
30
minutes
- -1
+
True
@@ -51,7 +51,7 @@
model._cron_health_check()
10
minutes
- -1
+
True
@@ -62,7 +62,7 @@
model._cron_cleanup_logs()
1
days
- -1
+
True
diff --git a/fusion-woo-odoo/fusion_woocommerce/models/woo_instance.py b/fusion-woo-odoo/fusion_woocommerce/models/woo_instance.py
index 63b15b65..9415c466 100644
--- a/fusion-woo-odoo/fusion_woocommerce/models/woo_instance.py
+++ b/fusion-woo-odoo/fusion_woocommerce/models/woo_instance.py
@@ -106,6 +106,34 @@ class WooInstance(models.Model):
self.ensure_one()
self.odoo_api_key = secrets.token_urlsafe(32)
+ def action_view_product_maps(self):
+ """Open product mapping list filtered by this instance."""
+ self.ensure_one()
+ return {
+ 'type': 'ir.actions.act_window',
+ 'name': 'Product Mapping',
+ 'res_model': 'woo.product.map',
+ 'view_mode': 'list,form',
+ 'domain': [('instance_id', '=', self.id)],
+ 'context': {'default_instance_id': self.id},
+ }
+
+ def action_view_sync_errors(self):
+ """Open sync log filtered to errors for this instance."""
+ self.ensure_one()
+ twenty_four_ago = fields.Datetime.subtract(fields.Datetime.now(), hours=24)
+ return {
+ 'type': 'ir.actions.act_window',
+ 'name': 'Sync Errors (24h)',
+ 'res_model': 'woo.sync.log',
+ 'view_mode': 'list,form',
+ 'domain': [
+ ('instance_id', '=', self.id),
+ ('state', '=', 'failed'),
+ ('create_date', '>=', twenty_four_ago),
+ ],
+ }
+
def _log_sync(self, sync_type, direction, record_ref, state, message=''):
"""Create a woo.sync.log record for this instance."""
self.ensure_one()
diff --git a/fusion-woo-odoo/fusion_woocommerce/static/src/js/dashboard.js b/fusion-woo-odoo/fusion_woocommerce/static/src/js/dashboard.js
index 5bec895f..712cf82e 100644
--- a/fusion-woo-odoo/fusion_woocommerce/static/src/js/dashboard.js
+++ b/fusion-woo-odoo/fusion_woocommerce/static/src/js/dashboard.js
@@ -199,7 +199,7 @@ export class WooDashboard extends Component {
type: "ir.actions.act_window",
name: "Sync Errors (Last 24 h)",
res_model: "woo.sync.log",
- view_mode: "tree,form",
+ view_mode: "list,form",
domain: [["state", "=", "failed"]],
target: "current",
});
diff --git a/fusion-woo-odoo/fusion_woocommerce/views/res_config_settings.xml b/fusion-woo-odoo/fusion_woocommerce/views/res_config_settings.xml
index 2a4c5e02..4da8ba56 100644
--- a/fusion-woo-odoo/fusion_woocommerce/views/res_config_settings.xml
+++ b/fusion-woo-odoo/fusion_woocommerce/views/res_config_settings.xml
@@ -5,7 +5,7 @@
WooCommerce Settings
woo.instance
- tree,form
+ list,form
diff --git a/fusion-woo-odoo/fusion_woocommerce/views/sale_order_views.xml b/fusion-woo-odoo/fusion_woocommerce/views/sale_order_views.xml
index c94a6941..0abb1f0f 100644
--- a/fusion-woo-odoo/fusion_woocommerce/views/sale_order_views.xml
+++ b/fusion-woo-odoo/fusion_woocommerce/views/sale_order_views.xml
@@ -11,12 +11,12 @@
-
+
-
+
diff --git a/fusion-woo-odoo/fusion_woocommerce/views/woo_conflict_views.xml b/fusion-woo-odoo/fusion_woocommerce/views/woo_conflict_views.xml
index ec5d75fe..5324878f 100644
--- a/fusion-woo-odoo/fusion_woocommerce/views/woo_conflict_views.xml
+++ b/fusion-woo-odoo/fusion_woocommerce/views/woo_conflict_views.xml
@@ -6,7 +6,7 @@
woo.conflict.tree
woo.conflict
-
+
@@ -15,7 +15,7 @@
-
+
@@ -69,14 +69,13 @@
domain="[('resolution', '=', 'pending')]"/>
-
-
-
-
-
+
+
+
+
@@ -85,7 +84,7 @@
Sync Conflicts
woo.conflict
- tree,form
+ list,form
diff --git a/fusion-woo-odoo/fusion_woocommerce/views/woo_customer_views.xml b/fusion-woo-odoo/fusion_woocommerce/views/woo_customer_views.xml
index 304fc7cb..15e83816 100644
--- a/fusion-woo-odoo/fusion_woocommerce/views/woo_customer_views.xml
+++ b/fusion-woo-odoo/fusion_woocommerce/views/woo_customer_views.xml
@@ -6,13 +6,13 @@
woo.customer.tree
woo.customer
-
+
-
+
@@ -48,10 +48,9 @@
-
-
-
+
+
@@ -60,7 +59,7 @@
WooCommerce Customers
woo.customer
- tree,form
+ list,form
diff --git a/fusion-woo-odoo/fusion_woocommerce/views/woo_instance_views.xml b/fusion-woo-odoo/fusion_woocommerce/views/woo_instance_views.xml
index 83eea12f..ffb89ac0 100644
--- a/fusion-woo-odoo/fusion_woocommerce/views/woo_instance_views.xml
+++ b/fusion-woo-odoo/fusion_woocommerce/views/woo_instance_views.xml
@@ -6,7 +6,7 @@
woo.instance.tree
woo.instance
-
+
@@ -15,7 +15,7 @@
decoration-success="state == 'connected'"
decoration-warning="state == 'draft'"
decoration-danger="state == 'error'"/>
-
+
@@ -93,7 +93,7 @@
-
+
@@ -105,22 +105,22 @@
decoration-success="state == 'mapped'"
decoration-warning="state == 'conflict'"
decoration-danger="state == 'error'"/>
-
+
-
+
-
+
-
+
@@ -130,7 +130,7 @@
decoration-danger="state == 'failed'"
decoration-warning="state == 'conflict'"/>
-
+
@@ -154,12 +154,11 @@
domain="[('state', '=', 'draft')]"/>
-
-
-
-
+
+
+
@@ -168,7 +167,7 @@
WooCommerce Instances
woo.instance
- tree,form
+ list,form
diff --git a/fusion-woo-odoo/fusion_woocommerce/views/woo_order_views.xml b/fusion-woo-odoo/fusion_woocommerce/views/woo_order_views.xml
index 030f6782..24d39448 100644
--- a/fusion-woo-odoo/fusion_woocommerce/views/woo_order_views.xml
+++ b/fusion-woo-odoo/fusion_woocommerce/views/woo_order_views.xml
@@ -6,7 +6,7 @@
woo.order.tree
woo.order
-
+
@@ -16,7 +16,7 @@
decoration-info="state == 'confirmed'"
decoration-warning="state == 'shipped'"
decoration-danger="state == 'cancelled'"/>
-
+
@@ -48,14 +48,14 @@
-
+
-
+
@@ -82,12 +82,11 @@
domain="[('state', '=', 'completed')]"/>
-
-
-
-
+
+
+
@@ -96,7 +95,7 @@
WooCommerce Orders
woo.order
- tree,form
+ list,form
diff --git a/fusion-woo-odoo/fusion_woocommerce/views/woo_pricelist_map_views.xml b/fusion-woo-odoo/fusion_woocommerce/views/woo_pricelist_map_views.xml
index 8db3c06c..f34f35ca 100644
--- a/fusion-woo-odoo/fusion_woocommerce/views/woo_pricelist_map_views.xml
+++ b/fusion-woo-odoo/fusion_woocommerce/views/woo_pricelist_map_views.xml
@@ -6,13 +6,13 @@
woo.pricelist.map.tree
woo.pricelist.map
-
+
-
+
@@ -20,7 +20,7 @@
Price List Mapping
woo.pricelist.map
- tree
+ list
diff --git a/fusion-woo-odoo/fusion_woocommerce/views/woo_product_map_views.xml b/fusion-woo-odoo/fusion_woocommerce/views/woo_product_map_views.xml
index 28f54917..2558e186 100644
--- a/fusion-woo-odoo/fusion_woocommerce/views/woo_product_map_views.xml
+++ b/fusion-woo-odoo/fusion_woocommerce/views/woo_product_map_views.xml
@@ -6,7 +6,7 @@
woo.product.map.tree
woo.product.map
-
+
@@ -19,7 +19,7 @@
decoration-success="state == 'mapped'"
decoration-warning="state == 'conflict'"
decoration-danger="state == 'error'"/>
-
+
@@ -78,14 +78,13 @@
domain="[('state', '=', 'conflict')]"/>
-
-
-
-
-
+
+
+
+
@@ -94,7 +93,7 @@
Product Mapping
woo.product.map
- tree,form
+ list,form
diff --git a/fusion-woo-odoo/fusion_woocommerce/views/woo_return_views.xml b/fusion-woo-odoo/fusion_woocommerce/views/woo_return_views.xml
index 14b958c8..97a3bac3 100644
--- a/fusion-woo-odoo/fusion_woocommerce/views/woo_return_views.xml
+++ b/fusion-woo-odoo/fusion_woocommerce/views/woo_return_views.xml
@@ -6,7 +6,7 @@
woo.return.tree
woo.return
-
+
@@ -16,7 +16,7 @@
decoration-info="state == 'approved'"
decoration-warning="state == 'requested'"
decoration-danger="state == 'rejected'"/>
-
+
@@ -56,11 +56,11 @@
-
+
-
+
@@ -82,12 +82,11 @@
domain="[('state', '=', 'approved')]"/>
-
-
-
-
+
+
+
@@ -96,7 +95,7 @@
WooCommerce Returns
woo.return
- tree,form
+ list,form
diff --git a/fusion-woo-odoo/fusion_woocommerce/views/woo_shipping_carrier_views.xml b/fusion-woo-odoo/fusion_woocommerce/views/woo_shipping_carrier_views.xml
index f3ba3315..90a3b16c 100644
--- a/fusion-woo-odoo/fusion_woocommerce/views/woo_shipping_carrier_views.xml
+++ b/fusion-woo-odoo/fusion_woocommerce/views/woo_shipping_carrier_views.xml
@@ -6,12 +6,12 @@
woo.shipping.carrier.tree
woo.shipping.carrier
-
+
-
+
@@ -19,7 +19,7 @@
Shipping Carriers
woo.shipping.carrier
- tree
+ list
diff --git a/fusion-woo-odoo/fusion_woocommerce/views/woo_sync_log_views.xml b/fusion-woo-odoo/fusion_woocommerce/views/woo_sync_log_views.xml
index e5097d76..be160e8e 100644
--- a/fusion-woo-odoo/fusion_woocommerce/views/woo_sync_log_views.xml
+++ b/fusion-woo-odoo/fusion_woocommerce/views/woo_sync_log_views.xml
@@ -6,7 +6,7 @@
woo.sync.log.tree
woo.sync.log
-
+
@@ -17,7 +17,7 @@
decoration-danger="state == 'failed'"
decoration-warning="state == 'conflict'"/>
-
+
@@ -66,16 +66,15 @@
-
-
-
-
-
-
+
+
+
+
+
@@ -84,7 +83,7 @@
Sync Logs
woo.sync.log
- tree,form
+ list,form
diff --git a/fusion-woo-odoo/fusion_woocommerce/views/woo_tax_map_views.xml b/fusion-woo-odoo/fusion_woocommerce/views/woo_tax_map_views.xml
index 38e614a3..cdaeb6ab 100644
--- a/fusion-woo-odoo/fusion_woocommerce/views/woo_tax_map_views.xml
+++ b/fusion-woo-odoo/fusion_woocommerce/views/woo_tax_map_views.xml
@@ -6,13 +6,13 @@
woo.tax.map.tree
woo.tax.map
-
+
-
+
@@ -20,7 +20,7 @@
Tax Mapping
woo.tax.map
- tree
+ list