Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: deprecate old Dataset related endpoints #28453

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 9 additions & 3 deletions superset/connectors/sqla/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,14 @@
import re

from flask import flash, redirect
from flask_appbuilder import CompactCRUDMixin, expose, permission_name
from flask_appbuilder import CompactCRUDMixin, expose
from flask_appbuilder.fields import QuerySelectField
from flask_appbuilder.fieldwidgets import Select2Widget
from flask_appbuilder.models.sqla.interface import SQLAInterface
from flask_appbuilder.security.decorators import has_access
from flask_appbuilder.security.decorators import (
has_access,
permission_name,
)
from flask_babel import lazy_gettext as _
from markupsafe import Markup
from wtforms.validators import DataRequired, Regexp
Expand All @@ -38,6 +41,7 @@
BaseSupersetView,
DatasourceFilter,
DeleteMixin,
DeprecateModelViewMixin,
ListWidgetWithCheckboxes,
SupersetModelView,
YamlExportMixin,
Expand All @@ -60,6 +64,7 @@ class SelectDataRequired(DataRequired): # pylint: disable=too-few-public-method


class TableColumnInlineView( # pylint: disable=too-many-ancestors
DeprecateModelViewMixin,
CompactCRUDMixin,
SupersetModelView,
):
Expand Down Expand Up @@ -196,6 +201,7 @@ class TableColumnInlineView( # pylint: disable=too-many-ancestors


class SqlMetricInlineView( # pylint: disable=too-many-ancestors
DeprecateModelViewMixin,
CompactCRUDMixin,
SupersetModelView,
):
Expand Down Expand Up @@ -283,7 +289,7 @@ def list(self) -> FlaskResponse:


class TableModelView( # pylint: disable=too-many-ancestors
SupersetModelView, DeleteMixin, YamlExportMixin
DeprecateModelViewMixin, SupersetModelView, DeleteMixin, YamlExportMixin
):
datamodel = SQLAInterface(models.SqlaTable)
class_permission_name = "Dataset"
Expand Down
66 changes: 65 additions & 1 deletion superset/views/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,16 @@
send_file,
session,
)
from flask_appbuilder import BaseView, Model, ModelView
from flask_appbuilder import BaseView, expose, Model, ModelView
from flask_appbuilder.actions import action
from flask_appbuilder.baseviews import expose_api
from flask_appbuilder.forms import DynamicForm
from flask_appbuilder.models.sqla.filters import BaseFilter
from flask_appbuilder.security.decorators import (
has_access,
has_access_api,
permission_name,
)
from flask_appbuilder.security.sqla.models import User
from flask_appbuilder.widgets import ListWidget
from flask_babel import get_locale, gettext as __, lazy_gettext as _
Expand Down Expand Up @@ -549,6 +555,64 @@
template = "superset/fab_overrides/list.html"


class DeprecateModelViewMixin:
@expose("/add", methods=["GET", "POST"])
@has_access
@deprecated(eol_version="5.0.0")
def add(self) -> FlaskResponse:
return super().add() # type: ignore

Check warning on line 563 in superset/views/base.py

View check run for this annotation

Codecov / codecov/patch

superset/views/base.py#L563

Added line #L563 was not covered by tests

@has_access
@deprecated(eol_version="5.0.0")
def show(self, pk: int) -> FlaskResponse:
return super().show(pk) # type: ignore

Check warning on line 568 in superset/views/base.py

View check run for this annotation

Codecov / codecov/patch

superset/views/base.py#L568

Added line #L568 was not covered by tests

@expose("/edit/<pk>", methods=["GET", "POST"])
@has_access
@deprecated(eol_version="5.0.0")
def edit(self, pk: int) -> FlaskResponse:
return super().edit(pk) # type: ignore

Check warning on line 574 in superset/views/base.py

View check run for this annotation

Codecov / codecov/patch

superset/views/base.py#L574

Added line #L574 was not covered by tests

@expose("/delete/<pk>", methods=["GET", "POST"])
@has_access
@deprecated(eol_version="5.0.0")
def delete(self, pk: int) -> FlaskResponse:
return super().delete(pk) # type: ignore

Check warning on line 580 in superset/views/base.py

View check run for this annotation

Codecov / codecov/patch

superset/views/base.py#L580

Added line #L580 was not covered by tests

@expose_api(name="read", url="/api/read", methods=["GET"])
@has_access_api
@permission_name("list")
@deprecated(eol_version="5.0.0")
def api_read(self) -> FlaskResponse:
return super().api_read() # type: ignore

Check warning on line 587 in superset/views/base.py

View check run for this annotation

Codecov / codecov/patch

superset/views/base.py#L587

Added line #L587 was not covered by tests

@expose_api(name="get", url="/api/get/<pk>", methods=["GET"])
@has_access_api
@permission_name("show")
def api_get(self, pk: int) -> FlaskResponse:
return super().api_get(pk) # type: ignore

Check warning on line 593 in superset/views/base.py

View check run for this annotation

Codecov / codecov/patch

superset/views/base.py#L593

Added line #L593 was not covered by tests

@expose_api(name="create", url="/api/create", methods=["POST"])
@has_access_api
@permission_name("add")
def api_create(self) -> FlaskResponse:
return super().api_create() # type: ignore

Check warning on line 599 in superset/views/base.py

View check run for this annotation

Codecov / codecov/patch

superset/views/base.py#L599

Added line #L599 was not covered by tests

@expose_api(name="update", url="/api/update/<pk>", methods=["PUT"])
@has_access_api
@permission_name("write")
@deprecated(eol_version="5.0.0")
def api_update(self, pk: int) -> FlaskResponse:
return super().api_update(pk) # type: ignore

Check warning on line 606 in superset/views/base.py

View check run for this annotation

Codecov / codecov/patch

superset/views/base.py#L606

Added line #L606 was not covered by tests

@expose_api(name="delete", url="/api/delete/<pk>", methods=["DELETE"])
@has_access_api
@permission_name("delete")
@deprecated(eol_version="5.0.0")
def api_delete(self, pk: int) -> FlaskResponse:
return super().delete(pk) # type: ignore

Check warning on line 613 in superset/views/base.py

View check run for this annotation

Codecov / codecov/patch

superset/views/base.py#L613

Added line #L613 was not covered by tests


class SupersetModelView(ModelView):
page_size = 100
list_widget = SupersetListWidget
Expand Down
Loading