Gruppo esploratore dati report - bug parametro

Ho appena aggiornato a l’ultima versione di Data Explorer prima di pubblicare questo e posso confermare che questo problema è ancora presente per me.

Sul plugin Data Explorer c’è una funzionalità che ti permette di esporre query a gruppi. L’ho fatto per la query che conta i giorni consecutivi visitati perché ho utenti desiderosi di sapere quanto sono vicini ai badge per xxx giorni visitati.

Questo funzionava fino a poco tempo fa. Ora ricevo questo errore.

L’errore sembra essere causato dalla richiesta inviata (qui sto mostrando l’ispettore di rete su Firefox):
image

Sembra non aggiornare i valori dei parametri mentre vengono inseriti (username=null, min_days=10 sono i parametri predefiniti quando si carica la pagina). La console restituisce anche un errore “Uncaught TypeError: t is undefined” quando si inserisce testo nella casella username o si modifica il valore di min_days. Questa riga sta causando l’errore:

Questo è il massimo che posso fare per tracciare il problema senza dover fare un fork del repository e fare il debug di ogni riga. Volevo solo segnalare il problema e sono anche curioso di sapere se altri hanno lo stesso problema.

4 Mi Piace

Grazie @piffy per la segnalazione. Abbiamo recentemente apportato alcune modifiche al plugin data-explorer, quindi potrebbe essere valido. Ho testato più query con un input di nomi utente e non ho riscontrato il problema collegato nell’OP. Potresti inserire qui la tua query in modo che possa testarla?

Grazie :slight_smile:

5 Mi Piace
--[params]
-- string :username
-- int :min_days = 10

WITH consecutive_visits AS (
  SELECT user_id,
       visited_at,
       -- Il valore di s sarà lo stesso per ogni gruppo di giorni consecutivi
       visited_at - (DENSE_RANK() OVER (PARTITION BY user_id ORDER BY visited_at))::int s
    FROM user_visits
    WHERE user_id = (SELECT id FROM users WHERE username = :username)
)

SELECT
MIN(visited_at) period_start,
COUNT(*) AS consecutive_days,
MAX(visited_at) period_end
FROM consecutive_visits
GROUP BY user_id, s
HAVING COUNT(*) >= :min_days
ORDER BY period_start DESC

Ho provato con la modalità sicura attiva (solo plugin ufficiali) e ho lo stesso problema.

1 Mi Piace

Grazie, ci darò un’occhiata.

2 Mi Piace

Come suggerimento extra divertente mentre Isaac esamina la questione, puoi anche utilizzare il parametro user_id per ottenere una casella di completamento automatico dei parametri. Ad esempio:

-- [params]
-- user_id :user
-- int :min_days = 10

WITH consecutive_visits AS (
  SELECT user_id,
       visited_at,
       -- Il valore di s sarà lo stesso per ogni gruppo di giorni consecutivi
       visited_at - (DENSE_RANK() OVER (PARTITION BY user_id ORDER BY visited_at))::int s
    FROM user_visits
    WHERE user_id = :user
)

SELECT
MIN(visited_at) period_start,
COUNT(*) AS consecutive_days,
MAX(visited_at) period_end
FROM consecutive_visits
GROUP BY user_id, s
HAVING COUNT(*) >= :min_days
ORDER BY period_start DESC

5 Mi Piace

Grazie, è utile saperlo! Ha molto più senso di una casella di testo a formato libero

3 Mi Piace

Mi dispiace per il ritardo @piffy. Dovrebbe essere risolto ora :slight_smile:

4 Mi Piace

Funziona, grazie mille! I miei utenti apprezzano molto questa funzionalità

3 Mi Piace