Vito Falco ha scritto:
Grazie ma...
sto costruendo solo una vista che deve "imitare" quello che vedono gli
anonimi quindi non è la strada giusta quella di modificare i permessi
del ruolo poichè avrebbe una ripercussione più ampia.
Necessito giusto che questa vista elenchi gli elementi presenti nella
cartella in stato non scaduti.
{'query': {'effective': <data di oggi>}, 'range': 'min:max'}
questo dovrebbe essere il tuo content filter.
forse funziona senza range, solo interrogando effective.
Vito
2008/10/21 Yuri <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
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]>
<mailto:[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>
<mailto: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 <mailto: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 <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