[Plone-IT] folder_contents, alcuni dubbi

Yuri yurj a alfa.it
Mar 21 Ott 2008 08:35:16 UTC


Vito Falco ha scritto:
> Hola,
> ho individuato la porzione di CatalogTool che dovrebbe illuminarmi 
> sulal questione ma ... non è così, non riesco a capire come passargli 
> i dati per ottenre solo gli oggetti non scaduti.
  if not _checkPermission( AccessInactivePortalContent, self ):

prova a togliere a quell'utente questo permesso, anche se penso dipenda 
dal ruolo owner.

Cmq, basta che imposti il filtro come fanno qui sotto.

>
>     def searchResults(self, REQUEST=None, **kw):
>             """
>                 Calls ZCatalog.searchResults with extra arguments that
>                 limit the results to what the user is allowed to see.
>             """
>             user = _getAuthenticatedUser(self)
>             kw[ 'allowedRolesAndUsers' ] =
>     self._listAllowedRolesAndUsers( user )
>
>             if not _checkPermission( AccessInactivePortalContent, self ):
>                 now = DateTime()
>
>                 self._convertQuery(kw)
>
>                 # Intersect query restrictions with those implicit to
>     the tool
>                 for k in 'effective', 'expires':
>                     if kw.has_key(k):
>                         range = kw[k]['range'] or ''
>                         query = kw[k]['query']
>                         if not isinstance(query, (tuple, list)):
>                             query = (query,)
>                     else:
>                         range = ''
>                         query = None
>                     if range.find('min') > -1:
>                         lo = min(query)
>                     else:
>                         lo = None
>                     if range.find('max') > -1:
>                         hi = max(query)
>                     else:
>                         hi = None
>                     if k == 'effective':
>                         if hi is None or hi > now:
>                             hi = now
>                         if lo is not None and hi < lo:
>                             return ()
>                     else: # 'expires':
>                         if lo is None or lo < now:
>                             lo = now
>                         if hi is not None and hi < lo:
>                             return ()
>                     # Rebuild a query
>                     if lo is None:
>                         query = hi
>                         range = 'max'
>                     elif hi is None:
>                         query = lo
>                         range = 'min'
>                     else:
>                         query = (lo, hi)
>                         range = 'min:max'
>                     kw[k] = {'query': query, 'range': range}
>
>             return ZCatalog.searchResults(self, REQUEST, **kw)
>
>         __call__ = searchResults
>
>
> Come fare?
>
> Vito
>
> 2008/10/20 Yuri <yurj a alfa.it <mailto:yurj a alfa.it>>
>
>     Vito Falco ha scritto:
>
>         Hola,
>         ho creato una nuova view per un mio oggetto di tipo cartella.
>         Questa view è quasi una copia del folder_contents.
>
>         Non riesco a capire come NON far vedere i contenuti "scaduti"
>         anche all'amministratore/proprietario di tale cartella.
>
>         Ho cercato in lungo e in largo ma non riesco a venirne fuori
>         perchè vorrei usare questa chiamata presente nel folder contents:
>
>            folderContents python:here.portal_type=='Topic' and
>            here.queryCatalog(contentFilter, batch=True) or
>            here.getFolderContents(contentFilter, batch=True,
>            b_size=limit_display or 100);
>
>
>     credo sia l'indice effectiveRange del catalogo. Il suo utilizzo lo
>     trovi in searchResults in CMFPlone.
>
>       def searchResults(self, REQUEST=None, **kw):
>           """Calls ZCatalog.searchResults with extra arguments that
>           limit the results to what the user is allowed to see.
>
>           This version uses the 'effectiveRange' DateRangeIndex.
>
>           It also accepts a keyword argument show_inactive to disable
>           effectiveRange checking entirely even for those without portal
>           wide AccessInactivePortalContent permission.
>
>     ===
>
>
>
>         in contentFilter potrei passargli qualcosa tipo:
>
>            contentFilter = {'Type': 'oggettomio', 'review_state' : '
>         published'}
>
>
>         ma il "problema" è che quando un oggetto è "scaduto" non
>         cambia lo stato di tale oggetto
>
>
>
>
>     _______________________________________________
>     Plone-IT mailing list
>     Plone-IT a lists.plone.org <mailto:Plone-IT a lists.plone.org>
>     http://lists.plone.org/mailman/listinfo/plone-it
>     http://www.nabble.com/Plone---Italy-f21728.html
>
>
>
>
> -- 
> "Design is the method of putting form and content together. Design, 
> just as art, has multiple definitions; there is no single definition. 
> Design can be art. Design can be aesthetics. Design is so simple, 
> that's why it is so complicated." by Paul Rand
> ------------------------------------------------------------------------
>
> _______________________________________________
> Plone-IT mailing list
> Plone-IT a lists.plone.org
> http://lists.plone.org/mailman/listinfo/plone-it
> http://www.nabble.com/Plone---Italy-f21728.html





Maggiori informazioni sulla lista Plone-IT