From 628b3fc453785b52fdd303312826a58434d2c762 Mon Sep 17 00:00:00 2001 From: Daniel Gaspar Date: Thu, 22 Dec 2022 14:59:45 +0000 Subject: [PATCH 1/4] refactor: rename filter_rel_fields to base_related_field_filters --- superset/charts/api.py | 2 +- superset/dashboards/api.py | 2 +- superset/datasets/api.py | 2 +- superset/queries/api.py | 4 ++-- superset/queries/saved_queries/api.py | 2 +- superset/reports/api.py | 2 +- superset/views/base_api.py | 6 +++--- superset/views/filters.py | 2 +- 8 files changed, 11 insertions(+), 11 deletions(-) diff --git a/superset/charts/api.py b/superset/charts/api.py index 7cef39a2906ce..e9ba4feddb8b8 100644 --- a/superset/charts/api.py +++ b/superset/charts/api.py @@ -243,7 +243,7 @@ def ensure_thumbnails_enabled(self) -> Optional[Response]: "slices": ("slice_name", "asc"), "owners": ("first_name", "asc"), } - filter_rel_fields = { + base_related_field_filters = { "owners": [["id", BaseFilterRelatedUsers, lambda: []]], "created_by": [["id", BaseFilterRelatedUsers, lambda: []]], } diff --git a/superset/dashboards/api.py b/superset/dashboards/api.py index 79255d19211b2..615855123d263 100644 --- a/superset/dashboards/api.py +++ b/superset/dashboards/api.py @@ -241,7 +241,7 @@ def ensure_thumbnails_enabled(self) -> Optional[Response]: "owners": ("first_name", "asc"), "roles": ("name", "asc"), } - filter_rel_fields = { + base_related_field_filters = { "owners": [["id", BaseFilterRelatedUsers, lambda: []]], "created_by": [["id", BaseFilterRelatedUsers, lambda: []]], } diff --git a/superset/datasets/api.py b/superset/datasets/api.py index fd2bd8c5a9154..40efe08c69d8b 100644 --- a/superset/datasets/api.py +++ b/superset/datasets/api.py @@ -218,7 +218,7 @@ class DatasetRestApi(BaseSupersetModelRestApi): ] openapi_spec_tag = "Datasets" - filter_rel_fields = { + base_related_field_filters = { "owners": [["id", BaseFilterRelatedUsers, lambda: []]], "database": [["id", DatabaseFilter, lambda: []]], } diff --git a/superset/queries/api.py b/superset/queries/api.py index 83cb504937a4c..1fb342f067d3d 100644 --- a/superset/queries/api.py +++ b/superset/queries/api.py @@ -109,7 +109,7 @@ class QueryRestApi(BaseSupersetModelRestApi): "tab_name", "user.first_name", ] - filter_rel_fields = { + base_related_field_filters = { "created_by": [["id", BaseFilterRelatedUsers, lambda: []]], "user": [["id", BaseFilterRelatedUsers, lambda: []]], } @@ -120,6 +120,6 @@ class QueryRestApi(BaseSupersetModelRestApi): search_columns = ["changed_on", "database", "sql", "status", "user", "start_time"] - filter_rel_fields = {"database": [["id", DatabaseFilter, lambda: []]]} + base_related_field_filters = {"database": [["id", DatabaseFilter, lambda: []]]} allowed_rel_fields = {"database", "user"} allowed_distinct_fields = {"status"} diff --git a/superset/queries/saved_queries/api.py b/superset/queries/saved_queries/api.py index 52467a5c92d79..2b70b582bb5f4 100644 --- a/superset/queries/saved_queries/api.py +++ b/superset/queries/saved_queries/api.py @@ -155,7 +155,7 @@ class SavedQueryRestApi(BaseSupersetModelRestApi): related_field_filters = { "database": "database_name", } - filter_rel_fields = {"database": [["id", DatabaseFilter, lambda: []]]} + base_related_field_filters = {"database": [["id", DatabaseFilter, lambda: []]]} allowed_rel_fields = {"database"} allowed_distinct_fields = {"schema"} diff --git a/superset/reports/api.py b/superset/reports/api.py index f84d6287e1e85..d483576417315 100644 --- a/superset/reports/api.py +++ b/superset/reports/api.py @@ -209,7 +209,7 @@ def ensure_alert_reports_enabled(self) -> Optional[Response]: search_filters = {"name": [ReportScheduleAllTextFilter]} allowed_rel_fields = {"owners", "chart", "dashboard", "database", "created_by"} - filter_rel_fields = { + base_related_field_filters = { "chart": [["id", ChartFilter, lambda: []]], "dashboard": [["id", DashboardAccessFilter, lambda: []]], "database": [["id", DatabaseFilter, lambda: []]], diff --git a/superset/views/base_api.py b/superset/views/base_api.py index eb957a48ef439..a9a841616ae50 100644 --- a/superset/views/base_api.py +++ b/superset/views/base_api.py @@ -204,11 +204,11 @@ class BaseSupersetModelRestApi(ModelRestApi): } """ - filter_rel_fields: Dict[str, BaseFilter] = {} + base_related_field_filters: Dict[str, BaseFilter] = {} """ Declare the related field base filter:: - filter_rel_fields_field = { + base_related_field_filters = { "": "") } """ @@ -299,7 +299,7 @@ def _get_related_filter( filter_field = cast(RelatedFieldFilter, filter_field) search_columns = [filter_field.field_name] if filter_field else None filters = datamodel.get_filters(search_columns) - base_filters = self.filter_rel_fields.get(column_name) + base_filters = self.base_related_field_filters.get(column_name) if base_filters: filters.add_filter_list(base_filters) if value and filter_field: diff --git a/superset/views/filters.py b/superset/views/filters.py index 7f3dfd29306e7..9450a830332d8 100644 --- a/superset/views/filters.py +++ b/superset/views/filters.py @@ -61,7 +61,7 @@ class BaseFilterRelatedUsers(BaseFilter): # pylint: disable=too-few-public-meth Use in the api by adding something like: ``` - filter_rel_fields = { + base_related_field_filters = { "owners": [["id", BaseFilterRelatedUsers, lambda: []]], "created_by": [["id", BaseFilterRelatedUsers, lambda: []]], } From dabfad3701f2304b53e85f9d724a97f044ec5b16 Mon Sep 17 00:00:00 2001 From: Daniel Gaspar Date: Thu, 22 Dec 2022 15:11:11 +0000 Subject: [PATCH 2/4] improve doc --- superset/views/base_api.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/superset/views/base_api.py b/superset/views/base_api.py index a9a841616ae50..9764aad094afe 100644 --- a/superset/views/base_api.py +++ b/superset/views/base_api.py @@ -195,21 +195,24 @@ class BaseSupersetModelRestApi(ModelRestApi): } """ - related_field_filters: Dict[str, Union[RelatedFieldFilter, str]] = {} + base_related_field_filters: Dict[str, BaseFilter] = {} """ - Declare the filters for related fields:: - - related_fields = { - "": ) + This is used to specify a base filter for related fields + when they are accessed through the '/related/' endpoint. + When combined with the `related_field_filters` attribute, + this filter will be applied in addition to the latest:: + + base_related_field_filters = { + "": "") } """ - base_related_field_filters: Dict[str, BaseFilter] = {} + related_field_filters: Dict[str, Union[RelatedFieldFilter, str]] = {} """ - Declare the related field base filter:: + Declare the filters for related fields:: - base_related_field_filters = { - "": "") + related_fields = { + "": ) } """ allowed_rel_fields: Set[str] = set() From 4657b42c0e70bbc13c99076dc0f4ae033e569204 Mon Sep 17 00:00:00 2001 From: Daniel Gaspar Date: Thu, 22 Dec 2022 15:18:08 +0000 Subject: [PATCH 3/4] lint --- superset/views/base_api.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/superset/views/base_api.py b/superset/views/base_api.py index 9764aad094afe..960a0b5145225 100644 --- a/superset/views/base_api.py +++ b/superset/views/base_api.py @@ -199,9 +199,9 @@ class BaseSupersetModelRestApi(ModelRestApi): """ This is used to specify a base filter for related fields when they are accessed through the '/related/' endpoint. - When combined with the `related_field_filters` attribute, + When combined with the `related_field_filters` attribute, this filter will be applied in addition to the latest:: - + base_related_field_filters = { "": "") } From 0557ba46c49ad950c403d6e9f5b80888ea57f303 Mon Sep 17 00:00:00 2001 From: Daniel Gaspar Date: Thu, 22 Dec 2022 15:59:21 +0000 Subject: [PATCH 4/4] add doc --- superset/views/base_api.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/superset/views/base_api.py b/superset/views/base_api.py index 960a0b5145225..47fc611ba21a0 100644 --- a/superset/views/base_api.py +++ b/superset/views/base_api.py @@ -209,7 +209,10 @@ class BaseSupersetModelRestApi(ModelRestApi): related_field_filters: Dict[str, Union[RelatedFieldFilter, str]] = {} """ - Declare the filters for related fields:: + Specify a filter for related fields when they are accessed + through the '/related/' endpoint. + When combined with the `base_related_field_filters` attribute, + this filter will be applied in prior to the latest:: related_fields = { "": )