[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