Skip to content

Commit 4b5bf3e

Browse files
committed
♻️ [#502] Make filtering more robust to future changes
1 parent fb3e7b8 commit 4b5bf3e

File tree

2 files changed

+22
-12
lines changed

2 files changed

+22
-12
lines changed

backend/src/openarchiefbeheer/destruction/destruction_report.py

+14-11
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,17 @@
22
from typing import IO
33

44
from django.utils import timezone
5-
from django.utils.translation import gettext
5+
from django.utils.translation import gettext as _
66

77
import xlsxwriter
88
from glom import glom
99
from timeline_logger.models import TimelineLog
1010
from xlsxwriter.worksheet import Worksheet
1111

12+
from openarchiefbeheer.logging.logevent import (
13+
destruction_list_reviewed,
14+
get_event_template,
15+
)
1216
from openarchiefbeheer.zaken.api.constants import ZAAK_METADATA_FIELDS_MAPPINGS
1317

1418
from .constants import InternalStatus
@@ -23,15 +27,16 @@ def add_review_process_table(
2327
self, worksheet: Worksheet, start_row: int = 0
2428
) -> None:
2529
column_names = [
26-
gettext("Group"),
27-
gettext("Name"),
28-
gettext("Date/Time"),
29-
gettext("Changes"),
30+
_("Group"),
31+
_("Name"),
32+
_("Date/Time"),
33+
_("Changes"),
3034
]
3135
worksheet.write_row(start_row, 0, column_names)
3236

3337
logs = TimelineLog.objects.for_object(self).filter(
34-
template="logging/destruction_list_reviewed.txt", extra_data__approved=True
38+
template=get_event_template(destruction_list_reviewed),
39+
extra_data__approved=True,
3540
)
3641
for row_count, log in enumerate(logs):
3742
user_data = log.extra_data["user"]
@@ -45,7 +50,7 @@ def add_review_process_table(
4550
),
4651
# This column is not useful, since we are filtering on approved reviews.
4752
# But it was specifically requested.
48-
gettext("Has approved"),
53+
_("Has approved"),
4954
]
5055
worksheet.write_row(start_row + row_count + 1, 0, data)
5156

@@ -68,10 +73,8 @@ def add_zaken_table(self, worksheet: Worksheet, start_row: int = 0) -> None:
6873
def generate_destruction_report(self, file: IO) -> None:
6974
workbook = xlsxwriter.Workbook(file.name, options={"in_memory": False})
7075

71-
worksheet_zaken = workbook.add_worksheet(name=gettext("Deleted zaken"))
72-
worksheet_review_process = workbook.add_worksheet(
73-
name=gettext("Review process")
74-
)
76+
worksheet_zaken = workbook.add_worksheet(name=_("Deleted zaken"))
77+
worksheet_review_process = workbook.add_worksheet(name=_("Review process"))
7578

7679
self.add_zaken_table(worksheet_zaken)
7780
self.add_review_process_table(worksheet_review_process)

backend/src/openarchiefbeheer/logging/logevent.py

+8-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import traceback
2+
from typing import Callable
23

34
from django.db.models import Max, Min, Model
45

@@ -19,6 +20,8 @@
1920
format_zaaktype_choices,
2021
)
2122

23+
TEMPLATE_FORMAT = "logging/%(event)s.txt"
24+
2225

2326
def _create_log(
2427
model: Model, event: str, extra_data: dict | None = None, user: User | None = None
@@ -34,7 +37,7 @@ def _create_log(
3437

3538
return TimelineLog.objects.create(
3639
content_object=model,
37-
template=f"logging/{event}.txt",
40+
template=TEMPLATE_FORMAT % {"event": event},
3841
extra_data=extra_data,
3942
user=user,
4043
)
@@ -257,3 +260,7 @@ def resync_failed(exc: Exception) -> None:
257260
return TimelineLog.objects.create(
258261
template="logging/resync_failed.txt", extra_data={"error": error}
259262
)
263+
264+
265+
def get_event_template(logging_func: Callable) -> str:
266+
return TEMPLATE_FORMAT % {"event": logging_func.__name__}

0 commit comments

Comments
 (0)