From 7926a43aed93413eb827ba264d048d8e13865aee Mon Sep 17 00:00:00 2001 From: Daniel Vaz Gaspar Date: Sat, 24 Dec 2022 00:39:53 +0000 Subject: [PATCH] refactor: rename filter_rel_fields to base_related_field_filters (#22508) --- 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 | 24 +++++++++++++++--------- superset/views/filters.py | 2 +- 8 files changed, 23 insertions(+), 17 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..47fc611ba21a0 100644 --- a/superset/views/base_api.py +++ b/superset/views/base_api.py @@ -195,21 +195,27 @@ class BaseSupersetModelRestApi(ModelRestApi): } """ - related_field_filters: Dict[str, Union[RelatedFieldFilter, str]] = {} + base_related_field_filters: Dict[str, BaseFilter] = {} """ - Declare the filters for 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:: - related_fields = { - "": ) + base_related_field_filters = { + "": "") } """ - filter_rel_fields: Dict[str, BaseFilter] = {} + related_field_filters: Dict[str, Union[RelatedFieldFilter, str]] = {} """ - Declare the related field base filter:: + 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:: - filter_rel_fields_field = { - "": "") + related_fields = { + "": ) } """ allowed_rel_fields: Set[str] = set() @@ -299,7 +305,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: []]], }