What's new

Version v0.29.0

All versions (90)

v0.7.9

2026-08-17

Fixed

  • Dopo un rilascio l'ambiente di prova risponde subito (CLRA-44) — appena pubblicata una nuova versione l'indirizzo di prova smetteva di rispondere: la pagina restava a caricare fino a scadere, pur essendo il programma già acceso e sano. In mezzo restava la copia vecchia appena sostituita, che il risparmio energetico continuava a considerare viva e ad aspettare. Ora quella copia viene tolta a fine rilascio, e la prima pagina che si apre risponde senza doverci mettere mano.
  • Gli orari serali si scrivono e si salvano (CLRA-49) — nei campi dell'ora, sia negli orari di apertura di un locale sia nelle date di una serata, non si riusciva a inserire niente dalle dieci in poi: digitando 21 restava scritto 02. Le frecce cambiavano il numero a schermo ma salvavano quello vecchio, in silenzio. Ora la seconda cifra entra, l'ora scelta con le frecce è quella che finisce in archivio anche chiudendo il riquadro, un'ora impossibile viene segnalata invece di diventare un'altra ora, e un giorno lasciato senza orari non risulta più aperto senza orari. Sistemato anche il riquadro della data, che si chiudeva da solo appena si sceglieva il giorno.
  • Chi gestisce molti locali riesce a passare da uno all'altro (CLRA-55) — il menu in alto li elencava tutti uno sotto l'altro, senza una casella di ricerca e scrivendo sotto ogni nome soltanto "Proprietario", uguale per tutti: con centinaia di locali era una lista lunga quaranta schermate. Adesso il menu ha una casella che filtra mentre si scrive, per nome e per città, sotto ogni nome si legge la città, e l'elenco viene caricato all'apertura invece di finire dentro ogni pagina del pannello — che quindi non si appesantisce più al crescere del numero di locali.
  • Chiedere che Clubbel arrivi nella propria città funziona (CLRA-48) — si compilava la richiesta e non arrivava a nessuno: si perdeva per strada senza un errore. Ora viene registrata davvero.
  • Il giorno scelto sul calendario resta visibile (CLRA-50) — nel riquadro per scegliere una data il giorno selezionato spariva, perché testo e sfondo finivano dello stesso colore: restava un quadretto vuoto al posto del numero. Ora si vede in entrambi i temi.
  • Il registro delle azioni degli amministratori si riempie (CLRA-51) — restava sempre vuoto, quindi non si poteva sapere chi avesse fatto cosa. Ora le azioni vengono registrate.
  • I grafici della crescita mostrano i dati che ci sono (CLRA-52) — le curve restavano piatte a zero anche con iscrizioni e serate registrate: il conteggio guardava una finestra di tempo sbagliata e trovava sempre il vuoto. Ora conta davvero gli ultimi sei mesi.
  • Sul sito si cerca una serata vicino a casa (CLRA-53) — cercando una città si ottenevano serate di altre zone, e non c'era modo di filtrare per vicinanza. Ora le liste pubbliche si filtrano per zona.
  • Un locale senza serate in programma lo dice (CLRA-54) — la sua pagina si contraddiceva: annunciava gli eventi e poi non ne mostrava nessuno, senza spiegare perché. Ora lo scrive chiaramente.
  • Chi registra un locale sa che deve ancora essere approvato (CLRA-56) — dopo l'invio non compariva nessun avviso e il pannello sembrava già attivo. Ora un riquadro lo dice finché l'approvazione non arriva.
  • Una ricerca senza risultati non dice più che il sito è vuoto (CLRA-57) — quando la ricerca non trovava niente, le liste rispondevano "non c'è nessun contenuto", come se il sito fosse spoglio. Ora distinguono fra "non c'è niente" e "la tua ricerca non ha trovato niente".
  • «Vedi eventi passati» porta alle serate passate (CLRA-58) — sulle pagine di locali, crew e organizzatori il pulsante non faceva niente. Ora apre l'elenco delle serate già fatte.
  • Le schede del sito si traducono per intero (CLRA-59) — su locali, serate, crew e organizzatori alcune scritte restavano in italiano anche col sito in inglese. Ora sono tradotte tutte.
  • Il riepilogo finale della registrazione di un locale mostra tutto (CLRA-60) — all'ultimo passo mancava parte di quello che si era inserito, quindi non si poteva ricontrollare prima di inviare.
  • Un locale appena registrato non nasce chiuso tutta la settimana (CLRA-61) — il passo degli orari partiva con tutti i giorni segnati come chiusi, e chi non li toccava pubblicava un locale mai aperto.
  • Chi fa parte di un gruppo senza gestirlo capisce perché non entra (CLRA-62) — veniva rimandato indietro con un messaggio generico che faceva pensare di essere stato escluso dal gruppo, o che il sito fosse rotto. Ora la risposta distingue fra "non ne fai parte" e "ne fai parte ma non lo gestisci".
  • Dopo un cambio di utente non si vedono più i dati di chi c'era prima (CLRA-63) — tornando indietro col browser riapparivano per un attimo le pagine del profilo precedente.
  • Approvare o rifiutare un locale dà una conferma (CLRA-64) — si premeva e non succedeva niente di visibile, quindi non si sapeva se avesse funzionato. Ora dice cosa è successo e su quale elemento.
  • In fondo al sito non ci sono più collegamenti social che non portano da nessuna parte (CLRA-65) — le icone c'erano ma i profili no. Ora compaiono soltanto quando il profilo esiste davvero.
  • Le analitiche mostrano l'andamento come grafico (CLRA-68) — erano ventuno tabelle di numeri e nessun disegno: per capire se una cosa cresceva o calava bisognava leggere le righe una per una.
  • I comandi per approvare e rifiutare hanno un nome leggibile (CLRA-70) — erano due sole icone, e chi usa un lettore di schermo non poteva sapere quale fosse quale.

