Skip to content

Commit acf373c

Browse files
lembregtserven
authored andcommitted
[MIG] auditlog: Migration to 19.0
1 parent 7c6ec68 commit acf373c

20 files changed

+401
-124
lines changed

auditlog/README.rst

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@ Audit Log
2121
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
2222
:alt: License: AGPL-3
2323
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github
24-
:target: https://github.com/OCA/server-tools/tree/18.0/auditlog
24+
:target: https://github.com/OCA/server-tools/tree/19.0/auditlog
2525
:alt: OCA/server-tools
2626
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
27-
:target: https://translation.odoo-community.org/projects/server-tools-18-0/server-tools-18-0-auditlog
27+
:target: https://translation.odoo-community.org/projects/server-tools-19-0/server-tools-19-0-auditlog
2828
:alt: Translate me on Weblate
2929
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
30-
:target: https://runboat.odoo-community.org/builds?repo=OCA/server-tools&target_branch=18.0
30+
:target: https://runboat.odoo-community.org/builds?repo=OCA/server-tools&target_branch=19.0
3131
:alt: Try me on Runboat
3232

3333
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -74,26 +74,26 @@ auditlogs of individual records through the View Logs action. The second
7474
group is the Auditlog Manager group. This group additionally has the
7575
right to configure the auditlog configuration rules.
7676

77-
.. |image| image:: https://raw.githubusercontent.com/OCA/server-tools/18.0/auditlog/static/description/rule.png
78-
.. |image1| image:: https://raw.githubusercontent.com/OCA/server-tools/18.0/auditlog/static/description/logs.png
79-
.. |image2| image:: https://raw.githubusercontent.com/OCA/server-tools/18.0/auditlog/static/description/log.png
80-
.. |image3| image:: https://raw.githubusercontent.com/OCA/server-tools/18.0/auditlog/static/description/autovacuum.png
77+
.. |image| image:: https://raw.githubusercontent.com/OCA/server-tools/19.0/auditlog/static/description/rule.png
78+
.. |image1| image:: https://raw.githubusercontent.com/OCA/server-tools/19.0/auditlog/static/description/logs.png
79+
.. |image2| image:: https://raw.githubusercontent.com/OCA/server-tools/19.0/auditlog/static/description/log.png
80+
.. |image3| image:: https://raw.githubusercontent.com/OCA/server-tools/19.0/auditlog/static/description/autovacuum.png
8181

8282
Known issues / Roadmap
8383
======================
8484

85-
- log only operations triggered by some users (currently it logs all
86-
users)
87-
- log read operations does not work on all data models, need
88-
investigation
85+
- log only operations triggered by some users (currently it logs all
86+
users)
87+
- log read operations does not work on all data models, need
88+
investigation
8989

9090
Bug Tracker
9191
===========
9292

9393
Bugs are tracked on `GitHub Issues <https://github.com/OCA/server-tools/issues>`_.
9494
In case of trouble, please check there if your issue has already been reported.
9595
If you spotted it first, help us to smash it by providing a detailed and welcomed
96-
`feedback <https://github.com/OCA/server-tools/issues/new?body=module:%20auditlog%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
96+
`feedback <https://github.com/OCA/server-tools/issues/new?body=module:%20auditlog%0Aversion:%2019.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
9797

9898
Do not contact contributors directly about support or help with technical issues.
9999

@@ -108,24 +108,24 @@ Authors
108108
Contributors
109109
------------
110110

