def render(self, request, block=None, **kwargs): instance = request.instance tabs = html.tabs().addData('options', {'ajax': True}) first = True for order, elem in sorted(self.get_views(request), key=lambda v: v[0]): # we render so that we add javascript if it is needed text = elem.view.render() link = views.application_link(elem, asbutton=False) tabs.addtab(link, text) return tabs
def testTabs(self): tab = html.tabs() self.assertEqual(len(tab), 0) self.assertEqual(tab.tag, 'div') tab.addtab('tab1', 'this is tab 1') self.assertEqual(len(tab), 2) tab.addtab('tab2', 'this is tab 2') self.assertEqual(len(tab), 3) ht = tab.render() self.assertTrue('ui-tabs' in ht)
def testTabs(self): tab = html.tabs() self.assertEqual(len(tab),0) self.assertEqual(tab.tag, 'div') tab.addtab('tab1','this is tab 1') self.assertEqual(len(tab),2) tab.addtab('tab2','this is tab 2') self.assertEqual(len(tab),3) ht = tab.render() self.assertTrue('ui-tabs' in ht)
def profile(request, callback, Response): tmp = tempfile.mktemp() out = Stream() prof = profiler.Profile() response = prof.runcall(callback) prof.dump_stats(tmp) stats = pstats.Stats(tmp, stream=out) #stats.strip_dirs() # Must happen prior to sort_stats stats.sort_stats('time', 'calls') stats.print_stats() stats_str = out.getvalue() os.unlink(tmp) stats_str = stats_str.split('\n') headers = '\n'.join(make_header(stats_str[:4])) data = data_stream(stats_str[6:],100) tables = make_stat_table(request, data) w = Widget(cn = 'profiler') w.add(Widget('div', headers, cn = 'legend')) w.add(tabs(tables)) content = w.render(request) return to_bytes('\n'.join(html_doc_stream(request, content, 200)))
def profile(request, callback, Response): tmp = tempfile.mktemp() out = Stream() prof = profiler.Profile() response = prof.runcall(callback) prof.dump_stats(tmp) stats = pstats.Stats(tmp, stream=out) #stats.strip_dirs() # Must happen prior to sort_stats stats.sort_stats('time', 'calls') stats.print_stats() stats_str = out.getvalue() os.unlink(tmp) stats_str = stats_str.split('\n') headers = '\n'.join(make_header(stats_str[:4])) data = data_stream(stats_str[6:], 100) tables = make_stat_table(request, data) w = Widget(cn='profiler') w.add(Widget('div', headers, cn='legend')) w.add(tabs(tables)) content = w.render(request) return to_bytes('\n'.join(html_doc_stream(request, content, 200)))
def tabview(djp): make = lambda d,kwargs : djp.view.get_widget(d).addData('height',500)\ .addData(kwargs).render(d) anchor = lambda s : html.Widget('a',title=s,href='/?style={0}'.format(s))\ .render(inner = s) data = (('default',make(djp,None)), ('popup',make(djp,{'edit':{'popup':True}})), #('resizable',make(djp,{'resizable':{'disabled':False}})) ) tabs = html.tabs(data_stream = data, cn = 'whole-page') styles = html.Box(hd = 'Styles', bd = html.List((anchor(s) for s in medplate.themes()), cn = 'vertical').render(djp)) logging = html.Box(hd = 'Logging', bd = html.Widget('div',cn='djp-logging-panel').render()) ctx = {'content0':views.BlockContentGen(djp,(tabs,)), 'content1':views.BlockContentGen(djp,(styles,docs(),logging))} return loader.render('djpcms/inner/cols2_66_33.html', loader.context(ctx,djp.request))