You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
# Copyright 2016 ABF OSIELL <https://osiell.com> # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). import logging from datetime import datetime, timedelta
from odoo import models, fields, api
_logger = logging.getLogger(__name__)
class AuditlogAutovacuum(models.TransientModel): _name = 'auditlog.autovacuum' _description = "Auditlog - Delete old logs"
@api.model def autovacuum(self, days): """Delete all logs older than ``days``. This includes:
- CRUD logs (create, read, write, unlink) - HTTP requests - HTTP user sessions
Called from a cron. """
days = (days > 0) and int(days) or 0 deadline = datetime.now() - timedelta(days=days) data_models = ( 'auditlog.log', 'auditlog.http.request', 'auditlog.http.session', ) for data_model in data_models: records = self.env[data_model].search( [('create_date', '<=', fields.Datetime.to_string(deadline))]) nb_records = len(records) records.unlink() _logger.info( "AUTOVACUUM - %s '%s' records deleted", nb_records, data_model) return True
|