111-
- Sebastien Alix <sebastien.alix@camptocamp.com>
112-
- Holger Brunn <hbrunn@therp.nl>
113-
- Holden Rehg <holdenrehg@gmail.com>
114-
- Eric Lembregts <eric@lembregts.eu>
115-
- Pieter Paulussen <pieter.paulussen@me.com>
116-
- Alan Ramos <alan.ramos@jarsa.com.mx>
117-
- Stefan Rijnhart <stefan@opener.amsterdam>
118-
- Bhavesh Odedra <bodedra@opensourceintegrators.com>
119-
- Hardik Suthar <hsuthar@opensourceintegrators.com>
120-
- Kitti U. <kittiu@ecosoft.co.th>
121-
- Bogdan Valentin Gabor <valentin.gabor@bt-group.com>
122-
- Dennis Sluijk d.sluijk@onestein.nl
111+
- Sebastien Alix <sebastien.alix@camptocamp.com>
112+
- Holger Brunn <hbrunn@therp.nl>
113+
- Holden Rehg <holdenrehg@gmail.com>
114+
- Eric Lembregts <eric@lembregts.eu>
115+
- Pieter Paulussen <pieter.paulussen@me.com>
116+
- Alan Ramos <alan.ramos@jarsa.com.mx>
117+
- Stefan Rijnhart <stefan@opener.amsterdam>
118+
- Bhavesh Odedra <bodedra@opensourceintegrators.com>
119+
- Hardik Suthar <hsuthar@opensourceintegrators.com>
120+
- Kitti U. <kittiu@ecosoft.co.th>
121+
- Bogdan Valentin Gabor <valentin.gabor@bt-group.com>
122+
- Dennis Sluijk d.sluijk@onestein.nl
123123

124124
Other credits
125125
-------------
126126

127-
- Icon: built with different icons from the `Oxygen
128-
theme <https://en.wikipedia.org/wiki/Oxygen_Project>`__ (LGPL)
127+
- Icon: built with different icons from the `Oxygen
128+
theme <https://en.wikipedia.org/wiki/Oxygen_Project>`__ (LGPL)
129129

130130
Maintainers
131131
-----------
@@ -140,6 +140,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
140140
mission is to support the collaborative development of Odoo features and
141141
promote its widespread use.
142142

143-
This module is part of the `OCA/server-tools <https://github.com/OCA/server-tools/tree/18.0/auditlog>`_ project on GitHub.
143+
This module is part of the `OCA/server-tools <https://github.com/OCA/server-tools/tree/19.0/auditlog>`_ project on GitHub.
144144

145145
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

auditlog/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
22

33
from . import models
4+
from . import wizard

auditlog/__manifest__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33

