diff --git a/src/app/(admin)/admin/projects/[id]/page.tsx b/src/app/(admin)/admin/projects/[id]/page.tsx
index e376cd6..a02c368 100644
--- a/src/app/(admin)/admin/projects/[id]/page.tsx
+++ b/src/app/(admin)/admin/projects/[id]/page.tsx
@@ -816,33 +816,48 @@ function ProjectDetailContent({ projectId }: { projectId: string }) {
/>
- {/* All Files list */}
+ {/* All Files list — grouped by round */}
{files && files.length > 0 && (
<>
({
- id: f.id,
- fileName: f.fileName,
- fileType: f.fileType,
- mimeType: f.mimeType,
- size: f.size,
- bucket: f.bucket,
- objectKey: f.objectKey,
- pageCount: f.pageCount,
- textPreview: f.textPreview,
- detectedLang: f.detectedLang,
- langConfidence: f.langConfidence,
- analyzedAt: f.analyzedAt ? String(f.analyzedAt) : null,
- requirementId: f.requirementId,
- requirement: f.requirement ? {
- id: f.requirement.id,
- name: f.requirement.name,
- description: f.requirement.description,
- isRequired: f.requirement.isRequired,
- } : null,
- }))}
+ groupedFiles={(() => {
+ const groups = new Map()
+ const mappedFiles = files.map((f) => ({
+ id: f.id,
+ fileName: f.fileName,
+ fileType: f.fileType as 'EXEC_SUMMARY' | 'PRESENTATION' | 'VIDEO' | 'OTHER' | 'BUSINESS_PLAN' | 'VIDEO_PITCH' | 'SUPPORTING_DOC',
+ mimeType: f.mimeType,
+ size: f.size,
+ bucket: f.bucket,
+ objectKey: f.objectKey,
+ pageCount: f.pageCount,
+ textPreview: f.textPreview,
+ detectedLang: f.detectedLang,
+ langConfidence: f.langConfidence,
+ analyzedAt: f.analyzedAt ? String(f.analyzedAt) : null,
+ requirementId: f.requirementId,
+ requirement: f.requirement ? {
+ id: f.requirement.id,
+ name: f.requirement.name,
+ description: f.requirement.description,
+ isRequired: f.requirement.isRequired,
+ } : null,
+ }))
+ for (const f of files) {
+ const roundId = f.requirement?.roundId ?? null
+ const roundName = f.requirement?.round?.name ?? 'General'
+ const sortOrder = f.requirement?.round?.sortOrder ?? -1
+ const key = roundId ?? '_general'
+ if (!groups.has(key)) {
+ groups.set(key, { roundId, roundName, sortOrder, files: [] })
+ }
+ const mapped = mappedFiles.find((m) => m.id === f.id)!
+ groups.get(key)!.files.push(mapped)
+ }
+ return Array.from(groups.values())
+ })()}
/>
>
)}
diff --git a/src/server/routers/file.ts b/src/server/routers/file.ts
index 3d39cfe..b36b202 100644
--- a/src/server/routers/file.ts
+++ b/src/server/routers/file.ts
@@ -358,7 +358,11 @@ export const fileRouter = router({
},
},
},
- orderBy: [{ fileType: 'asc' }, { createdAt: 'asc' }],
+ orderBy: [
+ { requirement: { round: { sortOrder: 'asc' } } },
+ { fileType: 'asc' },
+ { createdAt: 'asc' },
+ ],
})
}),