Document Management con Plone 4

10 Dicembre 2009

Perchè Plone non viene riconosciuto come un valido sistema di gestione documentale out-of-the-box?
Vari potrebbero essere i motivi, ma eccone un paio su tutti:

  • i file binari dei documenti da gestire vanno ad ingrossare il DB a oggetti che supporta Plone (lo ZODB di Zope);
  • la tecnologia di indexing e searching viene percepita come non sufficiente a rispondere ad esigenze di livello enterprise (per capirci, migliaia di documenti di tipo office).

Bene: è ora di cambiare idea!!!

Plone 4 (attualmente in fase alpha avanzata) è alle porte con una serie di novità stimolanti!

Il database a oggetti supporta i blob (Binary Large Object) nativamente da oltre due anni, che significa che molte installazioni “importanti” stanno gestendo i file binari delegando al DB il loro immagazzinamento su file system, in modo affidabile, efficiente e trasparente rispetto all’applicazione.

E’ ora di prendere profitto, e Plone 4 adotta nativamente questa tecnologia. Grazie al pacchetto plone.app.blob, infatti, il plip 7822 [http://dev.plone.org/plone/ticket/7822] è stato integrato con successo nel bundle di installazione standard dalla prima versione alfa di Plone 4.

Col nuovo Plone, creando un oggetto di tipo file nel sito, il corrispondente file binario caricato in ZODB verrà generato nella cartella che ospita i blob.

Blob Repository

Ecco come appare il blob repository gestito dallo ZODB.

Come si vede dallo screenshot, ZODB genera una struttura di cartelle usando l’id dell’oggetto e della transizione corrispondente al nostro upload e vi carica il file. Chiaramente questo comporta una innumerevole serie di vantaggi rispetto ai precedenti approcci, tutti operati al livello applicativo, ma sopratutto si può apprezzare il fatto che tale funzionalità, molto ricercata nelle precedenti versioni, è ora disponibile nativamente in Plone.

Per quanto riguarda la tecnologia di indexing e searching, la soluzione si chiama collective.solr, ma il succo lo rimando ad una prossima puntata. :)


Usare le viste standard di Plone ed evitare di pagare il dazio

18 Novembre 2009

Spesso nel costruire le nostre viste (template ZPT puri vecchia maniera, o browser view in stile Zope 3) abbiamo bisogno di richiamare informazioni dal contesto, o servizi di Plone come il portal_catalog o il portal_membership.

Un modo di farlo è quello “spontaneo” di richiamarli esattamente dove ci servono usando i meccanismi di base, tipicamente l’acquisizione di Zope 2. Efficace, ma piuttosto inefficiente! Anche perchè frequentemente coincide con il dover usare espressioni python nel template.
Le seguenti sono scorciatoie funzionanti, ma piuttosto da evitare:

<div tal:define="catalog here/portal_catalog">...</div>
<div tal:define="parent_title python:here.aq_inner.aq_parent.Title()>titolo</div>

Leggi il seguito di questo post »


Plone Conference 2009, Budapest. Resoconto Finale

10 Novembre 2009

