diff --git a/panoramix/migrations/versions/12d55656cbca_is_featured.py b/panoramix/migrations/versions/12d55656cbca_is_featured.py new file mode 100644 index 0000000000..3158223743 --- /dev/null +++ b/panoramix/migrations/versions/12d55656cbca_is_featured.py @@ -0,0 +1,23 @@ +"""is_featured + +Revision ID: 12d55656cbca +Revises: 55179c7f25c7 +Create Date: 2015-12-14 13:37:17.374852 + +""" + +# revision identifiers, used by Alembic. +revision = '12d55656cbca' +down_revision = '55179c7f25c7' + +from alembic import op +import sqlalchemy as sa + + +def upgrade(): + op.add_column('tables', sa.Column('is_featured', sa.Boolean(), nullable=True)) + + +def downgrade(): + op.drop_column('tables', 'is_featured') + diff --git a/panoramix/models.py b/panoramix/models.py index 73d060d30c..a4b3007ae5 100644 --- a/panoramix/models.py +++ b/panoramix/models.py @@ -228,6 +228,7 @@ class SqlaTable(Model, Queryable, AuditMixinNullable): description = Column(Text) default_endpoint = Column(Text) database_id = Column(Integer, ForeignKey('dbs.id'), nullable=False) + is_featured = Column(Boolean, default=False) database = relationship( 'Database', backref='tables', foreign_keys=[database_id]) offset = Column(Integer, default=0) diff --git a/panoramix/static/featured_datasets.css b/panoramix/static/featured_datasets.css new file mode 100644 index 0000000000..a9067d4f3e --- /dev/null +++ b/panoramix/static/featured_datasets.css @@ -0,0 +1,18 @@ +.main-text { + text-align: center; + font-size: 36px; + margin-bottom: 20px; +} + +.data-title{ + font-size: 26px; + font-weight: strong; +} + +table { + border-bottom: 1px solid #dddddd; +} + +td { + vertical-align: middle; +} diff --git a/panoramix/templates/panoramix/featured_datasets.html b/panoramix/templates/panoramix/featured_datasets.html new file mode 100644 index 0000000000..fb9f014690 --- /dev/null +++ b/panoramix/templates/panoramix/featured_datasets.html @@ -0,0 +1,27 @@ +{% extends "panoramix/base.html" %} +{% block content %} + +
+Featured Datasets +
+ + + + + + + + + {% for dataset in featured_datasets %} + + + + + {% endfor %} + +
TableDatabase
+ {{ dataset.table_name }} +
{{ dataset.description }} +
{{ dataset.database }}
+{% endblock %} + diff --git a/panoramix/views.py b/panoramix/views.py index ee0256f780..0d17173db8 100644 --- a/panoramix/views.py +++ b/panoramix/views.py @@ -140,7 +140,7 @@ class TableView(PanoramixModelView, DeleteMixin): list_columns = ['table_link', 'database', 'changed_by', 'changed_on_'] add_columns = ['table_name', 'database', 'default_endpoint', 'offset'] edit_columns = [ - 'table_name', 'database', 'description', 'main_dttm_col', + 'table_name', 'is_featured', 'database', 'description', 'main_dttm_col', 'default_endpoint', 'offset'] related_views = [TableColumnInlineView, SqlMetricInlineView] base_order = ('changed_on','desc') @@ -538,6 +538,19 @@ class Panoramix(BaseView): title=ascii_art.stacktrace, art=ascii_art.error), 500 + @has_access + @expose("/datasets", methods=['GET']) + def datasets(self): + session = db.session() + datasets_sqla = (session.query(models.SqlaTable) + .filter_by(is_featured=True).all()) + datasets_druid = (session.query(models.Datasource) + .filter_by(is_featured=True).all()) + featured_datasets = datasets_sqla + datasets_druid + return self.render_template( + 'panoramix/featured_datasets.html', + featured_datasets=featured_datasets) + appbuilder.add_view_no_menu(Panoramix) appbuilder.add_link( "Refresh Druid Metadata",