Skip to content

Commit d83b221

Browse files
Improve audit log message consistency
- Add periods at the end of all audit log messages for consistency - Simplify [Review Session] pending status message to match other patterns - Update all related tests to reflect the new message formats Co-authored-by: Ester Beltrami <estyxx@users.noreply.github.com>
1 parent bd2b2e2 commit d83b221

8 files changed

Lines changed: 44 additions & 44 deletions

File tree

backend/api/grants/mutations.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ def send_grant(self, info: Info, input: SendGrantInput) -> SendGrantResult:
283283
},
284284
)
285285

286-
create_addition_admin_log_entry(request.user, instance, "Grant created")
286+
create_addition_admin_log_entry(request.user, instance, "Grant created.")
287287

288288
# hack because we return django models
289289
instance.__strawberry_definition__ = Grant.__strawberry_definition__
@@ -309,7 +309,7 @@ def update_grant(self, info: Info, input: UpdateGrantInput) -> UpdateGrantResult
309309

310310
instance.save()
311311

312-
create_change_admin_log_entry(request.user, instance, "Grant updated")
312+
create_change_admin_log_entry(request.user, instance, "Grant updated.")
313313

314314
Participant.objects.update_or_create(
315315
user_id=request.user.id,
@@ -346,7 +346,7 @@ def send_grant_reply(
346346
grant.save()
347347

348348
create_change_admin_log_entry(
349-
request.user, grant, f"Grantee has replied with status {grant.status}"
349+
request.user, grant, f"Grantee has replied with status {grant.status}."
350350
)
351351

352352
admin_url = request.build_absolute_uri(grant.get_admin_url())

backend/api/grants/tests/test_send_grant.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ def test_send_grant(
126126
assert log_entry.user_id == user.id
127127
assert log_entry.user == user
128128
assert log_entry.object_id == str(grant.id)
129-
assert log_entry.change_message == "Grant created"
129+
assert log_entry.change_message == "Grant created."
130130

131131
# Verify that the correct email template was used and email was sent
132132
emails_sent = sent_emails()

backend/api/grants/tests/test_send_grant_reply.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ def test_status_is_updated_when_reply_is_confirmed(graphql_client, user):
9090
assert LogEntry.objects.filter(
9191
user=user,
9292
object_id=grant.id,
93-
change_message="Grantee has replied with status confirmed",
93+
change_message="Grantee has replied with status confirmed.",
9494
).exists()
9595

9696

@@ -109,7 +109,7 @@ def test_status_is_updated_when_reply_is_refused(graphql_client, user):
109109
assert LogEntry.objects.filter(
110110
user=user,
111111
object_id=grant.id,
112-
change_message="Grantee has replied with status refused",
112+
change_message="Grantee has replied with status refused.",
113113
).exists()
114114

115115

backend/api/grants/tests/test_update_grant.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ def test_update_grant(graphql_client, user):
135135
assert log_entry.user_id == user.id
136136
assert log_entry.user == user
137137
assert log_entry.object_id == str(grant.id)
138-
assert log_entry.change_message == "Grant updated"
138+
assert log_entry.change_message == "Grant updated."
139139

140140

141141
def test_cannot_update_a_grant_if_user_is_not_owner(

backend/grants/admin.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ def send_reply_emails(modeladmin, request, queryset):
221221
create_change_admin_log_entry(
222222
request.user,
223223
grant,
224-
change_message="Sent Approved reply email to applicant",
224+
change_message="Sent Approved reply email to applicant.",
225225
)
226226
messages.info(request, f"Sent Approved reply email to {grant.name}")
227227

@@ -233,7 +233,7 @@ def send_reply_emails(modeladmin, request, queryset):
233233
create_change_admin_log_entry(
234234
request.user,
235235
grant,
236-
change_message="Sent Waiting List reply email to applicant",
236+
change_message="Sent Waiting List reply email to applicant.",
237237
)
238238
messages.info(request, f"Sent Waiting List reply email to {grant.name}")
239239

@@ -242,7 +242,7 @@ def send_reply_emails(modeladmin, request, queryset):
242242
create_change_admin_log_entry(
243243
request.user,
244244
grant,
245-
change_message="Sent Rejected reply email to applicant",
245+
change_message="Sent Rejected reply email to applicant.",
246246
)
247247
messages.info(request, f"Sent Rejected reply email to {grant.name}")
248248

@@ -270,7 +270,7 @@ def send_grant_reminder_to_waiting_for_confirmation(modeladmin, request, queryse
270270
create_change_admin_log_entry(
271271
request.user,
272272
grant,
273-
change_message="Sent Approved reminder email to applicant",
273+
change_message="Sent Approved reminder email to applicant.",
274274
)
275275
messages.info(request, f"Grant reminder sent to {grant.name}")
276276

@@ -290,7 +290,7 @@ def send_reply_email_waiting_list_update(modeladmin, request, queryset):
290290
create_change_admin_log_entry(
291291
request.user,
292292
grant,
293-
change_message="Sent Waiting List update reply email to applicant",
293+
change_message="Sent Waiting List update reply email to applicant.",
294294
)
295295
messages.info(request, f"Sent Waiting List update reply email to {grant.name}")
296296

@@ -325,7 +325,7 @@ def create_grant_vouchers(modeladmin, request, queryset):
325325
create_addition_admin_log_entry(
326326
request.user,
327327
grant,
328-
change_message="Created voucher for this grant",
328+
change_message="Created voucher for this grant.",
329329
)
330330

331331
vouchers_to_create.append(
@@ -346,12 +346,12 @@ def create_grant_vouchers(modeladmin, request, queryset):
346346
create_change_admin_log_entry(
347347
request.user,
348348
existing_voucher,
349-
change_message="Upgraded Co-Speaker voucher to Grant voucher",
349+
change_message="Upgraded Co-Speaker voucher to Grant voucher.",
350350
)
351351
create_change_admin_log_entry(
352352
request.user,
353353
grant,
354-
change_message="Updated existing Co-Speaker voucher to grant",
354+
change_message="Updated existing Co-Speaker voucher to grant.",
355355
)
356356
existing_voucher.voucher_type = ConferenceVoucher.VoucherType.GRANT
357357
vouchers_to_update.append(existing_voucher)
@@ -380,7 +380,7 @@ def mark_rejected_and_send_email(modeladmin, request, queryset):
380380
create_change_admin_log_entry(
381381
request.user,
382382
grant,
383-
change_message=f"Status changed from '{old_status}' to 'rejected' and rejection email sent",
383+
change_message=f"Status changed from '{old_status}' to 'rejected' and rejection email sent.",
384384
)
385385

386386
send_grant_reply_rejected_email.delay(grant_id=grant.id)
@@ -441,7 +441,7 @@ def delete_model(self, request, obj):
441441
create_change_admin_log_entry(
442442
request.user,
443443
obj.grant,
444-
change_message=f"Reimbursement removed: {obj.category.name}",
444+
change_message=f"Reimbursement removed: {obj.category.name}.",
445445
)
446446
super().delete_model(request, obj)
447447

@@ -456,7 +456,7 @@ def delete_model(self, request, obj):
456456
create_change_admin_log_entry(
457457
request.user,
458458
obj.grant,
459-
change_message=f"Reimbursement removed: {obj.category.name}",
459+
change_message=f"Reimbursement removed: {obj.category.name}.",
460460
)
461461
super().delete_model(request, obj)
462462

@@ -573,19 +573,19 @@ def save_model(self, request, obj, form, change):
573573
create_change_admin_log_entry(
574574
request.user,
575575
obj,
576-
change_message=f"Status changed from '{obj._original_status}' to '{obj.status}'",
576+
change_message=f"Status changed from '{obj._original_status}' to '{obj.status}'.",
577577
)
578578
if obj.pending_status != obj._original_pending_status:
579579
create_change_admin_log_entry(
580580
request.user,
581581
obj,
582-
change_message=f"Pending status changed from '{obj._original_pending_status}' to '{obj.pending_status}'",
582+
change_message=f"Pending status changed from '{obj._original_pending_status}' to '{obj.pending_status}'.",
583583
)
584584
else:
585585
create_addition_admin_log_entry(
586586
request.user,
587587
obj,
588-
change_message="Grant created",
588+
change_message="Grant created.",
589589
)
590590
super().save_model(request, obj, form, change)
591591

backend/grants/tests/test_admin.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ def test_send_reply_emails_approved_set_deadline_in_fourteen_days(
165165
assert LogEntry.objects.filter(
166166
user=admin_user,
167167
object_id=grant.id,
168-
change_message="Sent Approved reply email to applicant",
168+
change_message="Sent Approved reply email to applicant.",
169169
).exists()
170170

171171

@@ -189,7 +189,7 @@ def test_send_reply_emails_waiting_list(rf, mocker, admin_user):
189189
assert LogEntry.objects.filter(
190190
user=admin_user,
191191
object_id=grant.id,
192-
change_message="Sent Waiting List reply email to applicant",
192+
change_message="Sent Waiting List reply email to applicant.",
193193
).exists()
194194

195195

@@ -213,7 +213,7 @@ def test_send_reply_emails_waiting_list_maybe(rf, mocker, admin_user):
213213
assert LogEntry.objects.filter(
214214
user=admin_user,
215215
object_id=grant.id,
216-
change_message="Sent Waiting List reply email to applicant",
216+
change_message="Sent Waiting List reply email to applicant.",
217217
).exists()
218218

219219

@@ -237,7 +237,7 @@ def test_send_reply_emails_rejected(rf, mocker, admin_user):
237237
assert LogEntry.objects.filter(
238238
user=admin_user,
239239
object_id=grant.id,
240-
change_message="Sent Rejected reply email to applicant",
240+
change_message="Sent Rejected reply email to applicant.",
241241
).exists()
242242

243243

@@ -269,7 +269,7 @@ def test_send_grant_reminder_to_waiting_for_confirmation(rf, mocker, admin_user)
269269
assert LogEntry.objects.filter(
270270
user=admin_user,
271271
object_id=grant.id,
272-
change_message="Sent Approved reminder email to applicant",
272+
change_message="Sent Approved reminder email to applicant.",
273273
).exists()
274274

275275

@@ -299,7 +299,7 @@ def test_send_reply_email_waiting_list_update(rf, mocker, admin_user):
299299
assert LogEntry.objects.filter(
300300
user=admin_user,
301301
object_id=grant.id,
302-
change_message="Sent Waiting List update reply email to applicant",
302+
change_message="Sent Waiting List update reply email to applicant.",
303303
).exists()
304304

305305

@@ -341,12 +341,12 @@ def test_create_grant_vouchers(rf, mocker, admin_user):
341341
assert LogEntry.objects.filter(
342342
user=admin_user,
343343
object_id=grant_1.id,
344-
change_message="Created voucher for this grant",
344+
change_message="Created voucher for this grant.",
345345
).exists()
346346
assert LogEntry.objects.filter(
347347
user=admin_user,
348348
object_id=grant_2.id,
349-
change_message="Created voucher for this grant",
349+
change_message="Created voucher for this grant.",
350350
).exists()
351351

352352

@@ -577,12 +577,12 @@ def test_mark_rejected_and_send_email(rf, mocker, admin_user):
577577
assert LogEntry.objects.filter(
578578
user=admin_user,
579579
object_id=grant1.id,
580-
change_message="Status changed from 'waiting_list' to 'rejected' and rejection email sent",
580+
change_message="Status changed from 'waiting_list' to 'rejected' and rejection email sent.",
581581
).exists()
582582
assert LogEntry.objects.filter(
583583
user=admin_user,
584584
object_id=grant2.id,
585-
change_message="Status changed from 'waiting_list_maybe' to 'rejected' and rejection email sent",
585+
change_message="Status changed from 'waiting_list_maybe' to 'rejected' and rejection email sent.",
586586
).exists()
587587

588588

@@ -738,7 +738,7 @@ def test_delete_reimbursement_from_admin_logs_audit_log_entry(rf, admin_user):
738738
assert LogEntry.objects.filter(
739739
user=admin_user,
740740
object_id=grant.id,
741-
change_message=f"Reimbursement removed: {reimbursement.category.name}",
741+
change_message=f"Reimbursement removed: {reimbursement.category.name}.",
742742
).exists()
743743

744744

@@ -753,7 +753,7 @@ def test_save_grant_in_admin_logs_audit_log_entry(rf, admin_user):
753753
assert LogEntry.objects.filter(
754754
user=admin_user,
755755
object_id=grant.id,
756-
change_message="Grant created",
756+
change_message="Grant created.",
757757
).exists()
758758

759759

@@ -769,7 +769,7 @@ def test_save_grant_in_admin_logs_audit_log_entry_for_status_change(rf, admin_us
769769
assert LogEntry.objects.filter(
770770
user=admin_user,
771771
object_id=grant.id,
772-
change_message="Status changed from 'pending' to 'confirmed'",
772+
change_message="Status changed from 'pending' to 'confirmed'.",
773773
).exists()
774774

775775

@@ -787,5 +787,5 @@ def test_save_grant_in_admin_logs_audit_log_entry_for_pending_status_change(
787787
assert LogEntry.objects.filter(
788788
user=admin_user,
789789
object_id=grant.id,
790-
change_message="Pending status changed from 'pending' to 'confirmed'",
790+
change_message="Pending status changed from 'pending' to 'confirmed'.",
791791
).exists()

backend/reviews/admin.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ def _review_grants_recap_view(self, request, review_session):
325325
create_deletion_admin_log_entry(
326326
request.user,
327327
grant,
328-
change_message=f"[Review Session] Reimbursement removed: {reimbursement.category.name}",
328+
change_message=f"[Review Session] Reimbursement removed: {reimbursement.category.name}.",
329329
)
330330
reimbursement.delete()
331331
else:
@@ -338,7 +338,7 @@ def _review_grants_recap_view(self, request, review_session):
338338
create_deletion_admin_log_entry(
339339
request.user,
340340
grant,
341-
change_message=f"[Review Session] Reimbursement removed: {reimbursement.category.name}",
341+
change_message=f"[Review Session] Reimbursement removed: {reimbursement.category.name}.",
342342
)
343343
to_delete.delete()
344344

@@ -357,7 +357,7 @@ def _review_grants_recap_view(self, request, review_session):
357357
create_change_admin_log_entry(
358358
request.user,
359359
grant,
360-
change_message=f"[Review Session] Grant status updated: pending_status changed from '{original_pending_status}' to '{grant.pending_status}'.",
360+
change_message=f"[Review Session] Pending status changed from '{original_pending_status}' to '{grant.pending_status}'.",
361361
)
362362

363363
# The frontend may send reimbursement categories as checked by default,

backend/reviews/tests/test_admin.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,7 @@ def test_save_review_grants_updates_grant_and_creates_reimbursements(rf, mocker)
375375
assert LogEntry.objects.filter(
376376
user=user,
377377
object_id__in=[str(grant_1.id), str(grant_2.id)],
378-
change_message="[Review Session] Grant status updated: pending_status changed from 'None' to 'approved'.",
378+
change_message="[Review Session] Pending status changed from 'None' to 'approved'.",
379379
).exists()
380380
assert LogEntry.objects.filter(
381381
user=user,
@@ -477,7 +477,7 @@ def test_save_review_grants_update_grants_status_to_rejected_removes_reimburseme
477477
assert LogEntry.objects.filter(
478478
user=user,
479479
object_id=str(reimbursement.id),
480-
change_message=f"[Review Session] Reimbursement removed: {reimbursement.category.name}",
480+
change_message=f"[Review Session] Reimbursement removed: {reimbursement.category.name}.",
481481
).exists()
482482

483483

@@ -562,19 +562,19 @@ def test_save_review_grants_modify_reimbursements(rf, mocker):
562562
assert LogEntry.objects.filter(
563563
user=user,
564564
object_id=grant_1.id,
565-
change_message=f"[Review Session] Reimbursement removed: {travel_category.name}",
565+
change_message=f"[Review Session] Reimbursement removed: {travel_category.name}.",
566566
).exists()
567567
assert LogEntry.objects.filter(
568568
user=user,
569569
object_id=grant_1.id,
570-
change_message=f"[Review Session] Reimbursement removed: {accommodation_category.name}",
570+
change_message=f"[Review Session] Reimbursement removed: {accommodation_category.name}.",
571571
).exists()
572572

573573
# pending_status change should not be logged because the grant status is not changed
574574
assert not LogEntry.objects.filter(
575575
user=user,
576576
object_id=grant_1.id,
577-
change_message="[Review Session] Grant status updated: pending_status changed from 'approved' to 'None'.",
577+
change_message="[Review Session] Pending status changed from 'approved' to 'None'.",
578578
).exists()
579579

580580

@@ -721,5 +721,5 @@ def test_save_review_grants_two_times_does_not_create_duplicate_log_entries(rf,
721721
assert LogEntry.objects.filter(
722722
user=user,
723723
object_id=grant_1.id,
724-
change_message="[Review Session] Grant status updated: pending_status changed from 'None' to 'approved'.",
724+
change_message="[Review Session] Pending status changed from 'None' to 'approved'.",
725725
).exists()

0 commit comments

Comments
 (0)