[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