'Render the form for the report
@param get_vars: the GET vars if the request (as dict)
@param widget_id: the HTML element base ID for the widgets'

def html(self, data, filter_widgets=None, get_vars=None, ajaxurl=None, filter_url=None, filter_form=None, filter_tab=None, widget_id=None):

    T = current.T
    if (filter_widgets is not None):
        filter_options = self._fieldset(T('Filter    Options'), filter_widgets, _id=('%s-filters' % widget_id), _class='filter-form')
    else:
        filter_options = ''
    report_options = self.report_options(get_vars=get_vars, widget_id=widget_id)
    hidden = {'tp-data': json.dumps(data, separators=SEPARATORS)}
    empty = T('No    data    available')
    resource = self.resource
    submit = resource.get_config('report_submit', True)
    if submit:
        _class = 'tp-submit'
        if (submit is True):
            label = T('Update    Report')
        elif isinstance(submit, (list, tuple)):
            label = submit[0]
            _class = ('%s    %s' % (submit[1], _class))
        else:
            label = submit
        submit = TAG[''](INPUT(_type='button', _value=label, _class=_class))
    else:
        submit = ''
    form = FORM(filter_options, report_options, submit, hidden=hidden, _class='tp-form', _id=('%s-tp-form' % widget_id))
    output = {'form': form, 'empty': empty, 'widget_id': widget_id}
    s3 = current.response.s3
    scripts = s3.scripts
    appname = current.request.application
    if s3.debug:
        script = ('/%s/static/scripts/d3/d3.js' % appname)
        if (script not in scripts):
            scripts.append(script)
        script = ('/%s/static/scripts/d3/nv.d3.js' % appname)
        if (script not in scripts):
            scripts.append(script)
        script = ('/%s/static/scripts/S3/s3.ui.timeplot.js' % appname)
        if (script not in scripts):
            scripts.append(script)
    else:
        script = ('/%s/static/scripts/S3/s3.timeplot.min.js' % appname)
        if (script not in scripts):
            scripts.append(script)
    settings = current.deployment_settings
    options = {'ajaxURL': ajaxurl, 'autoSubmit': settings.get_ui_report_auto_submit(), 'emptyMessage': str(empty)}
    script = ('$("#%(widget_id)s").timeplot(%(options)s)' % {'widget_id': widget_id, 'options': json.dumps(options)})
    s3.jquery_ready.append(script)
    return output
