refactor: rename filter_rel_fields to base_related_field_filters (#22508)

This commit is contained in:
Daniel Vaz Gaspar 2022-12-24 00:39:53 +00:00 committed by GitHub
parent 9e81c3a119
commit 7926a43aed
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 23 additions and 17 deletions

View File

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

View File

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

View File

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

View File

@ -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"}

View File

@ -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"}

View File

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

View File

@ -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:

View File

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