19.0 vanilla

This commit is contained in:
Ernad Husremovic 2026-03-09 09:31:00 +01:00
parent a1137a1456
commit e1d89e11e3
2789 changed files with 1093187 additions and 605897 deletions

View file

@ -1,28 +1,31 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models, registry
from odoo import fields, models
from odoo.api import Environment
from odoo.fields import Datetime
from odoo.http import request
from odoo.modules.registry import Registry
from odoo.addons.bus.websocket import wsrequest
class IrWebsocket(models.AbstractModel):
_inherit = 'ir.websocket'
def _update_bus_presence(self, inactivity_period, im_status_ids_by_model):
super()._update_bus_presence(inactivity_period, im_status_ids_by_model)
class IrWebsocket(models.AbstractModel):
_inherit = "ir.websocket"
def _update_mail_presence(self, inactivity_period):
super()._update_mail_presence(inactivity_period)
# This method can either be called due to an http or a
# websocket request. The request itself is necessary to
# retrieve the current guest. Let's retrieve the proper
# request.
req = request or wsrequest
if req.env.user._is_internal():
if self.env.user._is_internal():
ip_address = req.httprequest.remote_addr
users_log = req.env['res.users.log'].search_count([
('create_uid', '=', req.env.user.id),
('ip', '=', ip_address),
('create_date', '>=', Datetime.to_string(Datetime.now().replace(hour=0, minute=0, second=0, microsecond=0)))])
if not users_log:
with registry(req.env.cr.dbname).cursor() as cr:
env = Environment(cr, req.env.user.id, {})
env['res.users.log'].create({'ip': ip_address})
domain = [
("create_uid", "=", self.env.user.id),
("ip", "=", ip_address),
("create_date", ">=", fields.Date.today()),
]
if not self.env["res.users.log"].sudo().search_count(domain, limit=1):
with Registry(self.env.cr.dbname).cursor() as cr:
env = Environment(cr, self.env.user.id, {})
env["res.users.log"].sudo().create({"ip": ip_address})