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

Rispondere a