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 <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
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@lists.plone.org <mailto:Plone-IT@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@lists.plone.org
http://lists.plone.org/mailman/listinfo/plone-it
http://www.nabble.com/Plone---Italy-f21728.html
_______________________________________________
Plone-IT mailing list
Plone-IT@lists.plone.org
http://lists.plone.org/mailman/listinfo/plone-it
http://www.nabble.com/Plone---Italy-f21728.html