def recomendacao_aluno(): seg.ChecarPerfil(seg.PERFIL_Estudante) loginUsuario = seg.ObterLogin() usuarioLogado = usu.ObterUsuarioPorLogin(loginUsuario) return dm.ObterAlunosParaRecomendacoes(usuarioLogado.id)
def Definir(): seg.ChecarPerfil(seg.PERFIL_Analista) id = request.params.get('id') usuario = usu.ObterUsuario(id) return dict(usuario=usuario)
def mineracao_dados_predict(): seg.ChecarPerfil(seg.PERFIL_Analista) idModPredAlg = request.params.get('id') idTabela = request.params.get('idTabela') return dm.ExibirMatrizConfusao(idTabela, idModPredAlg)
def mineracao_dados_cluster(): seg.ChecarPerfil(seg.PERFIL_Analista) idTabela = request.params.get('idTabela') id = request.params.get('id') tabela = imp.ObterTabela(idTabela) tabDesc = dm.ObterTabelaDescr(id) #objModelo = { # 'n_clusters': qtd_clusters, # 'modeloDados': modeloDados, # 'clusters': clusters.tolist(), # 'labels' : labels.tolist() # } modelo = json.loads(tabDesc.modelo) n_clusters = modelo['n_clusters'] modeloDados = modelo['modeloDados'] clusters = modelo['clusters'] labels = modelo['labels'] display = modelo['display'] lista = [] for itemCluster in clusters: valores2 = [] for valor in itemCluster: valores2.append(int(round(valor, 3))) lista.append(valores2) grf = comp.grfBolha('Clusters', lista, labels, '') return dict(tabela=tabela, display=display, htmlGrf=grf.grf, jsGrf=grf.js)
def profAlunos(): seg.ChecarPerfil(seg.PERFIL_Professor) colunaIdAluno = meta.ObterColunaIdAluno() nomeColunaClasse, idColunaClasse = meta.ObterColunaClasse( colunaIdAluno.id_tabela) sql = dbTab.GerarSQL(colunaIdAluno.id_tabela, 'O', [colunaIdAluno.id, idColunaClasse]) df = dm.db.consultarSQLDataFrame(sql) lista = [] for index, row in df.iterrows(): login_aluno = row[colunaIdAluno.nome] usuario = usu.ObterUsuarioPorLogin(login_aluno) lista.append(usuario) campos = ({ 'campo': 'login', 'titulo': 'matricula' }, { 'campo': 'nome', 'titulo': 'Nome' }) grd = comp.grid('Lista de Alunos', lista, campos) return dict(grid=grd)
def mineracao_dados_prever(): seg.ChecarPerfil(seg.PERFIL_Analista) idTabela = request.params.get('id') tabela = imp.ObterTabela(idTabela) tabPrev = dm.ObterTabelaPredicao(idTabela) tabPrevAlg = None colunaClasse, id_coluna = meta.ObterColunaClasse(idTabela) tabelaPrev = dm.ObterDadosPrevisao(idTabela) colunas = [] for col in tabelaPrev.columns: if col == "rowid": continue coluna = meta.ObterColunaPorTabNome(idTabela, col) colunas.append({'campo': coluna.nome, 'titulo': coluna.titulo}) grid = comp.gridSP('Modelo DB para previsão', tabelaPrev, colunas, '') for alg in tabPrev.Alg: if alg.selecionado: tabPrevAlg = alg return dict(idTabela=idTabela, tabela=tabela, tabPrev=tabPrev, tabPrevAlg=tabPrevAlg, colunaClasse=colunaClasse, grid=grid)
def do_transformacao(): seg.ChecarPerfil(seg.PERFIL_Analista) nome = getattr(request.forms, 'nome') sql = getattr(request.forms, 'sql') persistir = getattr(request.forms, 'pers') descricao = 'Gerado pela transformacao' nome = '__' + nome tabela = imp.ObterTabela('0') tabela.nome = nome tabela.descricao = descricao tabela.sql_origem = sql tabela.id_fonte_dados = fonte_dados_transformacao if persistir == 'N': tabela.sql_destino = sql else: tabela.sql_destino = None imp.SalvarTabela(tabela) if persistir == 'S': imp.CriarTabelaDoSql(sql, nome) imp.CriarIndices(nome) imp.GerarColunas(nome) else: imp.GerarColunasComSQL(nome, sql) tabela = imp.ObterTabelaPorNome(nome) redirect('/colunas?id=' + str(tabela.id))
def SelTabelas(): seg.ChecarPerfil(seg.PERFIL_Analista) id = request.params.get('id') lista = imp.ListarTabelasFonte(id) return dict(lista=lista, id=id)
def recomendacao_professor(): seg.ChecarPerfil(seg.PERFIL_Professor) id_aluno = request.params.get('id') if id_aluno == None: id_aluno = 0 return dm.ObterAlunosParaRecomendacoes(int(id_aluno))
def PlnPainel(): expressao = seg.GetSession('expressao') html = '' js = '' if expressao == None: expressao = '' if expressao != '': html, js = pnl.PainelDinamicoPln(expressao) seg.SetSession('expressao', '') return dict(titulo='Pergunte aos seus dados', expressao=expressao, js=js, html=html)
def do_mineracao_dados_predict(): seg.ChecarPerfil(seg.PERFIL_Analista) id_tabela = getattr(request.forms, 'id_tabela') id_coluna = getattr(request.forms, 'id_coluna') tam_tst = getattr(request.forms, 'tamTst') modelo = dm.CalcularPreditivo(id_tabela, id_coluna, int(tam_tst)) redirect('/mineracao_dados?id=' + id_tabela)
def Obter(): seg.ChecarPerfil(seg.PERFIL_Analista) id = request.params.get('id') listaColunas = meta.ListarColunas(id) lstCol = [] for col in listaColunas: lstCol.append({'id': col.id, 'nome': col.nome}) return json.dumps(lstCol)
def do_pre_proc_discr(): seg.ChecarPerfil(seg.PERFIL_Analista) idTabela = getattr(request.forms, 'idTabela') idColuna = getattr(request.forms, 'idColuna') expressao = getattr(request.forms, 'expressao') nome = getattr(request.forms, 'nome') pre.DiscretizarCampo(idColuna, nome, expressao) redirect('/pre_processamento?idTabela=' + str(idTabela) + '&idColuna=' + str(idColuna))
def mineracao_treeview(): seg.ChecarPerfil(seg.PERFIL_Analista) idTabela = request.params.get('id') lista = dm.ListarDadosTOP10(idTabela) regras = descr.Association(lista, 100) objTree = comp.treeView(regras, 'campos', 'lift', 'Regras') return dict(treeView=objTree.grf, jsTree=objTree.js)
def visao_exibir(): seg.ChecarPerfil(seg.PERFIL_Analista) idVisao = request.params.get('id') visao = vis.ObterVisao(idVisao) objGrf = dbTab.GerarVisao(idVisao) return dict(idTabela=visao.id_tabela, html=objGrf.grf, js=objGrf.js)
def Obter(): seg.ChecarPerfil(seg.PERFIL_Analista) id = request.params.get('id') obj = imp.ObterFonte(id) return json.dumps({ 'id': obj.id, 'nome': obj.nome, 'tipo': obj.tipo, 'valor': obj.valor })
def edtTabela(): seg.ChecarPerfil(seg.PERFIL_Analista) id = request.params.get('id') tabela = imp.ObterTabela(id) if tabela.descricao == None: tabela.descricao = '' if tabela.sql_destino == None: tabela.sql_destino = '' return dict(tabela=tabela)
def mineracao_dados_rule_assoc(): seg.ChecarPerfil(seg.PERFIL_Analista) idTabela = request.params.get('idTabela') id = request.params.get('id') tabela = imp.ObterTabela(idTabela) tabDesc = dm.ObterTabelaDescr(id) regras = json.loads(tabDesc.modelo) regrasOrdenadas = sorted(regras, key=itemgetter('lift'), reverse=True) objTree = comp.treeView(regrasOrdenadas, 'campos', 'lift', 'Regras') return dict(tabela=tabela, treeView=objTree.grf, jsTree=objTree.js)
def pre_processamento(): seg.ChecarPerfil(seg.PERFIL_Analista) listaTabelas = imp.ListarTabelas() idTabela = request.params.get('idTabela') idColuna = request.params.get('idColuna') nomeColuna = '' nomeTabela = '' sql='' for tab in listaTabelas: tab.selecionado = False if idTabela == None: idTabela = 0 else: for tab in listaTabelas: if int(tab.id) == int(idTabela): tab.selecionado = True nomeTabela = tab.nome listaColunas = meta.ListarColunas(idTabela) for col in listaColunas: col.selecionado = False if idColuna == None: idColuna = 0 else: for col in listaColunas: if int(col.id) == int(idColuna): col.selecionado = True nomeColuna = col.nome sql = col.sql resultado = None if idColuna != 0 and idTabela != 0: resultado = pre.RetornarValoresColuna(idTabela, idColuna) grfPizza = comp.grfPizza('Valores Válidos', resultado, 'COL', 'qtd', 'Valores válidos para a coluna selecionada'); return dict(listaTabelas=listaTabelas, listaColunas=listaColunas, nomeTabela=nomeTabela, nomeColuna=nomeColuna, idTabela=idTabela, idColuna=idColuna, sql=sql, grfPizza=grfPizza.grf, scriptGrafico=grfPizza.js)
def mineracao_dados_outlier(): seg.ChecarPerfil(seg.PERFIL_Analista) idTabela = request.params.get('idTabela') id = request.params.get('id') tabela = imp.ObterTabela(idTabela) tabDesc = dm.ObterTabelaDescr(id) modelo = json.loads(tabDesc.modelo) grfOutlier = comp.grfOutliers(modelo['lista'], modelo['campoD'], modelo['campoV']) return dict(tabela=tabela, htmlGrf=grfOutlier.grf, jsGrf=grfOutlier.js)
def doLogin(): login = getattr(request.forms, 'login') senha = getattr(request.forms, 'senha') valido, perfil = usu.ChecarLogin(login, senha) if valido == True: seg.Autenticar(login, perfil) if perfil == seg.PERFIL_Analista: redirect('/homeAnalista') elif perfil == seg.PERFIL_Estudante: redirect('/homeEstudante') elif perfil == seg.PERFIL_Professor: redirect('/homeProfessor') return dict(login=login, msg='Usuário ou senha incorretos')
def def_visao(): seg.ChecarPerfil(seg.PERFIL_Analista) id_tabela = request.params.get('id_tabela') id = request.params.get('id') nome = '' modelo = '' tipo = { } tipo['1'] = '' tipo['2'] = '' tipo['3'] = '' tipo['4'] = '' tipo['5'] = '' tabela = imp.ObterTabela(id_tabela) listaColunas = meta.ListarColunas(id_tabela) for col in listaColunas: col.selecionado = False visao = None if id != '0': visao = vis.ObterVisao(id) nome = visao.nome dTipo = visao.tipo modelo = visao.modelo tipo[dTipo] = 'selected' objModelo = json.loads(modelo) for col in listaColunas: for mod in objModelo: if int(mod['id_coluna']) == col.id: col.selecionado = True else: tipo['1'] = 'checked' return dict(id=id, nome=nome, tipo=tipo, modelo=modelo, idTabela=id_tabela, nomeTabela=tabela.nome, listaColunas=listaColunas, visao=visao, js='<script>ReconstruirGrid();</script>')
def ListTabelas(): seg.ChecarPerfil(seg.PERFIL_Analista) id = request.params.get('id') lista = imp.ListarTabelas(id) campos = ({ 'campo': 'id', 'titulo': 'Id' }, { 'campo': 'comandoNome', 'titulo': 'Nome' }) grid = comp.grid('Lista de Tabelas', lista, campos) return dict(grid=grid)
def mineracao_dados(): seg.ChecarPerfil(seg.PERFIL_Analista) idTabela = request.params.get('id') tam_tst = 15 id_coluna = 0 colunaClasse = '' if idTabela == None: idTabela = 0 listaTabelas = imp.ListarTabelas() tabPred = None listaTabelaDesc = [] listaColunaT = [] listaColunaN = [] if int(idTabela) != 0: colunaClasse, id_coluna = meta.ObterColunaClasse(idTabela) tabPred = dm.ObterTabelaPredicao(idTabela) listaTabelaDesc = dm.ListarTabelaDescricao(idTabela) listaColunaT = meta.ListarColunasPorTipo(idTabela, 'T') listaColunaN = meta.ListarColunasPorTipo(idTabela, 'N') if tabPred != None: tam_tst = tabPred.reserva_treino for tab in listaTabelas: tab.selecionado = False if int(tab.id) == int(idTabela): tab.selecionado = True return dict(idTabela=idTabela, tam_tst=tam_tst, listaTabelas=listaTabelas, id_coluna=id_coluna, colunaClasse=colunaClasse, tabPred=tabPred, listaTabelaDesc=listaTabelaDesc, listaColunaT=listaColunaT, listaColunaN=listaColunaN)
def viewdashboar(): seg.ChecarPerfil(seg.PERFIL_Analista) id = request.params.get('id') painel = pnl.ObterPainel(id) if painel.modelo.startswith('http') == False: objModelo = json.loads(painel.modelo) if len(objModelo) == 0: redirect('/dashboard') ultObj = objModelo[len(objModelo) - 1] html = '' js = '' ultLinha = int(ultObj['idLinha']) for linha in range(1, ultLinha + 1): htmlLinha = '<div id="row' + str(linha) + '" class="row">' for i in range(0, len(objModelo)): corrObjModelo = objModelo[i] if corrObjModelo['idLinha'] == linha: id_visao = corrObjModelo['id_visao'] objGrf = comp.defGrafico('', '') if id_visao != 0: objGrf = dbTab.GerarVisao(id_visao) htmlCell = '<div class="col-lg-' + corrObjModelo[ 'opcaoColuna'] + '">' + objGrf.grf + '</div>' htmlLinha = htmlLinha + htmlCell js = js + objGrf.js htmlLinha = htmlLinha + '</div><br>' html = html + htmlLinha else: html = '<div id="rptEmbed"></div>' js = '<script type="text/javascript">initViz("' + painel.modelo + '", "rptEmbed");</script>' return dict(titulo=painel.nome, html=html, js=js)
def DefColunas(): seg.ChecarPerfil(seg.PERFIL_Analista) id = request.params.get('id') if id == None: id = 0 coluna = meta.ObterColuna(id) listaTabelas = imp.ListarTabelas() colunasFk = None if coluna != None: if coluna.val_aluno_risco == None: coluna.val_aluno_risco = '' if coluna.chave_estrangeira == True: colunasFk = meta.ListarColunas(coluna.id_tabela_fk) coluna.lstTipos = ( { 'id': 'T', 'nome': 'Texto', 'selecionado': False }, { 'id': 'N', 'nome': 'Número', 'selecionado': False }, { 'id': 'D', 'nome': 'Data (seq. temporal)', 'selecionado': False }, ) for tp in coluna.lstTipos: tp['selecionado'] = False if tp['id'] == coluna.tipo: tp['selecionado'] = True return dict(listaTabelas=listaTabelas, colunasFk=colunasFk, coluna=coluna)
def LstColunas(): seg.ChecarPerfil(seg.PERFIL_Analista) listaTabelas = imp.ListarTabelas() campos = ({ 'campo': 'id_coluna_cid', 'titulo': 'ID' }, { 'campo': 'comando', 'titulo': 'Nome' }, { 'campo': 'tipo', 'titulo': 'Tipo' }, { 'campo': 'titulo', 'titulo': 'Titulo' }, { 'campo': 'desabilitado', 'titulo': 'Desabilitado' }) idTabela = request.params.get('id') listaColunas = meta.ListarColunas(idTabela) for col in listaColunas: col.comando = '<a href="/defcoluna?id=' + str( col.id) + '">' + col.nome + '</a>' for tab in listaTabelas: tab.selecionado = False if idTabela == None: idTabela = 0 else: for tab in listaTabelas: if int(tab.id) == int(idTabela): tab.selecionado = True grid = comp.grid('Lista de Colunas', listaColunas, campos, 'dados atualizados em 26/01/2018') return dict(listaTabelas=listaTabelas, grid=grid)
def Importacao(): seg.ChecarPerfil(seg.PERFIL_Analista) lista = imp.ListarFontes() campos = { 'campo': 'nome_edt', 'titulo': 'Nome' }, { 'campo': 'descr_tipo', 'titulo': 'Tipo' }, { 'campo': 'comando_tabelas', 'titulo': 'Tabelas' } grid = comp.grid('Lista de Fontes de Dados', lista, campos, 'dados atualizados em 26/01/2018') return dict(grid=grid)
def dashboard_def(): seg.ChecarPerfil(seg.PERFIL_Analista) id = request.params.get('id') painel = pnl.ObterPainel(id) painel.ds_tipo = {} painel.ds_tipo['P'] = '' painel.ds_tipo['A'] = '' if painel.tipo == 'P': painel.ds_tipo['P'] = 'checked' elif painel.tipo == 'A': painel.ds_tipo['A'] = 'checked' listaVisao = vis.ListarVisao(0) return dict(listaVisao=listaVisao, painel=painel, js='<script>ReconstruirGrid();</script>')
def painel_aluno_vw(): seg.ChecarPerfil(seg.PERFIL_Estudante) id = request.params.get('id') painel = pnl.ObterPainel(id) # somente dados dos alunos if painel.tipo != 'A': redirect('/homeEstudante') objModelo = json.loads(painel.modelo) ultObj = objModelo[len(objModelo) - 1] html = '' js = '' ultLinha = ultObj['idLinha'] for linha in range(1, ultLinha + 1): htmlLinha = '<div id="row' + str(linha) + '" class="row">' for i in range(0, len(objModelo)): corrObjModelo = objModelo[i] if corrObjModelo['idLinha'] == linha: id_visao = corrObjModelo['id_visao'] objGrf = comp.defGrafico('', '') if id_visao != 0: objGrf = dbTab.GerarVisao(id_visao) htmlCell = '<div class="col-lg-' + corrObjModelo[ 'opcaoColuna'] + '">' + objGrf.grf + '</div>' htmlLinha = htmlLinha + htmlCell js = js + objGrf.js htmlLinha = htmlLinha + '</div><br>' html = html + htmlLinha return dict(titulo=painel.nome, html=html, js=js)