factored code to reuse get_rst_view_value in detailed_email
Correct this bug: eval(data[field.id]) could crash when data[field.id] was not a string. This is the case on multipage forms, when formdata.data contains boolean values instead of string ('True' or 'False').
This commit is contained in:
parent
f69ca38d01
commit
c9185caa87
|
@ -411,20 +411,15 @@ class FormDef(StorableObject):
|
|||
details.append(' %s' % formdata.user.name)
|
||||
details.append('')
|
||||
|
||||
data = formdata.data
|
||||
for field in self.fields:
|
||||
data = formdata.data
|
||||
if isinstance(field, (fields.SubtitleField, fields.TitleField, fields.CommentField,
|
||||
fields.PageField)):
|
||||
continue
|
||||
if data.get(field.id) is None:
|
||||
continue
|
||||
details.append(_('%s:') % field.label)
|
||||
if field.type == 'bool':
|
||||
if eval(data[field.id]):
|
||||
details.append(' %s' % _('Yes'))
|
||||
else:
|
||||
details.append(' %s' % _('No'))
|
||||
elif field.type == 'file':
|
||||
if field.type == 'file':
|
||||
if 'status' in url:
|
||||
file_url = url.replace('status', 'download?f=%s' % field.id)
|
||||
else:
|
||||
|
@ -433,8 +428,6 @@ class FormDef(StorableObject):
|
|||
elif field.type == 'text':
|
||||
# XXX: howto support preformatted text in a dl in docutils ?
|
||||
details.append((' %s' % data[field.id]).replace('\n', '\n '))
|
||||
elif field.type == 'date':
|
||||
details.append(' %s' % strftime.strftime(date_format(), data[field.id]))
|
||||
else:
|
||||
details.append('%s' % field.get_rst_view_value(data[field.id], indent=' '))
|
||||
details.append('')
|
||||
|
|
Loading…
Reference in New Issue