Skip to content
This repository has been archived by the owner on Nov 3, 2023. It is now read-only.

Commit

Permalink
allow selection of dbs where csv can be uploaded to (apache#5393)
Browse files Browse the repository at this point in the history
  • Loading branch information
timifasubaa committed Jul 25, 2018
1 parent 24ddb38 commit a1f33ac
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 8 deletions.
8 changes: 5 additions & 3 deletions superset/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -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'),
Expand All @@ -64,7 +66,7 @@ def all_db_items():
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'),
Expand Down
29 changes: 29 additions & 0 deletions superset/migrations/versions/1d9e835a84f9_.py
Original file line number Diff line number Diff line change
@@ -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')

3 changes: 2 additions & 1 deletion superset/models/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand All @@ -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):
Expand Down
8 changes: 4 additions & 4 deletions superset/views/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -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',
]
Expand Down Expand Up @@ -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',
]


Expand Down

0 comments on commit a1f33ac

Please sign in to comment.