dpgaspar commented on code in PR #27582: URL: https://github.com/apache/superset/pull/27582#discussion_r1532261693
########## superset/jinja_context.py: ########## @@ -722,3 +723,69 @@ def dataset_macro( sqla_query = dataset.get_query_str_extended(query_obj, mutate=False) sql = sqla_query.sql return f"(\n{sql}\n) AS dataset_{dataset_id}" + + +def get_dataset_id_from_context(metric_key: str) -> int: + """ + Retrives the Dataset ID from the request context. + + :param metric_key: the metric key. + :returns: the dataset ID. + """ + # pylint: disable=import-outside-toplevel + from superset.daos.chart import ChartDAO + from superset.views.utils import get_form_data + + exc_message = _( + "Please specify the Dataset ID for the ``%(name)s`` metric in the Jinja macro.", + name=metric_key, + ) + if form_data := get_form_data()[0]: Review Comment: nit: you could: ``` python if not form_data, _ := get_form_data(): raise SupersetTemplateException(exc_message) ... ``` to reduce nesting btw, would the `slice_id` optionally returned by `get_form_data` help here? ########## superset/jinja_context.py: ########## @@ -722,3 +723,69 @@ def dataset_macro( sqla_query = dataset.get_query_str_extended(query_obj, mutate=False) sql = sqla_query.sql return f"(\n{sql}\n) AS dataset_{dataset_id}" + + +def get_dataset_id_from_context(metric_key: str) -> int: + """ + Retrives the Dataset ID from the request context. + + :param metric_key: the metric key. + :returns: the dataset ID. + """ + # pylint: disable=import-outside-toplevel + from superset.daos.chart import ChartDAO + from superset.views.utils import get_form_data Review Comment: do we really need to import these outside of the toplevel? even get_form_data? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: notifications-unsubscr...@superset.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: notifications-unsubscr...@superset.apache.org For additional commands, e-mail: notifications-h...@superset.apache.org