From 160f96a549f77d951739a35f9671a4e36d8f5dec Mon Sep 17 00:00:00 2001 From: Carlos Garcia Date: Tue, 19 May 2026 16:27:40 -0400 Subject: [PATCH] fix: override bus.presence._compute_status so bot shows online Odoo 18's _compute_status treats future last_poll as MORE disconnected (absolute delta). Override forces status='online' when last_poll > now, which is set 24h ahead by _sync_bot_user_presence when the health check passes. Co-Authored-By: Claude Sonnet 4.6 --- addons/activeblue_ai/models/ab_ai_bot.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/addons/activeblue_ai/models/ab_ai_bot.py b/addons/activeblue_ai/models/ab_ai_bot.py index 04387c4..e45ab17 100644 --- a/addons/activeblue_ai/models/ab_ai_bot.py +++ b/addons/activeblue_ai/models/ab_ai_bot.py @@ -186,3 +186,14 @@ class AbAiBot(models.Model): Presence.sudo().create(vals) except Exception as exc: _logger.warning('Could not update bot user presence: %s', exc) + + +class BusPresenceBot(models.Model): + _inherit = 'bus.presence' + + def _compute_status(self): + super()._compute_status() + now = fields.Datetime.now() + for record in self: + if record.last_poll and record.last_poll > now: + record.status = 'online'