Personal tools

Luca Fabbri

Apr 24, 2014

Integrare la validazione pyflakes in zest.releaser

Lo Zen Python: raggiungere il codice perfetto!

Integrare la validazione pyflakes in zest.releaser

Filed Under:

Ci sono molti strumenti di validazione del codice Python. Vediamo come integrare uno di questi (pyflakes) all'interno del nostro processo di rilascio

Tempo fa avevo mostrato tutti i modi con cui è possibile gestire i rilasci del vostro codice Plone/Python, terminando l'articolo con un plugin per zest.releaser, uno degli strumenti che più utilizziamo.

Di quanto zest.releaser sia utile, ben pensato ed estendibile, ne ho già parlato a sufficienza nel precedente articolo e non voglio ripetermi.
Oggi andiamo avanti nel processo di rendere il vostro codice migliore, introducendo un altro plugin: rt.zestreleaser.pyflakes.

read more

Feb 25, 2014

Integrazione degli Icon Font in Plone, in modo accessibile

Se dico 🐢 ♥ 🐍 capite tutti?

Integrazione degli Icon Font in Plone, in modo accessibile

Che sia una moda o una vera rivoluzione, l'uso degli icon font si sta diffondendo moltissimo, ma qualcuno ci mette in guardia sulla loro effettiva accessibilità

Sempre più i siti Web moderni abbandonano l'uso indiscriminato di icone per sostituirle con la tecnica degli icon font.

Toolbar di comandi su GitHubGuardiamo ad esempio la barra dei comandi di GitHub (un sito sempre aggiornato per quanto riguarda le tecniche di front-end). Credete ci sia anche solo un'immagine qui?

Da profano, posso spiegarvi la tecnica in due parole: sfruttare CSS (e la direttiva font-face) per mostrare un carattere Unicode all'interno del testo.

Dato che si parla di Unicode, ci sono centinaia di simboli che possono sembrare icone, eppure dopo tutto stiamo pur sempre parlando di caratteri! ☼ ✰ ⌂ ♥

Bello, eh?

read more

Dec 19, 2013

Come usare i widget Plone in semplici template HTML

Reverse engineering dei widget Plone: si può!

Come usare i widget Plone in semplici template HTML

Plone ha alcuni bellissimi widget HTML, ma cosa capita quando vogliamo "rubarli" e utilizzarli in un template? Due esempi (e un invito a tentare voi stessi!)

Nell'uso di tutti i giorni che facciamo del CMS Plone ci troviamo di fronte a una serie di comodi widget.
Se volessimo tentare una definizione di widget nel contesto Plone, potremmo dire "una porzione di HTML atta a definire la raccolta dati di una singola informazione". Se la definizione che ho tentato di dare vi sembra complicare le cose, proviamo ad essere più pratici:

  • per chiedere all'utente il proprio nome, viene usato un widget di tipo stringa che si traduce in un semplice campo input HTML
  • per chiedere una data ci si trova, invece, di fronte a un più complesso insieme di menù a tendina e a un calendario JavaScript, ma lo scopo finale è quello di raccogliere un'informazione di tipo data/ora.

Perché usare sempre gli stessi widget? Perché in questo modo forniamo un'interfaccia utente che diventa famigliare e ripetuta in tutti i contesti dove viene mostrato un form - che sia di invio mail, di inserimento di contenuti, ecc.

La strada maestra per poter generare i propri form general-purpose (e quindi riutilizzare questi widget) è l'uso di librerie di form (z3c.form in primis).

Cosa succede, però, se ci si trova a voler riutilizzare questi widget per altri scopi, non canonici, come realizzare un semplice form HTML partendo da una pagina bianca? E' quello che andremo a esplorare in questo articolo.

read more

Oct 02, 2013

Gestione Tabelle in Plone con collective.tablepage

Quando la tabella è un male necessario

Gestione Tabelle in Plone con collective.tablepage

Filed Under:

Gestire informazioni in formato "tabellare" con Plone è un'attività semplice? Che prodotti ci sono? Quali problematiche? Proviamo a rispondere!

Con lo zampino di una serie di recenti Decreti Legge su Amministrazione Aperta/Trasparente, siamo stati contattati da vari clienti più o meno con la stessa richiesta: "nel mio sito Plone devo essere in grado di mostrare ai cittadini una tabella e gestirla in modo semplice".

Questa improvvisa richiesta di tabelle HTML non è una vendetta di HTML 2.0 che torna dalla tomba: siamo sempre troppo diffidenti verso questo tag quando invece, usato per mostrare dati e non per disporre contenuti, può essere estremamente utile se non addirittura il migliore mezzo a nostra disposizione.

La Richiesta

Le discussioni telefoniche avute con questi clienti (per nostra fortuna tutti piuttosto "tecnici" e ferrati sull'uso di Plone) possono essere riassunte tutte allo stesso modo.

Cliente X
Ho bisogno di poter gestire in modo semplice una tabella, inserire nuove righe, impostare le colonne...
Io (diffidente)
Beh... già conosci come utilizzare le tabelle con TinyMCE dentro alle pagine Plone. Cos'altro ti serve?
Cliente X
Certamente, ma purtroppo non è così semplice... Avrei bisogno di delegare ad altri, a più persone, la gestione di questa tabella. In pratica io devo imbastirne il modello e altri utenti inserire le righe.

read more

Aug 27, 2013

Aumentare l'usabilità dei drop-down menù di Plone con Superfish

Menù troppo sensibili? Prova il nuovo Superfish!

Aumentare l'usabilità dei drop-down menù di Plone con Superfish

Un'analisi di come una serie di intelligenti plugin JavaScript hanno domato quintagroup.dropdownmenu, rendendo l'uso dei menù a tendina più facile per gli utenti

I menù a discesa (o drop-down) sono diventati un componente molto diffuso delle pagine Web degli ultimi anni, assieme ad altri elementi "reattivi" come possono essere accordion e le voci espandi/collassa.
La differenza tra questi diversi approcci è prettamente grafica mentre lo scopo è sempre quello di ottenere uno o più dei seguenti benefici:

  • ridurre il numero di click dell'utente
  • ridurre il numero di cambi di pagina richiesti all'utente
  • ottimizzare lo spazio della pagina Web.

Di recente ci è stato chiesto di fornire un sito Plone di un menù a tendina, trasformando le voci sotto all'intestazione in un drop-down menù.

Le soluzioni disponibili sono varie ma come sempre ci siamo guardati intorno nel tentativo di sfruttare ciò che la comunità offre.

read more