diff --git a/auditlog/__manifest__.py b/auditlog/__manifest__.py
index d9f0d67a4..d3ebecbb8 100644
--- a/auditlog/__manifest__.py
+++ b/auditlog/__manifest__.py
@@ -4,7 +4,7 @@
{
'name': "Audit Log",
- 'version': "9.0.1.0.0",
+ 'version': "10.0.1.0.0",
'author': "ABF OSIELL,Odoo Community Association (OCA)",
'license': "AGPL-3",
'website': "http://www.osiell.com",
@@ -19,7 +19,6 @@
'views/http_session_view.xml',
'views/http_request_view.xml',
],
- 'images': [],
'application': True,
'installable': True,
}
diff --git a/auditlog/data/ir_cron.xml b/auditlog/data/ir_cron.xml
index d0f77a082..728b2354b 100644
--- a/auditlog/data/ir_cron.xml
+++ b/auditlog/data/ir_cron.xml
@@ -1,6 +1,5 @@
-
-
+
Auto-vacuum audit logs
@@ -14,5 +13,4 @@
(180,)
-
-
+
diff --git a/auditlog/models/autovacuum.py b/auditlog/models/autovacuum.py
index 8c9d8b334..216c56ab6 100644
--- a/auditlog/models/autovacuum.py
+++ b/auditlog/models/autovacuum.py
@@ -4,7 +4,7 @@
import logging
from datetime import datetime, timedelta
-from openerp import models, fields, api
+from odoo import models, fields, api
_logger = logging.getLogger(__name__)
diff --git a/auditlog/models/http_request.py b/auditlog/models/http_request.py
index dd3ca30ba..f2a5f9946 100644
--- a/auditlog/models/http_request.py
+++ b/auditlog/models/http_request.py
@@ -2,17 +2,17 @@
# © 2015 ABF OSIELL
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-from openerp import models, fields, api
-from openerp.http import request
+from odoo import models, fields, api
+from odoo.http import request
class AuditlogHTTPRequest(models.Model):
_name = 'auditlog.http.request'
_description = u"Auditlog - HTTP request log"
_order = "create_date DESC"
- _rec_name = 'display_name'
- display_name = fields.Char(u"Name", compute="_compute_display_name")
+ display_name = fields.Char(
+ u"Name", compute="_compute_display_name", store=True)
name = fields.Char(u"Path")
root_url = fields.Char(u"Root URL")
user_id = fields.Many2one(
@@ -23,7 +23,7 @@ class AuditlogHTTPRequest(models.Model):
log_ids = fields.One2many(
'auditlog.log', 'http_request_id', string=u"Logs")
- @api.multi
+ @api.depends('create_date', 'name')
def _compute_display_name(self):
for httprequest in self:
create_date = fields.Datetime.from_string(httprequest.create_date)
@@ -33,6 +33,10 @@ class AuditlogHTTPRequest(models.Model):
httprequest.name or '?',
fields.Datetime.to_string(tz_create_date))
+ @api.multi
+ def name_get(self):
+ return [(request.id, request.display_name) for request in self]
+
@api.model
def current_http_request(self):
"""Create a log corresponding to the current HTTP request, and returns
diff --git a/auditlog/models/http_session.py b/auditlog/models/http_session.py
index e89043bd2..4a73782eb 100644
--- a/auditlog/models/http_session.py
+++ b/auditlog/models/http_session.py
@@ -2,24 +2,24 @@
# © 2015 ABF OSIELL
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-from openerp import models, fields, api
-from openerp.http import request
+from odoo import models, fields, api
+from odoo.http import request
class AuditlogtHTTPSession(models.Model):
_name = 'auditlog.http.session'
_description = u"Auditlog - HTTP User session log"
_order = "create_date DESC"
- _rec_name = 'display_name'
- display_name = fields.Char(u"Name", compute="_compute_display_name")
+ display_name = fields.Char(
+ u"Name", compute="_compute_display_name", store=True)
name = fields.Char(u"Session ID", index=True)
user_id = fields.Many2one(
'res.users', string=u"User", index=True)
http_request_ids = fields.One2many(
'auditlog.http.request', 'http_session_id', string=u"HTTP Requests")
- @api.multi
+ @api.depends('create_date', 'user_id')
def _compute_display_name(self):
for httpsession in self:
create_date = fields.Datetime.from_string(httpsession.create_date)
@@ -29,6 +29,10 @@ class AuditlogtHTTPSession(models.Model):
httpsession.user_id and httpsession.user_id.name or '?',
fields.Datetime.to_string(tz_create_date))
+ @api.multi
+ def name_get(self):
+ return [(session.id, session.display_name) for session in self]
+
@api.model
def current_http_session(self):
"""Create a log corresponding to the current HTTP user session, and
@@ -39,7 +43,7 @@ class AuditlogtHTTPSession(models.Model):
"""
if not request:
return False
- httpsession = request.httpsession
+ httpsession = request.session
if httpsession:
existing_session = self.search(
[('name', '=', httpsession.sid),
diff --git a/auditlog/models/log.py b/auditlog/models/log.py
index 66c6a5554..890467a18 100644
--- a/auditlog/models/log.py
+++ b/auditlog/models/log.py
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
# © 2015 ABF OSIELL
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-from openerp import models, fields
+from odoo import models, fields
class AuditlogLog(models.Model):
diff --git a/auditlog/models/rule.py b/auditlog/models/rule.py
index 482358edb..fe31a4aaa 100644
--- a/auditlog/models/rule.py
+++ b/auditlog/models/rule.py
@@ -2,7 +2,7 @@
# © 2015 ABF OSIELL
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-from openerp import models, fields, api, modules, _, SUPERUSER_ID, sql_db
+from odoo import models, fields, api, modules, _, sql_db
FIELDS_BLACKLIST = [
'id', 'create_uid', 'create_date', 'write_uid', 'write_date',
@@ -101,16 +101,16 @@ class AuditlogRule(models.Model):
"You cannot define another: please edit the existing one."))
]
- def _register_hook(self, cr, ids=None):
+ def _register_hook(self):
"""Get all rules and apply them to log method calls."""
- super(AuditlogRule, self)._register_hook(cr)
+ super(AuditlogRule, self)._register_hook()
if not hasattr(self.pool, '_auditlog_field_cache'):
self.pool._auditlog_field_cache = {}
if not hasattr(self.pool, '_auditlog_model_cache'):
self.pool._auditlog_model_cache = {}
- if ids is None:
- ids = self.search(cr, SUPERUSER_ID, [('state', '=', 'subscribed')])
- return self._patch_methods(cr, SUPERUSER_ID, ids)
+ if not self:
+ self = self.search([('state', '=', 'subscribed')])
+ return self._patch_methods()
@api.multi
def _patch_methods(self):
@@ -175,7 +175,7 @@ class AuditlogRule(models.Model):
def create(self, vals):
"""Update the registry when a new rule is created."""
new_record = super(AuditlogRule, self).create(vals)
- if self._model._register_hook(self.env.cr, new_record.ids):
+ if new_record._register_hook():
modules.registry.RegistryManager.signal_registry_change(
self.env.cr.dbname)
return new_record
@@ -184,7 +184,7 @@ class AuditlogRule(models.Model):
def write(self, vals):
"""Update the registry when existing rules are updated."""
super(AuditlogRule, self).write(vals)
- if self._model._register_hook(self.env.cr, self.ids):
+ if self._register_hook():
modules.registry.RegistryManager.signal_registry_change(
self.env.cr.dbname)
return True
@@ -526,7 +526,7 @@ class AuditlogRule(models.Model):
to view logs on that model.
"""
act_window_model = self.env['ir.actions.act_window']
- model_data_model = self.env['ir.model.data']
+ model_ir_values = self.env['ir.values']
for rule in self:
# Create a shortcut to view logs
domain = "[('model_id', '=', %s), ('res_id', '=', active_id)]" % (
@@ -541,10 +541,12 @@ class AuditlogRule(models.Model):
rule.write({'state': 'subscribed', 'action_id': act_window.id})
keyword = 'client_action_relate'
value = 'ir.actions.act_window,%s' % act_window.id
- model_data_model.sudo().ir_set(
- 'action', keyword, 'View_log_' + rule.model_id.model,
- [rule.model_id.model], value, replace=True,
- isobject=True, xml_id=False)
+ model_ir_values.sudo().set_action(
+ 'View_log_' + rule.model_id.model,
+ action_slot=keyword,
+ model=rule.model_id.model,
+ action=value)
+
return True
@api.multi
diff --git a/auditlog/static/description/autovacuum.png b/auditlog/static/description/autovacuum.png
index 67b47c4b7..2e5540ae5 100644
Binary files a/auditlog/static/description/autovacuum.png and b/auditlog/static/description/autovacuum.png differ
diff --git a/auditlog/static/description/log.png b/auditlog/static/description/log.png
index a1534eb09..05963994b 100644
Binary files a/auditlog/static/description/log.png and b/auditlog/static/description/log.png differ
diff --git a/auditlog/static/description/logs.png b/auditlog/static/description/logs.png
index 6969488fb..500508ca2 100644
Binary files a/auditlog/static/description/logs.png and b/auditlog/static/description/logs.png differ
diff --git a/auditlog/static/description/rule.png b/auditlog/static/description/rule.png
index 364e6252b..7693e4cf7 100644
Binary files a/auditlog/static/description/rule.png and b/auditlog/static/description/rule.png differ
diff --git a/auditlog/tests/test_auditlog.py b/auditlog/tests/test_auditlog.py
index 556af97c9..f4c66dd38 100644
--- a/auditlog/tests/test_auditlog.py
+++ b/auditlog/tests/test_auditlog.py
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
# © 2015 Therp BV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-from openerp.tests.common import TransactionCase
+from odoo.tests.common import TransactionCase
class TestAuditlog(object):
diff --git a/auditlog/tests/test_autovacuum.py b/auditlog/tests/test_autovacuum.py
index 720e93e45..707cfa80c 100644
--- a/auditlog/tests/test_autovacuum.py
+++ b/auditlog/tests/test_autovacuum.py
@@ -3,7 +3,7 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
import time
-from openerp.tests.common import TransactionCase
+from odoo.tests.common import TransactionCase
class TestAuditlogAutovacuum(TransactionCase):
diff --git a/auditlog/views/auditlog_view.xml b/auditlog/views/auditlog_view.xml
index aa7bf354b..2ec7b4808 100644
--- a/auditlog/views/auditlog_view.xml
+++ b/auditlog/views/auditlog_view.xml
@@ -1,205 +1,201 @@
-
-
-
-
-
-
-
-
-
- auditlog.rule.form
- auditlog.rule
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ auditlog.log.tree
+ auditlog.log
+
+
+
+
+
+
+
+
+
+
+
+
+
+ auditlog.log.search
+ auditlog.log
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Logs
+ auditlog.log
+ form
+
+
+
+
+
diff --git a/auditlog/views/http_request_view.xml b/auditlog/views/http_request_view.xml
index 2169ed0f9..d4ba2f248 100644
--- a/auditlog/views/http_request_view.xml
+++ b/auditlog/views/http_request_view.xml
@@ -1,82 +1,78 @@
-
-
-
-
- auditlog.http.request.form
- auditlog.http.request
-
-
-
-
-
-
- auditlog.http.request.tree
- auditlog.http.request
-
-
-
-
-
-
-
-
-
-
- auditlog.http.request.search
- auditlog.http.request
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ auditlog.http.request.form
+ auditlog.http.request
+
+
-
-
+
+
+
+
+
+
+
+
+
+ auditlog.http.request.tree
+ auditlog.http.request
+
+
+
+
+
+
+
+
-
- HTTP Requests
- ir.actions.act_window
- auditlog.http.request
- form
-
-
+
+ auditlog.http.request.search
+ auditlog.http.request
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+ HTTP Requests
+ ir.actions.act_window
+ auditlog.http.request
+ form
+
+
-
-
+
+
diff --git a/auditlog/views/http_session_view.xml b/auditlog/views/http_session_view.xml
index 942da68af..ae6f71fe4 100644
--- a/auditlog/views/http_session_view.xml
+++ b/auditlog/views/http_session_view.xml
@@ -1,69 +1,65 @@
-
-
-
-
- auditlog.http.session.form
- auditlog.http.session
-
-
-
-
-
-
- auditlog.http.session.tree
- auditlog.http.session
-
-
-
-
-
-
-
-
-
-
- auditlog.http.session.search
- auditlog.http.session
-
-
-
-
-
-
-
-
+
+
+ auditlog.http.session.form
+ auditlog.http.session
+
+
-
-
+
+
+
+
+
+
+
+
+
+ auditlog.http.session.tree
+ auditlog.http.session
+
+
+
+
+
+
+
+
-
- User sessions
- ir.actions.act_window
- auditlog.http.session
- form
-
-
+
+ auditlog.http.session.search
+ auditlog.http.session
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+ User sessions
+ ir.actions.act_window
+ auditlog.http.session
+ form
+
+
-
-
+
+