[Zope-dev] case insensitive sorts
Steve Alexander
s.alexander@lancaster.ac.uk
Wed, 06 Dec 2000 19:03:13 +0000
Andy McKay wrote:
> Minor nit and patch: I've found that really for me what users want to see is
> a case insensitive sort of objects, not the current python case sensitive
> sort. So that the order of objects from dtml-in and tree is a, A, b, B as
> apposed to A, B, a, b.
>
> Anyway Ive patched dtml-in and dtml-tree to do this sort on a ignore_case
> tag. Is this useful to anyone else? And Ive thought of patching my Zope so
> this is the default behaviour.... what does anyone else think. The next
> thing to patch is ZCatalog...
The way I approached this was to have a ZPatterns attribute provider, or
a method, that provides a modified version of the value I want to sort on.
For example, I have a load of documents and folders with titles like
Big Folder
brown document
"Berries for Cooking" list
I wanted to present these sorted by non-case-sensitive first letter or
number. So, I made a method "title_for_sorting" that stripped off any
punctuation at the start, and returned the first 20 characters in all
lower case. In this case, as it was a ZPatterns application, the method
was presented as an attribute of the object using some skin-script. I
used this attribute as a field-index in my SiteIndex ZCatalog.
The reason I mention this is that sometimes case-insensitivity is not
enough for sensible sorting. In this case, I had to strip out
punctuation too.
--
Steve Alexander
Software Engineer
Cat-Box limited
http://www.cat-box.net