import dash_html_components as html import dash_bootstrap_components as dbc import humanize from .users import get_user def list_collections(arv, owner_uuid, limit=100): res = arv.collections().list(where = { 'owner_uuid': owner_uuid }, limit=limit).execute() res = res['items'] #while res['items_available'] > len(res['items']): #res = arv.collections().list(where = {}) return res def list_collections_html(arv, parent, limit=100): projects = list_collections(arv, parent, limit=limit) header = html.Tr([ html.Th('Name'), html.Th('Description'), html.Th('Owner'), html.Th('Size') ]) header = [ html.Thead(header) ] rows = [] for a in projects: owner = get_user(arv, a['owner_uuid']) rows.append( html.Tr([ html.Td([ html.Div(html.A(href='/projects/' + a['uuid'], children=a['name'])), html.Div(a['uuid']) ]), html.Td(a['description'] or 'Modified at ' + a['modified_at']), html.Td([ html.Div(html.A(href='mailto:' + owner['email'], children=owner['first_name'] + ' ' + owner['last_name'])), html.Div(a['owner_uuid']) ]), html.Td(humanize.naturalsize(a['file_size_total'])) ])) rows = [ html.Tbody(rows) ] res = dbc.Table(header + rows, striped=True, hover=True, responsive=True) return res