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”
Photobysickmouthy-CreativeCommonsAttribution-NonCommercialLicensehttp://www.flickr.com/photos/32224133@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
retrocompatibili
Photobykevindooley-CreativeCommonsAttributionLicensehttp://www.flickr.com/photos/12836528@N00
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?
https://www.flickr.com/photos/jaygooby/3885498720
Stefano Marchetti
RedTurtle’s co-founder e PM
stefano@redturtle.it
@stemrc
www.redturtle.it
@redturtle
facebook.com/redturtle

Plone 5 - lo stato dell'arte

  • 1.
    agile.open.connected Lo stato dell’artedi Plone 5 Bologna 30 aprile 2014 Stefano Marchetti
  • 2.
    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
  • 3.
    Documentazione:focus ✓ Avere ladocumentazione 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
  • 4.
    Documentazione - strategia ✓ Lastrategia è 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
  • 5.
    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
  • 6.
    Utenti e gruppi- login ✓ Implementazione più moderna con z3c.form ✓ Da implementare l’autenticazione da sorgenti esterne
  • 7.
    Utenti e gruppi- registrazione ✓La registrazione funziona ✓ L’indicatore della “qualità” della password e la registrazione da sorgenti esterne sono da implementare
  • 8.
    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
  • 9.
    Utenti e gruppi- authorpage ✓ 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
  • 10.
    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? 
  • 11.
  • 13.
    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
  • 14.
    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
  • 15.
    Struttura: gestione diuna cartella con contenuti
  • 16.
  • 17.
    Widget per icorrelati
  • 18.
  • 19.
    Content type conDexterity ✓ 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à
  • 20.
    Content type - strategiagenerale ✓ 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” Photobysickmouthy-CreativeCommonsAttribution-NonCommercialLicensehttp://www.flickr.com/photos/32224133@N07
  • 21.
    Composite page ✓ Vogliamomettere assieme: ‣ tile: la nuova cosa “cool” del momento ‣ viewlet: un componente base Plone ‣ portlet: ne abbiamo alcune tonnellate in giro
  • 22.
    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 retrocompatibili Photobykevindooley-CreativeCommonsAttributionLicensehttp://www.flickr.com/photos/12836528@N00
  • 23.
    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
  • 25.
    Barceloneta e refactordi 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
  • 26.
    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
  • 27.
    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>" }
  • 28.
    Tutto bello, quando?!?Quando sarà pronto ;-)
  • 29.
  • 30.
    Stefano Marchetti Domande? https://www.flickr.com/photos/jaygooby/3885498720 Stefano Marchetti RedTurtle’sco-founder e PM stefano@redturtle.it @stemrc www.redturtle.it @redturtle facebook.com/redturtle