From 6075d8621929b505b6155c13ae25638d08b8fd7d Mon Sep 17 00:00:00 2001 From: Istvan Soos Date: Tue, 1 Oct 2024 17:22:45 +0200 Subject: [PATCH] Fix automatic status on resolving an appeal. --- .../admin/actions/moderation_case_resolve.dart | 18 ++++++++++++------ .../admin/moderation_case_resolve_test.dart | 2 +- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/app/lib/admin/actions/moderation_case_resolve.dart b/app/lib/admin/actions/moderation_case_resolve.dart index a21ca47454..2df4a1b060 100644 --- a/app/lib/admin/actions/moderation_case_resolve.dart +++ b/app/lib/admin/actions/moderation_case_resolve.dart @@ -72,14 +72,20 @@ Closes the moderation case and updates the status based on the actions logged on final appealedCase = await tx.lookupValue(dbService .emptyKey .append(ModerationCase, id: mc.appealedCaseId!)); - final appealHadModeratedAction = + final appealedCaseHadModeratedAction = appealedCase.getActionLog().hasModeratedAction(); - if (appealHadModeratedAction) { - status = hasModeratedAction - ? ModerationStatus.moderationReverted - : ModerationStatus.moderationUpheld; + final compositeActionLog = ModerationActionLog(entries: [ + ...appealedCase.getActionLog().entries, + ...mc.getActionLog().entries, + ]); + final compositeHasModeratedAction = + compositeActionLog.hasModeratedAction(); + if (appealedCaseHadModeratedAction) { + status = compositeHasModeratedAction + ? ModerationStatus.moderationUpheld + : ModerationStatus.moderationReverted; } else { - status = hasModeratedAction + status = compositeHasModeratedAction ? ModerationStatus.noActionReverted : ModerationStatus.noActionUpheld; } diff --git a/app/test/admin/moderation_case_resolve_test.dart b/app/test/admin/moderation_case_resolve_test.dart index b569e3b2c7..da7889af38 100644 --- a/app/test/admin/moderation_case_resolve_test.dart +++ b/app/test/admin/moderation_case_resolve_test.dart @@ -115,7 +115,7 @@ void main() { reason: 'The package violated our policy.', ); - final mc = await _prepare(apply: true, appealCaseId: mc1.caseId); + final mc = await _prepare(apply: false, appealCaseId: mc1.caseId); expect(await _close(mc.caseId), 'moderation-reverted'); });