Skip to content

Commit d4098bd

Browse files
[IMP] auditlog: replace 'Subscribed' terminology by 'Confirmed'
The concept of subscriptions is slightly misleading in the auditlog domain because users do not 'subscribe' to individual rules and no notifications are being sent out.
1 parent 36aebf0 commit d4098bd

File tree

6 files changed

+51
-46
lines changed

6 files changed

+51
-46
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
def migrate(cr, version):
2+
"""19.0: state 'subscribed' is renamed to 'confirmed'"""
3+
cr.execute(
4+
"update auditlog_rule set state = 'confirmed' where state = 'subscribed';"
5+
)

auditlog/models/auditlog_rule.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ class AuditlogRule(models.Model):
201201
)
202202

203203
state = fields.Selection(
204-
[("draft", "Draft"), ("subscribed", "Subscribed")],
204+
[("draft", "Draft"), ("confirmed", "Confirmed")],
205205
required=True,
206206
default="draft",
207207
)
@@ -244,7 +244,7 @@ def _register_hook(self):
244244
if not hasattr(self.pool, "_auditlog_model_cache"):
245245
self.pool._auditlog_model_cache = {}
246246
if not self:
247-
self = self.search([("state", "=", "subscribed")])
247+
self = self.search([("state", "=", "confirmed")])
248248
return self._patch_methods()
249249

250250
def _patch_method(self, model, method_name, check_attr):
@@ -272,7 +272,7 @@ def _patch_methods(self):
272272
updated = False
273273
model_cache = self.pool._auditlog_model_cache
274274
for rule in self:
275-
if rule.state != "subscribed" or not self.pool.get(
275+
if rule.state != "confirmed" or not self.pool.get(
276276
rule.model_id.model or rule.model_model
277277
):
278278
continue
@@ -346,8 +346,8 @@ def write(self, vals):
346346
return res
347347

348348
def unlink(self):
349-
"""Unsubscribe rules before removing them."""
350-
self.unsubscribe()
349+
"""Set rules to draft before removing them."""
350+
self.set_to_draft()
351351
return super().unlink()
352352

353353
@api.model
@@ -839,8 +839,8 @@ def _prepare_log_line_vals_on_create(self, log_vals, field, new_values):
839839
]
840840
return vals
841841

842-
def subscribe(self):
843-
"""Subscribe Rule for auditing changes on model and apply shortcut
842+
def set_to_confirmed(self):
843+
"""Confirm Rule for auditing changes on model and apply shortcut
844844
to view logs on that model.
845845
"""
846846
act_window_model = self.env["ir.actions.act_window"]
@@ -856,11 +856,11 @@ def subscribe(self):
856856
"domain": domain,
857857
}
858858
act_window = act_window_model.sudo().create(vals)
859-
rule.write({"state": "subscribed", "action_id": act_window.id})
859+
rule.write({"state": "confirmed", "action_id": act_window.id})
860860
return True
861861

862-
def unsubscribe(self):
863-
"""Unsubscribe Auditing Rule on model."""
862+
def set_to_draft(self):
863+
"""Reset Auditlog Rules state to draft."""
864864
# Revert patched methods
865865
self._revert_methods()
866866
for rule in self:

auditlog/tests/common.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def create_rule(cls, vals):
2020
def tearDownClass(cls):
2121
for rule in cls.env["auditlog.rule"].search([]):
2222
try:
23-
rule.unsubscribe()
23+
rule.set_to_draft()
2424
except KeyError: # pragma: no cover
2525
continue # Model not loaded yet
2626

auditlog/tests/test_auditlog.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
class AuditlogCommon:
1414
def test_LogCreation(self):
1515
"""First test, caching some data."""
16-
self.groups_rule.subscribe()
16+
self.groups_rule.set_to_confirmed()
1717
group = self.env["res.groups"].create({"name": "testgroup1"})
1818
self.assertEqual(
1919
self.env["auditlog.log"].search_count(
@@ -29,7 +29,7 @@ def test_LogCreation(self):
2929
def test_LogCreation2(self):
3030
"""Second test, using cached data of the first one."""
3131

32-
self.groups_rule.subscribe()
32+
self.groups_rule.set_to_confirmed()
3333

3434
auditlog_log = self.env["auditlog.log"]
3535
testgroup2 = self.env["res.groups"].create({"name": "testgroup2"})
@@ -50,7 +50,7 @@ def test_LogCreation3(self):
5050
representation).
5151
"""
5252

