odoo/packs/odoo.v18/base/user_audit/wizard/clear_user_log.py

172 lines
8.4 KiB
Python
Raw Permalink Normal View History

# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>)
#
# You can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# (LGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
from odoo import fields, models
class ClearUserLog(models.TransientModel):
""" Model that uses to Clear the User Audit Logs"""
_name = "clear.user.log"
_description = "Clear User Logs"
full_log = fields.Boolean(string="Full Log",
help="Enabling we can clear full log details")
is_read = fields.Boolean(string="Read",
help="Enabling we can clear all read activities")
is_write = fields.Boolean(string="Write",
help="Enabling we can clear all write activities")
is_create = fields.Boolean(string="Create",
help="Enabling we can clear all create "
"activities")
is_delete = fields.Boolean(string="Delete",
help="Enabling we can clear all delete "
"activities")
to_date = fields.Datetime(string="To Date",
help="Enabling we can clear all activities "
"up to the date")
model_id = fields.Many2one('ir.model', string="Object",
help="Clear selected model's activities")
def action_clear_user_logs(self):
""" Function that helps to clear the log data based
on the data from the wizard"""
if self.full_log:
self.env['user.audit.log'].search([]).unlink()
elif self.is_create and self.is_write and self.is_read and self.is_delete:
self.env['user.audit.log'].search(
[('operation_type', '=', 'create'),
('operation_type', '=', 'write'),
('operation_type', '=', 'read'),
('operation_type', '=', 'delete')]).unlink()
elif self.is_create and self.is_write and self.is_read:
self.env['user.audit.log'].search(
[('operation_type', '=', 'create'),
('operation_type', '=', 'write'),
('operation_type', '=', 'read')]).unlink()
elif self.is_create and self.is_write and self.is_delete:
self.env['user.audit.log'].search(
[('operation_type', '=', 'create'),
('operation_type', '=', 'write'),
('operation_type', '=', 'delete')]).unlink()
elif self.is_create and self.is_read and self.is_delete:
self.env['user.audit.log'].search(
[('operation_type', '=', 'create'),
('operation_type', '=', 'read'),
('operation_type', '=', 'delete')]).unlink()
elif self.is_delete and self.is_write and self.is_read:
self.env['user.audit.log'].search(
[('operation_type', '=', 'delete'),
('operation_type', '=', 'write'),
('operation_type', '=', 'read')]).unlink()
elif self.to_date and self.is_create and self.is_read:
self.env['user.audit.log'].search(
[('date', '<', self.to_date),
('operation_type', '=', 'create'),
('operation_type', '=', 'read')]).unlink()
elif self.to_date and self.is_create and self.is_write:
self.env['user.audit.log'].search(
[('date', '<', self.to_date),
('operation_type', '=', 'create'),
('operation_type', '=', 'write')]).unlink()
elif self.to_date and self.is_create and self.is_delete:
self.env['user.audit.log'].search(
[('date', '<', self.to_date),
('operation_type', '=', 'create'),
('operation_type', '=', 'delete')]).unlink()
elif self.to_date and self.is_write and self.is_delete:
self.env['user.audit.log'].search(
[('date', '<', self.to_date),
('operation_type', '=', 'write'),
('operation_type', '=', 'delete')]).unlink()
elif self.to_date and self.is_read and self.is_delete:
self.env['user.audit.log'].search(
[('date', '<', self.to_date),
('operation_type', '=', 'read'),
('operation_type', '=', 'delete')]).unlink()
elif self.to_date and self.is_write and self.is_read:
self.env['user.audit.log'].search(
[('date', '<', self.to_date),
('operation_type', '=', 'write'),
('operation_type', '=', 'read')]).unlink()
elif self.to_date and self.is_create and self.is_read:
self.env['user.audit.log'].search(
[('date', '<', self.to_date),
('operation_type', '=', 'create'),
('operation_type', '=', 'read')]).unlink()
elif self.to_date and self.is_create and self.is_delete:
self.env['user.audit.log'].search(
[('date', '<', self.to_date),
('operation_type', '=', 'delete'),
('operation_type', '=', 'create')]).unlink()
elif self.to_date and self.is_create and self.is_write:
self.env['user.audit.log'].search(
[('date', '<', self.to_date),
('operation_type', '=', 'create'),
('operation_type', '=', 'write')]).unlink()
elif self.to_date and self.is_write and self.is_read:
self.env['user.audit.log'].search(
[('date', '<', self.to_date),
('operation_type', '=', 'write'),
('operation_type', '=', 'read')]).unlink()
elif self.to_date and self.is_write and self.is_delete:
self.env['user.audit.log'].search(
[('date', '<', self.to_date),
('operation_type', '=', 'write'),
('operation_type', '=', 'read')]).unlink()
elif self.to_date and self.is_read and self.is_delete:
self.env['user.audit.log'].search(
[('date', '<', self.to_date),
('operation_type', '=', 'write'),
('operation_type', '=', 'delete')]).unlink()
elif self.to_date and self.is_create:
self.env['user.audit.log'].search(
[('date', '<', self.to_date),
('operation_type', '=', 'create')]).unlink()
elif self.to_date and self.is_delete:
self.env['user.audit.log'].search(
[('date', '<', self.to_date),
('operation_type', '=', 'delete')]).unlink()
elif self.to_date and self.is_read:
self.env['user.audit.log'].search(
[('date', '<', self.to_date),
('operation_type', '=', 'read')]).unlink()
elif self.to_date and self.is_write:
self.env['user.audit.log'].search(
[('date', '<', self.to_date),
('operation_type', '=', 'write')]).unlink()
elif self.is_create:
self.env['user.audit.log'].search(
[('operation_type', '=', 'create')]).unlink()
elif self.is_read:
self.env['user.audit.log'].search(
[('operation_type', '=', 'read')]).unlink()
elif self.is_write:
self.env['user.audit.log'].search(
[('operation_type', '=', 'write')]).unlink()
elif self.is_delete:
self.env['user.audit.log'].search(
[('operation_type', '=', 'delete')]).unlink()
elif self.to_date:
self.env['user.audit.log'].search(
[('date', '<', self.to_date)]).unlink()
else:
self.env['user.audit.log'].search([]).unlink()