You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by dp...@apache.org on 2022/12/24 00:40:02 UTC

[superset] branch master updated: refactor: rename filter_rel_fields to base_related_field_filters (#22508)

This is an automated email from the ASF dual-hosted git repository.

dpgaspar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git


The following commit(s) were added to refs/heads/master by this push:
     new 7926a43aed refactor: rename filter_rel_fields to base_related_field_filters (#22508)
7926a43aed is described below

commit 7926a43aed93413eb827ba264d048d8e13865aee
Author: Daniel Vaz Gaspar <da...@gmail.com>
AuthorDate: Sat Dec 24 00:39:53 2022 +0000

    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 7cef39a290..e9ba4feddb 100644
--- a/superset/charts/api.py
+++ b/superset/charts/api.py
@@ -243,7 +243,7 @@ class ChartRestApi(BaseSupersetModelRestApi):
         "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 79255d1921..615855123d 100644
--- a/superset/dashboards/api.py
+++ b/superset/dashboards/api.py
@@ -241,7 +241,7 @@ class DashboardRestApi(BaseSupersetModelRestApi):
         "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 fd2bd8c5a9..40efe08c69 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 83cb504937..1fb342f067 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 52467a5c92..2b70b582bb 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 f84d6287e1..d483576417 100644
--- a/superset/reports/api.py
+++ b/superset/reports/api.py
@@ -209,7 +209,7 @@ class ReportScheduleRestApi(BaseSupersetModelRestApi):
     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 eb957a48ef..47fc611ba2 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/<column_name>' endpoint.
+    When combined with the `related_field_filters` attribute,
+    this filter will be applied in addition to the latest::
 
-        related_fields = {
-            "<RELATED_FIELD>": <RelatedFieldFilter>)
+        base_related_field_filters = {
+            "<RELATED_FIELD>": "<FILTER>")
         }
     """
 
-    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/<column_name>' 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_FIELD>": "<FILTER>")
+        related_fields = {
+            "<RELATED_FIELD>": <RelatedFieldFilter>)
         }
     """
     allowed_rel_fields: Set[str] = set()
@@ -299,7 +305,7 @@ class BaseSupersetModelRestApi(ModelRestApi):
         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 7f3dfd2930..9450a83033 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: []]],
     }