diff --git a/superset/reports/commands/execute.py b/superset/reports/commands/execute.py index 774f2c897d8..cf226ec21d9 100644 --- a/superset/reports/commands/execute.py +++ b/superset/reports/commands/execute.py @@ -156,11 +156,19 @@ class BaseReportState: 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 26043616f12..73e0c8c12b6 100644 --- a/superset/utils/screenshots.py +++ b/superset/utils/screenshots.py @@ -195,12 +195,30 @@ class BaseScreenshot: 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)