Ottenere (Giorni Visitati) nel report elenco utenti CSV

Ciao,

c’è la colonna (Giorni visitati) che vediamo al link:

https://LINK/admin/users/2/USERNAME

Sarebbe utile avere questa colonna nel file CSV della lista utenti generato da:
Pannello di Amministrazione => Scheda Utenti => Pulsante “Esporta”

3 Mi Piace

Non è esattamente quello che speravi di sentire, ma…

Il file di esportazione degli utenti contiene i campi della tabella User.
Il campo days_visited proviene dalla tabella User_Stats.

Sarebbe una “anti-normalizzazione” avere gli stessi dati identici più di una volta (ad esempio, se il campo fosse presente in entrambe le tabelle). Per quanto mi ricordo, ciò che vedi è il risultato di una query JOIN che utilizza la tabella User, ma anche altre tabelle collegate a un utente.

Detto questo, con il plugin Data Explorer non dovresti avere problemi a eseguire una tale query JOIN che genera un file di esportazione includendo quel campo.

3 Mi Piace

Non del tutto preciso: il file CSV include le colonne likes_given e likes_received, che si trovano anche nella stessa tabella user_stats:

--
-- Name: user_stats; Type: TABLE; Schema: public; Owner: discourse
--

CREATE TABLE public.user_stats (
    user_id integer NOT NULL,
    topics_entered integer DEFAULT 0 NOT NULL,
    time_read integer DEFAULT 0 NOT NULL,
    days_visited integer DEFAULT 0 NOT NULL,
    posts_read_count integer DEFAULT 0 NOT NULL,
    likes_given integer DEFAULT 0 NOT NULL,
    likes_received integer DEFAULT 0 NOT NULL,
    topic_reply_count integer DEFAULT 0 NOT NULL,
    new_since timestamp without time zone NOT NULL,
    read_faq timestamp without time zone,
    first_post_created_at timestamp without time zone,
    post_count integer DEFAULT 0 NOT NULL,
    topic_count integer DEFAULT 0 NOT NULL,
    bounce_score double precision DEFAULT 0 NOT NULL,
    reset_bounce_score_after timestamp without time zone
);

Dallo schema.sql

3 Mi Piace

Grazie, hai ragione. Sembra che ci sia più di quanto ricordi di aver già lavorato in passato.

3 Mi Piace

Grazie per aver segnalato il file correlato :smile:

Dato che topics_entered esiste nella funzione get_base_user_array proprio come le altre colonne… sembra essere un bug?

1 Mi Piace

Ci sono campi che mi interessavano e che non erano presenti nell’esportazione (di circa 1-2 anni fa). Ho assunto che fosse intenzionale e non un bug, ma non ho approfondito. La disponibilità delle esportazioni è diventata riservata solo agli amministratori e, non avendo più dati reali su cui lavorare, la difficoltà è aumentata, l’interesse è diminuito e alcune intense responsabilità nella vita reale hanno messo fine a quel percorso.

Senza approfondire, ipotizzo che, se non modificato nel core, un plugin potrebbe facilmente recuperare i valori dalle tabelle e aggiungerli all’esportazione CSV. Tuttavia, penso che il plugin Data Explorer sia un buon candidato per un’esportazione personalizzata.

Il mio interesse attuale si è spostato per lo più dall’hacking di file core riservati agli amministratori alla creazione di user script su misura.

Forse, con un sufficiente consenso, l’esportazione attuale potrebbe essere modificata?

3 Mi Piace

Ho scritto la query necessaria per questo:

SELECT
    u.username_lower AS "username",
    stats.days_visited
FROM users u
LEFT JOIN user_stats stats ON stats.user_id = u.id
ORDER BY u.id

Tuttavia, tali dati sono effettivamente utili nel rapporto sulla lista degli utenti per ottenere alcune informazioni.

Grazie @Mittineague :rose:

5 Mi Piace