diff --git a/superset/reports/commands/execute.py b/superset/reports/commands/execute.py index ddf4f19cfccb5..0d0f28756bdbf 100644 --- a/superset/reports/commands/execute.py +++ b/superset/reports/commands/execute.py @@ -152,11 +152,19 @@ def _get_screenshot(self) -> ScreenshotData: screenshot: Optional[BaseScreenshot] = None if self._report_schedule.chart: url = self._get_url(standalone="true") - screenshot = ChartScreenshot(url, self._report_schedule.chart.digest) + screenshot = ChartScreenshot( + url, + self._report_schedule.chart.digest, + window_size=app.config["WEBDRIVER_WINDOW"]["slice"], + thumb_size=app.config["WEBDRIVER_WINDOW"]["slice"], + ) else: url = self._get_url() screenshot = DashboardScreenshot( - url, self._report_schedule.dashboard.digest + url, + self._report_schedule.dashboard.digest, + window_size=app.config["WEBDRIVER_WINDOW"]["dashboard"], + thumb_size=app.config["WEBDRIVER_WINDOW"]["dashboard"], ) image_url = self._get_url(user_friendly=True) user = self._get_screenshot_user() diff --git a/superset/utils/screenshots.py b/superset/utils/screenshots.py index 26043616f1268..73e0c8c12b691 100644 --- a/superset/utils/screenshots.py +++ b/superset/utils/screenshots.py @@ -195,12 +195,30 @@ def resize_image( class ChartScreenshot(BaseScreenshot): thumbnail_type: str = "chart" element: str = "chart-container" - window_size: WindowSize = (800, 600) - thumb_size: WindowSize = (800, 600) + + def __init__( + self, + url: str, + digest: str, + window_size: Optional[WindowSize] = None, + thumb_size: Optional[WindowSize] = None, + ): + super().__init__(url, digest) + self.window_size = window_size or (800, 600) + self.thumb_size = thumb_size or (800, 600) class DashboardScreenshot(BaseScreenshot): thumbnail_type: str = "dashboard" element: str = "grid-container" - window_size: WindowSize = (1600, int(1600 * 0.75)) - thumb_size: WindowSize = (800, int(800 * 0.75)) + + def __init__( + self, + url: str, + digest: str, + window_size: Optional[WindowSize] = None, + thumb_size: Optional[WindowSize] = None, + ): + super().__init__(url, digest) + self.window_size = window_size or (1600, 1200) + self.thumb_size = thumb_size or (800, 600)