[Plone-IT] "Seleziona elementi a caso" (portlet) ... anche no :(

Luca Fabbri keul a redturtle.it
Gio 28 Mar 2013 11:08:25 UTC


2013/3/28 Vito Falco <vitofalco a gmail.com>:
> Grazie per i suggerimenti,
> il portlet contiene anche una spunta sul numero degli elementi da
> visualizzare.
>
> Non va.
> Ho provato a spulciare il codice e ho notato questa riga
> https://github.com/plone/plone.portlet.collection/blob/master/plone/portlet/collection/collection.py#L155
>
>> results = collection.queryCatalog(sort_on=None)
>
>
> Dove collection (i brains risultati dai criteri) viene presa
> fondamentalmente con un
>
>> result = portal.unrestrictedTraverse(collection_path, default=None)
>
>
> Mi viene il dubbio che dare un "sort_on=None" a un risultato giÓ ordinato
> non abbia senso.

Bisognerebbe vedere come quel parametro viene usato all'interno del
queryCatalog. Io avevo notato alcune problematiche con le nuove
collezione relativamente alla possibilitÓ di poter manipolare le
ricerche pre-impostate (del tipo: non si riesce pi¨ a restringere i
risultati ai soli contenuti che implementano un'interfaccia).


> Poi il tutto avviene con un
> if collection is not None:
>             results = collection.queryCatalog(sort_on=None)
>             if results is None:
>                 return []
>             limit = self.data.limit and min(len(results), self.data.limit)
> or 1
>
>             if len(results) < limit:
>                 limit = len(results)
>             results = random.sample(results, limit)
>
> Quindi, in realtÓ, il "random" viene effettuato non tra tutti i brains
> restituiti ma bensi in tutti i primi X brains.
>
> Sbaglio?
>

Da quanto leggo no:

    random.sample(population, k)
    Return a k length list of unique elements chosen from the
population sequence. Used for random sampling without replacement.


-- 
Saluti/Regards

Luca Fabbri - RedTurtle Technology
E-mail: luca.fabbri a redturtle.it
Web Site: http://www.redturtle.it/
Phone: +39 0532 1915958
Fax: +39 0532 287070


Maggiori informazioni sulla lista Plone-IT