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: []]],
}