[Zope] dtml-in sort by generic function

Oleg Broytmann Oleg Broytmann <phd@phd.fep.ru>
Wed, 28 Mar 2001 12:17:00 +0400 (MSD)


On Tue, 27 Mar 2001, Dieter Maurer wrote:
>  > > Each "cmp" is looked up in the namespace and if not found there,
>  > > in a standard set of comparison function, such that it is
>  > > easy to get "locale_asc", "locale_desc", "case_insensitive_asc", ....
>  >
>  >    As I already said, this looks good... but I don't want to have a
>  > predefined set of names.
> Sad, because it would be difficult for non-Python programmers
> to define these functions.

   Aha, I see the point!

>   What I suggest is an approach similar to the custom formats:
>
>     there is a predefined set of well known and often
>     used sort function (such as "locale", "case_insensitive", ...)
>     *BUT* a user can use a function of his own, too,
>     if he likes.

   Ok. Do you see any non-cmp functions beynd these "locale" and
case_insensitive? :) I can't work out a good set of predefined functions.
All those string, date, numeric comparisons - they are just cmp and
nothing more.

>  > real functions. And I don't want to have 2 almost identical functions
>  > (asc/desc) for every comparison function. So I am thinking about syntax
>  > like this:
>  >
>  >    sort="attr1/cmp1,attr2,attr3/cmp3/desc,...."
> To separate the direction is a good idea. I like it.
> I am not so sure about the '/' separators.
> I expect, we will soon get "/" separated object access paths.

   Not in DTML - in ZPT, but it is different beast :)

> Then, the use of "/" for a completely different purpose may
> be confusing. Not sure, that my "[...]" is better in this respect...

   Hmm...

      sort="attr1[cmp1],attr2,attr3[cmp3:desc],...."
   or
      ...",attr3[cmp3/desc],..."
   or
      ...",attr3[cmp3,desc],..."

Oleg.
----
     Oleg Broytmann     http://www.zope.org/Members/phd/     phd@phd.pp.ru
           Programmers don't die, they just GOSUB without RETURN.