agile.open.connected
Lo stato dell’arte di Plone 5
Bologna 30 aprile 2014
Stefano Marchetti
Documentazione - docs.plone.org
✓ http://docs.plone.org è online
✓ Ha contenuti aggiornati ma anche (in progress in attesa dei contenuti):
‣ ricerca per versione di Plone
‣ lingua
Documentazione:focus
✓ Avere la documentazione in un posto solo per aiutare le persone ad usare Plone e per migliorare la sua qualità
✓ La prima cosa è stata collezionare e capire quali contenuti sono adatti per:
‣ integratori
‣ sys admin
‣ sviluppatori
‣ utenti
Documentazione - strategia
✓ La strategia è quella di rendere più semplice essere nel documentation team:
‣ quindi piccoli e semplici pezzi da gestire
‣ create nuove linee guida: questo è utile sia per Plone che per gli Addon
‣ organizzati molti sprint per coinvolgere più persone
Documentazione - strumenti
✓ Papyrus (https://github.com/plone/papyrus) trasforma i sorgenti reST in HTML/PDF
‣ RoboFramework cattura le immagini direttamente da Plone
‣ Transifex (https://www.transifex.com/) è molto utile per migliorare il lavoro dei redattori
Utenti e gruppi - login
✓ Implementazione più moderna con z3c.form
✓ Da implementare l’autenticazione da sorgenti esterne
Utenti e gruppi- registrazione
✓ La registrazione funziona
✓ L’indicatore della “qualità” della password e la registrazione da sorgenti esterne sono da implementare
Utenti e gruppi - control Panel
✓ Compatibile con il nuovo stile Plone
✓ Mostra più info sull’utente: data di registrazione, data ultimo login, se il login è consentito e se l’indirizzo email è verificato
✓ Azioni “massive”: aggiungere molti utenti ad un gruppo o aggiungere un ruolo a tanti utenti
Utenti e gruppi- author page
✓ La “author page”, con le attività, è fusa con la pagina di profilo dell’utente
‣ Foto grande, Biografia, Attività
‣ Location, email, telefono
✓ Il form di edit del profilo è una combinazione della attuale “info utente” e del form delle preferenze
✓ E’ possibile gestire i campi (TTW), il nome non è più un campo “monolitico” obbligatorio
Utenti come contenuti - Pros and Cons
Pros Cons Same tools / API for dealing with content Time to index / catalog overhead
Ability to query users as content Navigation issues
Ability to search users as / with content Getting update from external user source
Ability to workflow users / users have workflow state Complexity / size of task
Ability to create permissions on users / fence users to permissions
Backwards compatibility with pre-existing applications
Memberdata integrates with user Way to designate members from potential members in an external source
If using email address as login, and login changes, then the redirector already works. What user owns a user if user in content?
Pannello di controllo: miglioramenti
Mockup e widget
✓ Obiettivo principale: avere “widget” agnostici dalla tecnologia che possono essere riutilizzati come i Lego per costruire widget più complessi, con i pattern come idea
‣ Frontend: plone.github.io/mockup/dev/
‣ Backend: plone.app.widgets
✓ L‘idea è di avere qualcosa di client side in modo che chi si occupa di JS si possa unire alla community
Target di Mockup
✓ Nuovi sviluppatori di frontend: loro non devono sapere nulla di Plone ma solo di pattern e le buone pratiche di JS
✓ I plonisti che dovrebbero “solo riusare” i pattern esistenti
✓ Gli utenti finali che avranno una migliore UI
Struttura: gestione di una cartella con contenuti
Pick-a-date
Widget per i correlati
TinyMCE - Editor
Content type con Dexterity
✓ Volevamo che l’utente potesse definire i propri contenuti senza il bisogno di un programmatore
‣ Volevamo anche i behaviors (e.g. leadImage)
✓ Avevamo Dexterity ma non i tipi standard (adesso sì)
✓ Avevamo bisogno delle stesse funzionalità
Content type - strategia generale
✓ Interessa soprattutto gli end user!!
✓ I tipi di default che possono essere estesi!
✓ Vogliamo sorprendere gli utenti, non rompere nulla, “solo” dare loro ulteriori poteri
✓ Quale è lo stato dell’arte?
‣ pronto per la produzione
‣ la migrazione dei contenuti base pronta
‣ stiamo lavorando sulla migrazione di contenuti “custom”Ph
oto
by s
ickm
outh
y -
Crea
tive
Com
mon
s At
trib
utio
n-N
onCo
mm
erci
al L
icen
se h
ttp:
//w
ww
.flic
kr.c
om/p
hoto
s/32
2241
33@
N07
Composite page
✓ Vogliamo mettere assieme:
‣ tile: la nuova cosa “cool” del momento
‣ viewlet: un componente base Plone
‣ portlet: ne abbiamo alcune tonnellate in giro
Composite page - vincoli
✓ vogliamo avere una UI più usabile
‣ basta con tre colonne e portlet che non passano da una all’altra
✓ ci serve un motore di “regole”
‣ se non ho più le colonne come mi regolo con l’ereditarietà?
✓ vogliamo essere retrocompatibiliPh
oto
by k
evin
doo
ley
- Cr
eativ
e Co
mm
ons
Attr
ibut
ion
Lice
nse
htt
p://
ww
w.fl
ickr
.com
/pho
tos/
1283
6528
@N
00
Composite page - idee e piani
✓ sfruttare Dexterity e i behaviour
‣ creiamo dei layout e associamoli ai contenuti (TTW)
✓ miglioriamo la UI di gestione delle portlet
‣ Drag & drop, popover per la modifica, ecc.
✓ Sprint in Giugno a Barcellona
Barceloneta e refactor di Plone
✓ Volevamo il tema di default di Plone in HTML 5:
‣ responsive
‣ “pulito”
‣ semantico (e.g. <article>, <footer>, <time>, ecc.)
✓ Barceloneta è sia un tema Diazo che un esempio di come creare un tema Plone
Plone RESTish API
✓ Obiettivo: aprire Plone a qualsiasi “tool/applicazione” esterno
✓ Ottimo per frontend non plonish
✓ Basato su REST:
‣ /++api++<version>/<dialect>/
‣ la ‘version’ per mantenere compatibilità nel tempo
‣ il ‘dialect’ per partire con JSON e domani JSON-LD (Linked Data) o XML
Plone REST API - leggere la pagina (GET)
GET /plone/++api++1/json/a-document HTTP/1.1
Host: http://nohost
HTTP/1.1 200 OK
Content-Type: application/json
{
"title": "A document",
"description": "Test",
"body": "<p>Some <i>HTML</i></p>"
}
Tutto bello, quando?!? Quando sarà pronto ;-)
Grazie.
Stefano Marchetti
Domande?
http
s://w
ww.
flickr.
com
/pho
tos/
jaygo
oby/
3885
4987
20
Stefano MarchettiRedTurtle’s co-founder e PM
@stemrc
www.redturtle.it
@redturtle
facebook.com/redturtle
Recommended