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 <noreply@anthropic.com>
This commit is contained in:
@@ -186,3 +186,14 @@ class AbAiBot(models.Model):
|
|||||||
Presence.sudo().create(vals)
|
Presence.sudo().create(vals)
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
_logger.warning('Could not update bot user presence: %s', 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'
|
||||||
|
|||||||
Reference in New Issue
Block a user