annotate roundup/htmltemplate.py @ 806:83becf3faa2f

Fix the cycles (a clear method, called after render... ...that removes the bound methods from the globals dict). Use cl.filter instead of cl.list followed by sortfunc. For some backends (Metakit), filter can sort at C speeds, cutting >10 secs off of filling in the <select...> box for assigned_to when you have 600+ users.
author Gordon B. McMillan <gmcm@users.sourceforge.net>
date Thu, 27 Jun 2002 15:38:53 +0000
parents af4826d8773d
children fda182844206
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
213
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 171
diff changeset
1 #
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 171
diff changeset
2 # Copyright (c) 2001 Bizar Software Pty Ltd (http://www.bizarsoftware.com.au/)
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 171
diff changeset
3 # This module is free software, and you may redistribute it and/or modify
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 171
diff changeset
4 # under the same terms as Python, so long as this copyright message and
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 171
diff changeset
5 # disclaimer are retained in their original form.
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 171
diff changeset
6 #
214
18134bffab37 stupid typo
Richard Jones <richard@users.sourceforge.net>
parents: 213
diff changeset
7 # IN NO EVENT SHALL BIZAR SOFTWARE PTY LTD BE LIABLE TO ANY PARTY FOR
213
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 171
diff changeset
8 # DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 171
diff changeset
9 # OUT OF THE USE OF THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 171
diff changeset
10 # POSSIBILITY OF SUCH DAMAGE.
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 171
diff changeset
11 #
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 171
diff changeset
12 # BIZAR SOFTWARE PTY LTD SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 171
diff changeset
13 # BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 171
diff changeset
14 # FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS"
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 171
diff changeset
15 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 171
diff changeset
16 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 171
diff changeset
17 #
806
83becf3faa2f Fix the cycles (a clear method, called after render...
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 804
diff changeset
18 # $Id: htmltemplate.py,v 1.94 2002-06-27 15:38:53 gmcm Exp $
406
bdc2ea127ae9 Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents: 401
diff changeset
19
bdc2ea127ae9 Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents: 401
diff changeset
20 __doc__ = """
bdc2ea127ae9 Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents: 401
diff changeset
21 Template engine.
bdc2ea127ae9 Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents: 401
diff changeset
22 """
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
23
673
604c84696461 link() htmltemplate function now has a "showid" option for links & multilinks.
Richard Jones <richard@users.sourceforge.net>
parents: 672
diff changeset
24 import os, re, StringIO, urllib, cgi, errno, types, urllib
651
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
25 import hyperdb, date
488
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
26 from i18n import _
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
27
340
9311fa91f478 Added do_stext to htmltemplate, thanks Brad Clements.
Richard Jones <richard@users.sourceforge.net>
parents: 332
diff changeset
28 # This imports the StructureText functionality for the do_stext function
9311fa91f478 Added do_stext to htmltemplate, thanks Brad Clements.
Richard Jones <richard@users.sourceforge.net>
parents: 332
diff changeset
29 # get it from http://dev.zope.org/Members/jim/StructuredTextWiki/NGReleases
9311fa91f478 Added do_stext to htmltemplate, thanks Brad Clements.
Richard Jones <richard@users.sourceforge.net>
parents: 332
diff changeset
30 try:
9311fa91f478 Added do_stext to htmltemplate, thanks Brad Clements.
Richard Jones <richard@users.sourceforge.net>
parents: 332
diff changeset
31 from StructuredText.StructuredText import HTML as StructuredText
9311fa91f478 Added do_stext to htmltemplate, thanks Brad Clements.
Richard Jones <richard@users.sourceforge.net>
parents: 332
diff changeset
32 except ImportError:
9311fa91f478 Added do_stext to htmltemplate, thanks Brad Clements.
Richard Jones <richard@users.sourceforge.net>
parents: 332
diff changeset
33 StructuredText = None
9311fa91f478 Added do_stext to htmltemplate, thanks Brad Clements.
Richard Jones <richard@users.sourceforge.net>
parents: 332
diff changeset
34
627
952679be9e2c Added simple editing for classes that don't define a templated interface.
Richard Jones <richard@users.sourceforge.net>
parents: 623
diff changeset
35 class MissingTemplateError(ValueError):
651
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
36 '''Error raised when a template file is missing
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
37 '''
627
952679be9e2c Added simple editing for classes that don't define a templated interface.
Richard Jones <richard@users.sourceforge.net>
parents: 623
diff changeset
38 pass
952679be9e2c Added simple editing for classes that don't define a templated interface.
Richard Jones <richard@users.sourceforge.net>
parents: 623
diff changeset
39
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
40 class TemplateFunctions:
651
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
41 '''Defines the templating functions that are used in the HTML templates
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
42 of the roundup web interface.
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
43 '''
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
44 def __init__(self):
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
45 self.form = None
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
46 self.nodeid = None
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
47 self.filterspec = None
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
48 self.globals = {}
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
49 for key in TemplateFunctions.__dict__.keys():
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
50 if key[:3] == 'do_':
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
51 self.globals[key[3:]] = getattr(self, key)
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
52
651
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
53 # These are added by the subclass where appropriate
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
54 self.client = None
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
55 self.instance = None
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
56 self.templates = None
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
57 self.classname = None
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
58 self.db = None
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
59 self.cl = None
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
60 self.properties = None
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
61
806
83becf3faa2f Fix the cycles (a clear method, called after render...
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 804
diff changeset
62 def clear(self):
83becf3faa2f Fix the cycles (a clear method, called after render...
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 804
diff changeset
63 for key in TemplateFunctions.__dict__.keys():
83becf3faa2f Fix the cycles (a clear method, called after render...
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 804
diff changeset
64 if key[:3] == 'do_':
83becf3faa2f Fix the cycles (a clear method, called after render...
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 804
diff changeset
65 del self.globals[key[3:]]
83becf3faa2f Fix the cycles (a clear method, called after render...
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 804
diff changeset
66
755
49c9522675b9 can now just display a link/multilink id - useful for stylesheet stuff
Richard Jones <richard@users.sourceforge.net>
parents: 749
diff changeset
67 def do_plain(self, property, escape=0, lookup=1):
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
68 ''' display a String property directly;
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
69
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
70 display a Date property in a specified time zone with an option to
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
71 omit the time from the date stamp;
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
72
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
73 for a Link or Multilink property, display the key strings of the
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
74 linked nodes (or the ids if the linked class has no key property)
755
49c9522675b9 can now just display a link/multilink id - useful for stylesheet stuff
Richard Jones <richard@users.sourceforge.net>
parents: 749
diff changeset
75 when the lookup argument is true, otherwise just return the
49c9522675b9 can now just display a link/multilink id - useful for stylesheet stuff
Richard Jones <richard@users.sourceforge.net>
parents: 749
diff changeset
76 linked ids
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
77 '''
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
78 if not self.nodeid and self.form is None:
488
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
79 return _('[Field: not called from item]')
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
80 propclass = self.properties[property]
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
81 if self.nodeid:
397
d47818b09265 more new property handling
Richard Jones <richard@users.sourceforge.net>
parents: 392
diff changeset
82 # make sure the property is a valid one
d47818b09265 more new property handling
Richard Jones <richard@users.sourceforge.net>
parents: 392
diff changeset
83 # TODO: this tests, but we should handle the exception
651
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
84 dummy = self.cl.getprops()[property]
397
d47818b09265 more new property handling
Richard Jones <richard@users.sourceforge.net>
parents: 392
diff changeset
85
d47818b09265 more new property handling
Richard Jones <richard@users.sourceforge.net>
parents: 392
diff changeset
86 # get the value for this property
d47818b09265 more new property handling
Richard Jones <richard@users.sourceforge.net>
parents: 392
diff changeset
87 try:
d47818b09265 more new property handling
Richard Jones <richard@users.sourceforge.net>
parents: 392
diff changeset
88 value = self.cl.get(self.nodeid, property)
d47818b09265 more new property handling
Richard Jones <richard@users.sourceforge.net>
parents: 392
diff changeset
89 except KeyError:
d47818b09265 more new property handling
Richard Jones <richard@users.sourceforge.net>
parents: 392
diff changeset
90 # a KeyError here means that the node doesn't have a value
d47818b09265 more new property handling
Richard Jones <richard@users.sourceforge.net>
parents: 392
diff changeset
91 # for the specified property
d47818b09265 more new property handling
Richard Jones <richard@users.sourceforge.net>
parents: 392
diff changeset
92 if isinstance(propclass, hyperdb.Multilink): value = []
d47818b09265 more new property handling
Richard Jones <richard@users.sourceforge.net>
parents: 392
diff changeset
93 else: value = ''
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
94 else:
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
95 # TODO: pull the value from the form
224
ad2c98faec97 using isinstance(blah, Foo) now instead of isFooType
Richard Jones <richard@users.sourceforge.net>
parents: 214
diff changeset
96 if isinstance(propclass, hyperdb.Multilink): value = []
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
97 else: value = ''
224
ad2c98faec97 using isinstance(blah, Foo) now instead of isFooType
Richard Jones <richard@users.sourceforge.net>
parents: 214
diff changeset
98 if isinstance(propclass, hyperdb.String):
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
99 if value is None: value = ''
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
100 else: value = str(value)
270
a4241ddd22d7 Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents: 250
diff changeset
101 elif isinstance(propclass, hyperdb.Password):
a4241ddd22d7 Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents: 250
diff changeset
102 if value is None: value = ''
488
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
103 else: value = _('*encrypted*')
224
ad2c98faec97 using isinstance(blah, Foo) now instead of isFooType
Richard Jones <richard@users.sourceforge.net>
parents: 214
diff changeset
104 elif isinstance(propclass, hyperdb.Date):
547
e4ef6df2345c display links a html link in history.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 538
diff changeset
105 # this gives "2002-01-17.06:54:39", maybe replace the "." by a " ".
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
106 value = str(value)
224
ad2c98faec97 using isinstance(blah, Foo) now instead of isFooType
Richard Jones <richard@users.sourceforge.net>
parents: 214
diff changeset
107 elif isinstance(propclass, hyperdb.Interval):
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
108 value = str(value)
224
ad2c98faec97 using isinstance(blah, Foo) now instead of isFooType
Richard Jones <richard@users.sourceforge.net>
parents: 214
diff changeset
109 elif isinstance(propclass, hyperdb.Link):
531
32c1dd156605 plain rendering of links in the htmltemplate now generate a hyperlink...
Richard Jones <richard@users.sourceforge.net>
parents: 528
diff changeset
110 if value:
755
49c9522675b9 can now just display a link/multilink id - useful for stylesheet stuff
Richard Jones <richard@users.sourceforge.net>
parents: 749
diff changeset
111 if lookup:
49c9522675b9 can now just display a link/multilink id - useful for stylesheet stuff
Richard Jones <richard@users.sourceforge.net>
parents: 749
diff changeset
112 linkcl = self.db.classes[propclass.classname]
804
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
113 k = linkcl.labelprop(1)
755
49c9522675b9 can now just display a link/multilink id - useful for stylesheet stuff
Richard Jones <richard@users.sourceforge.net>
parents: 749
diff changeset
114 value = linkcl.get(value, k)
531
32c1dd156605 plain rendering of links in the htmltemplate now generate a hyperlink...
Richard Jones <richard@users.sourceforge.net>
parents: 528
diff changeset
115 else:
32c1dd156605 plain rendering of links in the htmltemplate now generate a hyperlink...
Richard Jones <richard@users.sourceforge.net>
parents: 528
diff changeset
116 value = _('[unselected]')
224
ad2c98faec97 using isinstance(blah, Foo) now instead of isFooType
Richard Jones <richard@users.sourceforge.net>
parents: 214
diff changeset
117 elif isinstance(propclass, hyperdb.Multilink):
755
49c9522675b9 can now just display a link/multilink id - useful for stylesheet stuff
Richard Jones <richard@users.sourceforge.net>
parents: 749
diff changeset
118 if lookup:
49c9522675b9 can now just display a link/multilink id - useful for stylesheet stuff
Richard Jones <richard@users.sourceforge.net>
parents: 749
diff changeset
119 linkcl = self.db.classes[propclass.classname]
804
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
120 k = linkcl.labelprop(1)
755
49c9522675b9 can now just display a link/multilink id - useful for stylesheet stuff
Richard Jones <richard@users.sourceforge.net>
parents: 749
diff changeset
121 labels = []
49c9522675b9 can now just display a link/multilink id - useful for stylesheet stuff
Richard Jones <richard@users.sourceforge.net>
parents: 749
diff changeset
122 for v in value:
49c9522675b9 can now just display a link/multilink id - useful for stylesheet stuff
Richard Jones <richard@users.sourceforge.net>
parents: 749
diff changeset
123 labels.append(linkcl.get(v, k))
49c9522675b9 can now just display a link/multilink id - useful for stylesheet stuff
Richard Jones <richard@users.sourceforge.net>
parents: 749
diff changeset
124 value = ', '.join(labels)
49c9522675b9 can now just display a link/multilink id - useful for stylesheet stuff
Richard Jones <richard@users.sourceforge.net>
parents: 749
diff changeset
125 else:
49c9522675b9 can now just display a link/multilink id - useful for stylesheet stuff
Richard Jones <richard@users.sourceforge.net>
parents: 749
diff changeset
126 value = ', '.join(value)
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
127 else:
651
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
128 value = _('Plain: bad propclass "%(propclass)s"')%locals()
250
1d428068485c *gak* ... xmp is Old Skool apparently.
Richard Jones <richard@users.sourceforge.net>
parents: 245
diff changeset
129 if escape:
342
0b7d62e414b6 Added the wrap="hard" attribute to the textarea of the note field...
Richard Jones <richard@users.sourceforge.net>
parents: 340
diff changeset
130 value = cgi.escape(value)
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
131 return value
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
132
340
9311fa91f478 Added do_stext to htmltemplate, thanks Brad Clements.
Richard Jones <richard@users.sourceforge.net>
parents: 332
diff changeset
133 def do_stext(self, property, escape=0):
9311fa91f478 Added do_stext to htmltemplate, thanks Brad Clements.
Richard Jones <richard@users.sourceforge.net>
parents: 332
diff changeset
134 '''Render as structured text using the StructuredText module
9311fa91f478 Added do_stext to htmltemplate, thanks Brad Clements.
Richard Jones <richard@users.sourceforge.net>
parents: 332
diff changeset
135 (see above for details)
9311fa91f478 Added do_stext to htmltemplate, thanks Brad Clements.
Richard Jones <richard@users.sourceforge.net>
parents: 332
diff changeset
136 '''
9311fa91f478 Added do_stext to htmltemplate, thanks Brad Clements.
Richard Jones <richard@users.sourceforge.net>
parents: 332
diff changeset
137 s = self.do_plain(property, escape=escape)
9311fa91f478 Added do_stext to htmltemplate, thanks Brad Clements.
Richard Jones <richard@users.sourceforge.net>
parents: 332
diff changeset
138 if not StructuredText:
9311fa91f478 Added do_stext to htmltemplate, thanks Brad Clements.
Richard Jones <richard@users.sourceforge.net>
parents: 332
diff changeset
139 return s
9311fa91f478 Added do_stext to htmltemplate, thanks Brad Clements.
Richard Jones <richard@users.sourceforge.net>
parents: 332
diff changeset
140 return StructuredText(s,level=1,header=0)
9311fa91f478 Added do_stext to htmltemplate, thanks Brad Clements.
Richard Jones <richard@users.sourceforge.net>
parents: 332
diff changeset
141
563
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
142 def determine_value(self, property):
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
143 '''determine the value of a property using the node, form or
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
144 filterspec
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
145 '''
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
146 propclass = self.properties[property]
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
147 if self.nodeid:
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
148 value = self.cl.get(self.nodeid, property, None)
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
149 if isinstance(propclass, hyperdb.Multilink) and value is None:
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
150 return []
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
151 return value
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
152 elif self.filterspec is not None:
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
153 if isinstance(propclass, hyperdb.Multilink):
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
154 return self.filterspec.get(property, [])
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
155 else:
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
156 return self.filterspec.get(property, '')
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
157 # TODO: pull the value from the form
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
158 if isinstance(propclass, hyperdb.Multilink):
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
159 return []
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
160 else:
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
161 return ''
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
162
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
163 def make_sort_function(self, classname):
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
164 '''Make a sort function for a given class
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
165 '''
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
166 linkcl = self.db.classes[classname]
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
167 if linkcl.getprops().has_key('order'):
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
168 sort_on = 'order'
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
169 else:
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
170 sort_on = linkcl.labelprop()
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
171 def sortfunc(a, b, linkcl=linkcl, sort_on=sort_on):
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
172 return cmp(linkcl.get(a, sort_on), linkcl.get(b, sort_on))
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
173 return sortfunc
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
174
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
175 def do_field(self, property, size=None, showid=0):
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
176 ''' display a property like the plain displayer, but in a text field
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
177 to be edited
563
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
178
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
179 Note: if you would prefer an option list style display for
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
180 link or multilink editing, use menu().
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
181 '''
162
717f12e6ccf2 Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 155
diff changeset
182 if not self.nodeid and self.form is None and self.filterspec is None:
401
a930feb07dc4 Added globbing for win32, and sample marking in a 2nd file to test it
Jürgen Hermann <jhermann@users.sourceforge.net>
parents: 398
diff changeset
183 return _('[Field: not called from item]')
563
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
184
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
185 if size is None:
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
186 size = 30
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
187
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
188 propclass = self.properties[property]
563
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
189
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
190 # get the value
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
191 value = self.determine_value(property)
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
192
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
193 # now display
228
1d1848c99abe Fixed some isFooTypes that I missed.
Richard Jones <richard@users.sourceforge.net>
parents: 224
diff changeset
194 if (isinstance(propclass, hyperdb.String) or
1d1848c99abe Fixed some isFooTypes that I missed.
Richard Jones <richard@users.sourceforge.net>
parents: 224
diff changeset
195 isinstance(propclass, hyperdb.Date) or
1d1848c99abe Fixed some isFooTypes that I missed.
Richard Jones <richard@users.sourceforge.net>
parents: 224
diff changeset
196 isinstance(propclass, hyperdb.Interval)):
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
197 if value is None:
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
198 value = ''
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
199 else:
525
d046cc4ba7d3 How about that ... date fields have never worked ...
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
200 value = cgi.escape(str(value))
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
201 value = '&quot;'.join(value.split('"'))
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
202 s = '<input name="%s" value="%s" size="%s">'%(property, value, size)
270
a4241ddd22d7 Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents: 250
diff changeset
203 elif isinstance(propclass, hyperdb.Password):
a4241ddd22d7 Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents: 250
diff changeset
204 s = '<input type="password" name="%s" size="%s">'%(property, size)
224
ad2c98faec97 using isinstance(blah, Foo) now instead of isFooType
Richard Jones <richard@users.sourceforge.net>
parents: 214
diff changeset
205 elif isinstance(propclass, hyperdb.Link):
563
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
206 linkcl = self.db.classes[propclass.classname]
806
83becf3faa2f Fix the cycles (a clear method, called after render...
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 804
diff changeset
207 if linkcl.getprops().has_key('order'):
83becf3faa2f Fix the cycles (a clear method, called after render...
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 804
diff changeset
208 sort_on = 'order'
83becf3faa2f Fix the cycles (a clear method, called after render...
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 804
diff changeset
209 else:
83becf3faa2f Fix the cycles (a clear method, called after render...
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 804
diff changeset
210 sort_on = linkcl.labelprop()
83becf3faa2f Fix the cycles (a clear method, called after render...
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 804
diff changeset
211 options = linkcl.filter(None, {}, [sort_on], [])
563
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
212 # TODO: make this a field display, not a menu one!
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
213 l = ['<select name="%s">'%property]
804
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
214 k = linkcl.labelprop(1)
312
5a2c43891c20 [SF#473124]: UI inconsistency with Link fields.
Richard Jones <richard@users.sourceforge.net>
parents: 307
diff changeset
215 if value is None:
5a2c43891c20 [SF#473124]: UI inconsistency with Link fields.
Richard Jones <richard@users.sourceforge.net>
parents: 307
diff changeset
216 s = 'selected '
5a2c43891c20 [SF#473124]: UI inconsistency with Link fields.
Richard Jones <richard@users.sourceforge.net>
parents: 307
diff changeset
217 else:
5a2c43891c20 [SF#473124]: UI inconsistency with Link fields.
Richard Jones <richard@users.sourceforge.net>
parents: 307
diff changeset
218 s = ''
488
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
219 l.append(_('<option %svalue="-1">- no selection -</option>')%s)
563
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
220 for optionid in options:
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
221 option = linkcl.get(optionid, k)
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
222 s = ''
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
223 if optionid == value:
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
224 s = 'selected '
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
225 if showid:
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
226 lab = '%s%s: %s'%(propclass.classname, optionid, option)
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
227 else:
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
228 lab = option
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
229 if size is not None and len(lab) > size:
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
230 lab = lab[:size-3] + '...'
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
231 lab = cgi.escape(lab)
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
232 l.append('<option %svalue="%s">%s</option>'%(s, optionid, lab))
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
233 l.append('</select>')
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
234 s = '\n'.join(l)
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
235 elif isinstance(propclass, hyperdb.Multilink):
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
236 sortfunc = self.make_sort_function(propclass.classname)
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
237 linkcl = self.db.classes[propclass.classname]
696
709f8f1d5661 Sorting was applied to all nodes of the MultiLink class...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 678
diff changeset
238 if value:
709f8f1d5661 Sorting was applied to all nodes of the MultiLink class...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 678
diff changeset
239 value.sort(sortfunc)
563
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
240 # map the id to the label property
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
241 if not showid:
804
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
242 k = linkcl.labelprop(1)
563
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
243 value = [linkcl.get(v, k) for v in value]
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
244 value = cgi.escape(','.join(value))
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
245 s = '<input name="%s" size="%s" value="%s">'%(property, size, value)
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
246 else:
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
247 s = _('Plain: bad propclass "%(propclass)s"')%locals()
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
248 return s
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
249
617
edd210915e64 Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents: 614
diff changeset
250 def do_multiline(self, property, rows=5, cols=40):
edd210915e64 Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents: 614
diff changeset
251 ''' display a string property in a multiline text edit field
edd210915e64 Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents: 614
diff changeset
252 '''
edd210915e64 Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents: 614
diff changeset
253 if not self.nodeid and self.form is None and self.filterspec is None:
edd210915e64 Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents: 614
diff changeset
254 return _('[Multiline: not called from item]')
edd210915e64 Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents: 614
diff changeset
255
edd210915e64 Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents: 614
diff changeset
256 propclass = self.properties[property]
edd210915e64 Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents: 614
diff changeset
257
edd210915e64 Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents: 614
diff changeset
258 # make sure this is a link property
edd210915e64 Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents: 614
diff changeset
259 if not isinstance(propclass, hyperdb.String):
edd210915e64 Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents: 614
diff changeset
260 return _('[Multiline: not a string]')
edd210915e64 Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents: 614
diff changeset
261
edd210915e64 Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents: 614
diff changeset
262 # get the value
edd210915e64 Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents: 614
diff changeset
263 value = self.determine_value(property)
edd210915e64 Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents: 614
diff changeset
264 if value is None:
edd210915e64 Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents: 614
diff changeset
265 value = ''
edd210915e64 Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents: 614
diff changeset
266
edd210915e64 Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents: 614
diff changeset
267 # display
edd210915e64 Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents: 614
diff changeset
268 return '<textarea name="%s" rows="%s" cols="%s">%s</textarea>'%(
edd210915e64 Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents: 614
diff changeset
269 property, rows, cols, value)
edd210915e64 Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents: 614
diff changeset
270
757
00d360a4978a Added optional additional property to display in a Multilink form menu.
Richard Jones <richard@users.sourceforge.net>
parents: 755
diff changeset
271 def do_menu(self, property, size=None, height=None, showid=0,
00d360a4978a Added optional additional property to display in a Multilink form menu.
Richard Jones <richard@users.sourceforge.net>
parents: 755
diff changeset
272 additional=[]):
00d360a4978a Added optional additional property to display in a Multilink form menu.
Richard Jones <richard@users.sourceforge.net>
parents: 755
diff changeset
273 ''' For a Link/Multilink property, display a menu of the available
00d360a4978a Added optional additional property to display in a Multilink form menu.
Richard Jones <richard@users.sourceforge.net>
parents: 755
diff changeset
274 choices
00d360a4978a Added optional additional property to display in a Multilink form menu.
Richard Jones <richard@users.sourceforge.net>
parents: 755
diff changeset
275
00d360a4978a Added optional additional property to display in a Multilink form menu.
Richard Jones <richard@users.sourceforge.net>
parents: 755
diff changeset
276 If the additional properties are specified, they will be
00d360a4978a Added optional additional property to display in a Multilink form menu.
Richard Jones <richard@users.sourceforge.net>
parents: 755
diff changeset
277 included in the text of each option in (brackets, with, commas).
563
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
278 '''
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
279 if not self.nodeid and self.form is None and self.filterspec is None:
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
280 return _('[Field: not called from item]')
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
281
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
282 propclass = self.properties[property]
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
283
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
284 # make sure this is a link property
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
285 if not (isinstance(propclass, hyperdb.Link) or
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
286 isinstance(propclass, hyperdb.Multilink)):
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
287 return _('[Menu: not a link]')
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
288
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
289 # sort function
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
290 sortfunc = self.make_sort_function(propclass.classname)
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
291
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
292 # get the value
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
293 value = self.determine_value(property)
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
294
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
295 # display
621
f333f6decdc2 [SF#516854] "My Issues" and redisplay
Richard Jones <richard@users.sourceforge.net>
parents: 617
diff changeset
296 if isinstance(propclass, hyperdb.Multilink):
f333f6decdc2 [SF#516854] "My Issues" and redisplay
Richard Jones <richard@users.sourceforge.net>
parents: 617
diff changeset
297 linkcl = self.db.classes[propclass.classname]
806
83becf3faa2f Fix the cycles (a clear method, called after render...
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 804
diff changeset
298 if linkcl.getprops().has_key('order'):
83becf3faa2f Fix the cycles (a clear method, called after render...
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 804
diff changeset
299 sort_on = 'order'
83becf3faa2f Fix the cycles (a clear method, called after render...
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 804
diff changeset
300 else:
83becf3faa2f Fix the cycles (a clear method, called after render...
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 804
diff changeset
301 sort_on = linkcl.labelprop()
83becf3faa2f Fix the cycles (a clear method, called after render...
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 804
diff changeset
302 options = linkcl.filter(None, {}, [sort_on], [])
621
f333f6decdc2 [SF#516854] "My Issues" and redisplay
Richard Jones <richard@users.sourceforge.net>
parents: 617
diff changeset
303 height = height or min(len(options), 7)
f333f6decdc2 [SF#516854] "My Issues" and redisplay
Richard Jones <richard@users.sourceforge.net>
parents: 617
diff changeset
304 l = ['<select multiple name="%s" size="%s">'%(property, height)]
804
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
305 k = linkcl.labelprop(1)
621
f333f6decdc2 [SF#516854] "My Issues" and redisplay
Richard Jones <richard@users.sourceforge.net>
parents: 617
diff changeset
306 for optionid in options:
f333f6decdc2 [SF#516854] "My Issues" and redisplay
Richard Jones <richard@users.sourceforge.net>
parents: 617
diff changeset
307 option = linkcl.get(optionid, k)
f333f6decdc2 [SF#516854] "My Issues" and redisplay
Richard Jones <richard@users.sourceforge.net>
parents: 617
diff changeset
308 s = ''
672
d92e06a3a56e Fixed display of mutlilink properties...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 651
diff changeset
309 if optionid in value or option in value:
621
f333f6decdc2 [SF#516854] "My Issues" and redisplay
Richard Jones <richard@users.sourceforge.net>
parents: 617
diff changeset
310 s = 'selected '
f333f6decdc2 [SF#516854] "My Issues" and redisplay
Richard Jones <richard@users.sourceforge.net>
parents: 617
diff changeset
311 if showid:
f333f6decdc2 [SF#516854] "My Issues" and redisplay
Richard Jones <richard@users.sourceforge.net>
parents: 617
diff changeset
312 lab = '%s%s: %s'%(propclass.classname, optionid, option)
f333f6decdc2 [SF#516854] "My Issues" and redisplay
Richard Jones <richard@users.sourceforge.net>
parents: 617
diff changeset
313 else:
f333f6decdc2 [SF#516854] "My Issues" and redisplay
Richard Jones <richard@users.sourceforge.net>
parents: 617
diff changeset
314 lab = option
f333f6decdc2 [SF#516854] "My Issues" and redisplay
Richard Jones <richard@users.sourceforge.net>
parents: 617
diff changeset
315 if size is not None and len(lab) > size:
f333f6decdc2 [SF#516854] "My Issues" and redisplay
Richard Jones <richard@users.sourceforge.net>
parents: 617
diff changeset
316 lab = lab[:size-3] + '...'
757
00d360a4978a Added optional additional property to display in a Multilink form menu.
Richard Jones <richard@users.sourceforge.net>
parents: 755
diff changeset
317 if additional:
00d360a4978a Added optional additional property to display in a Multilink form menu.
Richard Jones <richard@users.sourceforge.net>
parents: 755
diff changeset
318 m = []
00d360a4978a Added optional additional property to display in a Multilink form menu.
Richard Jones <richard@users.sourceforge.net>
parents: 755
diff changeset
319 for propname in additional:
00d360a4978a Added optional additional property to display in a Multilink form menu.
Richard Jones <richard@users.sourceforge.net>
parents: 755
diff changeset
320 m.append(linkcl.get(optionid, propname))
00d360a4978a Added optional additional property to display in a Multilink form menu.
Richard Jones <richard@users.sourceforge.net>
parents: 755
diff changeset
321 lab = lab + ' (%s)'%', '.join(m)
621
f333f6decdc2 [SF#516854] "My Issues" and redisplay
Richard Jones <richard@users.sourceforge.net>
parents: 617
diff changeset
322 lab = cgi.escape(lab)
f333f6decdc2 [SF#516854] "My Issues" and redisplay
Richard Jones <richard@users.sourceforge.net>
parents: 617
diff changeset
323 l.append('<option %svalue="%s">%s</option>'%(s, optionid,
f333f6decdc2 [SF#516854] "My Issues" and redisplay
Richard Jones <richard@users.sourceforge.net>
parents: 617
diff changeset
324 lab))
f333f6decdc2 [SF#516854] "My Issues" and redisplay
Richard Jones <richard@users.sourceforge.net>
parents: 617
diff changeset
325 l.append('</select>')
f333f6decdc2 [SF#516854] "My Issues" and redisplay
Richard Jones <richard@users.sourceforge.net>
parents: 617
diff changeset
326 return '\n'.join(l)
563
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
327 if isinstance(propclass, hyperdb.Link):
621
f333f6decdc2 [SF#516854] "My Issues" and redisplay
Richard Jones <richard@users.sourceforge.net>
parents: 617
diff changeset
328 # force the value to be a single choice
f333f6decdc2 [SF#516854] "My Issues" and redisplay
Richard Jones <richard@users.sourceforge.net>
parents: 617
diff changeset
329 if type(value) is types.ListType:
f333f6decdc2 [SF#516854] "My Issues" and redisplay
Richard Jones <richard@users.sourceforge.net>
parents: 617
diff changeset
330 value = value[0]
563
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
331 linkcl = self.db.classes[propclass.classname]
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
332 l = ['<select name="%s">'%property]
804
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
333 k = linkcl.labelprop(1)
563
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
334 s = ''
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
335 if value is None:
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
336 s = 'selected '
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
337 l.append(_('<option %svalue="-1">- no selection -</option>')%s)
806
83becf3faa2f Fix the cycles (a clear method, called after render...
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 804
diff changeset
338 if linkcl.getprops().has_key('order'):
83becf3faa2f Fix the cycles (a clear method, called after render...
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 804
diff changeset
339 sort_on = 'order'
83becf3faa2f Fix the cycles (a clear method, called after render...
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 804
diff changeset
340 else:
83becf3faa2f Fix the cycles (a clear method, called after render...
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 804
diff changeset
341 sort_on = linkcl.labelprop()
83becf3faa2f Fix the cycles (a clear method, called after render...
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 804
diff changeset
342 options = linkcl.filter(None, {}, [sort_on], [])
466
a3548136f7bb Two bug fixes and a feature.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 411
diff changeset
343 for optionid in options:
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
344 option = linkcl.get(optionid, k)
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
345 s = ''
672
d92e06a3a56e Fixed display of mutlilink properties...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 651
diff changeset
346 if value in [optionid, option]:
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
347 s = 'selected '
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
348 if showid:
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
349 lab = '%s%s: %s'%(propclass.classname, optionid, option)
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
350 else:
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
351 lab = option
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
352 if size is not None and len(lab) > size:
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
353 lab = lab[:size-3] + '...'
757
00d360a4978a Added optional additional property to display in a Multilink form menu.
Richard Jones <richard@users.sourceforge.net>
parents: 755
diff changeset
354 if additional:
00d360a4978a Added optional additional property to display in a Multilink form menu.
Richard Jones <richard@users.sourceforge.net>
parents: 755
diff changeset
355 m = []
00d360a4978a Added optional additional property to display in a Multilink form menu.
Richard Jones <richard@users.sourceforge.net>
parents: 755
diff changeset
356 for propname in additional:
00d360a4978a Added optional additional property to display in a Multilink form menu.
Richard Jones <richard@users.sourceforge.net>
parents: 755
diff changeset
357 m.append(linkcl.get(optionid, propname))
00d360a4978a Added optional additional property to display in a Multilink form menu.
Richard Jones <richard@users.sourceforge.net>
parents: 755
diff changeset
358 lab = lab + ' (%s)'%', '.join(m)
563
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
359 lab = cgi.escape(lab)
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
360 l.append('<option %svalue="%s">%s</option>'%(s, optionid, lab))
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
361 l.append('</select>')
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
362 return '\n'.join(l)
488
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
363 return _('[Menu: not a link]')
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
364
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
365 #XXX deviates from spec
673
604c84696461 link() htmltemplate function now has a "showid" option for links & multilinks.
Richard Jones <richard@users.sourceforge.net>
parents: 672
diff changeset
366 def do_link(self, property=None, is_download=0, showid=0):
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
367 '''For a Link or Multilink property, display the names of the linked
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
368 nodes, hyperlinked to the item views on those nodes.
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
369 For other properties, link to this node with the property as the
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
370 text.
313
489b70c37f32 feature [SF#473127]: Filenames.
Richard Jones <richard@users.sourceforge.net>
parents: 312
diff changeset
371
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
372 If is_download is true, append the property value to the generated
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
373 URL so that the link may be used as a download link and the
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
374 downloaded file name is correct.
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
375 '''
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
376 if not self.nodeid and self.form is None:
488
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
377 return _('[Link: not called from item]')
568
c7ead967db85 more htmltemplate tests and cleanup
Richard Jones <richard@users.sourceforge.net>
parents: 563
diff changeset
378
c7ead967db85 more htmltemplate tests and cleanup
Richard Jones <richard@users.sourceforge.net>
parents: 563
diff changeset
379 # get the value
c7ead967db85 more htmltemplate tests and cleanup
Richard Jones <richard@users.sourceforge.net>
parents: 563
diff changeset
380 value = self.determine_value(property)
574
d41d94511170 more htmltemplate cleanups and unit tests
Richard Jones <richard@users.sourceforge.net>
parents: 568
diff changeset
381 if not value:
d41d94511170 more htmltemplate cleanups and unit tests
Richard Jones <richard@users.sourceforge.net>
parents: 568
diff changeset
382 return _('[no %(propname)s]')%{'propname':property.capitalize()}
568
c7ead967db85 more htmltemplate tests and cleanup
Richard Jones <richard@users.sourceforge.net>
parents: 563
diff changeset
383
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
384 propclass = self.properties[property]
224
ad2c98faec97 using isinstance(blah, Foo) now instead of isFooType
Richard Jones <richard@users.sourceforge.net>
parents: 214
diff changeset
385 if isinstance(propclass, hyperdb.Link):
245
8a0d548c07a1 Fixed bug in the generation of links to Link/Multilink in indexes.
Richard Jones <richard@users.sourceforge.net>
parents: 244
diff changeset
386 linkname = propclass.classname
8a0d548c07a1 Fixed bug in the generation of links to Link/Multilink in indexes.
Richard Jones <richard@users.sourceforge.net>
parents: 244
diff changeset
387 linkcl = self.db.classes[linkname]
804
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
388 k = linkcl.labelprop(1)
678
9fe50036e8df Fix for date properties as labels.
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
389 linkvalue = cgi.escape(str(linkcl.get(value, k)))
673
604c84696461 link() htmltemplate function now has a "showid" option for links & multilinks.
Richard Jones <richard@users.sourceforge.net>
parents: 672
diff changeset
390 if showid:
604c84696461 link() htmltemplate function now has a "showid" option for links & multilinks.
Richard Jones <richard@users.sourceforge.net>
parents: 672
diff changeset
391 label = value
676
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 673
diff changeset
392 title = ' title="%s"'%linkvalue
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 673
diff changeset
393 # note ... this should be urllib.quote(linkcl.get(value, k))
673
604c84696461 link() htmltemplate function now has a "showid" option for links & multilinks.
Richard Jones <richard@users.sourceforge.net>
parents: 672
diff changeset
394 else:
604c84696461 link() htmltemplate function now has a "showid" option for links & multilinks.
Richard Jones <richard@users.sourceforge.net>
parents: 672
diff changeset
395 label = linkvalue
676
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 673
diff changeset
396 title = ''
313
489b70c37f32 feature [SF#473127]: Filenames.
Richard Jones <richard@users.sourceforge.net>
parents: 312
diff changeset
397 if is_download:
673
604c84696461 link() htmltemplate function now has a "showid" option for links & multilinks.
Richard Jones <richard@users.sourceforge.net>
parents: 672
diff changeset
398 return '<a href="%s%s/%s"%s>%s</a>'%(linkname, value,
604c84696461 link() htmltemplate function now has a "showid" option for links & multilinks.
Richard Jones <richard@users.sourceforge.net>
parents: 672
diff changeset
399 linkvalue, title, label)
313
489b70c37f32 feature [SF#473127]: Filenames.
Richard Jones <richard@users.sourceforge.net>
parents: 312
diff changeset
400 else:
673
604c84696461 link() htmltemplate function now has a "showid" option for links & multilinks.
Richard Jones <richard@users.sourceforge.net>
parents: 672
diff changeset
401 return '<a href="%s%s"%s>%s</a>'%(linkname, value, title, label)
224
ad2c98faec97 using isinstance(blah, Foo) now instead of isFooType
Richard Jones <richard@users.sourceforge.net>
parents: 214
diff changeset
402 if isinstance(propclass, hyperdb.Multilink):
245
8a0d548c07a1 Fixed bug in the generation of links to Link/Multilink in indexes.
Richard Jones <richard@users.sourceforge.net>
parents: 244
diff changeset
403 linkname = propclass.classname
8a0d548c07a1 Fixed bug in the generation of links to Link/Multilink in indexes.
Richard Jones <richard@users.sourceforge.net>
parents: 244
diff changeset
404 linkcl = self.db.classes[linkname]
804
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
405 k = linkcl.labelprop(1)
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
406 l = []
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
407 for value in value:
678
9fe50036e8df Fix for date properties as labels.
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
408 linkvalue = cgi.escape(str(linkcl.get(value, k)))
673
604c84696461 link() htmltemplate function now has a "showid" option for links & multilinks.
Richard Jones <richard@users.sourceforge.net>
parents: 672
diff changeset
409 if showid:
604c84696461 link() htmltemplate function now has a "showid" option for links & multilinks.
Richard Jones <richard@users.sourceforge.net>
parents: 672
diff changeset
410 label = value
604c84696461 link() htmltemplate function now has a "showid" option for links & multilinks.
Richard Jones <richard@users.sourceforge.net>
parents: 672
diff changeset
411 title = ' title="%s"'%linkvalue
676
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 673
diff changeset
412 # note ... this should be urllib.quote(linkcl.get(value, k))
673
604c84696461 link() htmltemplate function now has a "showid" option for links & multilinks.
Richard Jones <richard@users.sourceforge.net>
parents: 672
diff changeset
413 else:
604c84696461 link() htmltemplate function now has a "showid" option for links & multilinks.
Richard Jones <richard@users.sourceforge.net>
parents: 672
diff changeset
414 label = linkvalue
676
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 673
diff changeset
415 title = ''
313
489b70c37f32 feature [SF#473127]: Filenames.
Richard Jones <richard@users.sourceforge.net>
parents: 312
diff changeset
416 if is_download:
673
604c84696461 link() htmltemplate function now has a "showid" option for links & multilinks.
Richard Jones <richard@users.sourceforge.net>
parents: 672
diff changeset
417 l.append('<a href="%s%s/%s"%s>%s</a>'%(linkname, value,
604c84696461 link() htmltemplate function now has a "showid" option for links & multilinks.
Richard Jones <richard@users.sourceforge.net>
parents: 672
diff changeset
418 linkvalue, title, label))
313
489b70c37f32 feature [SF#473127]: Filenames.
Richard Jones <richard@users.sourceforge.net>
parents: 312
diff changeset
419 else:
673
604c84696461 link() htmltemplate function now has a "showid" option for links & multilinks.
Richard Jones <richard@users.sourceforge.net>
parents: 672
diff changeset
420 l.append('<a href="%s%s"%s>%s</a>'%(linkname, value,
604c84696461 link() htmltemplate function now has a "showid" option for links & multilinks.
Richard Jones <richard@users.sourceforge.net>
parents: 672
diff changeset
421 title, label))
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
422 return ', '.join(l)
313
489b70c37f32 feature [SF#473127]: Filenames.
Richard Jones <richard@users.sourceforge.net>
parents: 312
diff changeset
423 if is_download:
489b70c37f32 feature [SF#473127]: Filenames.
Richard Jones <richard@users.sourceforge.net>
parents: 312
diff changeset
424 return '<a href="%s%s/%s">%s</a>'%(self.classname, self.nodeid,
489b70c37f32 feature [SF#473127]: Filenames.
Richard Jones <richard@users.sourceforge.net>
parents: 312
diff changeset
425 value, value)
489b70c37f32 feature [SF#473127]: Filenames.
Richard Jones <richard@users.sourceforge.net>
parents: 312
diff changeset
426 else:
489b70c37f32 feature [SF#473127]: Filenames.
Richard Jones <richard@users.sourceforge.net>
parents: 312
diff changeset
427 return '<a href="%s%s">%s</a>'%(self.classname, self.nodeid, value)
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
428
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
429 def do_count(self, property, **args):
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
430 ''' for a Multilink property, display a count of the number of links in
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
431 the list
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
432 '''
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
433 if not self.nodeid:
488
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
434 return _('[Count: not called from item]')
574
d41d94511170 more htmltemplate cleanups and unit tests
Richard Jones <richard@users.sourceforge.net>
parents: 568
diff changeset
435
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
436 propclass = self.properties[property]
574
d41d94511170 more htmltemplate cleanups and unit tests
Richard Jones <richard@users.sourceforge.net>
parents: 568
diff changeset
437 if not isinstance(propclass, hyperdb.Multilink):
d41d94511170 more htmltemplate cleanups and unit tests
Richard Jones <richard@users.sourceforge.net>
parents: 568
diff changeset
438 return _('[Count: not a Multilink]')
d41d94511170 more htmltemplate cleanups and unit tests
Richard Jones <richard@users.sourceforge.net>
parents: 568
diff changeset
439
d41d94511170 more htmltemplate cleanups and unit tests
Richard Jones <richard@users.sourceforge.net>
parents: 568
diff changeset
440 # figure the length then...
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
441 value = self.cl.get(self.nodeid, property)
574
d41d94511170 more htmltemplate cleanups and unit tests
Richard Jones <richard@users.sourceforge.net>
parents: 568
diff changeset
442 return str(len(value))
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
443
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
444 # XXX pretty is definitely new ;)
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
445 def do_reldate(self, property, pretty=0):
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
446 ''' display a Date property in terms of an interval relative to the
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
447 current date (e.g. "+ 3w", "- 2d").
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
448
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
449 with the 'pretty' flag, make it pretty
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
450 '''
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
451 if not self.nodeid and self.form is None:
488
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
452 return _('[Reldate: not called from item]')
574
d41d94511170 more htmltemplate cleanups and unit tests
Richard Jones <richard@users.sourceforge.net>
parents: 568
diff changeset
453
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
454 propclass = self.properties[property]
574
d41d94511170 more htmltemplate cleanups and unit tests
Richard Jones <richard@users.sourceforge.net>
parents: 568
diff changeset
455 if not isinstance(propclass, hyperdb.Date):
488
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
456 return _('[Reldate: not a Date]')
574
d41d94511170 more htmltemplate cleanups and unit tests
Richard Jones <richard@users.sourceforge.net>
parents: 568
diff changeset
457
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
458 if self.nodeid:
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
459 value = self.cl.get(self.nodeid, property)
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
460 else:
574
d41d94511170 more htmltemplate cleanups and unit tests
Richard Jones <richard@users.sourceforge.net>
parents: 568
diff changeset
461 return ''
d41d94511170 more htmltemplate cleanups and unit tests
Richard Jones <richard@users.sourceforge.net>
parents: 568
diff changeset
462 if not value:
d41d94511170 more htmltemplate cleanups and unit tests
Richard Jones <richard@users.sourceforge.net>
parents: 568
diff changeset
463 return ''
d41d94511170 more htmltemplate cleanups and unit tests
Richard Jones <richard@users.sourceforge.net>
parents: 568
diff changeset
464
d41d94511170 more htmltemplate cleanups and unit tests
Richard Jones <richard@users.sourceforge.net>
parents: 568
diff changeset
465 # figure the interval
640
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 639
diff changeset
466 interval = date.Date('.') - value
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
467 if pretty:
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
468 if not self.nodeid:
488
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
469 return _('now')
721
c63b71a949a8 forgot to fix the templating for last change
Richard Jones <richard@users.sourceforge.net>
parents: 696
diff changeset
470 return interval.pretty()
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
471 return str(interval)
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
472
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
473 def do_download(self, property, **args):
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
474 ''' show a Link("file") or Multilink("file") property using links that
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
475 allow you to download files
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
476 '''
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
477 if not self.nodeid:
488
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
478 return _('[Download: not called from item]')
617
edd210915e64 Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents: 614
diff changeset
479 return self.do_link(property, is_download=1)
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
480
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
481
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
482 def do_checklist(self, property, **args):
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
483 ''' for a Link or Multilink property, display checkboxes for the
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
484 available choices to permit filtering
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
485 '''
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
486 propclass = self.properties[property]
306
36ae7ffb8a42 Fixed Checklist function - wasn't always working on a list.
Richard Jones <richard@users.sourceforge.net>
parents: 303
diff changeset
487 if (not isinstance(propclass, hyperdb.Link) and not
36ae7ffb8a42 Fixed Checklist function - wasn't always working on a list.
Richard Jones <richard@users.sourceforge.net>
parents: 303
diff changeset
488 isinstance(propclass, hyperdb.Multilink)):
488
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
489 return _('[Checklist: not a link]')
306
36ae7ffb8a42 Fixed Checklist function - wasn't always working on a list.
Richard Jones <richard@users.sourceforge.net>
parents: 303
diff changeset
490
36ae7ffb8a42 Fixed Checklist function - wasn't always working on a list.
Richard Jones <richard@users.sourceforge.net>
parents: 303
diff changeset
491 # get our current checkbox state
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
492 if self.nodeid:
306
36ae7ffb8a42 Fixed Checklist function - wasn't always working on a list.
Richard Jones <richard@users.sourceforge.net>
parents: 303
diff changeset
493 # get the info from the node - make sure it's a list
307
dac78e092228 CGI interface view customisation section may now be hidden
Richard Jones <richard@users.sourceforge.net>
parents: 306
diff changeset
494 if isinstance(propclass, hyperdb.Link):
306
36ae7ffb8a42 Fixed Checklist function - wasn't always working on a list.
Richard Jones <richard@users.sourceforge.net>
parents: 303
diff changeset
495 value = [self.cl.get(self.nodeid, property)]
36ae7ffb8a42 Fixed Checklist function - wasn't always working on a list.
Richard Jones <richard@users.sourceforge.net>
parents: 303
diff changeset
496 else:
36ae7ffb8a42 Fixed Checklist function - wasn't always working on a list.
Richard Jones <richard@users.sourceforge.net>
parents: 303
diff changeset
497 value = self.cl.get(self.nodeid, property)
128
ce36f2962b94 Fixed handling of passed-in values in form elements (ie. during a drill-down)
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
498 elif self.filterspec is not None:
306
36ae7ffb8a42 Fixed Checklist function - wasn't always working on a list.
Richard Jones <richard@users.sourceforge.net>
parents: 303
diff changeset
499 # get the state from the filter specification (always a list)
128
ce36f2962b94 Fixed handling of passed-in values in form elements (ie. during a drill-down)
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
500 value = self.filterspec.get(property, [])
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
501 else:
306
36ae7ffb8a42 Fixed Checklist function - wasn't always working on a list.
Richard Jones <richard@users.sourceforge.net>
parents: 303
diff changeset
502 # it's a new node, so there's no state
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
503 value = []
306
36ae7ffb8a42 Fixed Checklist function - wasn't always working on a list.
Richard Jones <richard@users.sourceforge.net>
parents: 303
diff changeset
504
36ae7ffb8a42 Fixed Checklist function - wasn't always working on a list.
Richard Jones <richard@users.sourceforge.net>
parents: 303
diff changeset
505 # so we can map to the linked node's "lable" property
36ae7ffb8a42 Fixed Checklist function - wasn't always working on a list.
Richard Jones <richard@users.sourceforge.net>
parents: 303
diff changeset
506 linkcl = self.db.classes[propclass.classname]
36ae7ffb8a42 Fixed Checklist function - wasn't always working on a list.
Richard Jones <richard@users.sourceforge.net>
parents: 303
diff changeset
507 l = []
804
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
508 k = linkcl.labelprop(1)
306
36ae7ffb8a42 Fixed Checklist function - wasn't always working on a list.
Richard Jones <richard@users.sourceforge.net>
parents: 303
diff changeset
509 for optionid in linkcl.list():
678
9fe50036e8df Fix for date properties as labels.
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
510 option = cgi.escape(str(linkcl.get(optionid, k)))
306
36ae7ffb8a42 Fixed Checklist function - wasn't always working on a list.
Richard Jones <richard@users.sourceforge.net>
parents: 303
diff changeset
511 if optionid in value or option in value:
36ae7ffb8a42 Fixed Checklist function - wasn't always working on a list.
Richard Jones <richard@users.sourceforge.net>
parents: 303
diff changeset
512 checked = 'checked'
36ae7ffb8a42 Fixed Checklist function - wasn't always working on a list.
Richard Jones <richard@users.sourceforge.net>
parents: 303
diff changeset
513 else:
36ae7ffb8a42 Fixed Checklist function - wasn't always working on a list.
Richard Jones <richard@users.sourceforge.net>
parents: 303
diff changeset
514 checked = ''
36ae7ffb8a42 Fixed Checklist function - wasn't always working on a list.
Richard Jones <richard@users.sourceforge.net>
parents: 303
diff changeset
515 l.append('%s:<input type="checkbox" %s name="%s" value="%s">'%(
36ae7ffb8a42 Fixed Checklist function - wasn't always working on a list.
Richard Jones <richard@users.sourceforge.net>
parents: 303
diff changeset
516 option, checked, property, option))
312
5a2c43891c20 [SF#473124]: UI inconsistency with Link fields.
Richard Jones <richard@users.sourceforge.net>
parents: 307
diff changeset
517
5a2c43891c20 [SF#473124]: UI inconsistency with Link fields.
Richard Jones <richard@users.sourceforge.net>
parents: 307
diff changeset
518 # for Links, allow the "unselected" option too
5a2c43891c20 [SF#473124]: UI inconsistency with Link fields.
Richard Jones <richard@users.sourceforge.net>
parents: 307
diff changeset
519 if isinstance(propclass, hyperdb.Link):
5a2c43891c20 [SF#473124]: UI inconsistency with Link fields.
Richard Jones <richard@users.sourceforge.net>
parents: 307
diff changeset
520 if value is None or '-1' in value:
5a2c43891c20 [SF#473124]: UI inconsistency with Link fields.
Richard Jones <richard@users.sourceforge.net>
parents: 307
diff changeset
521 checked = 'checked'
5a2c43891c20 [SF#473124]: UI inconsistency with Link fields.
Richard Jones <richard@users.sourceforge.net>
parents: 307
diff changeset
522 else:
5a2c43891c20 [SF#473124]: UI inconsistency with Link fields.
Richard Jones <richard@users.sourceforge.net>
parents: 307
diff changeset
523 checked = ''
488
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
524 l.append(_('[unselected]:<input type="checkbox" %s name="%s" '
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
525 'value="-1">')%(checked, property))
306
36ae7ffb8a42 Fixed Checklist function - wasn't always working on a list.
Richard Jones <richard@users.sourceforge.net>
parents: 303
diff changeset
526 return '\n'.join(l)
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
527
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
528 def do_note(self, rows=5, cols=80):
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
529 ''' display a "note" field, which is a text area for entering a note to
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
530 go along with a change.
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
531 '''
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
532 # TODO: pull the value from the form
342
0b7d62e414b6 Added the wrap="hard" attribute to the textarea of the note field...
Richard Jones <richard@users.sourceforge.net>
parents: 340
diff changeset
533 return '<textarea name="__note" wrap="hard" rows=%s cols=%s>'\
0b7d62e414b6 Added the wrap="hard" attribute to the textarea of the note field...
Richard Jones <richard@users.sourceforge.net>
parents: 340
diff changeset
534 '</textarea>'%(rows, cols)
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
535
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
536 # XXX new function
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
537 def do_list(self, property, reverse=0):
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
538 ''' list the items specified by property using the standard index for
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
539 the class
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
540 '''
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
541 propcl = self.properties[property]
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
542 if not isinstance(propcl, hyperdb.Multilink):
488
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
543 return _('[List: not a Multilink]')
577
334ae707ebfc more HTML template cleanup and unit tests
Richard Jones <richard@users.sourceforge.net>
parents: 576
diff changeset
544
334ae707ebfc more HTML template cleanup and unit tests
Richard Jones <richard@users.sourceforge.net>
parents: 576
diff changeset
545 value = self.determine_value(property)
581
137d7fc5234d real (non-string, duh) sorting of lists by node id
Richard Jones <richard@users.sourceforge.net>
parents: 577
diff changeset
546 if not value:
137d7fc5234d real (non-string, duh) sorting of lists by node id
Richard Jones <richard@users.sourceforge.net>
parents: 577
diff changeset
547 return ''
577
334ae707ebfc more HTML template cleanup and unit tests
Richard Jones <richard@users.sourceforge.net>
parents: 576
diff changeset
548
581
137d7fc5234d real (non-string, duh) sorting of lists by node id
Richard Jones <richard@users.sourceforge.net>
parents: 577
diff changeset
549 # sort, possibly revers and then re-stringify
137d7fc5234d real (non-string, duh) sorting of lists by node id
Richard Jones <richard@users.sourceforge.net>
parents: 577
diff changeset
550 value = map(int, value)
576
f98f37697f4c More HTML template cleanup and unit tests.
Richard Jones <richard@users.sourceforge.net>
parents: 575
diff changeset
551 value.sort()
244
6bf584784e31 Fixed missing import in mailgw :(
Richard Jones <richard@users.sourceforge.net>
parents: 231
diff changeset
552 if reverse:
6bf584784e31 Fixed missing import in mailgw :(
Richard Jones <richard@users.sourceforge.net>
parents: 231
diff changeset
553 value.reverse()
581
137d7fc5234d real (non-string, duh) sorting of lists by node id
Richard Jones <richard@users.sourceforge.net>
parents: 577
diff changeset
554 value = map(str, value)
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
555
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
556 # render the sub-index into a string
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
557 fp = StringIO.StringIO()
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
558 try:
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
559 write_save = self.client.write
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
560 self.client.write = fp.write
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
561 index = IndexTemplate(self.client, self.templates, propcl.classname)
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
562 index.render(nodeids=value, show_display_form=0)
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
563 finally:
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
564 self.client.write = write_save
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
565
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
566 return fp.getvalue()
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
567
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
568 # XXX new function
552
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
569 def do_history(self, direction='descending'):
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
570 ''' list the history of the item
552
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
571
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
572 If "direction" is 'descending' then the most recent event will
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
573 be displayed first. If it is 'ascending' then the oldest event
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
574 will be displayed first.
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
575 '''
141
5e8da9d010bd Handles new node display now.
Richard Jones <richard@users.sourceforge.net>
parents: 131
diff changeset
576 if self.nodeid is None:
488
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
577 return _("[History: node doesn't exist]")
141
5e8da9d010bd Handles new node display now.
Richard Jones <richard@users.sourceforge.net>
parents: 131
diff changeset
578
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
579 l = ['<table width=100% border=0 cellspacing=0 cellpadding=2>',
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
580 '<tr class="list-header">',
552
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
581 _('<th align=left><span class="list-item">Date</span></th>'),
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
582 _('<th align=left><span class="list-item">User</span></th>'),
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
583 _('<th align=left><span class="list-item">Action</span></th>'),
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
584 _('<th align=left><span class="list-item">Args</span></th>'),
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
585 '</tr>']
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
586
552
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
587 comments = {}
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
588 history = self.cl.history(self.nodeid)
576
f98f37697f4c More HTML template cleanup and unit tests.
Richard Jones <richard@users.sourceforge.net>
parents: 575
diff changeset
589 history.sort()
552
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
590 if direction == 'descending':
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
591 history.reverse()
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
592 for id, evt_date, user, action, args in history:
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
593 date_s = str(evt_date).replace("."," ")
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
594 arg_s = ''
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
595 if action == 'link' and type(args) == type(()):
547
e4ef6df2345c display links a html link in history.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 538
diff changeset
596 if len(args) == 3:
552
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
597 linkcl, linkid, key = args
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
598 arg_s += '<a href="%s%s">%s%s %s</a>'%(linkcl, linkid,
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
599 linkcl, linkid, key)
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
600 else:
651
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
601 arg_s = str(args)
552
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
602
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
603 elif action == 'unlink' and type(args) == type(()):
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
604 if len(args) == 3:
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
605 linkcl, linkid, key = args
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
606 arg_s += '<a href="%s%s">%s%s %s</a>'%(linkcl, linkid,
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
607 linkcl, linkid, key)
547
e4ef6df2345c display links a html link in history.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 538
diff changeset
608 else:
651
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
609 arg_s = str(args)
552
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
610
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
611 elif type(args) == type({}):
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
612 cell = []
547
e4ef6df2345c display links a html link in history.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 538
diff changeset
613 for k in args.keys():
552
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
614 # try to get the relevant property and treat it
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
615 # specially
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
616 try:
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
617 prop = self.properties[k]
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
618 except:
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
619 prop = None
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
620 if prop is not None:
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
621 if args[k] and (isinstance(prop, hyperdb.Multilink) or
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
622 isinstance(prop, hyperdb.Link)):
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
623 # figure what the link class is
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
624 classname = prop.classname
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
625 try:
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
626 linkcl = self.db.classes[classname]
651
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
627 except KeyError:
552
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
628 labelprop = None
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
629 comments[classname] = _('''The linked class
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
630 %(classname)s no longer exists''')%locals()
804
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
631 labelprop = linkcl.labelprop(1)
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
632 hrefable = os.path.exists(
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
633 os.path.join(self.templates, classname+'.item'))
552
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
634
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
635 if isinstance(prop, hyperdb.Multilink) and \
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
636 len(args[k]) > 0:
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
637 ml = []
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
638 for linkid in args[k]:
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
639 label = classname + linkid
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
640 # if we have a label property, try to use it
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
641 # TODO: test for node existence even when
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
642 # there's no labelprop!
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
643 try:
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
644 if labelprop is not None:
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
645 label = linkcl.get(linkid, labelprop)
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
646 except IndexError:
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
647 comments['no_link'] = _('''<strike>The
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
648 linked node no longer
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
649 exists</strike>''')
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
650 ml.append('<strike>%s</strike>'%label)
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
651 else:
804
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
652 if hrefable:
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
653 ml.append('<a href="%s%s">%s</a>'%(
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
654 classname, linkid, label))
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
655 else:
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
656 ml.append(label)
552
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
657 cell.append('%s:\n %s'%(k, ',\n '.join(ml)))
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
658 elif isinstance(prop, hyperdb.Link) and args[k]:
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
659 label = classname + args[k]
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
660 # if we have a label property, try to use it
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
661 # TODO: test for node existence even when
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
662 # there's no labelprop!
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
663 if labelprop is not None:
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
664 try:
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
665 label = linkcl.get(args[k], labelprop)
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
666 except IndexError:
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
667 comments['no_link'] = _('''<strike>The
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
668 linked node no longer
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
669 exists</strike>''')
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
670 cell.append(' <strike>%s</strike>,\n'%label)
556
50359de2800b Fixed up the HTML display of history so valid links are actually displayed.
Richard Jones <richard@users.sourceforge.net>
parents: 554
diff changeset
671 # "flag" this is done .... euwww
50359de2800b Fixed up the HTML display of history so valid links are actually displayed.
Richard Jones <richard@users.sourceforge.net>
parents: 554
diff changeset
672 label = None
50359de2800b Fixed up the HTML display of history so valid links are actually displayed.
Richard Jones <richard@users.sourceforge.net>
parents: 554
diff changeset
673 if label is not None:
804
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
674 if hrefable:
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
675 cell.append('%s: <a href="%s%s">%s</a>\n'%(k,
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
676 classname, args[k], label))
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
677 else:
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
678 cell.append('%s: %s' % (k,label))
552
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
679
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
680 elif isinstance(prop, hyperdb.Date) and args[k]:
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
681 d = date.Date(args[k])
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
682 cell.append('%s: %s'%(k, str(d)))
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
683
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
684 elif isinstance(prop, hyperdb.Interval) and args[k]:
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
685 d = date.Interval(args[k])
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
686 cell.append('%s: %s'%(k, str(d)))
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
687
804
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
688 elif isinstance(prop, hyperdb.String) and args[k]:
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
689 cell.append('%s: %s'%(k, cgi.escape(args[k])))
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
690
552
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
691 elif not args[k]:
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
692 cell.append('%s: (no value)\n'%k)
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
693
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
694 else:
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
695 cell.append('%s: %s\n'%(k, str(args[k])))
548
3f25182ed425 display superseder as html link in history.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 547
diff changeset
696 else:
552
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
697 # property no longer exists
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
698 comments['no_exist'] = _('''<em>The indicated property
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
699 no longer exists</em>''')
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
700 cell.append('<em>%s: %s</em>\n'%(k, str(args[k])))
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
701 arg_s = '<br />'.join(cell)
547
e4ef6df2345c display links a html link in history.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 538
diff changeset
702 else:
552
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
703 # unkown event!!
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
704 comments['unknown'] = _('''<strong><em>This event is not
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
705 handled by the history display!</em></strong>''')
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
706 arg_s = '<strong><em>' + str(args) + '</em></strong>'
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
707 date_s = date_s.replace(' ', '&nbsp;')
554
7e7b4183a8bd add nowrap to history table date cell i.e. <td nowrap ...
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 552
diff changeset
708 l.append('<tr><td nowrap valign=top>%s</td><td valign=top>%s</td>'
552
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
709 '<td valign=top>%s</td><td valign=top>%s</td></tr>'%(date_s,
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
710 user, action, arg_s))
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
711 if comments:
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
712 l.append(_('<tr><td colspan=4><strong>Note:</strong></td></tr>'))
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
713 for entry in comments.values():
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
714 l.append('<tr><td colspan=4>%s</td></tr>'%entry)
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
715 l.append('</table>')
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
716 return '\n'.join(l)
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
717
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
718 # XXX new function
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
719 def do_submit(self):
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
720 ''' add a submit button for the item
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
721 '''
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
722 if self.nodeid:
526
523b22a2c021 The submit buttons need a name attribute...
Richard Jones <richard@users.sourceforge.net>
parents: 525
diff changeset
723 return _('<input type="submit" name="submit" value="Submit Changes">')
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
724 elif self.form is not None:
526
523b22a2c021 The submit buttons need a name attribute...
Richard Jones <richard@users.sourceforge.net>
parents: 525
diff changeset
725 return _('<input type="submit" name="submit" value="Submit New Entry">')
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
726 else:
488
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
727 return _('[Submit: not called from item]')
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
728
639
Richard Jones <richard@users.sourceforge.net>
parents: 638
diff changeset
729 def do_classhelp(self, classname, properties, label='?', width='400',
Richard Jones <richard@users.sourceforge.net>
parents: 638
diff changeset
730 height='400'):
634
53549c6a7b33 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 627
diff changeset
731 '''pop up a javascript window with class help
639
Richard Jones <richard@users.sourceforge.net>
parents: 638
diff changeset
732
Richard Jones <richard@users.sourceforge.net>
parents: 638
diff changeset
733 This generates a link to a popup window which displays the
Richard Jones <richard@users.sourceforge.net>
parents: 638
diff changeset
734 properties indicated by "properties" of the class named by
Richard Jones <richard@users.sourceforge.net>
parents: 638
diff changeset
735 "classname". The "properties" should be a comma-separated list
Richard Jones <richard@users.sourceforge.net>
parents: 638
diff changeset
736 (eg. 'id,name,description').
Richard Jones <richard@users.sourceforge.net>
parents: 638
diff changeset
737
Richard Jones <richard@users.sourceforge.net>
parents: 638
diff changeset
738 You may optionally override the label displayed, the width and
Richard Jones <richard@users.sourceforge.net>
parents: 638
diff changeset
739 height. The popup window will be resizable and scrollable.
634
53549c6a7b33 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 627
diff changeset
740 '''
53549c6a7b33 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 627
diff changeset
741 return '<a href="javascript:help_window(\'classhelp?classname=%s&' \
638
21b3cfa7d99a ... and label, width and height control for extra flavour!
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
742 'properties=%s\', \'%s\', \'%s\')"><b>(%s)</b></a>'%(classname,
21b3cfa7d99a ... and label, width and height control for extra flavour!
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
743 properties, width, height, label)
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
744 #
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
745 # INDEX TEMPLATES
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
746 #
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
747 class IndexTemplateReplace:
651
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
748 '''Regular-expression based parser that turns the template into HTML.
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
749 '''
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
750 def __init__(self, globals, locals, props):
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
751 self.globals = globals
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
752 self.locals = locals
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
753 self.props = props
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
754
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
755 replace=re.compile(
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
756 r'((<property\s+name="(?P<name>[^>]+)">(?P<text>.+?)</property>)|'
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
757 r'(?P<display><display\s+call="(?P<command>[^"]+)">))', re.I|re.S)
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
758 def go(self, text):
804
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
759 newtext = self.replace.sub(self, text)
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
760 self.locals = self.globals = None
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
761 return newtext
224
ad2c98faec97 using isinstance(blah, Foo) now instead of isFooType
Richard Jones <richard@users.sourceforge.net>
parents: 214
diff changeset
762
749
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
763 def __call__(self, m, search_text=None, filter=None, columns=None,
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
764 sort=None, group=None):
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
765 if m.group('name'):
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
766 if m.group('name') in self.props:
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
767 text = m.group('text')
804
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
768 replace = self.__class__(self.globals, {}, self.props)
651
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
769 return replace.go(text)
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
770 else:
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
771 return ''
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
772 if m.group('display'):
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
773 command = m.group('command')
806
83becf3faa2f Fix the cycles (a clear method, called after render...
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 804
diff changeset
774 return eval(command, self.globals, self.locals)
651
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
775 return '*** unhandled match: %s'%str(m.groupdict())
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
776
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
777 class IndexTemplate(TemplateFunctions):
651
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
778 '''Templating functionality specifically for index pages
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
779 '''
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
780 def __init__(self, client, templates, classname):
651
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
781 TemplateFunctions.__init__(self)
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
782 self.client = client
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 515
diff changeset
783 self.instance = client.instance
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
784 self.templates = templates
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
785 self.classname = classname
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
786
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
787 # derived
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
788 self.db = self.client.db
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
789 self.cl = self.db.classes[self.classname]
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
790 self.properties = self.cl.getprops()
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
791
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
792 col_re=re.compile(r'<property\s+name="([^>]+)">')
749
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
793 def render(self, filterspec={}, search_text='', filter=[], columns=[],
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
794 sort=[], group=[], show_display_form=1, nodeids=None,
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
795 show_customization=1, show_nodes=1):
804
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
796
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
797 self.filterspec = filterspec
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
798
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
799 w = self.client.write
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
800 # get the filter template
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
801 try:
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
802 filter_template = open(os.path.join(self.templates,
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
803 self.classname+'.filter')).read()
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
804 all_filters = self.col_re.findall(filter_template)
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
805 except IOError, error:
332
1fe356fc3d3e Fixed ENOENT/WindowsError thing, thanks Juergen Hermann
Richard Jones <richard@users.sourceforge.net>
parents: 327
diff changeset
806 if error.errno not in (errno.ENOENT, errno.ESRCH): raise
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
807 filter_template = None
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
808 all_filters = []
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
809
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
810 # XXX deviate from spec here ...
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
811 # load the index section template and figure the default columns from it
627
952679be9e2c Added simple editing for classes that don't define a templated interface.
Richard Jones <richard@users.sourceforge.net>
parents: 623
diff changeset
812 try:
952679be9e2c Added simple editing for classes that don't define a templated interface.
Richard Jones <richard@users.sourceforge.net>
parents: 623
diff changeset
813 template = open(os.path.join(self.templates,
952679be9e2c Added simple editing for classes that don't define a templated interface.
Richard Jones <richard@users.sourceforge.net>
parents: 623
diff changeset
814 self.classname+'.index')).read()
952679be9e2c Added simple editing for classes that don't define a templated interface.
Richard Jones <richard@users.sourceforge.net>
parents: 623
diff changeset
815 except IOError, error:
952679be9e2c Added simple editing for classes that don't define a templated interface.
Richard Jones <richard@users.sourceforge.net>
parents: 623
diff changeset
816 if error.errno not in (errno.ENOENT, errno.ESRCH): raise
952679be9e2c Added simple editing for classes that don't define a templated interface.
Richard Jones <richard@users.sourceforge.net>
parents: 623
diff changeset
817 raise MissingTemplateError, self.classname+'.index'
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
818 all_columns = self.col_re.findall(template)
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
819 if not columns:
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
820 columns = []
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
821 for name in all_columns:
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
822 columns.append(name)
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
823 else:
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
824 # re-sort columns to be the same order as all_columns
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
825 l = []
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
826 for name in all_columns:
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
827 if name in columns:
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
828 l.append(name)
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
829 columns = l
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
830
320
61c42790c3f1 Bugfix in filter "widget" placement, thanks Roch'e
Richard Jones <richard@users.sourceforge.net>
parents: 318
diff changeset
831 # display the filter section
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 515
diff changeset
832 if (show_display_form and
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 515
diff changeset
833 self.instance.FILTER_POSITION in ('top and bottom', 'top')):
614
5fdf95e6c20a . All forms now have "double-submit" protection...
Richard Jones <richard@users.sourceforge.net>
parents: 581
diff changeset
834 w('<form onSubmit="return submit_once()" action="%s">\n'%self.classname)
749
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
835 self.filter_section(filter_template, search_text, filter,
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
836 columns, group, all_filters, all_columns, show_customization)
350
e8d244a98ffd Ahah! Fixed the lynx problem - there was a hidden input field misplaced.
Richard Jones <richard@users.sourceforge.net>
parents: 342
diff changeset
837 # make sure that the sorting doesn't get lost either
e8d244a98ffd Ahah! Fixed the lynx problem - there was a hidden input field misplaced.
Richard Jones <richard@users.sourceforge.net>
parents: 342
diff changeset
838 if sort:
e8d244a98ffd Ahah! Fixed the lynx problem - there was a hidden input field misplaced.
Richard Jones <richard@users.sourceforge.net>
parents: 342
diff changeset
839 w('<input type="hidden" name=":sort" value="%s">'%
e8d244a98ffd Ahah! Fixed the lynx problem - there was a hidden input field misplaced.
Richard Jones <richard@users.sourceforge.net>
parents: 342
diff changeset
840 ','.join(sort))
320
61c42790c3f1 Bugfix in filter "widget" placement, thanks Roch'e
Richard Jones <richard@users.sourceforge.net>
parents: 318
diff changeset
841 w('</form>\n')
61c42790c3f1 Bugfix in filter "widget" placement, thanks Roch'e
Richard Jones <richard@users.sourceforge.net>
parents: 318
diff changeset
842
61c42790c3f1 Bugfix in filter "widget" placement, thanks Roch'e
Richard Jones <richard@users.sourceforge.net>
parents: 318
diff changeset
843
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
844 # now display the index section
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
845 w('<table width=100% border=0 cellspacing=0 cellpadding=2>\n')
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
846 w('<tr class="list-header">\n')
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
847 for name in columns:
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
848 cname = name.capitalize()
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
849 if show_display_form:
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
850 sb = self.sortby(name, filterspec, columns, filter, group, sort)
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
851 anchor = "%s?%s"%(self.classname, sb)
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
852 w('<td><span class="list-header"><a href="%s">%s</a></span></td>\n'%(
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
853 anchor, cname))
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
854 else:
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
855 w('<td><span class="list-header">%s</span></td>\n'%cname)
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
856 w('</tr>\n')
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
857
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
858 # this stuff is used for group headings - optimise the group names
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
859 old_group = None
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
860 group_names = []
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
861 if group:
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
862 for name in group:
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
863 if name[0] == '-': group_names.append(name[1:])
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
864 else: group_names.append(name)
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
865
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
866 # now actually loop through all the nodes we get from the filter and
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
867 # apply the template
749
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
868 if show_nodes:
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
869 matches = None
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
870 if nodeids is None:
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
871 if search_text != '':
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
872 matches = self.client.indexer.search(
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
873 search_text.split(' '), self.cl)
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
874 nodeids = self.cl.filter(matches, filterspec, sort, group)
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
875 for nodeid in nodeids:
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
876 # check for a group heading
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
877 if group_names:
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
878 this_group = [self.cl.get(nodeid, name, _('[no value]'))
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
879 for name in group_names]
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
880 if this_group != old_group:
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
881 l = []
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
882 for name in group_names:
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
883 prop = self.properties[name]
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
884 if isinstance(prop, hyperdb.Link):
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
885 group_cl = self.db.classes[prop.classname]
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
886 key = group_cl.getkey()
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
887 value = self.cl.get(nodeid, name)
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
888 if value is None:
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
889 l.append(_('[unselected %(classname)s]')%{
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
890 'classname': prop.classname})
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
891 else:
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
892 l.append(group_cl.get(self.cl.get(nodeid,
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
893 name), key))
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
894 elif isinstance(prop, hyperdb.Multilink):
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
895 group_cl = self.db.classes[prop.classname]
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
896 key = group_cl.getkey()
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
897 for value in self.cl.get(nodeid, name):
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
898 l.append(group_cl.get(value, key))
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
899 else:
749
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
900 value = self.cl.get(nodeid, name,
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
901 _('[no value]'))
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
902 if value is None:
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
903 value = _('[empty %(name)s]')%locals()
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
904 else:
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
905 value = str(value)
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
906 l.append(value)
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
907 w('<tr class="section-bar">'
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
908 '<td align=middle colspan=%s>'
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
909 '<strong>%s</strong></td></tr>'%(
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
910 len(columns), ', '.join(l)))
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
911 old_group = this_group
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
912
749
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
913 # display this node's row
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
914 replace = IndexTemplateReplace(self.globals, locals(), columns)
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
915 self.nodeid = nodeid
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
916 w(replace.go(template))
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
917 if matches:
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
918 self.node_matches(matches[nodeid], len(columns))
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
919 self.nodeid = None
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
920
128
ce36f2962b94 Fixed handling of passed-in values in form elements (ie. during a drill-down)
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
921 w('</table>')
ce36f2962b94 Fixed handling of passed-in values in form elements (ie. during a drill-down)
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
922
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
923 # display the filter section
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 515
diff changeset
924 if (show_display_form and hasattr(self.instance, 'FILTER_POSITION') and
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 515
diff changeset
925 self.instance.FILTER_POSITION in ('top and bottom', 'bottom')):
614
5fdf95e6c20a . All forms now have "double-submit" protection...
Richard Jones <richard@users.sourceforge.net>
parents: 581
diff changeset
926 w('<form onSubmit="return submit_once()" action="%s">\n'%self.classname)
749
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
927 self.filter_section(filter_template, search_text, filter,
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
928 columns, group, all_filters, all_columns, show_customization)
350
e8d244a98ffd Ahah! Fixed the lynx problem - there was a hidden input field misplaced.
Richard Jones <richard@users.sourceforge.net>
parents: 342
diff changeset
929 # make sure that the sorting doesn't get lost either
e8d244a98ffd Ahah! Fixed the lynx problem - there was a hidden input field misplaced.
Richard Jones <richard@users.sourceforge.net>
parents: 342
diff changeset
930 if sort:
e8d244a98ffd Ahah! Fixed the lynx problem - there was a hidden input field misplaced.
Richard Jones <richard@users.sourceforge.net>
parents: 342
diff changeset
931 w('<input type="hidden" name=":sort" value="%s">'%
e8d244a98ffd Ahah! Fixed the lynx problem - there was a hidden input field misplaced.
Richard Jones <richard@users.sourceforge.net>
parents: 342
diff changeset
932 ','.join(sort))
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
933 w('</form>\n')
316
c0ca7f35e0c5 Added configuration for:
Richard Jones <richard@users.sourceforge.net>
parents: 313
diff changeset
934
804
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
935 self.db = self.cl = self.properties = None
806
83becf3faa2f Fix the cycles (a clear method, called after render...
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 804
diff changeset
936 self.clear()
804
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
937
749
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
938 def node_matches(self, match, colspan):
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
939 ''' display the files and messages for a node that matched a
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
940 full text search
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
941 '''
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
942 w = self.client.write
312
5a2c43891c20 [SF#473124]: UI inconsistency with Link fields.
Richard Jones <richard@users.sourceforge.net>
parents: 307
diff changeset
943
749
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
944 message_links = []
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
945 file_links = []
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
946 if match.has_key('messages'):
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
947 for msgid in match['messages']:
804
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
948 k = self.db.msg.labelprop(1)
749
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
949 lab = self.db.msg.get(msgid, k)
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
950 msgpath = 'msg%s'%msgid
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
951 message_links.append('<a href="%(msgpath)s">%(lab)s</a>'
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
952 %locals())
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
953 w(_('<tr class="row-hilite"><td colspan="%s">'
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
954 '&nbsp;&nbsp;Matched messages: %s</td></tr>')%(
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
955 colspan, ', '.join(message_links)))
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
956
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
957 if match.has_key('files'):
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
958 for fileid in match['files']:
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
959 filename = self.db.file.get(fileid, 'name')
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
960 filepath = 'file%s/%s'%(fileid, filename)
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
961 file_links.append('<a href="%(filepath)s">%(filename)s</a>'
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
962 %locals())
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
963 w(_('<tr class="row-hilite"><td colspan="%s">'
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
964 '&nbsp;&nbsp;Matched files: %s</td></tr>')%(
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
965 colspan, ', '.join(file_links)))
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
966
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
967
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
968 def filter_section(self, template, search_text, filter, columns, group,
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
969 all_filters, all_columns, show_customization):
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
970 w = self.client.write
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
971
411
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 408
diff changeset
972 # wrap the template in a single table to ensure the whole widget
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 408
diff changeset
973 # is displayed at once
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 408
diff changeset
974 w('<table><tr><td>')
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 408
diff changeset
975
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
976 if template and filter:
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
977 # display the filter section
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
978 w('<table width=100% border=0 cellspacing=0 cellpadding=2>')
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
979 w('<tr class="location-bar">')
488
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
980 w(_(' <th align="left" colspan="2">Filter specification...</th>'))
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
981 w('</tr>')
749
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
982 w('<tr>')
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
983 w('<th class="location-bar">Search terms</th>')
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
984 w('<td><input name="search_text" value="%s" size="50"></td>'%(
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
985 search_text))
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
986 w('</tr>')
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
987 replace = IndexTemplateReplace(self.globals, locals(), filter)
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
988 w(replace.go(template))
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
989 w('<tr class="location-bar"><td width="1%%">&nbsp;</td>')
488
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
990 w(_('<td><input type="submit" name="action" value="Redisplay"></td></tr>'))
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
991 w('</table>')
307
dac78e092228 CGI interface view customisation section may now be hidden
Richard Jones <richard@users.sourceforge.net>
parents: 306
diff changeset
992
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
993 # now add in the filter/columns/group/etc config table form
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
994 w('<input type="hidden" name="show_customization" value="%s">' %
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
995 show_customization )
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
996 w('<table width=100% border=0 cellspacing=0 cellpadding=2>\n')
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
997 names = []
623
Richard Jones <richard@users.sourceforge.net>
parents: 622
diff changeset
998 seen = {}
622
1b16ddd69f31 [SF#517906] Attribute order in "View customisation"
Richard Jones <richard@users.sourceforge.net>
parents: 621
diff changeset
999 for name in all_filters + all_columns:
1b16ddd69f31 [SF#517906] Attribute order in "View customisation"
Richard Jones <richard@users.sourceforge.net>
parents: 621
diff changeset
1000 if self.properties.has_key(name) and not seen.has_key(name):
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1001 names.append(name)
622
1b16ddd69f31 [SF#517906] Attribute order in "View customisation"
Richard Jones <richard@users.sourceforge.net>
parents: 621
diff changeset
1002 seen[name] = 1
307
dac78e092228 CGI interface view customisation section may now be hidden
Richard Jones <richard@users.sourceforge.net>
parents: 306
diff changeset
1003 if show_customization:
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1004 action = '-'
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1005 else:
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1006 action = '+'
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1007 # hide the values for filters, columns and grouping in the form
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1008 # if the customization widget is not visible
307
dac78e092228 CGI interface view customisation section may now be hidden
Richard Jones <richard@users.sourceforge.net>
parents: 306
diff changeset
1009 for name in names:
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1010 if all_filters and name in filter:
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1011 w('<input type="hidden" name=":filter" value="%s">' % name)
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1012 if all_columns and name in columns:
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1013 w('<input type="hidden" name=":columns" value="%s">' % name)
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1014 if all_columns and name in group:
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1015 w('<input type="hidden" name=":group" value="%s">' % name)
307
dac78e092228 CGI interface view customisation section may now be hidden
Richard Jones <richard@users.sourceforge.net>
parents: 306
diff changeset
1016
351
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1017 # TODO: The widget style can go into the stylesheet
488
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
1018 w(_('<th align="left" colspan=%s>'
351
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1019 '<input style="height : 1em; width : 1em; font-size: 12pt" type="submit" name="action" value="%s">&nbsp;View '
488
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
1020 'customisation...</th></tr>\n')%(len(names)+1, action))
351
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1021
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1022 if not show_customization:
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1023 w('</table>\n')
392
a9edec536e0a missing "return" in filter_section (thanks Roch'e Compaan)
Richard Jones <richard@users.sourceforge.net>
parents: 351
diff changeset
1024 return
351
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1025
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1026 w('<tr class="location-bar"><th>&nbsp;</th>')
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1027 for name in names:
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1028 w('<th>%s</th>'%name.capitalize())
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1029 w('</tr>\n')
307
dac78e092228 CGI interface view customisation section may now be hidden
Richard Jones <richard@users.sourceforge.net>
parents: 306
diff changeset
1030
351
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1031 # Filter
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1032 if all_filters:
488
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
1033 w(_('<tr><th width="1%" align=right class="location-bar">Filters</th>\n'))
351
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1034 for name in names:
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1035 if name not in all_filters:
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1036 w('<td>&nbsp;</td>')
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1037 continue
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1038 if name in filter: checked=' checked'
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1039 else: checked=''
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1040 w('<td align=middle>\n')
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1041 w(' <input type="checkbox" name=":filter" value="%s" '
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1042 '%s></td>\n'%(name, checked))
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1043 w('</tr>\n')
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1044
351
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1045 # Columns
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1046 if all_columns:
488
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
1047 w(_('<tr><th width="1%" align=right class="location-bar">Columns</th>\n'))
351
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1048 for name in names:
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1049 if name not in all_columns:
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1050 w('<td>&nbsp;</td>')
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1051 continue
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1052 if name in columns: checked=' checked'
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1053 else: checked=''
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1054 w('<td align=middle>\n')
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1055 w(' <input type="checkbox" name=":columns" value="%s"'
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1056 '%s></td>\n'%(name, checked))
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1057 w('</tr>\n')
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1058
351
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1059 # Grouping
488
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
1060 w(_('<tr><th width="1%" align=right class="location-bar">Grouping</th>\n'))
351
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1061 for name in names:
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1062 if name not in all_columns:
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1063 w('<td>&nbsp;</td>')
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1064 continue
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1065 if name in group: checked=' checked'
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1066 else: checked=''
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1067 w('<td align=middle>\n')
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1068 w(' <input type="checkbox" name=":group" value="%s"'
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1069 '%s></td>\n'%(name, checked))
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1070 w('</tr>\n')
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1071
351
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1072 w('<tr class="location-bar"><td width="1%">&nbsp;</td>')
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1073 w('<td colspan="%s">'%len(names))
488
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
1074 w(_('<input type="submit" name="action" value="Redisplay"></td>'))
351
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1075 w('</tr>\n')
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1076 w('</table>\n')
307
dac78e092228 CGI interface view customisation section may now be hidden
Richard Jones <richard@users.sourceforge.net>
parents: 306
diff changeset
1077
411
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 408
diff changeset
1078 # and the outer table
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 408
diff changeset
1079 w('</td></tr></table>')
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 408
diff changeset
1080
307
dac78e092228 CGI interface view customisation section may now be hidden
Richard Jones <richard@users.sourceforge.net>
parents: 306
diff changeset
1081
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1082 def sortby(self, sort_name, filterspec, columns, filter, group, sort):
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1083 l = []
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1084 w = l.append
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1085 for k, v in filterspec.items():
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1086 k = urllib.quote(k)
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1087 if type(v) == type([]):
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1088 w('%s=%s'%(k, ','.join(map(urllib.quote, v))))
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1089 else:
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1090 w('%s=%s'%(k, urllib.quote(v)))
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1091 if columns:
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1092 w(':columns=%s'%','.join(map(urllib.quote, columns)))
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1093 if filter:
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1094 w(':filter=%s'%','.join(map(urllib.quote, filter)))
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1095 if group:
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1096 w(':group=%s'%','.join(map(urllib.quote, group)))
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1097 m = []
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1098 s_dir = ''
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1099 for name in sort:
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1100 dir = name[0]
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1101 if dir == '-':
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1102 name = name[1:]
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1103 else:
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1104 dir = ''
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1105 if sort_name == name:
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1106 if dir == '-':
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1107 s_dir = ''
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1108 else:
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1109 s_dir = '-'
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1110 else:
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1111 m.append(dir+urllib.quote(name))
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1112 m.insert(0, s_dir+urllib.quote(sort_name))
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1113 # so things don't get completely out of hand, limit the sort to
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1114 # two columns
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1115 w(':sort=%s'%','.join(m[:2]))
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1116 return '&'.join(l)
307
dac78e092228 CGI interface view customisation section may now be hidden
Richard Jones <richard@users.sourceforge.net>
parents: 306
diff changeset
1117
749
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
1118
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1119 #
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1120 # ITEM TEMPLATES
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1121 #
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1122 class ItemTemplateReplace:
651
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
1123 '''Regular-expression based parser that turns the template into HTML.
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
1124 '''
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1125 def __init__(self, globals, locals, cl, nodeid):
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1126 self.globals = globals
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1127 self.locals = locals
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1128 self.cl = cl
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1129 self.nodeid = nodeid
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1130
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1131 replace=re.compile(
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1132 r'((<property\s+name="(?P<name>[^>]+)">(?P<text>.+?)</property>)|'
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1133 r'(?P<display><display\s+call="(?P<command>[^"]+)">))', re.I|re.S)
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1134 def go(self, text):
804
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
1135 newtext = self.replace.sub(self, text)
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
1136 self.globals = self.locals = self.cl = None
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
1137 return newtext
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1138
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1139 def __call__(self, m, filter=None, columns=None, sort=None, group=None):
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1140 if m.group('name'):
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1141 if self.nodeid and self.cl.get(self.nodeid, m.group('name')):
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1142 replace = ItemTemplateReplace(self.globals, {}, self.cl,
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1143 self.nodeid)
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1144 return replace.go(m.group('text'))
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1145 else:
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1146 return ''
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1147 if m.group('display'):
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1148 command = m.group('command')
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1149 return eval(command, self.globals, self.locals)
651
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
1150 return '*** unhandled match: %s'%str(m.groupdict())
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1151
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1152
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1153 class ItemTemplate(TemplateFunctions):
651
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
1154 '''Templating functionality specifically for item (node) display
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
1155 '''
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1156 def __init__(self, client, templates, classname):
651
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
1157 TemplateFunctions.__init__(self)
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1158 self.client = client
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 515
diff changeset
1159 self.instance = client.instance
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1160 self.templates = templates
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1161 self.classname = classname
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1162
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1163 # derived
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1164 self.db = self.client.db
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1165 self.cl = self.db.classes[self.classname]
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1166 self.properties = self.cl.getprops()
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1167
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1168 def render(self, nodeid):
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1169 self.nodeid = nodeid
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1170
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1171 if (self.properties.has_key('type') and
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1172 self.properties.has_key('content')):
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1173 pass
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1174 # XXX we really want to return this as a downloadable...
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1175 # currently I handle this at a higher level by detecting 'file'
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1176 # designators...
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1177
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1178 w = self.client.write
614
5fdf95e6c20a . All forms now have "double-submit" protection...
Richard Jones <richard@users.sourceforge.net>
parents: 581
diff changeset
1179 w('<form onSubmit="return submit_once()" action="%s%s" method="POST" enctype="multipart/form-data">'%(
411
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 408
diff changeset
1180 self.classname, nodeid))
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1181 s = open(os.path.join(self.templates, self.classname+'.item')).read()
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1182 replace = ItemTemplateReplace(self.globals, locals(), self.cl, nodeid)
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1183 w(replace.go(s))
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1184 w('</form>')
804
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
1185 self.cl = self.db = self.properties = None
806
83becf3faa2f Fix the cycles (a clear method, called after render...
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 804
diff changeset
1186 self.clear()
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1187
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1188
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1189 class NewItemTemplate(TemplateFunctions):
651
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
1190 '''Templating functionality specifically for NEW item (node) display
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
1191 '''
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1192 def __init__(self, client, templates, classname):
651
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
1193 TemplateFunctions.__init__(self)
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1194 self.client = client
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 515
diff changeset
1195 self.instance = client.instance
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1196 self.templates = templates
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1197 self.classname = classname
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1198
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1199 # derived
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1200 self.db = self.client.db
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1201 self.cl = self.db.classes[self.classname]
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1202 self.properties = self.cl.getprops()
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1203
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1204 def render(self, form):
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1205 self.form = form
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1206 w = self.client.write
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1207 c = self.classname
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1208 try:
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1209 s = open(os.path.join(self.templates, c+'.newitem')).read()
408
424bfccd4118 "except:" is bad, bad , bad!
Jürgen Hermann <jhermann@users.sourceforge.net>
parents: 406
diff changeset
1210 except IOError:
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1211 s = open(os.path.join(self.templates, c+'.item')).read()
614
5fdf95e6c20a . All forms now have "double-submit" protection...
Richard Jones <richard@users.sourceforge.net>
parents: 581
diff changeset
1212 w('<form onSubmit="return submit_once()" action="new%s" method="POST" enctype="multipart/form-data">'%c)
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1213 for key in form.keys():
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1214 if key[0] == ':':
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1215 value = form[key].value
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1216 if type(value) != type([]): value = [value]
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1217 for value in value:
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1218 w('<input type="hidden" name="%s" value="%s">'%(key, value))
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1219 replace = ItemTemplateReplace(self.globals, locals(), None, None)
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1220 w(replace.go(s))
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1221 w('</form>')
804
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
1222 self.cl = self.db = None
806
83becf3faa2f Fix the cycles (a clear method, called after render...
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 804
diff changeset
1223 self.clear()
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1224
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1225 #
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1226 # $Log: not supported by cvs2svn $
806
83becf3faa2f Fix the cycles (a clear method, called after render...
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 804
diff changeset
1227 # Revision 1.93 2002/06/27 12:05:25 gmcm
83becf3faa2f Fix the cycles (a clear method, called after render...
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 804
diff changeset
1228 # Default labelprops to id.
83becf3faa2f Fix the cycles (a clear method, called after render...
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 804
diff changeset
1229 # In history, make sure there's a .item before making a link / multilink into an href.
83becf3faa2f Fix the cycles (a clear method, called after render...
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 804
diff changeset
1230 # Also in history, cgi.escape String properties.
83becf3faa2f Fix the cycles (a clear method, called after render...
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 804
diff changeset
1231 # Clean up some of the reference cycles.
83becf3faa2f Fix the cycles (a clear method, called after render...
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 804
diff changeset
1232 #
804
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
1233 # Revision 1.92 2002/06/11 04:57:04 richard
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
1234 # Added optional additional property to display in a Multilink form menu.
af4826d8773d Default labelprops to id.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents: 757
diff changeset
1235 #
757
00d360a4978a Added optional additional property to display in a Multilink form menu.
Richard Jones <richard@users.sourceforge.net>
parents: 755
diff changeset
1236 # Revision 1.91 2002/05/31 00:08:02 richard
00d360a4978a Added optional additional property to display in a Multilink form menu.
Richard Jones <richard@users.sourceforge.net>
parents: 755
diff changeset
1237 # can now just display a link/multilink id - useful for stylesheet stuff
00d360a4978a Added optional additional property to display in a Multilink form menu.
Richard Jones <richard@users.sourceforge.net>
parents: 755
diff changeset
1238 #
755
49c9522675b9 can now just display a link/multilink id - useful for stylesheet stuff
Richard Jones <richard@users.sourceforge.net>
parents: 749
diff changeset
1239 # Revision 1.90 2002/05/25 07:16:24 rochecompaan
49c9522675b9 can now just display a link/multilink id - useful for stylesheet stuff
Richard Jones <richard@users.sourceforge.net>
parents: 749
diff changeset
1240 # Merged search_indexing-branch with HEAD
49c9522675b9 can now just display a link/multilink id - useful for stylesheet stuff
Richard Jones <richard@users.sourceforge.net>
parents: 749
diff changeset
1241 #
749
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
1242 # Revision 1.89 2002/05/15 06:34:47 richard
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
1243 # forgot to fix the templating for last change
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
1244 #
721
c63b71a949a8 forgot to fix the templating for last change
Richard Jones <richard@users.sourceforge.net>
parents: 696
diff changeset
1245 # Revision 1.88 2002/04/24 08:34:35 rochecompaan
c63b71a949a8 forgot to fix the templating for last change
Richard Jones <richard@users.sourceforge.net>
parents: 696
diff changeset
1246 # Sorting was applied to all nodes of the MultiLink class instead of
c63b71a949a8 forgot to fix the templating for last change
Richard Jones <richard@users.sourceforge.net>
parents: 696
diff changeset
1247 # the nodes that are actually linked to in the "field" template
c63b71a949a8 forgot to fix the templating for last change
Richard Jones <richard@users.sourceforge.net>
parents: 696
diff changeset
1248 # function. This adds about 20+ seconds in the display of an issue if
c63b71a949a8 forgot to fix the templating for last change
Richard Jones <richard@users.sourceforge.net>
parents: 696
diff changeset
1249 # your database has a 1000 or more issue in it.
c63b71a949a8 forgot to fix the templating for last change
Richard Jones <richard@users.sourceforge.net>
parents: 696
diff changeset
1250 #
696
709f8f1d5661 Sorting was applied to all nodes of the MultiLink class...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 678
diff changeset
1251 # Revision 1.87 2002/04/03 06:12:46 richard
709f8f1d5661 Sorting was applied to all nodes of the MultiLink class...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 678
diff changeset
1252 # Fix for date properties as labels.
709f8f1d5661 Sorting was applied to all nodes of the MultiLink class...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 678
diff changeset
1253 #
678
9fe50036e8df Fix for date properties as labels.
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
1254 # Revision 1.86 2002/04/03 05:54:31 richard
9fe50036e8df Fix for date properties as labels.
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
1255 # Fixed serialisation problem by moving the serialisation step out of the
9fe50036e8df Fix for date properties as labels.
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
1256 # hyperdb.Class (get, set) into the hyperdb.Database.
9fe50036e8df Fix for date properties as labels.
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
1257 #
9fe50036e8df Fix for date properties as labels.
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
1258 # Also fixed htmltemplate after the showid changes I made yesterday.
9fe50036e8df Fix for date properties as labels.
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
1259 #
9fe50036e8df Fix for date properties as labels.
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
1260 # Unit tests for all of the above written.
9fe50036e8df Fix for date properties as labels.
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
1261 #
676
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 673
diff changeset
1262 # Revision 1.85 2002/04/02 01:40:58 richard
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 673
diff changeset
1263 # . link() htmltemplate function now has a "showid" option for links and
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 673
diff changeset
1264 # multilinks. When true, it only displays the linked node id as the anchor
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 673
diff changeset
1265 # text. The link value is displayed as a tooltip using the title anchor
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 673
diff changeset
1266 # attribute.
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 673
diff changeset
1267 #
749
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
1268 # Revision 1.84.2.2 2002/04/20 13:23:32 rochecompaan
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
1269 # We now have a separate search page for nodes. Search links for
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
1270 # different classes can be customized in instance_config similar to
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
1271 # index links.
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
1272 #
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
1273 # Revision 1.84.2.1 2002/04/19 19:54:42 rochecompaan
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
1274 # cgi_client.py
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
1275 # removed search link for the time being
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
1276 # moved rendering of matches to htmltemplate
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
1277 # hyperdb.py
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
1278 # filtering of nodes on full text search incorporated in filter method
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
1279 # roundupdb.py
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
1280 # added paramater to call of filter method
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
1281 # roundup_indexer.py
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
1282 # added search method to RoundupIndexer class
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 721
diff changeset
1283 #
673
604c84696461 link() htmltemplate function now has a "showid" option for links & multilinks.
Richard Jones <richard@users.sourceforge.net>
parents: 672
diff changeset
1284 # Revision 1.84 2002/03/29 19:41:48 rochecompaan
604c84696461 link() htmltemplate function now has a "showid" option for links & multilinks.
Richard Jones <richard@users.sourceforge.net>
parents: 672
diff changeset
1285 # . Fixed display of mutlilink properties when using the template
604c84696461 link() htmltemplate function now has a "showid" option for links & multilinks.
Richard Jones <richard@users.sourceforge.net>
parents: 672
diff changeset
1286 # functions, menu and plain.
604c84696461 link() htmltemplate function now has a "showid" option for links & multilinks.
Richard Jones <richard@users.sourceforge.net>
parents: 672
diff changeset
1287 #
672
d92e06a3a56e Fixed display of mutlilink properties...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 651
diff changeset
1288 # Revision 1.83 2002/02/27 04:14:31 richard
d92e06a3a56e Fixed display of mutlilink properties...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 651
diff changeset
1289 # Ran it through pychecker, made fixes
d92e06a3a56e Fixed display of mutlilink properties...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 651
diff changeset
1290 #
651
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
1291 # Revision 1.82 2002/02/21 23:11:45 richard
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
1292 # . fixed some problems in date calculations (calendar.py doesn't handle over-
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
1293 # and under-flow). Also, hour/minute/second intervals may now be more than
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
1294 # 99 each.
6257d4e49d2a Ran it through pychecker, made fixes
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
1295 #
640
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 639
diff changeset
1296 # Revision 1.81 2002/02/21 07:21:38 richard
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 639
diff changeset
1297 # docco
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 639
diff changeset
1298 #
639
Richard Jones <richard@users.sourceforge.net>
parents: 638
diff changeset
1299 # Revision 1.80 2002/02/21 07:19:08 richard
Richard Jones <richard@users.sourceforge.net>
parents: 638
diff changeset
1300 # ... and label, width and height control for extra flavour!
Richard Jones <richard@users.sourceforge.net>
parents: 638
diff changeset
1301 #
638
21b3cfa7d99a ... and label, width and height control for extra flavour!
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
1302 # Revision 1.79 2002/02/21 06:57:38 richard
21b3cfa7d99a ... and label, width and height control for extra flavour!
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
1303 # . Added popup help for classes using the classhelp html template function.
21b3cfa7d99a ... and label, width and height control for extra flavour!
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
1304 # - add <display call="classhelp('priority', 'id,name,description')">
21b3cfa7d99a ... and label, width and height control for extra flavour!
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
1305 # to an item page, and it generates a link to a popup window which displays
21b3cfa7d99a ... and label, width and height control for extra flavour!
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
1306 # the id, name and description for the priority class. The description
21b3cfa7d99a ... and label, width and height control for extra flavour!
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
1307 # field won't exist in most installations, but it will be added to the
21b3cfa7d99a ... and label, width and height control for extra flavour!
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
1308 # default templates.
21b3cfa7d99a ... and label, width and height control for extra flavour!
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
1309 #
635
3d61b5d2243e Added popup help for classes using the classhelp html template function.
Richard Jones <richard@users.sourceforge.net>
parents: 634
diff changeset
1310 # Revision 1.78 2002/02/21 06:23:00 richard
3d61b5d2243e Added popup help for classes using the classhelp html template function.
Richard Jones <richard@users.sourceforge.net>
parents: 634
diff changeset
1311 # *** empty log message ***
3d61b5d2243e Added popup help for classes using the classhelp html template function.
Richard Jones <richard@users.sourceforge.net>
parents: 634
diff changeset
1312 #
634
53549c6a7b33 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 627
diff changeset
1313 # Revision 1.77 2002/02/20 05:05:29 richard
53549c6a7b33 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 627
diff changeset
1314 # . Added simple editing for classes that don't define a templated interface.
53549c6a7b33 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 627
diff changeset
1315 # - access using the admin "class list" interface
53549c6a7b33 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 627
diff changeset
1316 # - limited to admin-only
53549c6a7b33 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 627
diff changeset
1317 # - requires the csv module from object-craft (url given if it's missing)
53549c6a7b33 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 627
diff changeset
1318 #
627
952679be9e2c Added simple editing for classes that don't define a templated interface.
Richard Jones <richard@users.sourceforge.net>
parents: 623
diff changeset
1319 # Revision 1.76 2002/02/16 09:10:52 richard
952679be9e2c Added simple editing for classes that don't define a templated interface.
Richard Jones <richard@users.sourceforge.net>
parents: 623
diff changeset
1320 # oops
952679be9e2c Added simple editing for classes that don't define a templated interface.
Richard Jones <richard@users.sourceforge.net>
parents: 623
diff changeset
1321 #
623
Richard Jones <richard@users.sourceforge.net>
parents: 622
diff changeset
1322 # Revision 1.75 2002/02/16 08:43:23 richard
Richard Jones <richard@users.sourceforge.net>
parents: 622
diff changeset
1323 # . #517906 ] Attribute order in "View customisation"
Richard Jones <richard@users.sourceforge.net>
parents: 622
diff changeset
1324 #
622
1b16ddd69f31 [SF#517906] Attribute order in "View customisation"
Richard Jones <richard@users.sourceforge.net>
parents: 621
diff changeset
1325 # Revision 1.74 2002/02/16 08:39:42 richard
1b16ddd69f31 [SF#517906] Attribute order in "View customisation"
Richard Jones <richard@users.sourceforge.net>
parents: 621
diff changeset
1326 # . #516854 ] "My Issues" and redisplay
1b16ddd69f31 [SF#517906] Attribute order in "View customisation"
Richard Jones <richard@users.sourceforge.net>
parents: 621
diff changeset
1327 #
621
f333f6decdc2 [SF#516854] "My Issues" and redisplay
Richard Jones <richard@users.sourceforge.net>
parents: 617
diff changeset
1328 # Revision 1.73 2002/02/15 07:08:44 richard
f333f6decdc2 [SF#516854] "My Issues" and redisplay
Richard Jones <richard@users.sourceforge.net>
parents: 617
diff changeset
1329 # . Alternate email addresses are now available for users. See the MIGRATION
f333f6decdc2 [SF#516854] "My Issues" and redisplay
Richard Jones <richard@users.sourceforge.net>
parents: 617
diff changeset
1330 # file for info on how to activate the feature.
f333f6decdc2 [SF#516854] "My Issues" and redisplay
Richard Jones <richard@users.sourceforge.net>
parents: 617
diff changeset
1331 #
617
edd210915e64 Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents: 614
diff changeset
1332 # Revision 1.72 2002/02/14 23:39:18 richard
edd210915e64 Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents: 614
diff changeset
1333 # . All forms now have "double-submit" protection when Javascript is enabled
edd210915e64 Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents: 614
diff changeset
1334 # on the client-side.
edd210915e64 Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents: 614
diff changeset
1335 #
614
5fdf95e6c20a . All forms now have "double-submit" protection...
Richard Jones <richard@users.sourceforge.net>
parents: 581
diff changeset
1336 # Revision 1.71 2002/01/23 06:15:24 richard
5fdf95e6c20a . All forms now have "double-submit" protection...
Richard Jones <richard@users.sourceforge.net>
parents: 581
diff changeset
1337 # real (non-string, duh) sorting of lists by node id
5fdf95e6c20a . All forms now have "double-submit" protection...
Richard Jones <richard@users.sourceforge.net>
parents: 581
diff changeset
1338 #
581
137d7fc5234d real (non-string, duh) sorting of lists by node id
Richard Jones <richard@users.sourceforge.net>
parents: 577
diff changeset
1339 # Revision 1.70 2002/01/23 05:47:57 richard
137d7fc5234d real (non-string, duh) sorting of lists by node id
Richard Jones <richard@users.sourceforge.net>
parents: 577
diff changeset
1340 # more HTML template cleanup and unit tests
137d7fc5234d real (non-string, duh) sorting of lists by node id
Richard Jones <richard@users.sourceforge.net>
parents: 577
diff changeset
1341 #
577
334ae707ebfc more HTML template cleanup and unit tests
Richard Jones <richard@users.sourceforge.net>
parents: 576
diff changeset
1342 # Revision 1.69 2002/01/23 05:10:27 richard
334ae707ebfc more HTML template cleanup and unit tests
Richard Jones <richard@users.sourceforge.net>
parents: 576
diff changeset
1343 # More HTML template cleanup and unit tests.
334ae707ebfc more HTML template cleanup and unit tests
Richard Jones <richard@users.sourceforge.net>
parents: 576
diff changeset
1344 # - download() now implemented correctly, replacing link(is_download=1) [fixed in the
334ae707ebfc more HTML template cleanup and unit tests
Richard Jones <richard@users.sourceforge.net>
parents: 576
diff changeset
1345 # templates, but link(is_download=1) will still work for existing templates]
334ae707ebfc more HTML template cleanup and unit tests
Richard Jones <richard@users.sourceforge.net>
parents: 576
diff changeset
1346 #
576
f98f37697f4c More HTML template cleanup and unit tests.
Richard Jones <richard@users.sourceforge.net>
parents: 575
diff changeset
1347 # Revision 1.68 2002/01/22 22:55:28 richard
f98f37697f4c More HTML template cleanup and unit tests.
Richard Jones <richard@users.sourceforge.net>
parents: 575
diff changeset
1348 # . htmltemplate list() wasn't sorting...
f98f37697f4c More HTML template cleanup and unit tests.
Richard Jones <richard@users.sourceforge.net>
parents: 575
diff changeset
1349 #
575
2df17627528d htmltemplate list() wasn't sorting...
Richard Jones <richard@users.sourceforge.net>
parents: 574
diff changeset
1350 # Revision 1.67 2002/01/22 22:46:22 richard
2df17627528d htmltemplate list() wasn't sorting...
Richard Jones <richard@users.sourceforge.net>
parents: 574
diff changeset
1351 # more htmltemplate cleanups and unit tests
2df17627528d htmltemplate list() wasn't sorting...
Richard Jones <richard@users.sourceforge.net>
parents: 574
diff changeset
1352 #
574
d41d94511170 more htmltemplate cleanups and unit tests
Richard Jones <richard@users.sourceforge.net>
parents: 568
diff changeset
1353 # Revision 1.66 2002/01/22 06:35:40 richard
d41d94511170 more htmltemplate cleanups and unit tests
Richard Jones <richard@users.sourceforge.net>
parents: 568
diff changeset
1354 # more htmltemplate tests and cleanup
d41d94511170 more htmltemplate cleanups and unit tests
Richard Jones <richard@users.sourceforge.net>
parents: 568
diff changeset
1355 #
568
c7ead967db85 more htmltemplate tests and cleanup
Richard Jones <richard@users.sourceforge.net>
parents: 563
diff changeset
1356 # Revision 1.65 2002/01/22 00:12:06 richard
c7ead967db85 more htmltemplate tests and cleanup
Richard Jones <richard@users.sourceforge.net>
parents: 563
diff changeset
1357 # Wrote more unit tests for htmltemplate, and while I was at it, I polished
c7ead967db85 more htmltemplate tests and cleanup
Richard Jones <richard@users.sourceforge.net>
parents: 563
diff changeset
1358 # off the implementation of some of the functions so they behave sanely.
c7ead967db85 more htmltemplate tests and cleanup
Richard Jones <richard@users.sourceforge.net>
parents: 563
diff changeset
1359 #
563
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
1360 # Revision 1.64 2002/01/21 03:25:59 richard
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
1361 # oops
0f58d6a35a8b Wrote more unit tests for htmltemplate...
Richard Jones <richard@users.sourceforge.net>
parents: 558
diff changeset
1362 #
558
Richard Jones <richard@users.sourceforge.net>
parents: 556
diff changeset
1363 # Revision 1.63 2002/01/21 02:59:10 richard
Richard Jones <richard@users.sourceforge.net>
parents: 556
diff changeset
1364 # Fixed up the HTML display of history so valid links are actually displayed.
Richard Jones <richard@users.sourceforge.net>
parents: 556
diff changeset
1365 # Oh for some unit tests! :(
Richard Jones <richard@users.sourceforge.net>
parents: 556
diff changeset
1366 #
556
50359de2800b Fixed up the HTML display of history so valid links are actually displayed.
Richard Jones <richard@users.sourceforge.net>
parents: 554
diff changeset
1367 # Revision 1.62 2002/01/18 08:36:12 grubert
50359de2800b Fixed up the HTML display of history so valid links are actually displayed.
Richard Jones <richard@users.sourceforge.net>
parents: 554
diff changeset
1368 # . add nowrap to history table date cell i.e. <td nowrap ...
50359de2800b Fixed up the HTML display of history so valid links are actually displayed.
Richard Jones <richard@users.sourceforge.net>
parents: 554
diff changeset
1369 #
554
7e7b4183a8bd add nowrap to history table date cell i.e. <td nowrap ...
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 552
diff changeset
1370 # Revision 1.61 2002/01/17 23:04:53 richard
7e7b4183a8bd add nowrap to history table date cell i.e. <td nowrap ...
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 552
diff changeset
1371 # . much nicer history display (actualy real handling of property types etc)
7e7b4183a8bd add nowrap to history table date cell i.e. <td nowrap ...
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 552
diff changeset
1372 #
552
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
1373 # Revision 1.60 2002/01/17 08:48:19 grubert
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
1374 # . display superseder as html link in history.
0f8734a5a004 much nicer history display (actualy real handling of property types etc)
Richard Jones <richard@users.sourceforge.net>
parents: 548
diff changeset
1375 #
548
3f25182ed425 display superseder as html link in history.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 547
diff changeset
1376 # Revision 1.59 2002/01/17 07:58:24 grubert
3f25182ed425 display superseder as html link in history.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 547
diff changeset
1377 # . display links a html link in history.
3f25182ed425 display superseder as html link in history.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 547
diff changeset
1378 #
547
e4ef6df2345c display links a html link in history.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 538
diff changeset
1379 # Revision 1.58 2002/01/15 00:50:03 richard
e4ef6df2345c display links a html link in history.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 538
diff changeset
1380 # #502949 ] index view for non-issues and redisplay
e4ef6df2345c display links a html link in history.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 538
diff changeset
1381 #
538
67379bcc5da4 [SF#502949] index view for non-issues and redisplay
Richard Jones <richard@users.sourceforge.net>
parents: 535
diff changeset
1382 # Revision 1.57 2002/01/14 23:31:21 richard
67379bcc5da4 [SF#502949] index view for non-issues and redisplay
Richard Jones <richard@users.sourceforge.net>
parents: 535
diff changeset
1383 # reverted the change that had plain() hyperlinking the link displays -
67379bcc5da4 [SF#502949] index view for non-issues and redisplay
Richard Jones <richard@users.sourceforge.net>
parents: 535
diff changeset
1384 # that's what link() is for!
67379bcc5da4 [SF#502949] index view for non-issues and redisplay
Richard Jones <richard@users.sourceforge.net>
parents: 535
diff changeset
1385 #
535
78711b29c746 reverted the change that had plain() hyperlinking the link displays
Richard Jones <richard@users.sourceforge.net>
parents: 531
diff changeset
1386 # Revision 1.56 2002/01/14 07:04:36 richard
78711b29c746 reverted the change that had plain() hyperlinking the link displays
Richard Jones <richard@users.sourceforge.net>
parents: 531
diff changeset
1387 # . plain rendering of links in the htmltemplate now generate a hyperlink to
78711b29c746 reverted the change that had plain() hyperlinking the link displays
Richard Jones <richard@users.sourceforge.net>
parents: 531
diff changeset
1388 # the linked node's page.
78711b29c746 reverted the change that had plain() hyperlinking the link displays
Richard Jones <richard@users.sourceforge.net>
parents: 531
diff changeset
1389 # ... this allows a display very similar to bugzilla's where you can actually
78711b29c746 reverted the change that had plain() hyperlinking the link displays
Richard Jones <richard@users.sourceforge.net>
parents: 531
diff changeset
1390 # find out information about the linked node.
78711b29c746 reverted the change that had plain() hyperlinking the link displays
Richard Jones <richard@users.sourceforge.net>
parents: 531
diff changeset
1391 #
531
32c1dd156605 plain rendering of links in the htmltemplate now generate a hyperlink...
Richard Jones <richard@users.sourceforge.net>
parents: 528
diff changeset
1392 # Revision 1.55 2002/01/14 06:45:03 richard
32c1dd156605 plain rendering of links in the htmltemplate now generate a hyperlink...
Richard Jones <richard@users.sourceforge.net>
parents: 528
diff changeset
1393 # . #502953 ] nosy-like treatment of other multilinks
32c1dd156605 plain rendering of links in the htmltemplate now generate a hyperlink...
Richard Jones <richard@users.sourceforge.net>
parents: 528
diff changeset
1394 # ... had to revert most of the previous change to the multilink field
32c1dd156605 plain rendering of links in the htmltemplate now generate a hyperlink...
Richard Jones <richard@users.sourceforge.net>
parents: 528
diff changeset
1395 # display... not good.
32c1dd156605 plain rendering of links in the htmltemplate now generate a hyperlink...
Richard Jones <richard@users.sourceforge.net>
parents: 528
diff changeset
1396 #
528
72fe808ff5b8 [SF#502953] nosy-like treatment of other multilinks
Richard Jones <richard@users.sourceforge.net>
parents: 526
diff changeset
1397 # Revision 1.54 2002/01/14 05:16:51 richard
72fe808ff5b8 [SF#502953] nosy-like treatment of other multilinks
Richard Jones <richard@users.sourceforge.net>
parents: 526
diff changeset
1398 # The submit buttons need a name attribute or mozilla won't submit without a
72fe808ff5b8 [SF#502953] nosy-like treatment of other multilinks
Richard Jones <richard@users.sourceforge.net>
parents: 526
diff changeset
1399 # file upload. Yeah, that's bloody obscure. Grr.
72fe808ff5b8 [SF#502953] nosy-like treatment of other multilinks
Richard Jones <richard@users.sourceforge.net>
parents: 526
diff changeset
1400 #
526
523b22a2c021 The submit buttons need a name attribute...
Richard Jones <richard@users.sourceforge.net>
parents: 525
diff changeset
1401 # Revision 1.53 2002/01/14 04:03:32 richard
523b22a2c021 The submit buttons need a name attribute...
Richard Jones <richard@users.sourceforge.net>
parents: 525
diff changeset
1402 # How about that ... date fields have never worked ...
523b22a2c021 The submit buttons need a name attribute...
Richard Jones <richard@users.sourceforge.net>
parents: 525
diff changeset
1403 #
525
d046cc4ba7d3 How about that ... date fields have never worked ...
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
1404 # Revision 1.52 2002/01/14 02:20:14 richard
d046cc4ba7d3 How about that ... date fields have never worked ...
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
1405 # . changed all config accesses so they access either the instance or the
d046cc4ba7d3 How about that ... date fields have never worked ...
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
1406 # config attriubute on the db. This means that all config is obtained from
d046cc4ba7d3 How about that ... date fields have never worked ...
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
1407 # instance_config instead of the mish-mash of classes. This will make
d046cc4ba7d3 How about that ... date fields have never worked ...
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
1408 # switching to a ConfigParser setup easier too, I hope.
d046cc4ba7d3 How about that ... date fields have never worked ...
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
1409 #
d046cc4ba7d3 How about that ... date fields have never worked ...
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
1410 # At a minimum, this makes migration a _little_ easier (a lot easier in the
d046cc4ba7d3 How about that ... date fields have never worked ...
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
1411 # 0.5.0 switch, I hope!)
d046cc4ba7d3 How about that ... date fields have never worked ...
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
1412 #
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 515
diff changeset
1413 # Revision 1.51 2002/01/10 10:02:15 grubert
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 515
diff changeset
1414 # In do_history: replace "." in date by " " so html wraps more sensible.
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 515
diff changeset
1415 # Should this be done in date's string converter ?
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 515
diff changeset
1416 #
515
59e721a72a30 In do_history: replace "." in date by " " so html wraps more sensible.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 488
diff changeset
1417 # Revision 1.50 2002/01/05 02:35:10 richard
59e721a72a30 In do_history: replace "." in date by " " so html wraps more sensible.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 488
diff changeset
1418 # I18N'ification
59e721a72a30 In do_history: replace "." in date by " " so html wraps more sensible.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 488
diff changeset
1419 #
488
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
1420 # Revision 1.49 2001/12/20 15:43:01 rochecompaan
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
1421 # Features added:
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
1422 # . Multilink properties are now displayed as comma separated values in
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
1423 # a textbox
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
1424 # . The add user link is now only visible to the admin user
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
1425 # . Modified the mail gateway to reject submissions from unknown
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
1426 # addresses if ANONYMOUS_ACCESS is denied
ab9e236cd524 I18N'ification
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
1427 #
467
103f521810f7 Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 466
diff changeset
1428 # Revision 1.48 2001/12/20 06:13:24 rochecompaan
103f521810f7 Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 466
diff changeset
1429 # Bugs fixed:
103f521810f7 Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 466
diff changeset
1430 # . Exception handling in hyperdb for strings-that-look-like numbers got
103f521810f7 Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 466
diff changeset
1431 # lost somewhere
103f521810f7 Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 466
diff changeset
1432 # . Internet Explorer submits full path for filename - we now strip away
103f521810f7 Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 466
diff changeset
1433 # the path
103f521810f7 Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 466
diff changeset
1434 # Features added:
103f521810f7 Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 466
diff changeset
1435 # . Link and multilink properties are now displayed sorted in the cgi
103f521810f7 Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 466
diff changeset
1436 # interface
103f521810f7 Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 466
diff changeset
1437 #
466
a3548136f7bb Two bug fixes and a feature.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 411
diff changeset
1438 # Revision 1.47 2001/11/26 22:55:56 richard
a3548136f7bb Two bug fixes and a feature.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 411
diff changeset
1439 # Feature:
a3548136f7bb Two bug fixes and a feature.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 411
diff changeset
1440 # . Added INSTANCE_NAME to configuration - used in web and email to identify
a3548136f7bb Two bug fixes and a feature.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 411
diff changeset
1441 # the instance.
a3548136f7bb Two bug fixes and a feature.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 411
diff changeset
1442 # . Added EMAIL_SIGNATURE_POSITION to indicate where to place the roundup
a3548136f7bb Two bug fixes and a feature.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 411
diff changeset
1443 # signature info in e-mails.
a3548136f7bb Two bug fixes and a feature.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 411
diff changeset
1444 # . Some more flexibility in the mail gateway and more error handling.
a3548136f7bb Two bug fixes and a feature.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 411
diff changeset
1445 # . Login now takes you to the page you back to the were denied access to.
a3548136f7bb Two bug fixes and a feature.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 411
diff changeset
1446 #
a3548136f7bb Two bug fixes and a feature.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 411
diff changeset
1447 # Fixed:
a3548136f7bb Two bug fixes and a feature.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 411
diff changeset
1448 # . Lots of bugs, thanks Roché and others on the devel mailing list!
a3548136f7bb Two bug fixes and a feature.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 411
diff changeset
1449 #
411
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 408
diff changeset
1450 # Revision 1.46 2001/11/24 00:53:12 jhermann
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 408
diff changeset
1451 # "except:" is bad, bad , bad!
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 408
diff changeset
1452 #
408
424bfccd4118 "except:" is bad, bad , bad!
Jürgen Hermann <jhermann@users.sourceforge.net>
parents: 406
diff changeset
1453 # Revision 1.45 2001/11/22 15:46:42 jhermann
424bfccd4118 "except:" is bad, bad , bad!
Jürgen Hermann <jhermann@users.sourceforge.net>
parents: 406
diff changeset
1454 # Added module docstrings to all modules.
424bfccd4118 "except:" is bad, bad , bad!
Jürgen Hermann <jhermann@users.sourceforge.net>
parents: 406
diff changeset
1455 #
406
bdc2ea127ae9 Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents: 401
diff changeset
1456 # Revision 1.44 2001/11/21 23:35:45 jhermann
bdc2ea127ae9 Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents: 401
diff changeset
1457 # Added globbing for win32, and sample marking in a 2nd file to test it
bdc2ea127ae9 Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents: 401
diff changeset
1458 #
401
a930feb07dc4 Added globbing for win32, and sample marking in a 2nd file to test it
Jürgen Hermann <jhermann@users.sourceforge.net>
parents: 398
diff changeset
1459 # Revision 1.43 2001/11/21 04:04:43 richard
a930feb07dc4 Added globbing for win32, and sample marking in a 2nd file to test it
Jürgen Hermann <jhermann@users.sourceforge.net>
parents: 398
diff changeset
1460 # *sigh* more missing value handling
a930feb07dc4 Added globbing for win32, and sample marking in a 2nd file to test it
Jürgen Hermann <jhermann@users.sourceforge.net>
parents: 398
diff changeset
1461 #
398
bbbcdee47762 *sigh* more missing value handling
Richard Jones <richard@users.sourceforge.net>
parents: 397
diff changeset
1462 # Revision 1.42 2001/11/21 03:40:54 richard
bbbcdee47762 *sigh* more missing value handling
Richard Jones <richard@users.sourceforge.net>
parents: 397
diff changeset
1463 # more new property handling
bbbcdee47762 *sigh* more missing value handling
Richard Jones <richard@users.sourceforge.net>
parents: 397
diff changeset
1464 #
397
d47818b09265 more new property handling
Richard Jones <richard@users.sourceforge.net>
parents: 392
diff changeset
1465 # Revision 1.41 2001/11/15 10:26:01 richard
d47818b09265 more new property handling
Richard Jones <richard@users.sourceforge.net>
parents: 392
diff changeset
1466 # . missing "return" in filter_section (thanks Roch'e Compaan)
d47818b09265 more new property handling
Richard Jones <richard@users.sourceforge.net>
parents: 392
diff changeset
1467 #
392
a9edec536e0a missing "return" in filter_section (thanks Roch'e Compaan)
Richard Jones <richard@users.sourceforge.net>
parents: 351
diff changeset
1468 # Revision 1.40 2001/11/03 01:56:51 richard
a9edec536e0a missing "return" in filter_section (thanks Roch'e Compaan)
Richard Jones <richard@users.sourceforge.net>
parents: 351
diff changeset
1469 # More HTML compliance fixes. This will probably fix the Netscape problem
a9edec536e0a missing "return" in filter_section (thanks Roch'e Compaan)
Richard Jones <richard@users.sourceforge.net>
parents: 351
diff changeset
1470 # too.
a9edec536e0a missing "return" in filter_section (thanks Roch'e Compaan)
Richard Jones <richard@users.sourceforge.net>
parents: 351
diff changeset
1471 #
351
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1472 # Revision 1.39 2001/11/03 01:43:47 richard
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1473 # Ahah! Fixed the lynx problem - there was a hidden input field misplaced.
6932067a8f31 More HTML compliance fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 350
diff changeset
1474 #
350
e8d244a98ffd Ahah! Fixed the lynx problem - there was a hidden input field misplaced.
Richard Jones <richard@users.sourceforge.net>
parents: 342
diff changeset
1475 # Revision 1.38 2001/10/31 06:58:51 richard
e8d244a98ffd Ahah! Fixed the lynx problem - there was a hidden input field misplaced.
Richard Jones <richard@users.sourceforge.net>
parents: 342
diff changeset
1476 # Added the wrap="hard" attribute to the textarea of the note field so the
e8d244a98ffd Ahah! Fixed the lynx problem - there was a hidden input field misplaced.
Richard Jones <richard@users.sourceforge.net>
parents: 342
diff changeset
1477 # messages wrap sanely.
e8d244a98ffd Ahah! Fixed the lynx problem - there was a hidden input field misplaced.
Richard Jones <richard@users.sourceforge.net>
parents: 342
diff changeset
1478 #
342
0b7d62e414b6 Added the wrap="hard" attribute to the textarea of the note field...
Richard Jones <richard@users.sourceforge.net>
parents: 340
diff changeset
1479 # Revision 1.37 2001/10/31 06:24:35 richard
0b7d62e414b6 Added the wrap="hard" attribute to the textarea of the note field...
Richard Jones <richard@users.sourceforge.net>
parents: 340
diff changeset
1480 # Added do_stext to htmltemplate, thanks Brad Clements.
0b7d62e414b6 Added the wrap="hard" attribute to the textarea of the note field...
Richard Jones <richard@users.sourceforge.net>
parents: 340
diff changeset
1481 #
340
9311fa91f478 Added do_stext to htmltemplate, thanks Brad Clements.
Richard Jones <richard@users.sourceforge.net>
parents: 332
diff changeset
1482 # Revision 1.36 2001/10/28 22:51:38 richard
9311fa91f478 Added do_stext to htmltemplate, thanks Brad Clements.
Richard Jones <richard@users.sourceforge.net>
parents: 332
diff changeset
1483 # Fixed ENOENT/WindowsError thing, thanks Juergen Hermann
9311fa91f478 Added do_stext to htmltemplate, thanks Brad Clements.
Richard Jones <richard@users.sourceforge.net>
parents: 332
diff changeset
1484 #
332
1fe356fc3d3e Fixed ENOENT/WindowsError thing, thanks Juergen Hermann
Richard Jones <richard@users.sourceforge.net>
parents: 327
diff changeset
1485 # Revision 1.35 2001/10/24 00:04:41 richard
1fe356fc3d3e Fixed ENOENT/WindowsError thing, thanks Juergen Hermann
Richard Jones <richard@users.sourceforge.net>
parents: 327
diff changeset
1486 # Removed the "infinite authentication loop", thanks Roch'e
1fe356fc3d3e Fixed ENOENT/WindowsError thing, thanks Juergen Hermann
Richard Jones <richard@users.sourceforge.net>
parents: 327
diff changeset
1487 #
327
ee8882029150 Removed the "infinite authentication loop", thanks Roch'e
Richard Jones <richard@users.sourceforge.net>
parents: 320
diff changeset
1488 # Revision 1.34 2001/10/23 22:56:36 richard
ee8882029150 Removed the "infinite authentication loop", thanks Roch'e
Richard Jones <richard@users.sourceforge.net>
parents: 320
diff changeset
1489 # Bugfix in filter "widget" placement, thanks Roch'e
ee8882029150 Removed the "infinite authentication loop", thanks Roch'e
Richard Jones <richard@users.sourceforge.net>
parents: 320
diff changeset
1490 #
320
61c42790c3f1 Bugfix in filter "widget" placement, thanks Roch'e
Richard Jones <richard@users.sourceforge.net>
parents: 318
diff changeset
1491 # Revision 1.33 2001/10/23 01:00:18 richard
61c42790c3f1 Bugfix in filter "widget" placement, thanks Roch'e
Richard Jones <richard@users.sourceforge.net>
parents: 318
diff changeset
1492 # Re-enabled login and registration access after lopping them off via
61c42790c3f1 Bugfix in filter "widget" placement, thanks Roch'e
Richard Jones <richard@users.sourceforge.net>
parents: 318
diff changeset
1493 # disabling access for anonymous users.
61c42790c3f1 Bugfix in filter "widget" placement, thanks Roch'e
Richard Jones <richard@users.sourceforge.net>
parents: 318
diff changeset
1494 # Major re-org of the htmltemplate code, cleaning it up significantly. Fixed
61c42790c3f1 Bugfix in filter "widget" placement, thanks Roch'e
Richard Jones <richard@users.sourceforge.net>
parents: 318
diff changeset
1495 # a couple of bugs while I was there. Probably introduced a couple, but
61c42790c3f1 Bugfix in filter "widget" placement, thanks Roch'e
Richard Jones <richard@users.sourceforge.net>
parents: 318
diff changeset
1496 # things seem to work OK at the moment.
61c42790c3f1 Bugfix in filter "widget" placement, thanks Roch'e
Richard Jones <richard@users.sourceforge.net>
parents: 318
diff changeset
1497 #
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1498 # Revision 1.32 2001/10/22 03:25:01 richard
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1499 # Added configuration for:
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1500 # . anonymous user access and registration (deny/allow)
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1501 # . filter "widget" location on index page (top, bottom, both)
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1502 # Updated some documentation.
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 316
diff changeset
1503 #
316
c0ca7f35e0c5 Added configuration for:
Richard Jones <richard@users.sourceforge.net>
parents: 313
diff changeset
1504 # Revision 1.31 2001/10/21 07:26:35 richard
c0ca7f35e0c5 Added configuration for:
Richard Jones <richard@users.sourceforge.net>
parents: 313
diff changeset
1505 # feature #473127: Filenames. I modified the file.index and htmltemplate
c0ca7f35e0c5 Added configuration for:
Richard Jones <richard@users.sourceforge.net>
parents: 313
diff changeset
1506 # source so that the filename is used in the link and the creation
c0ca7f35e0c5 Added configuration for:
Richard Jones <richard@users.sourceforge.net>
parents: 313
diff changeset
1507 # information is displayed.
c0ca7f35e0c5 Added configuration for:
Richard Jones <richard@users.sourceforge.net>
parents: 313
diff changeset
1508 #
313
489b70c37f32 feature [SF#473127]: Filenames.
Richard Jones <richard@users.sourceforge.net>
parents: 312
diff changeset
1509 # Revision 1.30 2001/10/21 04:44:50 richard
489b70c37f32 feature [SF#473127]: Filenames.
Richard Jones <richard@users.sourceforge.net>
parents: 312
diff changeset
1510 # bug #473124: UI inconsistency with Link fields.
489b70c37f32 feature [SF#473127]: Filenames.
Richard Jones <richard@users.sourceforge.net>
parents: 312
diff changeset
1511 # This also prompted me to fix a fairly long-standing usability issue -
489b70c37f32 feature [SF#473127]: Filenames.
Richard Jones <richard@users.sourceforge.net>
parents: 312
diff changeset
1512 # that of being able to turn off certain filters.
489b70c37f32 feature [SF#473127]: Filenames.
Richard Jones <richard@users.sourceforge.net>
parents: 312
diff changeset
1513 #
312
5a2c43891c20 [SF#473124]: UI inconsistency with Link fields.
Richard Jones <richard@users.sourceforge.net>
parents: 307
diff changeset
1514 # Revision 1.29 2001/10/21 00:17:56 richard
5a2c43891c20 [SF#473124]: UI inconsistency with Link fields.
Richard Jones <richard@users.sourceforge.net>
parents: 307
diff changeset
1515 # CGI interface view customisation section may now be hidden (patch from
5a2c43891c20 [SF#473124]: UI inconsistency with Link fields.
Richard Jones <richard@users.sourceforge.net>
parents: 307
diff changeset
1516 # Roch'e Compaan.)
5a2c43891c20 [SF#473124]: UI inconsistency with Link fields.
Richard Jones <richard@users.sourceforge.net>
parents: 307
diff changeset
1517 #
307
dac78e092228 CGI interface view customisation section may now be hidden
Richard Jones <richard@users.sourceforge.net>
parents: 306
diff changeset
1518 # Revision 1.28 2001/10/21 00:00:16 richard
dac78e092228 CGI interface view customisation section may now be hidden
Richard Jones <richard@users.sourceforge.net>
parents: 306
diff changeset
1519 # Fixed Checklist function - wasn't always working on a list.
dac78e092228 CGI interface view customisation section may now be hidden
Richard Jones <richard@users.sourceforge.net>
parents: 306
diff changeset
1520 #
306
36ae7ffb8a42 Fixed Checklist function - wasn't always working on a list.
Richard Jones <richard@users.sourceforge.net>
parents: 303
diff changeset
1521 # Revision 1.27 2001/10/20 12:13:44 richard
36ae7ffb8a42 Fixed Checklist function - wasn't always working on a list.
Richard Jones <richard@users.sourceforge.net>
parents: 303
diff changeset
1522 # Fixed grouping of non-str properties (thanks Roch'e Compaan)
36ae7ffb8a42 Fixed Checklist function - wasn't always working on a list.
Richard Jones <richard@users.sourceforge.net>
parents: 303
diff changeset
1523 #
303
3d5031f834f0 Fixed grouping of non-str properties (thanks Roch'e Compaan)
Richard Jones <richard@users.sourceforge.net>
parents: 292
diff changeset
1524 # Revision 1.26 2001/10/14 10:55:00 richard
3d5031f834f0 Fixed grouping of non-str properties (thanks Roch'e Compaan)
Richard Jones <richard@users.sourceforge.net>
parents: 292
diff changeset
1525 # Handle empty strings in HTML template Link function
3d5031f834f0 Fixed grouping of non-str properties (thanks Roch'e Compaan)
Richard Jones <richard@users.sourceforge.net>
parents: 292
diff changeset
1526 #
292
4340cdc694d4 Handle empty strings in HTML template Link function
Richard Jones <richard@users.sourceforge.net>
parents: 270
diff changeset
1527 # Revision 1.25 2001/10/09 07:25:59 richard
4340cdc694d4 Handle empty strings in HTML template Link function
Richard Jones <richard@users.sourceforge.net>
parents: 270
diff changeset
1528 # Added the Password property type. See "pydoc roundup.password" for
4340cdc694d4 Handle empty strings in HTML template Link function
Richard Jones <richard@users.sourceforge.net>
parents: 270
diff changeset
1529 # implementation details. Have updated some of the documentation too.
4340cdc694d4 Handle empty strings in HTML template Link function
Richard Jones <richard@users.sourceforge.net>
parents: 270
diff changeset
1530 #
270
a4241ddd22d7 Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents: 250
diff changeset
1531 # Revision 1.24 2001/09/27 06:45:58 richard
a4241ddd22d7 Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents: 250
diff changeset
1532 # *gak* ... xmp is Old Skool apparently. Am using pre again by have the option
a4241ddd22d7 Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents: 250
diff changeset
1533 # on the plain() template function to escape the text for HTML.
a4241ddd22d7 Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents: 250
diff changeset
1534 #
250
1d428068485c *gak* ... xmp is Old Skool apparently.
Richard Jones <richard@users.sourceforge.net>
parents: 245
diff changeset
1535 # Revision 1.23 2001/09/10 09:47:18 richard
1d428068485c *gak* ... xmp is Old Skool apparently.
Richard Jones <richard@users.sourceforge.net>
parents: 245
diff changeset
1536 # Fixed bug in the generation of links to Link/Multilink in indexes.
1d428068485c *gak* ... xmp is Old Skool apparently.
Richard Jones <richard@users.sourceforge.net>
parents: 245
diff changeset
1537 # (thanks Hubert Hoegl)
1d428068485c *gak* ... xmp is Old Skool apparently.
Richard Jones <richard@users.sourceforge.net>
parents: 245
diff changeset
1538 # Added AssignedTo to the "classic" schema's item page.
1d428068485c *gak* ... xmp is Old Skool apparently.
Richard Jones <richard@users.sourceforge.net>
parents: 245
diff changeset
1539 #
245
8a0d548c07a1 Fixed bug in the generation of links to Link/Multilink in indexes.
Richard Jones <richard@users.sourceforge.net>
parents: 244
diff changeset
1540 # Revision 1.22 2001/08/30 06:01:17 richard
8a0d548c07a1 Fixed bug in the generation of links to Link/Multilink in indexes.
Richard Jones <richard@users.sourceforge.net>
parents: 244
diff changeset
1541 # Fixed missing import in mailgw :(
8a0d548c07a1 Fixed bug in the generation of links to Link/Multilink in indexes.
Richard Jones <richard@users.sourceforge.net>
parents: 244
diff changeset
1542 #
244
6bf584784e31 Fixed missing import in mailgw :(
Richard Jones <richard@users.sourceforge.net>
parents: 231
diff changeset
1543 # Revision 1.21 2001/08/16 07:34:59 richard
6bf584784e31 Fixed missing import in mailgw :(
Richard Jones <richard@users.sourceforge.net>
parents: 231
diff changeset
1544 # better CGI text searching - but hidden filter fields are disappearing...
6bf584784e31 Fixed missing import in mailgw :(
Richard Jones <richard@users.sourceforge.net>
parents: 231
diff changeset
1545 #
231
afd428ba6523 better CGI text searching - but hidden filter fields are disappearing...
Richard Jones <richard@users.sourceforge.net>
parents: 228
diff changeset
1546 # Revision 1.20 2001/08/15 23:43:18 richard
afd428ba6523 better CGI text searching - but hidden filter fields are disappearing...
Richard Jones <richard@users.sourceforge.net>
parents: 228
diff changeset
1547 # Fixed some isFooTypes that I missed.
afd428ba6523 better CGI text searching - but hidden filter fields are disappearing...
Richard Jones <richard@users.sourceforge.net>
parents: 228
diff changeset
1548 # Refactored some code in the CGI code.
afd428ba6523 better CGI text searching - but hidden filter fields are disappearing...
Richard Jones <richard@users.sourceforge.net>
parents: 228
diff changeset
1549 #
228
1d1848c99abe Fixed some isFooTypes that I missed.
Richard Jones <richard@users.sourceforge.net>
parents: 224
diff changeset
1550 # Revision 1.19 2001/08/12 06:32:36 richard
1d1848c99abe Fixed some isFooTypes that I missed.
Richard Jones <richard@users.sourceforge.net>
parents: 224
diff changeset
1551 # using isinstance(blah, Foo) now instead of isFooType
1d1848c99abe Fixed some isFooTypes that I missed.
Richard Jones <richard@users.sourceforge.net>
parents: 224
diff changeset
1552 #
224
ad2c98faec97 using isinstance(blah, Foo) now instead of isFooType
Richard Jones <richard@users.sourceforge.net>
parents: 214
diff changeset
1553 # Revision 1.18 2001/08/07 00:24:42 richard
ad2c98faec97 using isinstance(blah, Foo) now instead of isFooType
Richard Jones <richard@users.sourceforge.net>
parents: 214
diff changeset
1554 # stupid typo
ad2c98faec97 using isinstance(blah, Foo) now instead of isFooType
Richard Jones <richard@users.sourceforge.net>
parents: 214
diff changeset
1555 #
214
18134bffab37 stupid typo
Richard Jones <richard@users.sourceforge.net>
parents: 213
diff changeset
1556 # Revision 1.17 2001/08/07 00:15:51 richard
18134bffab37 stupid typo
Richard Jones <richard@users.sourceforge.net>
parents: 213
diff changeset
1557 # Added the copyright/license notice to (nearly) all files at request of
18134bffab37 stupid typo
Richard Jones <richard@users.sourceforge.net>
parents: 213
diff changeset
1558 # Bizar Software.
18134bffab37 stupid typo
Richard Jones <richard@users.sourceforge.net>
parents: 213
diff changeset
1559 #
213
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 171
diff changeset
1560 # Revision 1.16 2001/08/01 03:52:23 richard
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 171
diff changeset
1561 # Checklist was using wrong name.
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 171
diff changeset
1562 #
171
3c19bc818711 Checklist was using wrong name.
Richard Jones <richard@users.sourceforge.net>
parents: 167
diff changeset
1563 # Revision 1.15 2001/07/30 08:12:17 richard
3c19bc818711 Checklist was using wrong name.
Richard Jones <richard@users.sourceforge.net>
parents: 167
diff changeset
1564 # Added time logging and file uploading to the templates.
3c19bc818711 Checklist was using wrong name.
Richard Jones <richard@users.sourceforge.net>
parents: 167
diff changeset
1565 #
167
a49c8a2ddd26 Added time logging and file uploading to the templates.
Richard Jones <richard@users.sourceforge.net>
parents: 162
diff changeset
1566 # Revision 1.14 2001/07/30 06:17:45 richard
a49c8a2ddd26 Added time logging and file uploading to the templates.
Richard Jones <richard@users.sourceforge.net>
parents: 162
diff changeset
1567 # Features:
a49c8a2ddd26 Added time logging and file uploading to the templates.
Richard Jones <richard@users.sourceforge.net>
parents: 162
diff changeset
1568 # . Added ability for cgi newblah forms to indicate that the new node
a49c8a2ddd26 Added time logging and file uploading to the templates.
Richard Jones <richard@users.sourceforge.net>
parents: 162
diff changeset
1569 # should be linked somewhere.
a49c8a2ddd26 Added time logging and file uploading to the templates.
Richard Jones <richard@users.sourceforge.net>
parents: 162
diff changeset
1570 # Fixed:
a49c8a2ddd26 Added time logging and file uploading to the templates.
Richard Jones <richard@users.sourceforge.net>
parents: 162
diff changeset
1571 # . Fixed the agument handling for the roundup-admin find command.
a49c8a2ddd26 Added time logging and file uploading to the templates.
Richard Jones <richard@users.sourceforge.net>
parents: 162
diff changeset
1572 # . Fixed handling of summary when no note supplied for newblah. Again.
a49c8a2ddd26 Added time logging and file uploading to the templates.
Richard Jones <richard@users.sourceforge.net>
parents: 162
diff changeset
1573 # . Fixed detection of no form in htmltemplate Field display.
a49c8a2ddd26 Added time logging and file uploading to the templates.
Richard Jones <richard@users.sourceforge.net>
parents: 162
diff changeset
1574 #
162
717f12e6ccf2 Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 155
diff changeset
1575 # Revision 1.13 2001/07/30 02:37:53 richard
717f12e6ccf2 Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 155
diff changeset
1576 # Temporary measure until we have decent schema migration.
717f12e6ccf2 Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 155
diff changeset
1577 #
155
03bdef2d645b Temporary measure until we have decent schema migration.
Richard Jones <richard@users.sourceforge.net>
parents: 141
diff changeset
1578 # Revision 1.12 2001/07/30 01:24:33 richard
03bdef2d645b Temporary measure until we have decent schema migration.
Richard Jones <richard@users.sourceforge.net>
parents: 141
diff changeset
1579 # Handles new node display now.
03bdef2d645b Temporary measure until we have decent schema migration.
Richard Jones <richard@users.sourceforge.net>
parents: 141
diff changeset
1580 #
141
5e8da9d010bd Handles new node display now.
Richard Jones <richard@users.sourceforge.net>
parents: 131
diff changeset
1581 # Revision 1.11 2001/07/29 09:31:35 richard
5e8da9d010bd Handles new node display now.
Richard Jones <richard@users.sourceforge.net>
parents: 131
diff changeset
1582 # oops
5e8da9d010bd Handles new node display now.
Richard Jones <richard@users.sourceforge.net>
parents: 131
diff changeset
1583 #
131
Richard Jones <richard@users.sourceforge.net>
parents: 130
diff changeset
1584 # Revision 1.10 2001/07/29 09:28:23 richard
Richard Jones <richard@users.sourceforge.net>
parents: 130
diff changeset
1585 # Fixed sorting by clicking on column headings.
Richard Jones <richard@users.sourceforge.net>
parents: 130
diff changeset
1586 #
130
204f99944de0 Fixed sorting by clicking on column headings.
Richard Jones <richard@users.sourceforge.net>
parents: 128
diff changeset
1587 # Revision 1.9 2001/07/29 08:27:40 richard
204f99944de0 Fixed sorting by clicking on column headings.
Richard Jones <richard@users.sourceforge.net>
parents: 128
diff changeset
1588 # Fixed handling of passed-in values in form elements (ie. during a
204f99944de0 Fixed sorting by clicking on column headings.
Richard Jones <richard@users.sourceforge.net>
parents: 128
diff changeset
1589 # drill-down)
204f99944de0 Fixed sorting by clicking on column headings.
Richard Jones <richard@users.sourceforge.net>
parents: 128
diff changeset
1590 #
128
ce36f2962b94 Fixed handling of passed-in values in form elements (ie. during a drill-down)
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
1591 # Revision 1.8 2001/07/29 07:01:39 richard
ce36f2962b94 Fixed handling of passed-in values in form elements (ie. during a drill-down)
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
1592 # Added vim command to all source so that we don't get no steenkin' tabs :)
ce36f2962b94 Fixed handling of passed-in values in form elements (ie. during a drill-down)
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
1593 #
127
0791d13baea7 Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents: 123
diff changeset
1594 # Revision 1.7 2001/07/29 05:36:14 richard
0791d13baea7 Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents: 123
diff changeset
1595 # Cleanup of the link label generation.
0791d13baea7 Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents: 123
diff changeset
1596 #
123
51cce9671db0 Cleanup of the link label generation.
Richard Jones <richard@users.sourceforge.net>
parents: 119
diff changeset
1597 # Revision 1.6 2001/07/29 04:06:42 richard
51cce9671db0 Cleanup of the link label generation.
Richard Jones <richard@users.sourceforge.net>
parents: 119
diff changeset
1598 # Fixed problem in link display when Link value is None.
51cce9671db0 Cleanup of the link label generation.
Richard Jones <richard@users.sourceforge.net>
parents: 119
diff changeset
1599 #
119
ad64dade1769 Fixed problem in link display when Link value is None.
Richard Jones <richard@users.sourceforge.net>
parents: 116
diff changeset
1600 # Revision 1.5 2001/07/28 08:17:09 richard
ad64dade1769 Fixed problem in link display when Link value is None.
Richard Jones <richard@users.sourceforge.net>
parents: 116
diff changeset
1601 # fixed use of stylesheet
ad64dade1769 Fixed problem in link display when Link value is None.
Richard Jones <richard@users.sourceforge.net>
parents: 116
diff changeset
1602 #
116
c73f727208b0 fixed use of stylesheet
Richard Jones <richard@users.sourceforge.net>
parents: 113
diff changeset
1603 # Revision 1.4 2001/07/28 07:59:53 richard
c73f727208b0 fixed use of stylesheet
Richard Jones <richard@users.sourceforge.net>
parents: 113
diff changeset
1604 # Replaced errno integers with their module values.
c73f727208b0 fixed use of stylesheet
Richard Jones <richard@users.sourceforge.net>
parents: 113
diff changeset
1605 # De-tabbed templatebuilder.py
c73f727208b0 fixed use of stylesheet
Richard Jones <richard@users.sourceforge.net>
parents: 113
diff changeset
1606 #
113
2ab86442799a Replaced errno integers with their module values.
Richard Jones <richard@users.sourceforge.net>
parents: 72
diff changeset
1607 # Revision 1.3 2001/07/25 03:39:47 richard
2ab86442799a Replaced errno integers with their module values.
Richard Jones <richard@users.sourceforge.net>
parents: 72
diff changeset
1608 # Hrm - displaying links to classes that don't specify a key property. I've
2ab86442799a Replaced errno integers with their module values.
Richard Jones <richard@users.sourceforge.net>
parents: 72
diff changeset
1609 # got it defaulting to 'name', then 'title' and then a "random" property (first
2ab86442799a Replaced errno integers with their module values.
Richard Jones <richard@users.sourceforge.net>
parents: 72
diff changeset
1610 # one returned by getprops().keys().
2ab86442799a Replaced errno integers with their module values.
Richard Jones <richard@users.sourceforge.net>
parents: 72
diff changeset
1611 # Needs to be moved onto the Class I think...
2ab86442799a Replaced errno integers with their module values.
Richard Jones <richard@users.sourceforge.net>
parents: 72
diff changeset
1612 #
72
c186b637fee0 Hrm - displaying links to classes that don't specify a key property.
Richard Jones <richard@users.sourceforge.net>
parents: 26
diff changeset
1613 # Revision 1.2 2001/07/22 12:09:32 richard
c186b637fee0 Hrm - displaying links to classes that don't specify a key property.
Richard Jones <richard@users.sourceforge.net>
parents: 26
diff changeset
1614 # Final commit of Grande Splite
c186b637fee0 Hrm - displaying links to classes that don't specify a key property.
Richard Jones <richard@users.sourceforge.net>
parents: 26
diff changeset
1615 #
26
c7c14960f413 Final commit of Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents: 25
diff changeset
1616 # Revision 1.1 2001/07/22 11:58:35 richard
c7c14960f413 Final commit of Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents: 25
diff changeset
1617 # More Grande Splite
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1618 #
127
0791d13baea7 Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents: 123
diff changeset
1619 #
0791d13baea7 Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents: 123
diff changeset
1620 # vim: set filetype=python ts=4 sw=4 et si

Roundup Issue Tracker: http://roundup-tracker.org/