コード例 #1
0
def recomendacao_aluno():
    seg.ChecarPerfil(seg.PERFIL_Estudante)

    loginUsuario = seg.ObterLogin()
    usuarioLogado = usu.ObterUsuarioPorLogin(loginUsuario)

    return dm.ObterAlunosParaRecomendacoes(usuarioLogado.id)
コード例 #2
0
def Definir():
    seg.ChecarPerfil(seg.PERFIL_Analista)

    id = request.params.get('id')
    usuario = usu.ObterUsuario(id)

    return dict(usuario=usuario)
コード例 #3
0
def mineracao_dados_predict():
    seg.ChecarPerfil(seg.PERFIL_Analista)

    idModPredAlg = request.params.get('id')
    idTabela = request.params.get('idTabela')

    return dm.ExibirMatrizConfusao(idTabela, idModPredAlg)
コード例 #4
0
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)
コード例 #5
0
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)
コード例 #6
0
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)
コード例 #7
0
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))
コード例 #8
0
def SelTabelas():
    seg.ChecarPerfil(seg.PERFIL_Analista)

    id = request.params.get('id')

    lista = imp.ListarTabelasFonte(id)

    return dict(lista=lista, id=id)
コード例 #9
0
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))
コード例 #10
0
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)
コード例 #11
0
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)
コード例 #12
0
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)
コード例 #13
0
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))
コード例 #14
0
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)
コード例 #15
0
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)
コード例 #16
0
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
    })
コード例 #17
0
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)
コード例 #18
0
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)
コード例 #19
0
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)
コード例 #20
0
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)
コード例 #21
0
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')
コード例 #22
0
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>')
コード例 #23
0
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)
コード例 #24
0
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)
コード例 #25
0
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)
コード例 #26
0
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)
コード例 #27
0
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)
コード例 #28
0
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)
コード例 #29
0
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>')
コード例 #30
0
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)