Code

Split off implementation notes into separate file in doc directory. Added
[roundup.git] / doc / implementation.txt
1 Implementation notes
2 ====================
4 [see also the roundup package docstring]
6 There have been some modifications to the spec. I've marked these in the
7 source with 'XXX' comments when I remember to.
9 In short:
10  Class.find() - may match multiple properties, uses keyword args.
12  Class.filter() - isn't in the spec and it's very useful to have at the Class
13     level.
14  
15  CGI interface index view specifier layout part - lose the '+' from the
16     sorting arguments (it's a reserved URL character ;). Just made no
17     prefix mean ascending and '-' prefix descending.
19  ItemClass - renamed to IssueClass to better match it only having one
20     hypderdb class "issue". Allowing > 1 hyperdb class breaks the
21     "superseder" multilink (since it can only link to one thing, and we'd
22     want bugs to link to support and vice-versa).
24  templates - the call="link()" is handled by special-case mechanisms in my
25     top-level CGI handler. In a nutshell, the handler looks for a method on
26     itself called 'index%s' or 'item%s' where %s is a class. Most items
27     pass on to the templating mechanism, but the file class _always_ does
28     downloading. It'll probably stay this way too...
30  template - call="link(property)" may be used to link "the current node"
31     (from an index) - the link text is the property specified.
33  template - added functions that I found very useful: List, History and
34     Submit.
36  template - items must specify the message lists, history, etc. Having them
37     by default was sometimes not wanted.
39  template - index view determines its default columns from the template's
40     <property> tags.
42  template - menu() and field() look awfully similar now .... ;)
44  roundup.py - the command-line tool has a lot more commands at its disposal