def upload(): from PIL import Image try: upload_file = request.POST['uploadfile'] ext = upload_file.filename.split('.')[1] nome_foto = upload_file.filename = str( usuario_logado()['id']) + '.' + ext if ext not in ('png', 'jpeg', 'jpg'): redirect('/gestao_aprendizagem2') usuario = DbObservador.load(usuario_logado()['id']) usuario.nome_foto_perfil = nome_foto usuario.save() upload_file.save('view/app/fotos_usuarios', overwrite=True) coordenadas = (int(request.params['top']), int(request.params['left']), int(request.params['width']) + int(request.params['top']), int(request.params['height']) + int(request.params['left'])) image_obj = Image.open('view/app/fotos_usuarios/' + str(usuario_logado()['id']) + '.' + ext) image_obj = image_obj.resize((450, 300), Image.ANTIALIAS) image_obj.save('view/app/fotos_usuarios/' + str(usuario_logado()['id']) + '.' + ext) cropped_image = image_obj.crop(coordenadas) cropped_image.save('view/app/fotos_usuarios/' + str(usuario_logado()['id']) + '.' + ext) redirect('/gestao_aprendizagem') except AttributeError: redirect('/gestao_aprendizagem')
def relatorio_aluno_view(no_repeat=False): from control.relatorios.relatorio_aluno_controller import Relatorio from control.gestao_aprendizagem_controller import get_nome_turma relatorio = Relatorio() relatorio.get_alunos(usuario_online_dados=usuario_logado(), nome_turma=get_nome_turma) return dict(tipo=usuario_logado()['tipo'], alunos=relatorio.alunos)
def controller_create_rede(no_repeat): """ Cria rede com os parametros de nome da rede e o telefone da mesma metodos usados:create rede facade :return: """ nome = request.params['nome'] telefone = request.params['telefone'] cnpj = request.params['cnpj'] telefone = request.params['telefone'] endereco = request.params['endereco'] numero = request.params['numero'] bairro = request.params['bairro'] complemento = request.params['complemento'] cep = request.params['cep'] estado = request.params['estado'] municipio = request.params['municipio'] quem_criou = usuario_logado()['nome'] if no_repeat: return locals() elif nome != '' and nome != None and telefone != '' and telefone != None: rede = facade.create_estrutura_facade(tipo_estrutura=TIPO_ESTRUTURA['rede'], nome=nome, cnpj=cnpj, telefone=telefone, endereco=endereco, numero=numero, bairro=bairro, complemento=complemento, cep=cep, estado=estado, municipio=municipio, quem_criou=quem_criou) if isinstance(rede, object): return '/rede'
def redes_no_sistema(): usuario = usuario_logado() if usuario['tipo'] == TIPO_USUARIOS['administrador']: rede = [] for i in facade.read_estrutura_facade(tipo_estrutura=TIPO_ESTRUTURA['rede']): observador = facade.search_observador_by_rede_facade(vinculo_rede=str(i['id'])) if observador != []: for z in observador: if z['tipo'] == '1': i['vinculo_gestor_rede'] = z['nome'] else: i['vinculo_gestor_rede'] = '' else: i['vinculo_gestor_rede'] = '' escola = facade.search_estrutura_escola_by_rede_facade(vinculo_rede=str(i['id'])) rede.append(i) return rede elif usuario['tipo'] == TIPO_USUARIOS['gestor']: rede = [] rede.append(facade.search_estrutura_id_facade(id=usuario['vinculo_rede'])) rede[0]['vinculo_gestor_rede'] = usuario['nome'] return rede
def view_index_rede(): """ pagina inicial de rede , que mostra , tambem , as redes disponiveis no banco metodos usados: controller_read_rede :interno: :return: Dicionario de redes """ redes = [] redes_sistema = redes_no_sistema() if isinstance(redes_sistema, list): for i in redes_sistema: escolas = [] for z in facade.search_estrutura_escola_by_rede_facade(vinculo_rede=str(i['id'])): escolas.append(z) i.update({'escola': escolas}) redes.append(i) else: rede_no_sistema_lista = [] rede_no_sistema_lista.append(redes_sistema) for i in rede_no_sistema_lista: escola = [] for z in facade.search_estrutura_escola_by_rede_facade(vinculo_rede=str(i['id'])): escola.append(z) # i.update({'escola': escola}) i.append({'escola': escola}) redes.append(i) return dict(tipo=usuario_logado()['tipo'], rede=redes)
def relatorio_aluno(no_repeat=False): observador = Observador(observador_logado=usuario_logado()) relatorio = RelatorioTurma() turma = observador.get_turma(id_turma=request.params['turma']) descritores = relatorio.get_descritores(serie=turma['serie']) medias = relatorio.get_media_alunos(turma=turma['id']) porcentagem = relatorio.get_pontuacao_turma(medias=medias) alunos = [] notas = [] for index,i in enumerate(descritores): nota = [] for z in medias: if z['nome'] not in alunos: alunos.append(z['nome']) try: nota.append(str(z['media'][index])) except IndexError: nota.append(0) notas.append(nota) por = [] for i in porcentagem: if i != -1: por.append(i) porcentagem = por print(alunos) return template(path_template + 'relatorio_turma_detalhe', media_geral=relatorio.media_geral(porcentagem), media_portugues = relatorio.media_portugues(pontuacao=porcentagem), media_matematica=relatorio.media_matematica(porcentagem), tipo=observador.get_observador_tipo(), alunos=alunos, notas=notas, turma=turma,oa=descritores, porcentagem=porcentagem, teste_serie = SERIE)
def relatorio_turma_view(no_repeat=False): observador = Observador(observador_logado=usuario_logado()) return template(path_template + 'relatorio_turma', tipo=observador.get_observador_tipo(), turma=observador.get_turma(), teste_serie=SERIE)
def relatorio_aluno(): observador = usuario_logado() aluno = facade.search_aluno_id_facade(id_aluno=request.params['aluno']) aluno['vinculo_turma'] = get_nome_turma( vinculo_turma=aluno['vinculo_turma']) descritores = facade.read_estrutura_facade( tipo_estrutura=TIPO_ESTRUTURA['objeto_de_aprendizagem']) oa = [] vezes_jogada = [] porcentagem_aluno = [] for i in descritores: if 'VC' not in i['sigla_oa'] and 'CN' not in i['sigla_oa']: desempenho = facade.search_oa_facade( id_aluno=str(aluno['id']), objeto_aprendizagem=i['sigla_oa']) oa.append(i) if desempenho != None: porcentagem_aluno.append(cor_desempenho(desempenho=desempenho)) else: porcentagem_aluno.append(None) return template( 'gestao_aprendizagem/relatorios/aluno/relatorio_aluno_detalhe', oa=oa, porcentagem=porcentagem_aluno, aluno=aluno, tipo=observador['tipo'])
def verificarAcessoUnidade(): usuario = usuario_logado() parametros = parametros_json_jogos(request.params.items()) if int(usuario['tipo']) < 6: retorno = {'unidadesAcessiveis': parametros['unidades']} else: desempenho_aluno = facade.search_desempenho_concluido_id_aluno_facade( id_aluno=str(usuario['id'])) if desempenho_aluno == []: retorno = {'unidadesAcessiveis': [parametros['unidades'][0]]} else: acesso_unidade = [] for i in parametros['unidades']: desempenho_unidade = facade.unidade_teste_facade(id_aluno=str( usuario['id']), unidade=i) if desempenho_unidade == []: acesso_unidade.append(i) break else: desempenho_oa = facade.oa_teste_facade( id_aluno=str(usuario['id']), oa='{}OA06'.format(i)) if desempenho_oa == []: acesso_unidade.append(i) break else: acesso_unidade.append(i) retorno = {'unidadesAcessiveis': acesso_unidade} print('Verificar acesso Unidade', retorno) return retorno
def view_reformular_senha(): email = usuario_logado()['email'] # email = request.params['email'] pesquisa = facade.search_observador_email_facade(email=email) return template('login/reformular_senha.tpl', id=pesquisa['id'], email=pesquisa['email'])
def relatorio_aluno(no_repeat=False): from bottle import request from control.relatorios.relatorio_aluno_controller import Relatorio relatorio = Relatorio() aluno = facade.search_aluno_id_facade(id_aluno=request.params['aluno']) turma = facade.search_estrutura_id_facade(id=aluno['vinculo_turma']) relatorio.get_descritores(serie=turma['serie']) relatorio.get_desempenho(descritores=relatorio.descritores, aluno=aluno) relatorio.convert_nivel_for_numeric() relatorio.set_color_face() relatorio.set_pontuacao_porcentagem() ultima_vez = [] for i in relatorio.pontuacao: if len(i) != 0: ultima_vez.append(int((i[-1] * 100) / 2)) pontos = [] for index, t in enumerate(relatorio.porcentagem_solo): if len(t) > 10: pontos.append(t[(len(t) - 10):len(t)]) else: pontos.append(t) return dict(tipo=usuario_logado()['tipo'], media_geral=relatorio.media_geral(), aluno=aluno, media_portugues=relatorio.media_portugues(), media_matematica=relatorio.media_matematica(), oa=relatorio.descritores, porcentagem=relatorio.porcentagem, pontos=relatorio.nova_pontuacao(), vezes=relatorio.vezes_jogada, ultima_vez=ultima_vez)
def relatorio_impressao(): from bottle import request from control.relatorios.relatorio_escola_controller import RelatorioEscola from control.dicionarios import DICIPLINA_NOME relatorio = RelatorioEscola() observador = Observador(observador_logado=usuario_logado()) observador.get_turma(id_escola=observador) ultima_vez = [] #novo for oa_mat = [] pontos_mat = [] oa_port = [] pontos_port = [] teste = 0 for index,i in enumerate(relatorio.descritores): if i['disciplina'] == DICIPLINA_NOME['matematica']: try: pontos_mat.append(relatorio.porcentagem[teste]) oa_mat.append(float(i['sigla_oa'][8:9] + "." + i['sigla_oa'][12])) except: pass teste+=1 else: if i['sigla_oa'][9:11] != 'VC' and i['sigla_oa'][9:11] != 'CN': try: pontos_port.append(relatorio.porcentagem[teste]) oa_port.append(float(i['sigla_oa'][8:9] + "." + i['sigla_oa'][12])) except: pass teste+=1 return template(path_template +'relatorio_escola_impressao', media_portugues=relatorio.media_portugues(), aluno=aluno , oa_mat=oa_mat, oa_port=oa_port, pontos_mat= pontos_mat, pontos_port=pontos_port)
def read_medalha_aluno(): from control.aprendizagem_controller import read_medalha_album, getMedalhas aluno = usuario_logado() if int(aluno['tipo']) < 6: return getMedalhas(aluno) else: return read_medalha_album(aluno['id'])
def view_guarda_roupa(no_repeat=False): from bottle import template from control.guarda_roupa_controller import Guarda_roupa if usuario_logado()['tipo'] >= '6': usuario = facade.search_aluno_id_facade( id_aluno=usuario_logado()['id']) else: usuario = facade.search_observador_id_facade(id=usuario_logado()['id']) if usuario['cor'] != '0': cor = facade.search_estrutura_id_facade(id=usuario['cor']) else: cor = '0' if usuario['rosto'] != '0': rosto = facade.search_estrutura_id_facade(id=usuario['rosto']) else: rosto = '0' if usuario['acessorio'] != '0': acessorio = facade.search_estrutura_id_facade(id=usuario['acessorio']) else: acessorio = '0' if usuario['corpo'] != '0': corpo = facade.search_estrutura_id_facade(id=usuario['corpo']) else: corpo = '0' guarda_roupa = Guarda_roupa(usuario_logado=usuario_logado()) guarda_roupa.get_item_comprar() guarda_roupa.get_item_user_have() return template('caminho_aluno/guarda_roupa/index', usuario_logado=usuario_logado(), apelido=usuario['apelido'], cor=cor, rosto=rosto, acessorio=acessorio, corpo=corpo, cristais=usuario['pontos_de_moedas'], cores=guarda_roupa.get_cor(), rostos=guarda_roupa.get_rosto(), acessorios=guarda_roupa.get_acessorio(), corpos=guarda_roupa.get_corpo(), itens_usuario=guarda_roupa.get_itens_user())
def view_ambiente_de_aprendizagem(): """ pagina inicial apos login , que mostra os itens equipados no avatar""" if int(usuario_logado()['tipo'])>=6: usuario = facade.search_aluno_nome_facade(usuario_logado()['nome']) else: usuario = facade.search_observador_facade(usuario_logado()['nome']) avatar = facade.avatar_facade(usuario['id']) avatar_pecas = { 'cor': facade.search_estrutura_id_facade(avatar['cor'])['nome'], 'rosto': facade.search_estrutura_id_facade(avatar['rosto'])['nome'], 'acessorio': facade.search_estrutura_id_facade(avatar['acessorio'])['nome'], 'corpo': facade.search_estrutura_id_facade(avatar['corpo'])['nome'] } return dict(usuario=usuario['nome'], avatar = avatar_pecas,tipo=usuario_logado()['tipo'])
def filtro_vinculo_cadastro_rede(): observador_logado = usuario_logado() if observador_logado['tipo'] == TIPO_USUARIOS['administrador']: return facade.read_estrutura_facade( tipo_estrutura=TIPO_ESTRUTURA['rede']) elif observador_logado['tipo'] == TIPO_USUARIOS['gestor']: return facade.search_estrutura_id_facade( observador_logado['vinculo_rede'])
def buy_item(no_repeat=False): from bottle import request from control.guarda_roupa_controller import Guarda_roupa guarda_roupa = Guarda_roupa(usuario_logado=usuario_logado()) if guarda_roupa.buy_item(id_item=request.params['item']): return '1' else: return '0'
def registrarConclusao(): """responsavel por desbloquear o proximo OA""" usuario = usuario_logado() dados_jogo = parametros_json_jogos(request.params.items()) # Esse comentario doi feito em 17/10/2018 # o print acima recebe os dados na forma abaixo #{'uuid': nome_da_funçao encriptada, 'operacao': nome_da_funçao, # 'objetoAprendizagem': 'UV1AVxUDx'+'CNXX' ou 'VCXX' OU 'OAXX', #'niveis': [{'nivel': 'facil', 'percentualConcluido': varia entre 0 e 100, 'termino': True ou False}, # {'nivel': 'medio', 'percentualConcluido': varia entre 0 e 100, 'termino': True ou False}, # {'nivel': 'dificil', 'percentualConcluido': varia entre 0 e 100, 'termino': True ou False}]} try: print("Dados gerados em em registrar conclusao", dados_jogo['niveis']) except Exception as arr: print('erro', arr) if usuario['tipo'] == TIPO_USUARIOS['aluno']: if len(dados_jogo['niveis']) == 3: print( 'dados jogo1 win? ', dados_jogo['niveis'][len(dados_jogo['niveis']) - 1]['termino']) premios = {'OA': is_oa, 'VC': is_vc_or_cn, 'CN': is_vc_or_cn} # if autorizaçao_professor()==True: return premios[dados_jogo['objetoAprendizagem'][9:11]]\ (aluno=usuario['id'],parametros=parametros_json_jogos(request.params.items()), oa=parametros_json_jogos(request.params.items())['objetoAprendizagem']) elif dados_jogo['niveis'][len(dados_jogo['niveis']) - 1] == True: print( 'dados 2 ', dados_jogo['niveis'][len(dados_jogo['niveis']) - 1]['termino']) premios = {'OA': is_oa, 'VC': is_vc_or_cn, 'CN': is_vc_or_cn} # if autorizaçao_professor()==True: return premios[parametros_json_jogos(request.params.items())['objetoAprendizagem'][9:11]] \ (aluno=usuario['id'], parametros=parametros_json_jogos(request.params.items()), oa=parametros_json_jogos(request.params.items())['objetoAprendizagem']) else: print('dados jogo3 entrei no else ') premios = {'OA': is_oa, 'VC': is_vc_or_cn, 'CN': is_vc_or_cn} return premios[parametros_json_jogos(request.params.items())['objetoAprendizagem'][9:11]] \ (aluno=usuario['id'], parametros=parametros_json_jogos(request.params.items()), oa=parametros_json_jogos(request.params.items())['objetoAprendizagem']) else: gamificacao = gamificacao_moeda_xp( parametros=parametros_json_jogos(request.params.items())) premios = { 'medalhas': [''], 'moedas': gamificacao['moedas'], 'xp': gamificacao['xp'] } return premios
def obterPremiacao(): parametros = parametros_json_jogos(request.params.items()) aluno1 = usuario_logado() aluno = facade.search_aluno_nome_facade(nome=aluno1['nome']) retorno = { 'moedas': int(aluno['pontos_de_moedas']), 'xp': int(aluno['pontos_de_vida']) } return retorno
def registrarConclusao(): premios={ 'OA': is_oa, 'VC': is_vc_or_cn, 'CN': is_vc_or_cn } return premios[parametros_json_jogos(request.params.items())['objetoAprendizagem'][9:11]]\ (aluno=usuario_logado()['id'],parametros=parametros_json_jogos(request.params.items()), oa=parametros_json_jogos(request.params.items())['objetoAprendizagem'])
def compras(): """ compra o item que esta na loja metodos usados: search_aluno_nome_facade,compra_item_facade :return: """ id_item = request.params['id'] facade.compra_item_facade(id_usuario=usuario_logado()['id'], id_item=id_item) redirect('aluno/loja')
def obterUltimaConclusao(): usuario = usuario_logado() # ultimo_oa_jogado=facade.ultimo_oa_jogado_facade(usuario_logado()['id']) retorno = { 'objetoAprendizagem': '', 'unidade': '', 'aventura': '', 'universo': 'UV1' } return retorno
def obter_moedas_e_vidas_hud(self, usuario): usuario = usuario_logado() if usuario['tipo'] == TIPO_USUARIOS['aluno']: jogador = facade.search_aluno_id_facade(id_aluno=usuario['id']) vida = jogador['pontos_de_vida'] moedas = jogador['pontos_de_moedas'] else: jogador = facade.search_observador_id_facade(id=usuario['id']) vida = jogador['pontos_de_vida'] moedas = jogador['pontos_de_moedas'] return dict(vida=vida, moedas=moedas)
def qual_tipo_usuario_logado(): from control.dicionarios import TIPO_USUARIOS usuario = usuario_logado() if int(usuario['tipo']) >= int(TIPO_USUARIOS['aluno']): usuario = facade.search_aluno_nome_facade(usuario['nome']) avatar = facade.avatar_facade(usuario['id']) else: usuario = facade.search_observador_facade(usuario['nome']) return usuario, avatar
def __init__(self): self.usuario_logado = usuario_logado() self.alunos = None self.descritores = None self.desempenho = None self.pontuacao = None self.porcentagem = None self.vezes_jogada = None self.media = None self.media_final = None self.porcentagem_solo = []
def equipar_item(): """ Equipar o avatar metodos chamados: search_aluno_nome_facade,search_estrutura_by_id e equipar_item_facade :return: """ id_item = request.forms['id'] item = facade.search_estrutura_id_facade(int(id_item)) facade.equipar_item_facade(usuario_logado()['id'], item) redirect('/aluno/ver_itens_comprados')
def view_usuario_index(norepeat=False): """ mostra todos os usuarios , escolas e redes cadastradas :return: """ observador = usuario_logado() usuario, aluno = controller_index_usuario(observador) escola, rede = get_escolas_e_rede_permissao() turma = get_turma_de_acordo_com_tipo_usuario_logado() return dict(tipo=observador['tipo'], usuarios=usuario, rede=rede, escolas=escola, turmas=turma, aluno=aluno)
def view_ambiente_de_aprendizagem_loja(): """ Mostra os itens comprados e os itens disponiveis para serem comprados na mesma pagina metodos usados : ja_tem_item_facade, read_estrutura_facade :return: um dicionario com os itens comprados e disponiveis , caso um item nao tenha sido criado previamente retorna um dicionario vazio""" itens_comprados = facade.ver_item_comprado_facade(id_usuario=usuario_logado()['id']) itens = facade.read_estrutura_facade(tipo_estrutura=TIPO_ESTRUTURA['item']) if itens: return dict(itens=itens, itens_comprados=itens_comprados) else: return dict(itens=False)
def equip_item(no_repeat=False): from bottle import request usuario = usuario_logado() item = [] for i in request.params: if i != 'apelido': item.append( facade.search_estrutura_id_facade(id=request.params[i])) if request.params['apelido'] != '0' or request.params[ 'apelido'] != "" or request.params['apelido'] != None: facade.set_apelido_facade(id=usuario['id'], apelido=request.params.getunicode('apelido')) facade.equipar_item_facade(id=usuario['id'], itens=item)
def get_escolas_e_rede_permissao(): usuario = usuario_logado() if usuario['tipo'] == TIPO_USUARIOS['administrador']: rede = facade.read_estrutura_facade(tipo_estrutura=TIPO_ESTRUTURA['rede']) escola = [] for i in facade.read_estrutura_facade(tipo_estrutura=TIPO_ESTRUTURA['escola']): if i['vinculo_rede'] != '0': i['vinculo_rede_id'] = i['vinculo_rede'] i['vinculo_rede'] = get_nome_rede(vinculo_rede=i['vinculo_rede']) else: i['vinculo_rede_id'] = i['vinculo_rede'] i['vinculo_rede'] = ' ' if i['vinculo_diretor_escola'] != '0': i['vinculo_diretor_escola'] = get_nome_diretor_da_escola(vinculo_escola=str(i['id'])) i.update({'turmas': facade.search_estrutura_turma_by_escola_facade(vinculo_escola=i['id'])}) escola.append(i) return escola, rede elif usuario['tipo'] == TIPO_USUARIOS['gestor']: escola = [] rede = facade.search_estrutura_id_facade(id=usuario['vinculo_rede']) print("naniii GA 620",facade.search_estrutura_escola_by_rede_facade(vinculo_rede=usuario['vinculo_rede'])) for i in facade.search_estrutura_escola_by_rede_facade(vinculo_rede=usuario['vinculo_rede']): i['vinculo_rede_id'] = i['vinculo_rede'] i['vinculo_rede'] = get_nome_rede(vinculo_rede=i['vinculo_rede']) if i['vinculo_diretor_escola'] != '0': i['vinculo_diretor_escola'] = get_nome_diretor_da_escola(vinculo_escola=str(i['id'])) escola.append(i) print("nandato",escola) return escola, rede elif usuario['tipo'] == TIPO_USUARIOS['responsavel']: pass else: escola = facade.search_estrutura_id_facade(id=usuario['vinculo_escola']) # escola = [] if escola == -1 else escola if escola['vinculo_rede'] != '0': escola['vinculo_rede_id'] = escola['vinculo_rede'] escola['vinculo_rede'] = get_nome_rede(vinculo_rede=escola['vinculo_rede']) escola['vinculo_diretor_escola'] = usuario['nome'] rede = facade.search_estrutura_id_facade(id=usuario['vinculo_rede']) return escola, rede