53-
self.groups_rule.subscribe()
53+
self.groups_rule.set_to_confirmed()
5454
auditlog_log = self.env["auditlog.log"]
5555
testgroup3 = self.env["res.groups"].create({"name": "testgroup3"})
5656
testgroup4 = self.env["res.groups"].create({"name": "testgroup4"})
@@ -98,7 +98,7 @@ def test_LogCreation4(self):
9898
has been generated.
9999
"""
100100

101-
self.groups_rule.subscribe()
101+
self.groups_rule.set_to_confirmed()
102102

103103
auditlog_log = self.env["auditlog.log"]
104104
groups_vals = [
@@ -126,7 +126,7 @@ def test_LogCreation5(self):
126126
has been generated. And then delete it, check that it has created log
127127
with 0 fields updated.
128128
"""
129-
self.groups_rule.subscribe()
129+
self.groups_rule.set_to_confirmed()
130130

131131
auditlog_log = self.env["auditlog.log"]
132132
testgroup5 = self.env["res.groups"].create({"name": "testgroup5"})
@@ -156,7 +156,7 @@ def test_LogCreation6(self):
156156
has been generated. And then delete it, check that it has created log
157157
with x fields updated as per rule
158158
"""
159-
self.groups_rule.subscribe()
159+
self.groups_rule.set_to_confirmed()
160160

161161
auditlog_log = self.env["auditlog.log"]
162162
testgroup6 = self.env["res.groups"].create({"name": "testgroup6"})
@@ -186,7 +186,7 @@ def test_LogCreation7(self):
186186
187187
Check that creation goes as planned (no error coming from ``deepcopy``)
188188
"""
189-
self.groups_rule.subscribe()
189+
self.groups_rule.set_to_confirmed()
190190

191191
auditlog_log = self.env["auditlog.log"]
192192
cat = self.env["ir.module.category"].create({"name": "Test Category"})
@@ -217,7 +217,7 @@ def test_LogCreation7(self):
217217

218218
def test_LogUpdate(self):
219219
"""Tests write results with different M2O values."""
220-
self.groups_rule.subscribe()
220+
self.groups_rule.set_to_confirmed()
221221
testgroup3 = self.env["res.groups"].create({"name": "testgroup3"})
222222
testgroup4 = self.env["res.groups"].create({"name": "testgroup4"})
223223
group = self.env["res.groups"].create(
@@ -270,7 +270,7 @@ def test_LogUpdate(self):
270270

271271
def test_LogDelete(self):
272272
"""Tests unlink results"""
273-
self.groups_rule.subscribe()
273+
self.groups_rule.set_to_confirmed()
274274
group = self.env["res.groups"].create({"name": "testgroup1"})
275275
group.unlink()
276276
self.assertEqual(
@@ -317,7 +317,7 @@ def setUpClass(cls):
317317
)
318318

319319
def test_LogExport(self):
320-
self.groups_rule.subscribe()
320+
self.groups_rule.set_to_confirmed()
321321

322322
auditlog_log = self.env["auditlog.log"]
323323
self.env["res.groups"].search([]).export_data(["name"])
@@ -395,7 +395,7 @@ def setUpClass(cls):
395395
}
396396
)
397397

398-
cls.auditlog_rule.subscribe()
398+
cls.auditlog_rule.set_to_confirmed()
399399
# Trigger log creation
400400
rec = cls.env["x_test.model"].create({"x_test_field": "test value"})
401401
rec.write({"x_test_field": "test value 2"})
@@ -528,7 +528,7 @@ def setUpClass(cls):
528528
cls.auditlog_rule.users_to_exclude_ids = [[4, cls.users_to_exclude_ids]]
529529

530530
# Subscribe auditlog.rule
531-
cls.auditlog_rule.subscribe()
531+
cls.auditlog_rule.set_to_confirmed()
532532

533533
cls.auditlog_log = cls.env["auditlog.log"]
534534

@@ -685,7 +685,7 @@ def setUpClass(cls):
685685

686686
cls.auditlog_log = cls.env["auditlog.log"]
687687
# Subscribe auditlog.rule
688-
cls.auditlog_rule.subscribe()
688+
cls.auditlog_rule.set_to_confirmed()
689689

