from dash import dcc, html from ..libs.repository.repository import AbstractRepository def html_list_schema(stage:AbstractRepository, with_tables=True): """ Build html list of schema in stage """ ul_classes = "ml-2" schema_baseurl = f"/stg/{stage.name}/schema/" if with_tables: return html.Ul( [ html.Li( children = [ dcc.Link( schema, href=schema_baseurl + schema, className="text-lg hover:underline" ), html_list_table(stage, schema) ], className="" ) for schema in stage.schemas() ], className=ul_classes ) return html.Ul( [ html.Li( dcc.Link( schema, href=schema_baseurl + schema, className="text-lg hover:underline" ), ) for schema in stage.schemas() ], className=ul_classes ) def html_list_table(stage:AbstractRepository, schema:str): """ Build html list of table in stage """ table_baseurl = f"/stg/{stage.name}/schm/{schema}/table/" return html.Ul( [ html.Li( dcc.Link( table, href=table_baseurl + table, className="hover:underline" ), ) for table in stage.tables(schema=schema) ], className="ml-4" )