[Grok-dev] Re: proposal: grok.title() and grok.description()
Wichert Akkerman
wichert at wiggy.net
Sun Sep 2 11:58:22 EDT 2007
Previously Martijn Faassen wrote:
> Hey,
>
> Tres Seaver wrote:
> [snip]
> >>The arguments to both is a unicode string or a message id: human
> >>readable text.
> >
> >Can we stay with the grokkish convention that ASCII strings are alllowed
> >as well? I *hate* the dead chicken of the leading 'u'.
>
> Yes, of course. Whenever I say 'unicode string', just read "unicode
> strings and plain ascii strings". I pushed for that one in Grok. :) It
> will get us in trouble if we ever convert to Python 3.0, but that'll be
> only one of our troubles.
>
> >>These directives should be usable on just about any class, ranging from
> >>Model to View to Permission.
> >>
> >>The idea is then that an application's user interface can access this
> >>data (this means we need to come up with a good API to access this kind
> >>of grok-defined attribute in the grok module. Anyone have any ideas?).
> >
> >How about assigning '__doc__' on the object ;)? Actually, one might
> >hack the directives so that they *returned* the values when passed a
> >non-basestring / message ID object.
>
> Isn't __doc__ used by docstrings? Not sure whether you're not kidding
> (there's a smiley) but just to make it clear: docstrings tend towards
> programmer-readable text and this is for UI text. Currently the admin UI
> uses the docstring to present some information about an application, but
> I'd rather have it use title and description. (then again, applications
> are somewhat special, as typically you'd only want to see the title of
> an application in a UI that *manages* applications such as the admin UI).
>
> Hacking the directives to return the equivalent value when passed
> something is an interesting idea. Generalizing this seems difficult
> however, as grok.context() already can take class arguments.
>
> [snip]
> >>We need sensible defaults for these two attributes. grok.description()
> >>should default to grok.title().
> >
> >I'd rather see it default to empty.
>
> Somewhat dangerous for the same reasons as spelled out below for
> grok.title()... Then again, perhaps not as much of a problem as for
> title, and that way you'd not see duplicated text. One wouldn't expect
> to see the description very often without showing the title as well,
> after all. So I think defaulting to the empty string is a better idea,
> indeed.
>
> >>What about grok.title()? I think it
> >>would be bad if grok.title() defaulted to the empty string, as these
> >>don't show up in the user interface and give no clue as to what object
> >>you're dealing with. I therefore propose grok.title() should default to
> >>the class name. This gives a good hint on what's going on in a user
> >>interface where someone hasn't spelled out grok.title() yet for a
> >>particular class, which can then be easily fixed.
> >
> >Defaulting to '__name__' is probably fine. Another option is to do the
> >"first line, rest" splitting of '__doc__'.
> >
> >>What do people think?
> >
> >+1 overall.
>
> Thanks for the feedback! To summarize, two modifications to the proposal
> as prompted by your remarks:
>
> * plain ascii text is allowed too.
>
> * grok.description() should default to the empty string.
+1 with those modifications.
Wichert.
--
Wichert Akkerman <wichert at wiggy.net> It is simple to make things.
http://www.wiggy.net/ It is hard to make things simple.
More information about the Grok-dev
mailing list