690690
def test_01_AuditlogFull_field_group_write_log(self):
691691
"""Change group and check successfully created log"""
@@ -736,7 +736,7 @@ def setUpClass(cls):
736736
cls.auditlog_rule.fields_to_exclude_ids = [[4, cls.fields_to_exclude_ids]]
737737

738738
# Subscribe auditlog.rule
739-
cls.auditlog_rule.subscribe()
739+
cls.auditlog_rule.set_to_confirmed()
740740

741741
cls.auditlog_log = cls.env["auditlog.log"]
742742

auditlog/tests/test_autovacuum.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ def setUp(self):
1717
"log_create": True,
1818
"log_write": True,
1919
"log_unlink": True,
20-
"state": "subscribed",
20+
"state": "confirmed",
2121
"log_type": "full",
2222
}
2323
)

auditlog/views/auditlog_rule_views.xml

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,17 @@
77
<form string="Rule">
88
<header>
99
<button
10-
string="Subscribe"
11-
name="subscribe"
10+
string="Confirm"
11+
name="set_to_confirmed"
1212
type="object"
1313
invisible="state != 'draft'"
1414
class="oe_highlight"
1515
/>
1616
<button
17-
string="Unsubscribe"
18-
name="unsubscribe"
17+
string="Set to Draft"
18+
name="set_to_draft"
1919
type="object"
20-
invisible="state != 'subscribed'"
20+
invisible="state != 'confirmed'"
2121
/>
2222
<field name="state" widget="statusbar" />
2323
</header>
@@ -27,7 +27,7 @@
2727
<field
2828
name="name"
2929
placeholder="Description..."
30-
readonly="state == 'subscribed'"
30+
readonly="state == 'confirmed'"
3131
/>
3232
</h1>
3333
</div>
@@ -36,29 +36,29 @@
3636
<field
3737
name="model_id"
3838
options="{'no_create': True}"
39-
readonly="state == 'subscribed'"
39+
readonly="state == 'confirmed'"
4040
/>
4141
<field
4242
name="log_type"
4343
widget="radio"
44-
readonly="state == 'subscribed'"
44+
readonly="state == 'confirmed'"
4545
/>
4646
<field
4747
name="capture_record"
48-
readonly="state == 'subscribed'"
48+
readonly="state == 'confirmed'"
4949
invisible="log_type != 'full' or log_unlink != True"
5050
/>
5151
<field
5252
name="users_to_exclude_ids"
5353
widget="many2many_tags"
5454
options="{'no_create': True}"
55-
readonly="state == 'subscribed'"
55+
readonly="state == 'confirmed'"
5656
/>
5757
<field
5858
name="fields_to_exclude_ids"
5959
widget="many2many_tags"
6060
options="{'no_create': True}"
61-
readonly="state == 'subscribed'"
61+
readonly="state == 'confirmed'"
6262
/>
6363
<field
6464
name="action_id"
@@ -67,13 +67,13 @@
6767
/>
6868
</group>
6969
<group string="Logging">
70-
<field name="log_create" readonly="state == 'subscribed'" />
71-
<field name="log_read" readonly="state == 'subscribed'" />
72-
<field name="log_write" readonly="state == 'subscribed'" />
73-
<field name="log_unlink" readonly="state == 'subscribed'" />
70+
<field name="log_create" readonly="state == 'confirmed'" />
71+
<field name="log_read" readonly="state == 'confirmed'" />
72+
<field name="log_write" readonly="state == 'confirmed'" />
73+
<field name="log_unlink" readonly="state == 'confirmed'" />
7474
<field
7575
name="log_export_data"
76-
readonly="state == 'subscribed'"
76+
readonly="state == 'confirmed'"
7777
/>
7878
</group>
7979
</group>
@@ -87,7 +87,7 @@
8787
<field name="arch" type="xml">
8888
<list
8989
decoration-info="state == 'draft'"
90-
decoration-bf="state == 'subscribed'"
90+
decoration-bf="state == 'confirmed'"
9191
>
9292
<field name="name" />
9393
<field name="model_id" />
@@ -113,9 +113,9 @@
113113
string="Draft"
114114
/>
115115
<filter
116-
name="state_subscribed"
117-
domain="[('state','=','subscribed')]"
118-
string="Subscribed"
116+
name="state_confirmed"
117+
domain="[('state', '=', 'confirmed')]"
118+
string="Confirmed"
119119
/>
120120
<field name="model_id" />
121121
<group>

0 commit comments

Comments
 (0)