feat(scheduling): retire replaced participant responses

This commit is contained in:
2026-07-22 03:40:04 +02:00
parent 835ad82916
commit 448546e487
5 changed files with 724 additions and 48 deletions

View File

@@ -67,7 +67,7 @@ from govoplan_scheduling.backend.service import (
submit_scheduling_availability,
submit_public_scheduling_participation,
update_scheduling_candidate_slot,
update_scheduling_request_with_invitation_tokens,
update_scheduling_request_with_change_log,
)
@@ -431,7 +431,7 @@ def api_update_scheduling_request(
request_id=request_id,
)
try:
request, _invitation_tokens = update_scheduling_request_with_invitation_tokens(
request, participant_mutations = update_scheduling_request_with_change_log(
session,
tenant_id=principal.tenant_id,
request_id=request_id,
@@ -439,6 +439,21 @@ def api_update_scheduling_request(
)
except SchedulingError as exc:
raise _scheduling_http_error(exc) from exc
for mutation in participant_mutations:
_audit_invitation_action(
session,
principal=principal,
request_id=request_id,
participant_id=mutation.participant_id,
action=mutation.action,
details={
"replacement_participant_id": mutation.replacement_participant_id,
"changed_fields": list(mutation.changed_fields),
"invitation_revoked": mutation.invitation_revoked,
"retired_response_count": mutation.retired_response_count,
"notification_id": mutation.notification_id,
},
)
response = _request_response(request, principal=principal)
session.commit()
return response