def datasets_trimmed_for_slices(self) -> List[Dict[str, Any]]: datasource_slices = utils.indexed(self.slices, "datasource") return [ # Filter out unneeded fields from the datasource payload datasource.data_for_slices(slices) for datasource, slices in datasource_slices.items() if datasource ]
def get_datasets_for_dashboard(id_or_slug: str) -> List[Any]: dashboard = DashboardDAO.get_by_id_or_slug(id_or_slug) datasource_slices = core.indexed(dashboard.slices, "datasource") data = [ datasource.data_for_slices(slices) for datasource, slices in datasource_slices.items() if datasource ] return data
def full_data(self) -> Dict[str, Any]: """Bootstrap data for rendering the dashboard page.""" slices = self.slices datasource_slices = utils.indexed(slices, "datasource") return { # dashboard metadata "dashboard": self.data, # slices metadata "slices": [slc.data for slc in slices], # datasource metadata "datasources": { # Filter out unneeded fields from the datasource payload datasource.uid: datasource.data_for_slices(slices) for datasource, slices in datasource_slices.items() }, }
def get_datasets_for_dashboard(id_or_slug: str) -> List[Any]: query = (db.session.query(Dashboard).filter( id_or_slug_filter(id_or_slug)).outerjoin( Slice, Dashboard.slices).outerjoin(Slice.table)) # Apply dashboard base filters query = DashboardFilter("id", SQLAInterface(Dashboard, db.session)).apply(query, None) dashboard = query.one_or_none() if not dashboard: raise DashboardNotFoundError() datasource_slices = core.indexed(dashboard.slices, "datasource") data = [ datasource.data_for_slices(slices) for datasource, slices in datasource_slices.items() if datasource ] return data
def full_data(self) -> Dict[str, Any]: """Bootstrap data for rendering the dashboard page.""" slices = self.slices datasource_slices = utils.indexed(slices, "datasource") try: datasources = { # Filter out unneeded fields from the datasource payload datasource.uid: datasource.data_for_slices(slices) for datasource, slices in datasource_slices.items() if datasource } except (SupersetException, SQLAlchemyError): datasources = {} return { # dashboard metadata "dashboard": self.data, # slices metadata "slices": [slc.data for slc in slices], # datasource metadata "datasources": datasources, }