[Plone-IT] visualizzare e poi modificare il proprietario di un oggetto (da script)

Yuri yurj a alfa.it
Mar 23 Mar 2010 15:10:57 UTC


Giacomo Zanobini ha scritto:
> Il 23/03/2010 15.35, Yuri ha scritto:
>> oggetto.Creator() idem per absolute_url
> macchecavolo!
> avevo provato:
>
>     * oggetto.Creator
>     * oggetto.getCreator()
>     * oggetto.Creator[0]
>     * oggetto.Creator.getObject()
>
>
> ...... mancava giusto quello.... ma non mi sarebbe _mai _venuto in 
> mente di provarlo
>

vai in portal_catalog, così vedi i nomi degli indici per la ricerca e i 
metadata che puoi chiamare come .<nome> (esempio brain.Creator) sui 
risultati dell'interrogazione al catalogo.

Se invece vuoi il metodo dell'oggetto, usi Creator().

Il primo metodo prende i dati dal catalogo, e ha memorizzato il 
risultato di quella chiamata al momento dell'indicizzazione. Così 
risulta più veloce, perché torna una stringa invece di fare una chiamata 
ad un oggetto Plone.

quindi:

results = context.portal_catalog(indice=valore, indice1=valore) etc etc, 
torna una lista di "brains" (su cui cicli con for result in results:), 
sui quali puoi chiamare .<nome_metadata> senza bisogno di fare una 
getObject. Se invece vuoi l'oggetto vero e proprio, fai oggetto = 
result.getObject().

Nota: Creator è un campo dei metadati dell'oggetto plone (quelli che 
trovi in edit -> ownetship) che è solo un stringa che viene impostata di 
default con il valore dell'account che l'ha creato. Non indica il 
possessore reale dell'oggetto.

 Se a te interessa solo cambiare la scritta e non il reale possessore, 
puoi fare un .setCreator(value='pippo') sull'oggetto. Il proprietario 
"Zope" rimane sempre lo stesso.

 Quindi se sei sicuro che Creator corrisponde al proprietario zope, 
usalo, altrimenti usa la chiamata per determinare il possessore, la 
trovi sempre nel template ownership_form.




Maggiori informazioni sulla lista Plone-IT