[Plone-IT] Esecuzione di un Python script da una pagina del sito
Yuri
yurj a alfa.it
Mar 5 Feb 2013 14:06:30 UTC
Ciao!
sono ricapitato su questa perché è successo anche a me una cosa
simile, e ho scoperto che il reindex ha bisogno anche di questo:
context.reindexObjectSecurity() (nel tuo caso
obj.reindexObjectSecurity())
Non so perché, ma questo va lanciato quando si modifica qualcosa nei
ruoli (setLocalRoles e compagnia). Non è il tuo caso, ma magari lo
facevi in una azione precedente.
Cmq lo scrivo, semmai ricapitasse a qualcuno!
Il 16/11/2011 13:51, lucagent ha scritto:
> Salve a tutti,
> su un sito svilupato in Plone 4 ho la necessità di effettuare il reindex dei
> contenuti di un folder specifico su richiesta dell'utente (con un
> pulsante/link/action... è indifferente)
>
> Io ho provato a replicare il comportamente della sendto ... un Controller
> PAge Template che richiama un Controller Python Script ... ma lo script in
> sé funziona solo che non viene eseguito quando faccio la submit della
> form...
> di seguito il codice:
>
> Controller Python Script "reindex" (funzionante - verificato dal tab test):
>
> from Products.CMFCore.utils import getToolByName
> from Products.CMFPlone import PloneMessageFactory as _
>
> catalog = getToolByName(context, 'portal_catalog')
> markers= catalog.searchResults(portal_type='GMarker')
>
> try:
> context.plone_utils.addPortalMessage(_(u'in \'try\''))
>
> for mrk in markers:
> obj=mrk.getObject()
> context.plone_utils.addPortalMessage(_(u'for: ' + str(obj)))
> obj.reindexObject()
> state.set(status='success')
> else:
> context.plone_utils.addPortalMessage(_(u'Markers have been
> reindexed.'))
> except:
> exception = context.plone_utils.exceptionString()
> message = _(u'Unable to reindex marekrs: ${exception}',
> mapping={u'exception' : exception})
> context.plone_utils.addPortalMessage(message, 'error')
> state.set(status='failure')
>
> return state
>
> (come già detto ho praticamente riadattato lo script sendto)
>
> Controller Page template "marker_reindex" (contenuto del<body> - anche
> questo adattato a partire dalla sendto_form):
>
> <metal:main fill-slot="main"
> tal:define="errors options/state/getErrors;">
>
>
> Reindex G-Maps Markers
>
>
> <div id="content-core">
> <form name="reindexer"
> class="enableAutoFocus"
> action="marker_reindex"
> method="post"
> enctype="multipart/form-data"
> tal:attributes="action
> string:${context/@@plone_context_state/object_url}/${template/getId}">
>
> <fieldset>
>
> <div class="formControls">
> <input class="context"
> type="submit"
> name="form.button.reindex"
> value=" Reindex "
> />
> </div>
>
> <input type="hidden" name="form.submitted" value="1" />
>
> </fieldset>
>
> </form>
> </div>
>
> </metal:main>
>
>
> Le Actions della form sono:
> failiure --> traverse_to --> string:home
> success --> traverse_to --> string:reindex
>
> per lo Script invece:
> failure --> redirect_to_action --> strign:view
> success --> redirect_to_action --> strign:view
>
> non ho impostato un validator ... (mi viene in mente solo ora che forse è
> per questo che non viene eseguito lo script a seguito della submit?!?!)
>
> in ogni caso a me servirebbe di richiamare il Controller Script da un'altra
> pagina che non è un controller page template...è possibile?!?! dove
> sbaglio?!?!
>
> grazie in anticipo
>
> Luca
>
> --
> View this message in context: http://plone-regional-forums.221720.n2.nabble.com/Esecuzione-di-un-Python-script-da-una-pagina-del-sito-tp7000253p7000253.html
> Sent from the Plone - Italy mailing list archive at Nabble.com.
> _______________________________________________
> Plone-IT mailing list
> Plone-IT a lists.plone.org
> https://lists.plone.org/mailman/listinfo/plone-plone-it
> http://plone-regional-forums.221720.n2.nabble.com/Plone-Italy-f221721.html
Maggiori informazioni sulla lista
Plone-IT