index fc0baa454079c1a11e94759ef31d127ab02e9597..1a083b056711fdf9193e0fa013c73145487bd7e1 100644 (file)
--- a/roundup/htmltemplate.py
+++ b/roundup/htmltemplate.py
# BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
# SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
#
-# $Id: htmltemplate.py,v 1.33 2001-10-23 01:00:18 richard Exp $
+# $Id: htmltemplate.py,v 1.38 2001-10-31 06:58:51 richard Exp $
import os, re, StringIO, urllib, cgi, errno
import hyperdb, date, password
+# This imports the StructureText functionality for the do_stext function
+# get it from http://dev.zope.org/Members/jim/StructuredTextWiki/NGReleases
+try:
+ from StructuredText.StructuredText import HTML as StructuredText
+except ImportError:
+ StructuredText = None
+
class TemplateFunctions:
def __init__(self):
self.form = None
else:
s = 'Plain: bad propclass "%s"'%propclass
if escape:
- return cgi.escape(value)
+ value = cgi.escape(value)
return value
+ def do_stext(self, property, escape=0):
+ '''Render as structured text using the StructuredText module
+ (see above for details)
+ '''
+ s = self.do_plain(property, escape=escape)
+ if not StructuredText:
+ return s
+ return StructuredText(s,level=1,header=0)
+
def do_field(self, property, size=None, height=None, showid=0):
''' display a property like the plain displayer, but in a text field
to be edited
go along with a change.
'''
# TODO: pull the value from the form
- return '<textarea name="__note" rows=%s cols=%s></textarea>'%(rows,
- cols)
+ return '<textarea name="__note" wrap="hard" rows=%s cols=%s>'\
+ '</textarea>'%(rows, cols)
# XXX new function
def do_list(self, property, reverse=0):
self.classname+'.filter')).read()
all_filters = self.col_re.findall(filter_template)
except IOError, error:
- if error.errno != errno.ENOENT: raise
+ if error.errno not in (errno.ENOENT, errno.ESRCH): raise
filter_template = None
all_filters = []
- # display the filter section
- if (hasattr(self.client, 'FILTER_POSITION') and
- self.client.FILTER_POSITION in ('top and bottom', 'top')):
- w('<form>\n')
- self.filter_section(filter_template, filter, columns, group,
- all_filters, all_columns, show_display_form, show_customization)
- w('</form>\n')
-
- # make sure that the sorting doesn't get lost either
- if sort:
- w('<input type="hidden" name=":sort" value="%s">'%','.join(sort))
-
# XXX deviate from spec here ...
# load the index section template and figure the default columns from it
template = open(os.path.join(self.templates,
l.append(name)
columns = l
+ # display the filter section
+ if (hasattr(self.client, 'FILTER_POSITION') and
+ self.client.FILTER_POSITION in ('top and bottom', 'top')):
+ w('<form action="index">\n')
+ self.filter_section(filter_template, filter, columns, group,
+ all_filters, all_columns, show_display_form, show_customization)
+ w('</form>\n')
+
+ # make sure that the sorting doesn't get lost either
+ if sort:
+ w('<input type="hidden" name=":sort" value="%s">'%','.join(sort))
+
# now display the index section
w('<table width=100% border=0 cellspacing=0 cellpadding=2>\n')
w('<tr class="list-header">\n')
# display the filter section
if (hasattr(self.client, 'FILTER_POSITION') and
self.client.FILTER_POSITION in ('top and bottom', 'bottom')):
- w('<form>\n')
+ w('<form action="index">\n')
self.filter_section(filter_template, filter, columns, group,
all_filters, all_columns, show_display_form, show_customization)
w('</form>\n')
#
# $Log: not supported by cvs2svn $
+# Revision 1.37 2001/10/31 06:24:35 richard
+# Added do_stext to htmltemplate, thanks Brad Clements.
+#
+# Revision 1.36 2001/10/28 22:51:38 richard
+# Fixed ENOENT/WindowsError thing, thanks Juergen Hermann
+#
+# Revision 1.35 2001/10/24 00:04:41 richard
+# Removed the "infinite authentication loop", thanks Roch'e
+#
+# Revision 1.34 2001/10/23 22:56:36 richard
+# Bugfix in filter "widget" placement, thanks Roch'e
+#
+# Revision 1.33 2001/10/23 01:00:18 richard
+# Re-enabled login and registration access after lopping them off via
+# disabling access for anonymous users.
+# Major re-org of the htmltemplate code, cleaning it up significantly. Fixed
+# a couple of bugs while I was there. Probably introduced a couple, but
+# things seem to work OK at the moment.
+#
# Revision 1.32 2001/10/22 03:25:01 richard
# Added configuration for:
# . anonymous user access and registration (deny/allow)