Skip to content

Commit 0f64ab7

Browse files
author
Richard Jones
committed
new templating features
1 parent 91737f3 commit 0f64ab7

File tree

3 files changed

+38
-4
lines changed

3 files changed

+38
-4
lines changed

CHANGES.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ Feature:
99
- remove "manual" locking of sqlite database
1010
- create a new RDBMS cursor after committing
1111
- added basic logging, and configuration of it and python's logging module
12+
- add a default argument to the DateHTMLProperty.field method, and an
13+
optional Interval (string or object) to the DateHTMLProperty.now (patch
14+
from Vickenty Fesunov)
1215

1316

1417
2004-??-?? 0.7.5

doc/index.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ Paul F. Dubois,
7979
Jeff Epler,
8080
Tom Epperly,
8181
Tamer Fahmy,
82+
Vickenty Fesunov,
8283
Hernan Martinez Foffani,
8384
Stuart D. Gathman,
8485
Ajit George,

roundup/cgi/templating.py

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1399,29 +1399,59 @@ def plain(self):
13991399
offset = self._offset
14001400
return str(self._value.local(offset))
14011401

1402-
def now(self):
1402+
def now(self, str_interval = None):
14031403
''' Return the current time.
14041404
14051405
This is useful for defaulting a new value. Returns a
14061406
DateHTMLProperty.
14071407
'''
14081408
self.view_check()
14091409

1410+
ret = date.Date('.')
1411+
1412+
if isinstance(str_interval, basestring):
1413+
sign = 1
1414+
if str_interval[0] == '-':
1415+
sign = -1
1416+
str_interval = str_interval[1:]
1417+
interval = date.Interval(str_interval)
1418+
if sign > 0:
1419+
ret = ret + interval
1420+
else:
1421+
ret = ret - interval
1422+
14101423
return DateHTMLProperty(self._client, self._classname, self._nodeid,
1411-
self._prop, self._formname, date.Date('.'))
1424+
self._prop, self._formname, ret)
14121425

1413-
def field(self, size = 30):
1426+
def field(self, size = 30, default = None):
14141427
''' Render a form edit field for the property
14151428
14161429
If not editable, just display the value via plain().
14171430
'''
14181431
self.view_check()
14191432

14201433
if self._value is None:
1434+
if default is None:
1435+
raw_value = None
1436+
else:
1437+
if isinstance(default, basestring):
1438+
raw_value = Date(default)
1439+
elif isinstance(default, date.Date):
1440+
raw_value = default
1441+
elif isinstance(default, DateHTMLProperty):
1442+
raw_value = default._value
1443+
else:
1444+
raise ValueError, _('default value for ' + \
1445+
'DateHTMLProperty must be either DateHTMLProperty ' + \
1446+
'or string date representation.')
1447+
else:
1448+
raw_value = self._value
1449+
1450+
if raw_value is None:
14211451
value = ''
14221452
else:
14231453
tz = self._db.getUserTimezone()
1424-
value = cgi.escape(str(self._value.local(tz)))
1454+
value = cgi.escape(str(raw_value.local(tz)))
14251455

14261456
if self.is_edit_ok():
14271457
value = '"'.join(value.split('"'))

0 commit comments

Comments
 (0)