chore: Cleaning up ENABLE_REACT_CRUD_VIEWS config (#11496)

Co-authored-by: John Bodley <john.bodley@airbnb.com>
This commit is contained in:
John Bodley 2020-10-29 16:47:11 -07:00 committed by GitHub
parent 93693690a3
commit a8eb3fe8e7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 22 additions and 27 deletions

View File

@ -313,6 +313,10 @@ DEFAULT_FEATURE_FLAGS: Dict[str, bool] = {
"TAGGING_SYSTEM": False, "TAGGING_SYSTEM": False,
"SQLLAB_BACKEND_PERSISTENCE": False, "SQLLAB_BACKEND_PERSISTENCE": False,
"LISTVIEWS_DEFAULT_CARD_VIEW": False, "LISTVIEWS_DEFAULT_CARD_VIEW": False,
# Enables the replacement React views for all the FAB views (list, edit, show) with
# designs introduced in https://github.com/apache/incubator-superset/issues/8976
# (SIP-34). This is a work in progress so not all features available in FAB have
# been implemented.
"ENABLE_REACT_CRUD_VIEWS": True, "ENABLE_REACT_CRUD_VIEWS": True,
# When True, this flag allows display of HTML tags in Markdown components # When True, this flag allows display of HTML tags in Markdown components
"DISPLAY_MARKDOWN_HTML": True, "DISPLAY_MARKDOWN_HTML": True,
@ -849,11 +853,6 @@ DOCUMENTATION_URL = None
DOCUMENTATION_TEXT = "Documentation" DOCUMENTATION_TEXT = "Documentation"
DOCUMENTATION_ICON = None # Recommended size: 16x16 DOCUMENTATION_ICON = None # Recommended size: 16x16
# Enables the replacement react views for all the FAB views (list, edit, show) with
# designs introduced in SIP-34: https://github.com/apache/incubator-superset/issues/8976
# This is a work in progress so not all features available in FAB have been implemented
ENABLE_REACT_CRUD_VIEWS = DEFAULT_FEATURE_FLAGS["ENABLE_REACT_CRUD_VIEWS"]
# What is the Last N days relative in the time selector to: # What is the Last N days relative in the time selector to:
# 'today' means it is midnight (00:00:00) in the local timezone # 'today' means it is midnight (00:00:00) in the local timezone
# 'now' means it is relative to the query issue time # 'now' means it is relative to the query issue time

View File

@ -30,7 +30,7 @@ from flask_babel import gettext as __, lazy_gettext as _
from wtforms.ext.sqlalchemy.fields import QuerySelectField from wtforms.ext.sqlalchemy.fields import QuerySelectField
from wtforms.validators import Regexp from wtforms.validators import Regexp
from superset import app, db from superset import app, db, is_feature_enabled
from superset.connectors.base.views import DatasourceModelView from superset.connectors.base.views import DatasourceModelView
from superset.connectors.sqla import models from superset.connectors.sqla import models
from superset.constants import RouteMethod from superset.constants import RouteMethod
@ -559,7 +559,7 @@ class TableModelView( # pylint: disable=too-many-ancestors
@expose("/list/") @expose("/list/")
@has_access @has_access
def list(self) -> FlaskResponse: def list(self) -> FlaskResponse:
if not app.config["ENABLE_REACT_CRUD_VIEWS"]: if not is_feature_enabled("ENABLE_REACT_CRUD_VIEWS"):
return super().list() return super().list()
return super().render_app_template() return super().render_app_template()

View File

@ -23,9 +23,8 @@ from flask_appbuilder.security.decorators import has_access
from flask_babel import lazy_gettext as _ from flask_babel import lazy_gettext as _
from wtforms.validators import StopValidation from wtforms.validators import StopValidation
from superset import app from superset import is_feature_enabled
from superset.constants import RouteMethod from superset.constants import RouteMethod
from superset.extensions import feature_flag_manager
from superset.models.annotations import Annotation, AnnotationLayer from superset.models.annotations import Annotation, AnnotationLayer
from superset.typing import FlaskResponse from superset.typing import FlaskResponse
from superset.views.base import SupersetModelView from superset.views.base import SupersetModelView
@ -101,8 +100,8 @@ class AnnotationModelView(
@has_access @has_access
def annotation(self, pk: int) -> FlaskResponse: # pylint: disable=unused-argument def annotation(self, pk: int) -> FlaskResponse: # pylint: disable=unused-argument
if not ( if not (
app.config["ENABLE_REACT_CRUD_VIEWS"] is_feature_enabled("ENABLE_REACT_CRUD_VIEWS")
and feature_flag_manager.is_feature_enabled("SIP_34_ANNOTATIONS_UI") and is_feature_enabled("SIP_34_ANNOTATIONS_UI")
): ):
return super().list() return super().list()
@ -128,8 +127,8 @@ class AnnotationLayerModelView(SupersetModelView): # pylint: disable=too-many-a
@has_access @has_access
def list(self) -> FlaskResponse: def list(self) -> FlaskResponse:
if not ( if not (
app.config["ENABLE_REACT_CRUD_VIEWS"] is_feature_enabled("ENABLE_REACT_CRUD_VIEWS")
and feature_flag_manager.is_feature_enabled("SIP_34_ANNOTATIONS_UI") and is_feature_enabled("SIP_34_ANNOTATIONS_UI")
): ):
return super().list() return super().list()

View File

@ -20,7 +20,7 @@ from flask_appbuilder import expose, has_access
from flask_appbuilder.models.sqla.interface import SQLAInterface from flask_appbuilder.models.sqla.interface import SQLAInterface
from flask_babel import lazy_gettext as _ from flask_babel import lazy_gettext as _
from superset import app, db from superset import db, is_feature_enabled
from superset.connectors.connector_registry import ConnectorRegistry from superset.connectors.connector_registry import ConnectorRegistry
from superset.constants import RouteMethod from superset.constants import RouteMethod
from superset.models.slice import Slice from superset.models.slice import Slice
@ -74,7 +74,7 @@ class SliceModelView(
@expose("/list/") @expose("/list/")
@has_access @has_access
def list(self) -> FlaskResponse: def list(self) -> FlaskResponse:
if not app.config["ENABLE_REACT_CRUD_VIEWS"]: if not is_feature_enabled("ENABLE_REACT_CRUD_VIEWS"):
return super().list() return super().list()
return super().render_app_template() return super().render_app_template()

View File

@ -19,7 +19,7 @@ from flask_appbuilder.models.sqla.interface import SQLAInterface
from flask_appbuilder.security.decorators import has_access from flask_appbuilder.security.decorators import has_access
from flask_babel import lazy_gettext as _ from flask_babel import lazy_gettext as _
from superset import app from superset import is_feature_enabled
from superset.constants import RouteMethod from superset.constants import RouteMethod
from superset.models import core as models from superset.models import core as models
from superset.typing import FlaskResponse from superset.typing import FlaskResponse
@ -45,7 +45,7 @@ class CssTemplateModelView( # pylint: disable=too-many-ancestors
@expose("/list/") @expose("/list/")
@has_access @has_access
def list(self) -> FlaskResponse: def list(self) -> FlaskResponse:
if not app.config["ENABLE_REACT_CRUD_VIEWS"]: if not is_feature_enabled("ENABLE_REACT_CRUD_VIEWS"):
return super().list() return super().list()
return super().render_app_template() return super().render_app_template()

View File

@ -24,7 +24,7 @@ from flask_appbuilder.models.sqla.interface import SQLAInterface
from flask_appbuilder.security.decorators import has_access from flask_appbuilder.security.decorators import has_access
from flask_babel import gettext as __, lazy_gettext as _ from flask_babel import gettext as __, lazy_gettext as _
from superset import app, db, event_logger from superset import db, event_logger, is_feature_enabled
from superset.constants import RouteMethod from superset.constants import RouteMethod
from superset.models.dashboard import Dashboard as DashboardModel from superset.models.dashboard import Dashboard as DashboardModel
from superset.typing import FlaskResponse from superset.typing import FlaskResponse
@ -55,7 +55,7 @@ class DashboardModelView(
@has_access @has_access
@expose("/list/") @expose("/list/")
def list(self) -> FlaskResponse: def list(self) -> FlaskResponse:
if not app.config["ENABLE_REACT_CRUD_VIEWS"]: if not is_feature_enabled("ENABLE_REACT_CRUD_VIEWS"):
return super().list() return super().list()
return super().render_app_template() return super().render_app_template()

View File

@ -28,7 +28,7 @@ from wtforms.fields import StringField
from wtforms.validators import ValidationError from wtforms.validators import ValidationError
import superset.models.core as models import superset.models.core as models
from superset import app, db from superset import app, db, is_feature_enabled
from superset.connectors.sqla.models import SqlaTable from superset.connectors.sqla.models import SqlaTable
from superset.constants import RouteMethod from superset.constants import RouteMethod
from superset.exceptions import CertificateException from superset.exceptions import CertificateException
@ -98,7 +98,7 @@ class DatabaseView(
@expose("/list/") @expose("/list/")
@has_access @has_access
def list(self) -> FlaskResponse: def list(self) -> FlaskResponse:
if not app.config["ENABLE_REACT_CRUD_VIEWS"]: if not is_feature_enabled("ENABLE_REACT_CRUD_VIEWS"):
return super().list() return super().list()
return super().render_app_template() return super().render_app_template()

View File

@ -21,7 +21,7 @@ from flask_appbuilder.models.sqla.interface import SQLAInterface
from flask_appbuilder.security.decorators import has_access, has_access_api from flask_appbuilder.security.decorators import has_access, has_access_api
from flask_babel import lazy_gettext as _ from flask_babel import lazy_gettext as _
from superset import app, db from superset import db, is_feature_enabled
from superset.constants import RouteMethod from superset.constants import RouteMethod
from superset.models.sql_lab import Query, SavedQuery, TableSchema, TabState from superset.models.sql_lab import Query, SavedQuery, TableSchema, TabState
from superset.typing import FlaskResponse from superset.typing import FlaskResponse
@ -78,7 +78,7 @@ class SavedQueryView(
@expose("/list/") @expose("/list/")
@has_access @has_access
def list(self) -> FlaskResponse: def list(self) -> FlaskResponse:
if not app.config["ENABLE_REACT_CRUD_VIEWS"]: if not is_feature_enabled("ENABLE_REACT_CRUD_VIEWS"):
return super().list() return super().list()
return super().render_app_template() return super().render_app_template()

View File

@ -55,6 +55,7 @@ FEATURE_FLAGS = {
"KV_STORE": True, "KV_STORE": True,
"SHARE_QUERIES_VIA_KV_STORE": True, "SHARE_QUERIES_VIA_KV_STORE": True,
"ENABLE_TEMPLATE_PROCESSING": True, "ENABLE_TEMPLATE_PROCESSING": True,
"ENABLE_REACT_CRUD_VIEWS": os.environ.get("ENABLE_REACT_CRUD_VIEWS", False),
} }
@ -73,11 +74,7 @@ PUBLIC_ROLE_LIKE = "Gamma"
AUTH_ROLE_PUBLIC = "Public" AUTH_ROLE_PUBLIC = "Public"
EMAIL_NOTIFICATIONS = False EMAIL_NOTIFICATIONS = False
ENABLE_ROW_LEVEL_SECURITY = True ENABLE_ROW_LEVEL_SECURITY = True
ENABLE_REACT_CRUD_VIEWS = os.environ.get("ENABLE_REACT_CRUD_VIEWS", False)
CACHE_CONFIG = {"CACHE_TYPE": "simple"} CACHE_CONFIG = {"CACHE_TYPE": "simple"}
REDIS_HOST = os.environ.get("REDIS_HOST", "localhost") REDIS_HOST = os.environ.get("REDIS_HOST", "localhost")
REDIS_PORT = os.environ.get("REDIS_PORT", "6379") REDIS_PORT = os.environ.get("REDIS_PORT", "6379")
REDIS_CELERY_DB = os.environ.get("REDIS_CELERY_DB", 2) REDIS_CELERY_DB = os.environ.get("REDIS_CELERY_DB", 2)