fix: usar valores por defecto de template-tags al ejecutar queries
All checks were successful
build-and-deploy / build (push) Successful in 43s
build-and-deploy / deploy (push) Successful in 3s

- Extraer valores por defecto de template-tags de la card
- Construir parámetros dinámicamente basados en la configuración
- Soportar tipos: date, boolean, text
- Resolver error de parámetros faltantes en queries con fechas
This commit is contained in:
2025-10-14 03:47:37 -06:00
parent c69c3bdafc
commit 9d5e2dbfe2

View File

@@ -214,15 +214,36 @@ async function executeQuery() {
queryResult.value = null queryResult.value = null
try { try {
// Extract template tags and their defaults from the card
const templateTags = props.card.dataset_query?.native?.['template-tags'] || {}
const parameters = []
// Build parameters from template tags
for (const [tagName, tagConfig] of Object.entries(templateTags)) {
const config = tagConfig as any
let paramType = 'text'
let paramValue = config.default
// Determine parameter type based on tag type
if (config.type === 'date') {
paramType = 'date/single'
// Use default value if present
paramValue = config.default || null
} else if (config.type === 'boolean') {
paramType = 'category'
paramValue = config.default || [false]
}
parameters.push({
type: paramType,
target: ['variable', ['template-tag', tagName]],
value: paramValue
})
}
const result = await $fetch(`/api/metabase/cards/${props.card.id}/query`, { const result = await $fetch(`/api/metabase/cards/${props.card.id}/query`, {
method: 'POST', method: 'POST',
body: { body: { parameters }
parameters: [
{ type: 'category', target: ['variable', ['template-tag', 'incluir_anulados']], value: [false] },
{ type: 'date/single', target: ['variable', ['template-tag', 'fecha_desde']], value: null },
{ type: 'date/single', target: ['variable', ['template-tag', 'fecha_hasta']], value: null }
]
}
}) })
queryResult.value = result queryResult.value = result
} catch (e: any) { } catch (e: any) {