Skip to content

Commit

Permalink
refactor: rename filter_rel_fields to base_related_field_filters (#22508
Browse files Browse the repository at this point in the history
)
  • Loading branch information
dpgaspar committed Dec 24, 2022
1 parent 9e81c3a commit 7926a43
Show file tree
Hide file tree
Showing 8 changed files with 23 additions and 17 deletions.
2 changes: 1 addition & 1 deletion superset/charts/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -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: []]],
}
Expand Down
2 changes: 1 addition & 1 deletion superset/dashboards/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -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: []]],
}
Expand Down
2 changes: 1 addition & 1 deletion superset/datasets/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -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: []]],
}
Expand Down
4 changes: 2 additions & 2 deletions superset/queries/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -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: []]],
}
Expand All @@ -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"}
2 changes: 1 addition & 1 deletion superset/queries/saved_queries/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -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"}

Expand Down
2 changes: 1 addition & 1 deletion superset/reports/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -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: []]],
Expand Down
24 changes: 15 additions & 9 deletions superset/views/base_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down Expand Up @@ -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:
Expand Down
2 changes: 1 addition & 1 deletion superset/views/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -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: []]],
}
Expand Down

0 comments on commit 7926a43

Please sign in to comment.