I upgraded my application from TurboGears 2.1 to 2.3.4, and from
ToscaWidgets 1 to 2. I was able to login to my app. But one custom
widget I've created like this:
class AdminBody(TextField):
...
served through a controller like this:
tmpl_context.body = admin_body(
finish_work=False,
totalToBill = format_precision(totalToBill,2),
projectsToBillGrid = projectsToBillGrid,
add_work_form = add_work_form,
add_work_form_child_args = dict(
start=dict(default=datetime.now())
),
time_allocation_grid = time_allocation_grid,
period_grids = period_grids
)
when called in a template like this:
${tmpl_context.body}
outputs this:
<class 'tw2.core.params.AdminBody_s_s'>
If instead I call it in a template like this:
${tmpl_context.body.display()}
it outputs:
IOError: [Errno 2] No such file or directory: '\n<div
xmlns="http://www.w3.org/1999/xhtml"\n
xmlns:py="http://genshi.edgewall.org/"\n class="${css_class}"\n
id="${id}"\n >\n ...
which is the unrendered content of the template = '...' string of my
custom widget.
How can I get the widget to render properly?
Tim