allow selection of dbs where csv can be uploaded to (#5393)
This commit is contained in:
parent
73ec526913
commit
7f8eaee18d
|
|
@ -49,8 +49,10 @@ def filter_not_empty_values(value):
|
|||
|
||||
class CsvToDatabaseForm(DynamicForm):
|
||||
# pylint: disable=E0211
|
||||
def all_db_items():
|
||||
return db.session.query(models.Database)
|
||||
def csv_enabled_dbs():
|
||||
return db.session.query(
|
||||
models.Database).filter_by(
|
||||
allow_csv_upload=True).all()
|
||||
|
||||
name = StringField(
|
||||
_('Table Name'),
|
||||
|
|
@ -64,7 +66,7 @@ class CsvToDatabaseForm(DynamicForm):
|
|||
FileRequired(), FileAllowed(['csv'], _('CSV Files Only!'))])
|
||||
con = QuerySelectField(
|
||||
_('Database'),
|
||||
query_factory=all_db_items,
|
||||
query_factory=csv_enabled_dbs,
|
||||
get_pk=lambda a: a.id, get_label=lambda a: a.database_name)
|
||||
sep = StringField(
|
||||
_('Delimiter'),
|
||||
|
|
|
|||
|
|
@ -0,0 +1,29 @@
|
|||
"""empty message
|
||||
|
||||
Revision ID: 1d9e835a84f9
|
||||
Revises: 3dda56f1c4c6
|
||||
Create Date: 2018-07-16 18:04:07.764659
|
||||
|
||||
"""
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = '1d9e835a84f9'
|
||||
down_revision = '3dda56f1c4c6'
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy.sql import expression
|
||||
|
||||
|
||||
def upgrade():
|
||||
op.add_column(
|
||||
'dbs',
|
||||
sa.Column(
|
||||
'allow_csv_upload',
|
||||
sa.Boolean(),
|
||||
nullable=False,
|
||||
server_default=expression.true()))
|
||||
|
||||
def downgrade():
|
||||
op.drop_column('dbs', 'allow_csv_upload')
|
||||
|
||||
|
|
@ -619,6 +619,7 @@ class Database(Model, AuditMixinNullable, ImportMixin):
|
|||
expose_in_sqllab = Column(Boolean, default=False)
|
||||
allow_run_sync = Column(Boolean, default=True)
|
||||
allow_run_async = Column(Boolean, default=False)
|
||||
allow_csv_upload = Column(Boolean, default=True)
|
||||
allow_ctas = Column(Boolean, default=False)
|
||||
allow_dml = Column(Boolean, default=False)
|
||||
force_ctas_schema = Column(String(250))
|
||||
|
|
@ -634,7 +635,7 @@ class Database(Model, AuditMixinNullable, ImportMixin):
|
|||
impersonate_user = Column(Boolean, default=False)
|
||||
export_fields = ('database_name', 'sqlalchemy_uri', 'cache_timeout',
|
||||
'expose_in_sqllab', 'allow_run_sync', 'allow_run_async',
|
||||
'allow_ctas', 'extra')
|
||||
'allow_ctas', 'allow_csv_upload', 'extra')
|
||||
export_children = ['tables']
|
||||
|
||||
def __repr__(self):
|
||||
|
|
|
|||
|
|
@ -193,14 +193,14 @@ class DatabaseView(SupersetModelView, DeleteMixin, YamlExportMixin): # noqa
|
|||
|
||||
list_columns = [
|
||||
'database_name', 'backend', 'allow_run_sync', 'allow_run_async',
|
||||
'allow_dml', 'creator', 'modified']
|
||||
'allow_dml', 'allow_csv_upload', 'creator', 'modified']
|
||||
order_columns = [
|
||||
'database_name', 'allow_run_sync', 'allow_run_async', 'allow_dml',
|
||||
'modified',
|
||||
'modified', 'allow_csv_upload',
|
||||
]
|
||||
add_columns = [
|
||||
'database_name', 'sqlalchemy_uri', 'cache_timeout', 'extra',
|
||||
'expose_in_sqllab', 'allow_run_sync', 'allow_run_async',
|
||||
'expose_in_sqllab', 'allow_run_sync', 'allow_run_async', 'allow_csv_upload',
|
||||
'allow_ctas', 'allow_dml', 'force_ctas_schema', 'impersonate_user',
|
||||
'allow_multi_schema_metadata_fetch',
|
||||
]
|
||||
|
|
@ -326,7 +326,7 @@ class DatabaseAsync(DatabaseView):
|
|||
'id', 'database_name',
|
||||
'expose_in_sqllab', 'allow_ctas', 'force_ctas_schema',
|
||||
'allow_run_async', 'allow_run_sync', 'allow_dml',
|
||||
'allow_multi_schema_metadata_fetch',
|
||||
'allow_multi_schema_metadata_fetch', 'allow_csv_upload',
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue