[FSUG PD] Plone or not Plone?

Yuri yurj a alfa.it
Lun 9 Maggio 2011 12:00:54 CEST


Il 09/05/2011 11:38, Sbaturzio Cantina ha scritto:
> Il 09/05/2011 09:36, Yuri ha scritto:
>
>    
>> Tutte queste cose sono supportate di default da Plone, senza bisogno di
>> scrivere codice.
>>      
> Se ho ben capito si deve creare un nuovo "content type" che descrive
> l'oggetto che devo trattare, poi all'utente basta dare la possibilità di
> crearlo e l'applicazione web parte. Corretto?
>    

Sì, se vuoi utilizzare un nuovo content type. Oppure puoi "adattare" uno 
esistente (vedi collective.schemaextender). Nel primo caso puoi usare 
zopeskel per creare una egg da zero con dentro tutto, definire nuovi 
campi/portlet/view. La cosa è ben documentata e molto semplice. Nel 
secondo caso, ci sono tantissimi esempi. Io ad esempio, ho riutilizzato 
il tipo Page, aggiungendo dei campi, e attivato la mia logica se la Page 
supporta una certa interfaccia. Seguendo le guide è abbastanza lineare.

> Quindi la difficoltà più grande è quella di realizzare un "content type"
> che abbia una interfaccia per utenti semplice.
>    

Se usi Dexterity, ad esempio, il content type lo puoi creare TTW 
(Throught The Web, via web, cioè dal pannello di controllo), e poi puoi 
creare dei comportamenti specifici se quelli di default non bastano. 
Dexterity è abbastanza maturo, anche se non supporta tutte le cose di 
archetype (ad esempio LinguaPlone, anche se è in progetto).

In generale, se hai voglia di applicarti, proverei tutti questi 
approcci, per scegliere quello più adatto. Ha senso creare un content 
type quando si vuole qualcosa di molto specifico o avere tutto nel 
proprio pacchetto.

Il workflow lo puoi creare indipendentemente dal tuo content type e lo 
puoi "cambiare" sul tipo anche a livello di cartella (placefulworkflow).

>>   Con le recenti versioni di Plone, si gestiscono tranquillamente folder
>> di migliaia di oggetti. Lo si riesce a fare anche con Plone3, per
>> questo, ma con Plone4 è meglio :)
>>      
> E si riesce anche a gestire l'accesso ai singoli oggetti? Ovvero, il
> folder A deve essere visibile solo a Tizio mentre il folder B solo a
> Caio.

Questo è banale.

>   Inoltre se al capo gli girano deve essere possibile, in qualsiasi
> momento, cambiare le permissions in modo che Tizio veda anche B e Caio
> non la veda più.
>    

Idem, banale.

> Ah...intendiamoci: per "capo" intendo uno che di informatica non sa
> quasi nulla. ;-)
>    

Cerca "Sharing" in plone, l'interfaccia mi sembra semplice ed intuitiva. 
In alto c'è un box dove si cerca l'utente per nome, e poi si spunta 
quello che l'utente può fare in quel folder (di default anche nei 
sottostanti, ma puoi stoppare negli oggetti sottostanti l'ereditarietà, 
e quindi ridefinire da zero i ruoli), e poi salvare.

Per togliere, basta "togliere la spunta", e salvare.

>>   Poi, dipende dall'applicazione. Plone è un CMS con tante funzionalità a
>> disposizione, quindi si tratta di capire se è adatto allo scopo. La cosa
>> migliore è fare un test.
>>      
> E' quello che stavo tentando di fare: mi sono installato Plone4 e stavo
> cercando di seguire dei tutorial. Mi riesce un po difficile capire la
> logica di Zope+Plone nel costruire oggetti+applicazioni.
>    

Diciamo che hai tante possibilità. Quello che ti consiglio è di seguire 
i tutorial ufficiali su plone.org su ZopeSkel, per creare tuoi moduli e 
contenuti in maniera semplice e veloce. Poi dai una letta al codice e il 
tutto sarà abbastanza chiaro.

In generale hai un modulo (egg), che viene attivata per l'installazione, 
e questa può fornire vari componenti, tra i quali content type ma non 
necessariamente.

Archetypes è un framework per la creazione di content types. Si basa su 
una classe python, la quale deriva da una (o più) classi python base che 
gestiscono un pò tutto. Il tuo contenuto, per "andare", dev'essere 
registrato (lo fa una chiamata che è nell'__init__.py, ZopeSkel crea già 
tutto), e poi installato. O meglio, l'installazione applica un profilo 
che va a compiere un pò di operazioni che permetto al tuo oggetto di 
essere "plonizzato".

Dettagli a parte, si tratta di seguire passo passo questa guida:

http://plone.it/scopri-old/documentazione/tutorial/usare-paster-e-zopeskel-per-la-generazione-di-content-type/tutorial-all-pages

o simili.





Maggiori informazioni sulla lista fsug-pd