Archive for the 'Zope' Category

Transmogrifier: una catena di montaggio per generare contenuti

28 febbraio 2010




(immagine da: http://waxinandmilkin.com/post/148087178/velma-by-quickhoney)

Plone 4 è alle porte e alcuni siti potranno essere rapidamente aggiornati con gli script di migrazione rilasciati con Plone (anzi, affrettatevi a provare la migrazione del vostro portale! eventuali problemi segnalati in questa fase potrebbero essere risolti direttamente dai core developer, senza alcun dispendio di energie da parte vostra :)).

In altre situazioni, dove la versione di partenza di Plone è troppo vecchia, o dove sono state operate delle personalizzazioni spinte, gli script di migrazione (cfr. http://plone.org/documentation/faq/upgrade-plone) di Plone non basteranno.. cosa fare?

Transmogrifier (http://pypi.python.org/pypi/collective.transmogrifier) potrebbe essere la risposta più corretta e “divertente“… 😀

Per capire di che si tratta immaginate una catena di montaggio, in cui entrano dei pezzi che lungo la catena vengono trasformati fino ad ottenere il prodotto finito. Se ci state pensando, è esatto: sebbene sia nato per importare contenuti in Plone, nessuno impedisce di usarlo come modulo python puro per quello che ci serve. Di fatto in questo articolo annoto alcune considerazioni relative alla migrazione di contenuti da un vecchio sito Plone ad uno di nuova generazione.

Leggi il seguito di questo post »

ERP con Plone..

12 febbraio 2010

Fabrizio ha lanciato un ottimo stimolo, anche se ancora da sviluppare: quando usare Plone per risolvere alcune delle funzioni tipiche di un ERP (http://redomino.com/it/labs/blog/fabrizio-reale/plone-erp).

In merito ho qualcosa da dire, ma voglio farlo con calma, non in questo post (tanto per capirci, da tempo ho “in canna” di parlare di Case Management con Plone, che copre una parte delle proposte di Fabrizio… piano piano ;)).

Piuttosto volevo rispondere organicamente al commento di Andrea, che quoto nella sua chiosa:

secondo te Plone può essere usato, oltre alla gestione documentale, anche per la gestione delle attività come emissione fatture, ddt, ordini etc… ?

Quello che io intendo e avere un sistema in cui collaboro alla vita aziendale (CMS puro e semplice), gestisco i servizi con i clienti (trouble ticket), amministro i miei servizi, fatturo ai clienti, emetto ordini ai fornitori, ddt per i tecnici.

Non capisco perché queste operazioni vengano definite da molti sviluppatori Plone come troppo complesse per un CMS, e parlo anche a livello di costi di sviluppo. Scusa ma con PHP queste cose si fanno da anni, a costi decenti e molto inferiori rispetto a soluzioni Plone o JSP.

Be’, ho due cose da dire a riguardo.

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 »

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 »