v0.7.8

2026-08-17

Fixed

  • I pulsanti per salvare una serata e seguire un locale funzionano (CLRA-47) — si premevano e non succedeva niente, senza nemmeno un avviso: chiamavano indirizzi che l'API non ha più, e le pagine Salvati e Preferiti restavano vuote di conseguenza. Ora il gesto arriva a destinazione su serate, locali, artisti e organizzatori, il pulsante resta acceso anche riaprendo la pagina, il numero dei follower si aggiorna subito, un errore lo dice invece di tacere, e chi non è ancora registrato viene portato alla pagina di accesso vera.

v0.7.7

2026-08-16

Fixed

  • Chi dimentica la password ora riesce davvero a cambiarla — l'email di recupero mandava una lunghissima stringa di lettere e numeri, con l'istruzione di incollarla nell'app: quel campo non è mai esistito. Adesso arriva un codice di sei cifre da digitare nell'app, e nella stessa email anche un link per chi era partito dal sito. Il codice vale un quarto d'ora, si può sbagliare cinque volte e non se ne può chiedere uno nuovo prima di un minuto.

v0.7.6

2026-08-15

Changed

  • La configurazione usa stabilmente il database Queue migrato — concluso il cutover, i deploy usano il QUEUE_DATABASE_URL canonico e non eseguono più la procedura transitoria di drain, riconciliazione e copia.

v0.7.5

2026-08-15

Fixed

  • L'account dice all'app se l'onboarding è stato completato (CLRA-45) — onboarding_completed_at non è mai uscito da AccountSerializer, mentre il router dell'app lo legge per decidere se mostrare il wizard: chi lo finiva veniva rispedito al primo passo a ogni navigazione, anche dopo un completamento andato a buon fine. Riguardava le build di prova dell'app (da v0.0.28-beta), non quella pubblicata sugli store.

v0.7.4

2026-08-15

Security

  • Aggiornata SQLite alla versione corretta per GHSA-mwm8-39rw-8826 — il vincolo esclude le versioni vulnerabili a un use-after-free negli argomenti delle funzioni aggregate.

v0.7.3

2026-08-15

Fixed

  • Il deploy production non richiede più il secret degli account di test staging — la password resta disponibile esclusivamente al ruolo web di staging, dove viene usata dai seed dedicati.

v0.7.2

2026-08-14

Fixed

  • Le migration sono compatibili con PgBouncer in transaction pooling — le connessioni production non usano prepared statement nominali che possono riferirsi a una sessione server gia' rilasciata al pool.

v0.7.1

2026-08-14

Changed

  • Completato il passaggio all'infrastruttura ad alta disponibilità — il rilascio trasferisce la coda in modo verificato sui database condivisi e distribuisce Clubbel su entrambi i nodi applicativi. Cache, Cable e Queue non dipendono più dal filesystem di un singolo server.

v0.7.0

2026-08-14

Added

  • Si entra con Google, Apple e Facebook (CLRA-37) — accanto a email e password, l'app di Clubbel e quella degli scout permettono di entrare con l'account che si ha già. Chi entra per la prima volta si ritrova l'account creato con nome ed email presi da lì. Se il profilo Facebook non ha un'email, l'app lo dice invece di fermarsi senza spiegazioni.
  • Un amministratore può creare gli account degli altri amministratori (CLRA-36) — dal pannello e dall'app di gestione si inserisce nome ed email e parte un invito: chi lo riceve imposta da sé la password, che non viene mai comunicata a voce. L'invito vale sette giorni e si può rimandare. Il permesso di amministratore si dà e si toglie, ma nessuno può togliersi il proprio né lasciare Clubbel senza nessun amministratore.
  • Pagina pubblica per la cancellazione dei dati — richiesta da Meta per approvare l'accesso con Facebook, raggiungibile dal fondo del sito insieme alle altre pagine legali.

Security

  • Gli accessi social sono legati alla richiesta che li ha aperti (CLRA-42) — prima di aprire il pannello di Apple o Facebook l'app chiede un numero usa-e-getta, che vale dieci minuti e una volta sola: un token intercettato non basta più a entrare, perché è legato alla richiesta partita da noi.
  • Locali, crew e organizzatori si creano, si correggono e si eliminano dall'app (CLRA-21) — dal computer un amministratore poteva creare, correggere ed eliminare la scheda di un locale, di una crew o di un organizzatore; dall'app no. Ora si può fare anche dal telefono, con gli stessi campi del computer. Una scheda creata da un amministratore nasce già approvata e le viene attribuita la paternità, così la si ritrova subito nell'elenco senza dover passare dal computer.

Changed

  • Gli elenchi dell'amministrazione si sfogliano a pagine e si cercano anche dall'app (CLRA-19) — dal computer le liste di persone, richieste di gestione, registro attività e tipologie si sfogliavano già a pagine e si filtravano; dall'app arrivava invece sempre e solo un blocco fisso dei primi risultati, senza modo di cercare. Ora l'app riceve una pagina per volta insieme al numero totale di risultati, e la ricerca per nome o email restituisce solo chi corrisponde — lo stesso comportamento che si ha dal computer. L'elenco resta dov'era nella risposta, con accanto le informazioni di pagina: chi mostra le liste nell'app va aggiornato per sfogliarle.