No, that should never have worked. To do '
if table:', 'table' does have to be defined, and it will only be defined if passed from the controller. Here's what you can do:
{{if 'table' in globals():}}
or if there's a chance that when 'table' is actually returned it could be None/False/empty and you want to test for that, you could do:
{{if globals().get('table', False):}}
That will be False if 'table' does not exist, but still let you test for 'table' evaluating to False if it does exist.
You could also do 'return dict(form=form, table=None)' in that first condition of your controller, so 'table' will always be defined (again, assuming that the second condition would never return None as the value of 'table').
Anthony