feat(admin): filtro por empresa + contadores filtrados

This commit is contained in:
markosbenitez
2026-06-17 10:01:59 -03:00
parent b9a3118c84
commit 5c17a9846a

View File

@@ -137,18 +137,29 @@ export default async function AdminResponsesPage({
const responses = (responsesData ?? []) as unknown as ResponseRow[] const responses = (responsesData ?? []) as unknown as ResponseRow[]
// 3. Contadores totales (independientes del límite de 500 submissions) // 3. Contadores totales (independientes del límite de 500 submissions),
const { count: totalSubmissions } = await supabase // filtrados por survey_id cuando hay filtro activo.
let submissionsCountQuery = supabase
.from('responses') .from('responses')
.select('*', { count: 'exact', head: true }) .select('*', { count: 'exact', head: true })
if (surveyId) {
submissionsCountQuery = submissionsCountQuery.eq('survey_id', surveyId)
}
const { count: totalSubmissions } = await submissionsCountQuery
let answersCountQuery = supabase
.from('answers')
.select('*, responses!inner(survey_id)', { count: 'exact', head: true })
.in('question_id', allowedIds)
if (surveyId) {
answersCountQuery = answersCountQuery.eq('responses.survey_id', surveyId)
}
const { count: totalAnswers } = const { count: totalAnswers } =
allowedIds.length > 0 allowedIds.length > 0 ? await answersCountQuery : { count: 0 }
? await supabase
.from('answers')
.select('*', { count: 'exact', head: true })
.in('question_id', allowedIds)
: { count: 0 }
// 4. Aplanar: una fila por answer, ordenadas por position dentro de cada submission // 4. Aplanar: una fila por answer, ordenadas por position dentro de cada submission
const rows: DisplayRow[] = [] const rows: DisplayRow[] = []