From f49344d33bbdfcfbbc59c5c7625f45d56d196cf7 Mon Sep 17 00:00:00 2001 From: Iulia Dormenco Date: Fri, 31 Oct 2025 11:00:31 +0200 Subject: [PATCH] add submission number column to form submissions export --- .../Export/FormSubmissions/ExportFormSubmissionsJob.cs | 10 ++++++++++ .../Export/FormSubmissions/FormSubmissionsDataTable.cs | 1 + .../FormSubmissionsDataTableGenerator.cs | 1 + .../FormSubmissions/ReadModels/SubmissionModel.cs | 1 + .../FormSubmissionsDataTableGeneratorTests.cs | 1 + 5 files changed, 14 insertions(+) diff --git a/api/src/Vote.Monitor.Hangfire/Jobs/Export/FormSubmissions/ExportFormSubmissionsJob.cs b/api/src/Vote.Monitor.Hangfire/Jobs/Export/FormSubmissions/ExportFormSubmissionsJob.cs index 54d68ae50..319904679 100644 --- a/api/src/Vote.Monitor.Hangfire/Jobs/Export/FormSubmissions/ExportFormSubmissionsJob.cs +++ b/api/src/Vote.Monitor.Hangfire/Jobs/Export/FormSubmissions/ExportFormSubmissionsJob.cs @@ -128,6 +128,7 @@ private async Task> GetSubmissions(Guid electionRoundId, G SUBMISSIONS AS ( SELECT PSI."Id" AS "SubmissionId", + 1 as "SubmissionNumber", PSI."PollingStationInformationFormId" AS "FormId", 'PSI' AS "FormType", PSI."PollingStationId", @@ -193,6 +194,14 @@ AND PSIF."NumberOfQuestions" <> PSI."NumberOfQuestionsAnswered" UNION ALL SELECT FS."Id" AS "SubmissionId", + ROW_NUMBER() OVER ( + PARTITION BY + FS."PollingStationId", + F."Id", + FS."MonitoringObserverId" + ORDER BY + FS."CreatedAt" + ) AS "SubmissionNumber", F."Id" AS "FormId", F."FormType", FS."PollingStationId", @@ -298,6 +307,7 @@ ORDER BY ) SELECT S."SubmissionId", + S."SubmissionNumber", S."FormId", S."FormType", S."TimeSubmitted", diff --git a/api/src/Vote.Monitor.Hangfire/Jobs/Export/FormSubmissions/FormSubmissionsDataTable.cs b/api/src/Vote.Monitor.Hangfire/Jobs/Export/FormSubmissions/FormSubmissionsDataTable.cs index b5ff6b7af..0fd7958c7 100644 --- a/api/src/Vote.Monitor.Hangfire/Jobs/Export/FormSubmissions/FormSubmissionsDataTable.cs +++ b/api/src/Vote.Monitor.Hangfire/Jobs/Export/FormSubmissions/FormSubmissionsDataTable.cs @@ -20,6 +20,7 @@ private FormSubmissionsDataTable(Guid formId, string defaultLanguage, IReadOnlyL _header.AddRange([ "SubmissionId", + "SubmissionNumber", "TimeSubmitted", "FollowUpStatus", "Level1", diff --git a/api/src/Vote.Monitor.Hangfire/Jobs/Export/FormSubmissions/FormSubmissionsDataTableGenerator.cs b/api/src/Vote.Monitor.Hangfire/Jobs/Export/FormSubmissions/FormSubmissionsDataTableGenerator.cs index d77016459..85ebfe3d0 100644 --- a/api/src/Vote.Monitor.Hangfire/Jobs/Export/FormSubmissions/FormSubmissionsDataTableGenerator.cs +++ b/api/src/Vote.Monitor.Hangfire/Jobs/Export/FormSubmissions/FormSubmissionsDataTableGenerator.cs @@ -43,6 +43,7 @@ public FormSubmissionsDataTableGenerator ForSubmission(SubmissionModel submissio var row = new List { submission.SubmissionId.ToString(), + submission.SubmissionNumber, submission.TimeSubmitted.ToString("s"), submission.FollowUpStatus.Value, submission.Level1, diff --git a/api/src/Vote.Monitor.Hangfire/Jobs/Export/FormSubmissions/ReadModels/SubmissionModel.cs b/api/src/Vote.Monitor.Hangfire/Jobs/Export/FormSubmissions/ReadModels/SubmissionModel.cs index 3f0addb20..43b9c259c 100644 --- a/api/src/Vote.Monitor.Hangfire/Jobs/Export/FormSubmissions/ReadModels/SubmissionModel.cs +++ b/api/src/Vote.Monitor.Hangfire/Jobs/Export/FormSubmissions/ReadModels/SubmissionModel.cs @@ -9,6 +9,7 @@ namespace Vote.Monitor.Hangfire.Jobs.Export.FormSubmissions.ReadModels; public class SubmissionModel { public Guid SubmissionId { get; init; } + public int SubmissionNumber { get; set; } [JsonConverter(typeof(SmartEnumNameConverter))] public SubmissionFollowUpStatus FollowUpStatus { get; set; } diff --git a/api/tests/Vote.Monitor.Hangfire.UnitTests/Jobs/ExportData/FormSubmissionsDataTableGeneratorTests.cs b/api/tests/Vote.Monitor.Hangfire.UnitTests/Jobs/ExportData/FormSubmissionsDataTableGeneratorTests.cs index 1b3cf898d..5cecdba23 100644 --- a/api/tests/Vote.Monitor.Hangfire.UnitTests/Jobs/ExportData/FormSubmissionsDataTableGeneratorTests.cs +++ b/api/tests/Vote.Monitor.Hangfire.UnitTests/Jobs/ExportData/FormSubmissionsDataTableGeneratorTests.cs @@ -112,6 +112,7 @@ public class FormSubmissionsDataTableGeneratorTests private static readonly string[] _submissionColumns = [ "SubmissionId", + "SubmissionNumber", "TimeSubmitted", "FollowUpStatus", "Level1",