def getKnownSignaturesTable(self, signatures): result = [ T.table(class_='table table-bordered')[ T.thead[ T.tr[ T.th['Key'], T.th['Group'], T.th['Type'], T.th['Name'], T.th[''], ] ], T.tbody[ forEach(signatures, lambda key, group, sigType, name: [ T.tr[ T.td[key], T.td[group], T.td[sigType], T.td[name], T.td[ C.when(sigType in ['Data Site', 'Relic Site'])[ T.a(href='#', class_='lootModalToggle', **{'data-key': key})[ 'Loot' ] ] ] ] ]) ] ] ] return result
def collectActivity (nick): activity = aggregate( listExecutedCommands(nick), listChestAccesses(nick), listBlockChanges(nick), listProtectionChanges(nick), ) materials = presentBlockchangesByMaterial(nick) hotspots = presentBlockchangesByArea(nick) return [ tags.h2 ( id = nick ) [ nick , ' ', tags.a ( class_ = 'hashlink', href = '#'+nick ) [ '#' ] ], tags.h3 [ 'activity by time' ] if activity else '', tags.table (class_ = 'bytime') [ activity ] if activity else '', tags.h3 [ 'materials used (net)' ] if materials else '', tags.table (class_ = 'bymaterial') [ materials ] if materials else '', tags.h3 [ 'activity by area' ] if hotspots else '', tags.table (class_ = 'byarea') [ hotspots ] if hotspots else '', ] if activity or materials or hotspots else []
def renderApiKeys(self, keys): content = ( T.h2['API Keys'], T.p[ T.a(href=self.getUrl('profile/newKey'))[ T.button(class_='btn btn-primary')['Add key'] ], ], T.div(class_='panel panel-default')[ T.div(class_='panel-heading')['Added keys'], T.table(class_='table')[ T.thead[ T.tr[ T.th['Key ID'], T.th['Expires'], T.th['Characters'], T.th() ] ], T.tbody[ forEach(keys, lambda keyId, expires, characters: ( T.tr[ T.td[keyId], T.td[expires], T.td[ [ T.div[char] for char in characters ] ], T.td[ T.a(class_='glyphicon glyphicon-info-sign withTooltip', title='Detailed info', href='#', **{'data-placement': 'top', 'data-toggle': 'tooltip'}), ' ', T.a(class_='glyphicon glyphicon-trash withTooltip text-danger', title='Delete key', href='#', **{'data-placement': 'top', 'data-toggle': 'tooltip'}), ] ] )), ] ] ] ) html = HtmlLayout() html.setContent(content) return html
def test_autotable_macro ( self ): '''test autotable macro''' data = [ [ 'One', 'Two', 'Three', 'Four' ], range ( 0, 4 ), range ( 4, 8 ), range ( 8, 12 ) ] template = ( macro ( 'AutoTable', lambda data, header=False: ( assign ( 'alts', [ 'even', 'odd' ] ), data and ( T.table ( class_='autotable' ) [ header and ( T.thead [ [ T.th [ _col ] for _col in data [ 0 ] ] ] ), T.tbody [ [ T.tr ( class_='row-%s' % alts [ _rx % 2 ] ) [ [ T.td ( class_='col-%s' % alts [ _cx % 2 ] ) [ _col ] for _cx, _col in enumerate ( _row ) ] ] for _rx, _row in enumerate ( data [ int ( header ): ] ) ] ] ] ) or '' ) ), T.html [ T.head [ T.title [ my_name ( ) ] ], T.body [ AutoTable ( data, header=True ) ] ] ) output = flatten ( template ) self.assertEqual ( output, ( u'<html><head><title>test_autotable_macro</title></head>' u'<body><table class="autotable"><thead><th>One</th><th>Two</th><th>Three</th><th>Four</th></thead>' u'<tbody><tr class="row-even"><td class="col-even">0</td><td class="col-odd">1</td>' u'<td class="col-even">2</td><td class="col-odd">3</td></tr>' u'<tr class="row-odd"><td class="col-even">4</td><td class="col-odd">5</td><td class="col-even">6</td>' u'<td class="col-odd">7</td></tr>' u'<tr class="row-even"><td class="col-even">8</td><td class="col-odd">9</td>' u'<td class="col-even">10</td><td class="col-odd">11</td></tr></tbody>' u'</table></body></html>' ) )