Mercurial > p > roundup > code
diff roundup/cgi/templating.py @ 2471:31cd032291c5
new templating features
| author | Richard Jones <richard@users.sourceforge.net> |
|---|---|
| date | Wed, 16 Jun 2004 00:29:54 +0000 |
| parents | 7b248ea0a2e5 |
| children | 0914d72bb15b |
line wrap: on
line diff
--- a/roundup/cgi/templating.py Tue Jun 15 09:42:09 2004 +0000 +++ b/roundup/cgi/templating.py Wed Jun 16 00:29:54 2004 +0000 @@ -1399,7 +1399,7 @@ offset = self._offset return str(self._value.local(offset)) - def now(self): + def now(self, str_interval = None): ''' Return the current time. This is useful for defaulting a new value. Returns a @@ -1407,10 +1407,23 @@ ''' self.view_check() + ret = date.Date('.') + + if isinstance(str_interval, basestring): + sign = 1 + if str_interval[0] == '-': + sign = -1 + str_interval = str_interval[1:] + interval = date.Interval(str_interval) + if sign > 0: + ret = ret + interval + else: + ret = ret - interval + return DateHTMLProperty(self._client, self._classname, self._nodeid, - self._prop, self._formname, date.Date('.')) + self._prop, self._formname, ret) - def field(self, size = 30): + def field(self, size = 30, default = None): ''' Render a form edit field for the property If not editable, just display the value via plain(). @@ -1418,10 +1431,27 @@ self.view_check() if self._value is None: + if default is None: + raw_value = None + else: + if isinstance(default, basestring): + raw_value = Date(default) + elif isinstance(default, date.Date): + raw_value = default + elif isinstance(default, DateHTMLProperty): + raw_value = default._value + else: + raise ValueError, _('default value for ' + \ + 'DateHTMLProperty must be either DateHTMLProperty ' + \ + 'or string date representation.') + else: + raw_value = self._value + + if raw_value is None: value = '' else: tz = self._db.getUserTimezone() - value = cgi.escape(str(self._value.local(tz))) + value = cgi.escape(str(raw_value.local(tz))) if self.is_edit_ok(): value = '"'.join(value.split('"'))
