[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