123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- # pylint: disable=C,R,W
- from flask import g, redirect
- from flask_appbuilder import expose
- from flask_appbuilder.models.sqla.interface import SQLAInterface
- from flask_babel import gettext as __
- from flask_babel import lazy_gettext as _
- from superset import appbuilder
- from superset.models.sql_lab import Query, SavedQuery
- from .base import BaseSupersetView, DeleteMixin, SupersetModelView
- class QueryView(SupersetModelView):
- datamodel = SQLAInterface(Query)
- list_title = _('List Query')
- show_title = _('Show Query')
- add_title = _('Add Query')
- edit_title = _('Edit Query')
- list_columns = ['user', 'database', 'status', 'start_time', 'end_time']
- label_columns = {
- 'user': _('User'),
- 'database': _('Database'),
- 'status': _('Status'),
- 'start_time': _('Start Time'),
- 'end_time': _('End Time'),
- }
- appbuilder.add_view(
- QueryView,
- 'Queries',
- label=__('Queries'),
- category='Manage',
- category_label=__('Manage'),
- icon='fa-search')
- class SavedQueryView(SupersetModelView, DeleteMixin):
- datamodel = SQLAInterface(SavedQuery)
- list_title = _('List Saved Query')
- show_title = _('Show Saved Query')
- add_title = _('Add Saved Query')
- edit_title = _('Edit Saved Query')
- list_columns = [
- 'label', 'user', 'database', 'schema', 'description',
- 'modified', 'pop_tab_link']
- show_columns = [
- 'id', 'label', 'user', 'database',
- 'description', 'sql', 'pop_tab_link']
- search_columns = ('label', 'user', 'database', 'schema', 'changed_on')
- add_columns = ['label', 'database', 'description', 'sql']
- edit_columns = add_columns
- base_order = ('changed_on', 'desc')
- label_columns = {
- 'label': _('Label'),
- 'user': _('User'),
- 'database': _('Database'),
- 'description': _('Description'),
- 'modified': _('Modified'),
- 'end_time': _('End Time'),
- 'pop_tab_link': _('Pop Tab Link'),
- 'changed_on': _('Changed on'),
- }
- def pre_add(self, obj):
- obj.user = g.user
- def pre_update(self, obj):
- self.pre_add(obj)
- class SavedQueryViewApi(SavedQueryView):
- show_columns = ['label', 'db_id', 'schema', 'description', 'sql']
- add_columns = show_columns
- edit_columns = add_columns
- appbuilder.add_view_no_menu(SavedQueryViewApi)
- appbuilder.add_view_no_menu(SavedQueryView)
- appbuilder.add_link(
- __('Saved Queries'),
- href='/sqllab/my_queries/',
- icon='fa-save',
- category='SQL Lab')
- class SqlLab(BaseSupersetView):
- """The base views for Superset!"""
- @expose('/my_queries/')
- def my_queries(self):
- """Assigns a list of found users to the given role."""
- return redirect(
- '/savedqueryview/list/?_flt_0_user={}'.format(g.user.id))
- appbuilder.add_view_no_menu(SqlLab)
|