diff --git a/panoramix/bin/panoramix b/panoramix/bin/panoramix index 461341e8ca198..47b41d5627429 100755 --- a/panoramix/bin/panoramix +++ b/panoramix/bin/panoramix @@ -7,20 +7,18 @@ import json from subprocess import Popen from flask.ext.script import Manager +from panoramix import app from flask.ext.migrate import MigrateCommand from panoramix import db +from flask.ext.appbuilder import Base from sqlalchemy import Column, Integer, String, Table, DateTime - -from panoramix import app -from panoramix import models - +from panoramix import models, utils config = app.config manager = Manager(app) manager.add_command('db', MigrateCommand) -from flask.ext.appbuilder import Base @manager.option( '-d', '--debug', action='store_true', @@ -45,6 +43,11 @@ def runserver(debug, port): print("Starting server with command: " + cmd) Popen(cmd, shell=True).wait() +@manager.command +def init(): + """Inits the Panoramix application""" + utils.init() + @manager.option( '-s', '--sample', action='store_true', help="Only load 1000 rows (faster, used for testing)") @@ -108,7 +111,7 @@ def load_examples(sample): session.commit() print("Creating table reference") - TBL = models.Table + TBL = models.SqlaTable obj = session.query(TBL).filter_by(table_name='birth_names').first() if not obj: obj = TBL(table_name = 'birth_names') diff --git a/panoramix/models.py b/panoramix/models.py index 3c3a24b4878b5..14fb39b0d6a78 100644 --- a/panoramix/models.py +++ b/panoramix/models.py @@ -8,8 +8,8 @@ from pydruid.utils.filters import Dimension, Filter from sqlalchemy import ( Column, Integer, String, ForeignKey, Text, Boolean, DateTime) -from sqlalchemy import Table as sqlaTable -from sqlalchemy import create_engine, MetaData, desc, select, and_, Table +from sqlalchemy import Table +from sqlalchemy import create_engine, MetaData, desc, select, and_ from sqlalchemy.orm import relationship from sqlalchemy.sql import table, literal_column, text from flask import request @@ -55,7 +55,7 @@ class Slice(Model, AuditMixinNullable): params = Column(Text) table = relationship( - 'Table', foreign_keys=[table_id], backref='slices') + 'SqlaTable', foreign_keys=[table_id], backref='slices') druid_datasource = relationship( 'Datasource', foreign_keys=[druid_datasource_id], backref='slices') @@ -184,13 +184,13 @@ def get_sqla_engine(self): def get_table(self, table_name): meta = MetaData() - return sqlaTable( + return Table( table_name, meta, autoload=True, autoload_with=self.get_sqla_engine()) -class Table(Model, Queryable, AuditMixinNullable): +class SqlaTable(Model, Queryable, AuditMixinNullable): type = "table" __tablename__ = 'tables' @@ -207,6 +207,12 @@ class Table(Model, Queryable, AuditMixinNullable): def __repr__(self): return self.table_name + @property + def perm(self): + return ( + "[{self.database}].[{self.table_name}]" + "(id:{self.id})").format(self=self) + @property def name(self): return self.table_name @@ -519,7 +525,7 @@ class SqlMetric(Model, AuditMixinNullable): metric_type = Column(String(32)) table_id = Column(Integer, ForeignKey('tables.id')) table = relationship( - 'Table', backref='metrics', foreign_keys=[table_id]) + 'SqlaTable', backref='metrics', foreign_keys=[table_id]) expression = Column(Text) description = Column(Text) @@ -528,7 +534,8 @@ class TableColumn(Model, AuditMixinNullable): __tablename__ = 'table_columns' id = Column(Integer, primary_key=True) table_id = Column(Integer, ForeignKey('tables.id')) - table = relationship('Table', backref='columns', foreign_keys=[table_id]) + table = relationship( + 'SqlaTable', backref='columns', foreign_keys=[table_id]) column_name = Column(String(256)) is_dttm = Column(Boolean, default=True) is_active = Column(Boolean, default=True) diff --git a/panoramix/static/panoramix.css b/panoramix/static/panoramix.css index 2cdf80dc592a9..a75335c163768 100644 --- a/panoramix/static/panoramix.css +++ b/panoramix/static/panoramix.css @@ -31,7 +31,7 @@ form div { font-size: 80px; } .index .carousel-caption p { - font-size: 25px; + font-size: 20px; } .index div.carousel-caption{ background: rgba(0,0,0,0.5); diff --git a/panoramix/static/panoramix.js b/panoramix/static/panoramix.js index a7a59271cf4fe..7d97d273e1b98 100644 --- a/panoramix/static/panoramix.js +++ b/panoramix/static/panoramix.js @@ -64,7 +64,7 @@ function initializeDatasourceView() { } }) add_filter(); - $("#druidify").click(druidify); + $(".druidify").click(druidify); function create_choices(term, data) { var filtered = $(data).filter(function() { diff --git a/panoramix/templates/index.html b/panoramix/templates/index.html index 9551ad490012b..ab2339fe91e15 100644 --- a/panoramix/templates/index.html +++ b/panoramix/templates/index.html @@ -28,8 +28,8 @@

Panoramix