From 087b5f89b9b6da0bbae7d885160e89b78f053ef8 Mon Sep 17 00:00:00 2001 From: AyushShukla1807 Date: Mon, 30 Mar 2026 04:00:30 +0530 Subject: [PATCH 1/2] Fix: Resolve 500 POST errors during round creation by implementing strict frontend schema validation --- frontend/src/components/Round/RoundNew.vue | 33 +++++++++++++++++----- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/frontend/src/components/Round/RoundNew.vue b/frontend/src/components/Round/RoundNew.vue index f8682fbe..ec8f3301 100644 --- a/frontend/src/components/Round/RoundNew.vue +++ b/frontend/src/components/Round/RoundNew.vue @@ -312,19 +312,38 @@ const cancelRound = () => { const submitRound = () => { if (!formData.value.deadline_date) { - alertService.error({ - message: $t('montage-required-voting-deadline') - }) + alertService.error({ message: $t('montage-required-voting-deadline') }) return } - if (!formData.value.name || (formData.value.quorum > 0 && formData.value.jurors.length === 0)) { - alertService.error({ - message: $t('montage-required-fill-inputs') - }) + if (!formData.value.name || formData.value.name.trim() === '') { + alertService.error({ message: $t('montage-required-fill-inputs') }) + return + } + + if (formData.value.quorum <= 0 || (formData.value.quorum > 0 && formData.value.jurors.length === 0)) { + alertService.error({ message: $t('montage-error-invalid-quorum') }) return } + if (roundIndex === 0) { + // Validate Import Source for first round + if (selectedImportSource.value === 'category' && !importSourceValue.value.category) { + alertService.error({ message: $t('montage-error-missing-category') }) + return + } + if (selectedImportSource.value === 'csv' && !importSourceValue.value.csv_url) { + alertService.error({ message: $t('montage-error-missing-csv') }) + return + } + } else { + // Validate Thresholds for subsequent rounds + if (!formData.value.threshold) { + alertService.error({ message: $t('montage-error-missing-threshold') }) + return + } + } + // Check if the round is the first round if (roundIndex === 0) { const payload = { From 9bed4191e6623bf2cbf8697496a5f497cc5b2481 Mon Sep 17 00:00:00 2001 From: AyushShukla1807 Date: Wed, 1 Apr 2026 01:55:42 +0530 Subject: [PATCH 2/2] feat(media): implement CommonsMedia POC for Unified Media Engine handling audio and video --- frontend/src/components/CommonsMedia.vue | 105 ++++++++++++++++++ .../src/components/Vote/ImageReviewDialog.vue | 4 +- 2 files changed, 107 insertions(+), 2 deletions(-) create mode 100644 frontend/src/components/CommonsMedia.vue diff --git a/frontend/src/components/CommonsMedia.vue b/frontend/src/components/CommonsMedia.vue new file mode 100644 index 00000000..72566871 --- /dev/null +++ b/frontend/src/components/CommonsMedia.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/frontend/src/components/Vote/ImageReviewDialog.vue b/frontend/src/components/Vote/ImageReviewDialog.vue index 4c4bd27d..ac0b7f76 100644 --- a/frontend/src/components/Vote/ImageReviewDialog.vue +++ b/frontend/src/components/Vote/ImageReviewDialog.vue @@ -1,7 +1,7 @@