Exemple #1
0
 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
Exemple #3
0
 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()
         },
     }
Exemple #4
0
 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,
     }