La Settima Plone Conference mondiale (http://ploneconf2009.org) si è chiusa da ormai dieci giorni, ma ancora le fanno eco i numerosissimi ringraziamenti all’organizzazione, rivolti a Balasz Ree in testa.
Budapest è stata a tutti gli effetti la splendida cornice di un evento energizzante e carico di spunti per tutti coloro che si occupano di Plone.

Thanks to MrTopf: http://www.flickr.com/photos/mrtopf/4074083883

Leggi il seguito di questo post »


Comunità Plone Italiana: Rinascimento prossimo venturo

4 Novembre 2009

Budapest è stata un’esperienza indimenticabile!

Peccato per chi non c’era. :(

Come sempre, tra le cose che rendono per me indimenticabile un tale evento c’è stata l’opportunità di incontrare moltissimi appassionati con cui condividere idee ed esperienze in modo divertente e non limitato all’ambito tecnico.

Durante il terzo giorno di Conference abbiamo sperimentato un nuovo modo di condividere i propri interessi, completamente aperto, in cui ciascuno poteva proporre i propri argomenti e discuterli con chiunque fosse interessato.

Io ho suggerito il mio: “facciamo il punto sulla comunità Plone italiana”.

Leggi il seguito di questo post »


Plone Conference a Budapest!!

29 Ottobre 2009

La Plone Conference è partita ieri nel migliore dei modi qui a Budapest!

Buona parte delle lamentele si concentrava sul fatto che nell’edificio che ci ospita facesse troppo caldo ;)

Il programma di quest’anno è molto valido, e piuttosto interessanti sono buona parte delle sessioni!

Date uno sguardo al programma: http://ploneconf2009.org/program/talks.

E date uno sguardo ai talk! sono tutti in streaming, e presto saranno disponibili le versioni finali dei video con le slide: http://mrtopf.de/blog/plone/plone-conference-live-streams

Leggi il seguito di questo post »


Validazione Multicampo con z3c.form 2.1

18 Settembre 2009

La mia form “esemplificativa” è costituita da tre campi, questa interfaccia ne descrive lo schema:

from zope.interface import Interface
from zope import schema

class IUserIdentification(Interface):

  field1 = schema.TextLine(title = u"First Field")
  field2 = schema.TextLine(title = u"Second Field", required = False)
  field3 = schema.TextLine(title = u"Third Field", required = False)

La mia esigenza: il secondo e terzo campo (field2, field3) risultano obbligatori solo se il primo campo (field1) è valorizzato.

Leggi il seguito di questo post »


Notifiche mail in Plone? collective.contentrules.mail

9 Settembre 2009

Richiesta tipica di estensione per Plone: inviare notifiche mail a revisori, creatori dei contenuti, manager in caso di nuovo documento, cambio di stato del documento, modifica del documento.

Plone sa rispondere al 90% della richiesta con il suo Content Rules Engine [vedi http://plone.org/documentation/how-to/content-rules/ per sapere di che si tratta!].

Tuttavia tra le possibilità di base manca un modo sufficientemente flessibile di costruire le mail che vengono spedite.

collective.contentrules.mail [http://pypi.python.org/pypi/collective.contentrules.mail] è la risposta a tale esigenza! Offre infatti la possibilità di costruire le mail usando espressioni dipendenti dal contesto (chi scatena la transizione, chi è il proprietario del contenuto da notificare, etc.).

Leggi il seguito di questo post »


Tabelle HTML senza scrivere HTML: z3c.table

28 Agosto 2009

Magari qualcuno non è troppo convinto di aver bisogno di una libreria python per costruire e gestire tabelle HTML, ma quando è uscito il pacchetto plone.z3ctable mi sono ricordato della possibilità che offre z3c.table.

All’inizio pensavo fosse una cosa complessa e tutto sommato inutile (posso fare tutto quel che serve in una browser view, giusto? :) ), ma uno sguardo alla documentazione mi ha convinto a provarlo.

Cosa offre il pacchetto in sintesi:

  • tabella e colonne sono classi python
  • colonne sono adapter (possono comparire/scomparire/cambiare in base al context, alla request, all’interfaccia della tabella)
  • non c’è una skin di base, ma in modo banale si possono associare classi CSS a qualsiasi tag della tabella
  • i record sono calcolati in modo automatico a fronte di oggetti che presentano l’interfaccia IContainer (cartelle) ma anche su un contesto di puri dati (una lista di dizionari, ad esempio)
  • gestione del batch per la navigazione di tabelle con molte righe
  • separazione tra rendering della tabella e del batch

Leggi il seguito di questo post »


Plone Conference 2009: chi viene?

5 Agosto 2009

La Plone Conference 2009 viene organizzata dal 28 al 30 Ottobre a Budapest, facile da raggiungere per noi italiani, e tutto sommato a buon mercato.. :)

Alla Conference ci sono sempre una marea di spunti interessanti per chi si occupa di Plone, quest’anno ancora di più! I piatti forti saranno le nuove release di Plone, l’imminente versione 4 e la rivoluzionaria versione 5, insieme alle loro tecnologie emergenti, Dexterity e Deco su tutte.

Inoltre una delle tre giornate sarà strutturata come Open Space: chiunque potrà proporre il suo tema e sviscerarlo con gli altri interessati.

Leggi il seguito di questo post »


Diventare emettitori: i canali di comunicazione del web nel 2009

6 Luglio 2009

Il web NON è la televisione, non bisogna essere ricchi imprenditori per permettersi di dire cose interessanti. Tuttavia le statistiche parlano chiaro: solo una minima percentuale degli utenti del web contribuiscono a loro volta ad incrementarne i contenuti!

Questo vale se si parla di blog, di wikipedia o anche di twitter, la chat globale selettiva del momento. Poco male, se quanto non pubblicato appartiene alla sfera del ludico e del personale, ma molto male se chi ha informazioni interessanti se le tiene per sé!

Tanto peggio per chi si occupa di tecnologie aperte: in ambito “chiuso” a volte si vive reinventando la ruota, ma nel caso di buon open source, meno si disperdono le energie e meglio è per tutti! Chiunque dispone di informazioni utili derivanti dal suo lavoro dovrebbe cercare di trasmetterle!

Leggi il seguito di questo post »