You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by mi...@apache.org on 2022/06/28 17:24:09 UTC

[superset] 18/19: fix: bump FAB to 4.1.2 (#20483)

This is an automated email from the ASF dual-hosted git repository.

michaelsmolina pushed a commit to branch 2.0
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 63229dcf563abbdd23507c00d30b80456b0d1c7a
Author: Daniel Vaz Gaspar <da...@gmail.com>
AuthorDate: Fri Jun 24 19:13:48 2022 +0100

    fix: bump FAB to 4.1.2 (#20483)
---
 requirements/base.txt             |  2 +-
 setup.py                          |  2 +-
 superset/connectors/sqla/views.py | 27 +++++++++++++++++++++++----
 superset/views/access_requests.py |  4 +++-
 superset/views/annotations.py     |  4 +++-
 superset/views/css_templates.py   |  4 +++-
 superset/views/log/views.py       |  2 +-
 superset/views/sql_lab.py         |  4 +++-
 8 files changed, 38 insertions(+), 11 deletions(-)

diff --git a/requirements/base.txt b/requirements/base.txt
index df328bb61a..49d58920c8 100644
--- a/requirements/base.txt
+++ b/requirements/base.txt
@@ -86,7 +86,7 @@ flask==2.0.3
     #   flask-migrate
     #   flask-sqlalchemy
     #   flask-wtf
-flask-appbuilder==4.0.0
+flask-appbuilder==4.1.2
     # via apache-superset
 flask-babel==1.0.0
     # via flask-appbuilder
diff --git a/setup.py b/setup.py
index ebd4eb6382..bf5e06fed6 100644
--- a/setup.py
+++ b/setup.py
@@ -77,7 +77,7 @@ setup(
         "cryptography>=3.3.2",
         "deprecation>=2.1.0, <2.2.0",
         "flask>=2.0.0, <3.0.0",
-        "flask-appbuilder>=4.0.0, <5.0.0",
+        "flask-appbuilder>=4.1.2, <5.0.0",
         "flask-caching>=1.10.0",
         "flask-compress",
         "flask-talisman",
diff --git a/superset/connectors/sqla/views.py b/superset/connectors/sqla/views.py
index ef5afa5d05..47e5f216d5 100644
--- a/superset/connectors/sqla/views.py
+++ b/superset/connectors/sqla/views.py
@@ -26,7 +26,7 @@ from flask_appbuilder.models.sqla.interface import SQLAInterface
 from flask_appbuilder.security.decorators import has_access
 from flask_babel import lazy_gettext as _
 from wtforms.ext.sqlalchemy.fields import QuerySelectField
-from wtforms.validators import Regexp
+from wtforms.validators import DataRequired, Regexp
 
 from superset import app, db
 from superset.connectors.base.views import DatasourceModelView
@@ -47,7 +47,22 @@ from superset.views.base import (
 logger = logging.getLogger(__name__)
 
 
-class TableColumnInlineView(CompactCRUDMixin, SupersetModelView):
+class SelectDataRequired(DataRequired):  # pylint: disable=too-few-public-methods
+    """
+    Select required flag on the input field will not work well on Chrome
+    Console error:
+        An invalid form control with name='tables' is not focusable.
+
+    This makes a simple override to the DataRequired to be used specifically with
+    select fields
+    """
+
+    field_flags = ()
+
+
+class TableColumnInlineView(
+    CompactCRUDMixin, SupersetModelView
+):  # pylint: disable=too-many-ancestors
     datamodel = SQLAInterface(models.TableColumn)
     # TODO TODO, review need for this on related_views
     class_permission_name = "Dataset"
@@ -179,7 +194,9 @@ class TableColumnInlineView(CompactCRUDMixin, SupersetModelView):
     edit_form_extra_fields = add_form_extra_fields
 
 
-class SqlMetricInlineView(CompactCRUDMixin, SupersetModelView):
+class SqlMetricInlineView(
+    CompactCRUDMixin, SupersetModelView
+):  # pylint: disable=too-many-ancestors
     datamodel = SQLAInterface(models.SqlMetric)
     class_permission_name = "Dataset"
     method_permission_name = MODEL_VIEW_RW_METHOD_PERMISSION_MAP
@@ -261,7 +278,9 @@ class RowLevelSecurityListWidget(
         super().__init__(**kwargs)
 
 
-class RowLevelSecurityFiltersModelView(SupersetModelView, DeleteMixin):
+class RowLevelSecurityFiltersModelView(
+    SupersetModelView, DeleteMixin
+):  # pylint: disable=too-many-ancestors
     datamodel = SQLAInterface(models.RowLevelSecurityFilter)
 
     list_widget = cast(SupersetListWidget, RowLevelSecurityListWidget)
diff --git a/superset/views/access_requests.py b/superset/views/access_requests.py
index 4d671f3086..e60662e36e 100644
--- a/superset/views/access_requests.py
+++ b/superset/views/access_requests.py
@@ -25,7 +25,9 @@ from superset.views.base import DeleteMixin, SupersetModelView
 from superset.views.core import DAR
 
 
-class AccessRequestsModelView(SupersetModelView, DeleteMixin):
+class AccessRequestsModelView(
+    SupersetModelView, DeleteMixin
+):  # pylint: disable=too-many-ancestors
     datamodel = SQLAInterface(DAR)
     include_route_methods = RouteMethod.CRUD_SET
     list_columns = [
diff --git a/superset/views/annotations.py b/superset/views/annotations.py
index 87150c5cdd..69718f5f5a 100644
--- a/superset/views/annotations.py
+++ b/superset/views/annotations.py
@@ -47,7 +47,9 @@ class StartEndDttmValidator:  # pylint: disable=too-few-public-methods
             )
 
 
-class AnnotationModelView(SupersetModelView, CompactCRUDMixin):
+class AnnotationModelView(
+    SupersetModelView, CompactCRUDMixin
+):  # pylint: disable=too-many-ancestors
     datamodel = SQLAInterface(Annotation)
     include_route_methods = RouteMethod.CRUD_SET | {"annotation"}
 
diff --git a/superset/views/css_templates.py b/superset/views/css_templates.py
index 74505e7109..597f9efbd4 100644
--- a/superset/views/css_templates.py
+++ b/superset/views/css_templates.py
@@ -25,7 +25,9 @@ from superset.superset_typing import FlaskResponse
 from superset.views.base import DeleteMixin, SupersetModelView
 
 
-class CssTemplateModelView(SupersetModelView, DeleteMixin):
+class CssTemplateModelView(
+    SupersetModelView, DeleteMixin
+):  # pylint: disable=too-many-ancestors
     datamodel = SQLAInterface(models.CssTemplate)
     include_route_methods = RouteMethod.CRUD_SET
 
diff --git a/superset/views/log/views.py b/superset/views/log/views.py
index 383109fc08..6cc8d2ffd6 100644
--- a/superset/views/log/views.py
+++ b/superset/views/log/views.py
@@ -26,7 +26,7 @@ from superset.views.base import SupersetModelView
 from . import LogMixin
 
 
-class LogModelView(LogMixin, SupersetModelView):
+class LogModelView(LogMixin, SupersetModelView):  # pylint: disable=too-many-ancestors
     datamodel = SQLAInterface(models.Log)
     include_route_methods = {RouteMethod.LIST, RouteMethod.SHOW}
     class_permission_name = "Log"
diff --git a/superset/views/sql_lab.py b/superset/views/sql_lab.py
index 60732fbcd1..a75225da91 100644
--- a/superset/views/sql_lab.py
+++ b/superset/views/sql_lab.py
@@ -35,7 +35,9 @@ from .base import BaseSupersetView, DeleteMixin, json_success, SupersetModelView
 logger = logging.getLogger(__name__)
 
 
-class SavedQueryView(SupersetModelView, DeleteMixin):
+class SavedQueryView(
+    SupersetModelView, DeleteMixin
+):  # pylint: disable=too-many-ancestors
     datamodel = SQLAInterface(SavedQuery)
     include_route_methods = RouteMethod.CRUD_SET