44
{
55
"name": "Audit Log",
6-
"version": "18.0.2.0.0",
6+
"version": "19.0.1.0.0",
77
"author": "ABF OSIELL, Odoo Community Association (OCA)",
88
"license": "AGPL-3",
99
"website": "https://github.com/OCA/server-tools",
1010
"category": "Tools",
11-
"depends": ["base"],
11+
"depends": ["mail"],
1212
"data": [
1313
"security/res_groups.xml",
1414
"security/ir.model.access.csv",

auditlog/models/__init__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,3 @@
55
from . import http_request
66
from . import log
77
from . import auditlog_log_line_view
8-
from . import autovacuum

auditlog/models/http_request.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,6 @@ def _compute_display_name(self):
3131
httprequest.name or "?", fields.Datetime.to_string(tz_create_date)
3232
)
3333

34-
def name_get(self):
35-
return [(request.id, request.display_name) for request in self]
36-
3734
@api.model
3835
def current_http_request(self):
3936
"""Create a log corresponding to the current HTTP request, and returns
@@ -59,9 +56,9 @@ def current_http_request(self):
5956
vals = {
6057
"name": httprequest.path,
6158
"root_url": httprequest.url_root,
62-
"user_id": request.uid,
59+
"user_id": request.env.uid,
6360
"http_session_id": http_session_model.current_http_session(),
64-
"user_context": request.context,
61+
"user_context": request.env.context,
6562
}
6663
httprequest.auditlog_http_request_id = self.create(vals).id
6764
return httprequest.auditlog_http_request_id

auditlog/models/http_session.py

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from odoo.http import request
66

77

8-
class AuditlogtHTTPSession(models.Model):
8+
class AuditlogHTTPSession(models.Model):
99
_name = "auditlog.http.session"
1010
_description = "Auditlog - HTTP User session log"
1111
_order = "create_date DESC"
@@ -27,9 +27,6 @@ def _compute_display_name(self):
2727
fields.Datetime.to_string(tz_create_date),
2828
)
2929

30-
def name_get(self):
31-
return [(session.id, session.display_name) for session in self]
32-
3330
@api.model
3431
def current_http_session(self):
3532
"""Create a log corresponding to the current HTTP user session, and
@@ -43,11 +40,11 @@ def current_http_session(self):
4340
httpsession = request.session
4441
if httpsession:
4542
existing_session = self.search(
46-
[("name", "=", httpsession.sid), ("user_id", "=", request.uid)], limit=1
43+
[("name", "=", httpsession.sid), ("user_id", "=", request.env.uid)],
44+
limit=1,
4745
)
4846
if existing_session:
4947
return existing_session.id
50-
vals = {"name": httpsession.sid, "user_id": request.uid}
51-
httpsession.auditlog_http_session_id = self.create(vals).id
52-
return httpsession.auditlog_http_session_id
48+
vals = {"name": httpsession.sid, "user_id": request.env.uid}
49+
return self.create(vals).id
5350
return False

auditlog/models/log.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Copyright 2015 ABF OSIELL <https://osiell.com>
22
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
3-
from odoo import _, api, fields, models
3+
from odoo import api, fields, models
44
from odoo.exceptions import UserError
55
from odoo.tools.safe_eval import safe_eval
66

@@ -36,7 +36,7 @@ def create(self, vals_list):
3636
"""Insert model_name and model_model field values upon creation."""
3737
for vals in vals_list:
3838
if not vals.get("model_id"):
39-
raise UserError(_("No model defined to create log."))
39+
raise UserError(self.env._("No model defined to create log."))
4040
model = self.env["ir.model"].sudo().browse(vals["model_id"])
4141
vals.update({"model_name": model.name, "model_model": model.model})
4242
return super().create(vals_list)
@@ -46,7 +46,7 @@ def write(self, vals):
4646
changes."""
4747
if "model_id" in vals:
4848
if not vals["model_id"]:
49-
raise UserError(_("The field 'model_id' cannot be empty."))
49+
raise UserError(self.env._("The field 'model_id' cannot be empty."))
5050
model = self.env["ir.model"].sudo().browse(vals["model_id"])
5151
vals.update({"model_name": model.name, "model_model": model.model})
5252
return super().write(vals)
@@ -58,7 +58,7 @@ def show_res_ids(self):
5858
"view_mode": "list,form",
5959
"res_model": self.model_id.model,
6060
"domain": [("id", "in", safe_eval(self.res_ids))],
61-
"name": _("Exported Records"),
61+
"name": self.env._("Exported Records"),
6262
}
6363

6464

@@ -85,7 +85,7 @@ def create(self, vals_list):
8585
field_description."""
8686
for vals in vals_list:
8787
if not vals.get("field_id"):
88-
raise UserError(_("No field defined to create line."))
88+
raise UserError(self.env._("No field defined to create line."))
8989
field = self.env["ir.model.fields"].sudo().browse(vals["field_id"])
9090
vals.update(
9191
{"field_name": field.name, "field_description": field.field_description}
@@ -97,7 +97,7 @@ def write(self, vals):
9797
field_description values."""
9898
if "field_id" in vals:
9999
if not vals["field_id"]:
100-
raise UserError(_("The field 'field_id' cannot be empty."))
100+
raise UserError(self.env._("The field 'field_id' cannot be empty."))
101101
field = self.env["ir.model.fields"].sudo().browse(vals["field_id"])
102102
vals.update(
103103
{"field_name": field.name, "field_description": field.field_description}

auditlog/models/rule.py

Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33

44
import copy
55

6-
from odoo import Command, _, api, fields, models
6+
from odoo import Command, api, fields, models
7+
from odoo.api import NewId
78
from odoo.exceptions import UserError
89

910
FIELDS_BLACKLIST = [
@@ -104,8 +105,7 @@ class AuditlogRule(models.Model):
104105
"Log Exports",
105106
default=True,
106107
help=(
107-
"Select this if you want to keep track of exports "
108-
"of the model of this rule"
108+
"Select this if you want to keep track of exports of the model of this rule"
109109
),
110110
)
111111
log_type = fields.Selection(
@@ -146,16 +146,11 @@ class AuditlogRule(models.Model):
146146
string="Fields to Exclude",
147147
)
148148

149-
_sql_constraints = [
150-
(
151-
"model_uniq",
152-
"unique(model_id)",
153-
(
154-
"There is already a rule defined on this model\n"
155-
"You cannot define another: please edit the existing one."
156-
),
157-
)
158-
]
149+
_model_uniq = models.Constraint(
150+
"unique(model_id)",
151+
"There is already a rule defined on this model\nYou cannot define another: "
152+
"please edit the existing one.",
153+
)
159154

160155
def _register_hook(self):
161156
"""Get all rules and apply them to log method calls."""
@@ -245,7 +240,7 @@ def create(self, vals_list):
245240
"""Update the registry when a new rule is created."""
246241
for vals in vals_list:
247242
if "model_id" not in vals or not vals["model_id"]:
248-
raise UserError(_("No model defined to create line."))
243+
raise UserError(self.env._("No model defined to create line."))
249244
model = self.env["ir.model"].sudo().browse(vals["model_id"])
250245
vals.update({"model_name": model.name, "model_model": model.model})
251246
new_records = super().create(vals_list)
@@ -258,7 +253,7 @@ def write(self, vals):
258253
"""Update the registry when existing rules are updated."""
259254
if "model_id" in vals:
260255
if not vals["model_id"]:
261-
raise UserError(_("Field 'model_id' cannot be empty."))
256+
raise UserError(self.env._("Field 'model_id' cannot be empty."))
262257
model = self.env["ir.model"].sudo().browse(vals["model_id"])
263258
vals.update({"model_name": model.name, "model_model": model.model})
264259
res = super().write(vals)
@@ -291,7 +286,6 @@ def _make_create(self):
291286
users_to_exclude = self.mapped("users_to_exclude_ids")
292287

293288
@api.model_create_multi
294-
@api.returns("self", lambda value: value.id)
295289
def create_full(self, vals_list, **kwargs):
296290
self = self.with_context(auditlog_disabled=True)
297291
rule_model = self.env["auditlog.rule"]
@@ -324,7 +318,6 @@ def create_full(self, vals_list, **kwargs):
324318
return new_records
325319

326320
@api.model_create_multi
327-
@api.returns("self", lambda value: value.id)
328321
def create_fast(self, vals_list, **kwargs):
329322
self = self.with_context(auditlog_disabled=True)
330323
rule_model = self.env["auditlog.rule"]
@@ -398,7 +391,7 @@ def write_full(self, vals, **kwargs):
398391
self = self.with_context(auditlog_disabled=True)
399392
rule_model = self.env["auditlog.rule"]
400393
fields_list = rule_model.get_auditlog_fields(self)
401-
records_write = self.filtered(lambda r: not isinstance(r.id, models.NewId))
394+
records_write = self.filtered(lambda r: not isinstance(r.id, NewId))
402395
if not records_write:
403396
return write_full.origin(self, vals, **kwargs)
404397
old_values = {
@@ -408,8 +401,6 @@ def write_full(self, vals, **kwargs):
408401
.read(fields_list)
409402
}
410403
# invalidate_recordset method must be called with existing fields
411-
if self._name == "res.users":
412-
vals = self._remove_reified_groups(vals)
413404
# Prevent the cache of modified fields from being poisoned by
414405
# x2many items inaccessible to the current user.
415406
self.invalidate_recordset(vals.keys())
@@ -775,7 +766,7 @@ def subscribe(self):
775766
f"[('model_id', '=', {rule.model_id.id}), ('res_id', '=', active_id)]"
776767
)
777768
vals = {
778-
"name": _("View logs"),
769+
"name": self.env._("View logs"),
779770
"res_model": "auditlog.log",
780771
"binding_model_id": rule.model_id.id,
781772
"domain": domain,

auditlog/security/res_groups.xml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,19 @@
33
<field name="name">Auditlog Rights</field>
44
</record>
55

6+
<record model="res.groups.privilege" id="security_auditlog_privilege">
7+
<field name="name">Auditlog Privilege</field>
8+
<field name="category_id" ref="auditlog.security_auditlog_groups" />
9+
</record>
10+
611
<record model="res.groups" id="group_auditlog_user">
712
<field name="name">Auditlog User</field>
8-
<field name="category_id" ref="auditlog.security_auditlog_groups" />
13+
<field name="privilege_id" ref="auditlog.security_auditlog_privilege" />
914
</record>
1015

1116
<record model="res.groups" id="group_auditlog_manager">
1217
<field name="name">Auditlog Manager</field>
13-
<field name="category_id" ref="auditlog.security_auditlog_groups" />
18+
<field name="privilege_id" ref="auditlog.security_auditlog_privilege" />
1419
<field name="implied_ids" eval="[(4, ref('auditlog.group_auditlog_user'))]" />
1520
</record>
1621

0 commit comments

Comments
 (0)