feat(admin): filtro por empresa + contadores filtrados
This commit is contained in:
@@ -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[] = []
|
||||||
|
|||||||
Reference in New Issue
Block a user