def _get_medalhas(self): from control.gestao_aprendizagem_controller import convertendo_str_in_dict self._create_aluno() self._gravar_premiacao() alun = self.facade.search_aluno_id_facade(1) medalhas = self.facade.get_medalhas_facade(alun['id']) meld = medalhas[0].decode('UTF-8') melda = convertendo_str_in_dict(meld) self.assertEqual(melda['id_medalha'], '1')
def _gravar_premiacao(self): from control.gestao_aprendizagem_controller import convertendo_str_in_dict # premios = { # 'medalhas': gamificacao_medalha(aluno, oa=oa), # 'moedas': gamificacao['moedas'],'''int''' # 'xp': gamificacao['xp'] '''int''' # } medalhas = ('1', '2', '3') premiacao = {'medalhas': medalhas, 'moedas': 9, 'xp': 10} self._create_estrutura() self.facade.gravar_premiacao(1, premiacao) aluno = self.facade.search_aluno_id_facade(1) self.assertEqual(aluno['pontos_de_vida'], '10') self.assertEqual(aluno['pontos_de_moedas'], '9') medalha = self.facade.get_medalhas_facade(1) for i in range(0, len(medalha) - 1): mel = convertendo_str_in_dict(medalha[i].decode('UTF-8')) self.assertEqual(mel['id_medalha'], str(i + 1))
def read_medalha_album(aluno): from control.gestao_aprendizagem_controller import convertendo_str_in_dict medalha_socio = [] medalha_jogo = [] medalha_aluno = [] for i in facade.search_aluno_id_facade(id_aluno=aluno)['medalha']: i = convertendo_str_in_dict(str=i.decode('utf-8')) medalha_aluno.append(i['id_medalha']) todas_medalhas = facade.read_estrutura_facade(TIPO_ESTRUTURA['medalha']) for medalha in todas_medalhas: if medalha['tipo_medalha'] == '1': medalha_socio.append(medalha) else: medalha_jogo.append(medalha) medalha_recente = [] medalha_ultima = [] if medalha_aluno != []: if len(medalha_aluno) > 4: z = medalha_aluno[len(medalha_aluno) - 4:len(medalha_aluno)] else: z = medalha_aluno for i in medalha_socio: if str(i['id']) in z: medalha_recente.append(i) for i in medalha_jogo: if str(i['id']) in z: medalha_recente.append(i) '''variavel medalha_recente da problema se n tiver medalha, ou se so tiver uma , pelo que parece ''' try: medalha_ultima = medalha_ultima[len(medalha_recente) - 1] except Exception as e: print('que ser esse erro? olhe depois , por favor', e) return dict(medalha_socio=medalha_socio, medalha_jogo=medalha_jogo, medalha_recente=medalha_recente, medalha_aluno=medalha_aluno, medalha_ultima=medalha_ultima, usuario=usuario_logado())
def verificarConclusoesObjetosAprendizagem(): ''' Comentario feito dia 17/10/1994 A variavel parametros tem o o modelo de (em aventura 1) {'uuid': '36f194cd-dcc1-40f6-81af-d9147f184d58_verificarConclusoesObjetosAprendizagem', 'operacao': 'verificarConclusoesObjetosAprendizagem', 'objetosAprendizagem': ['UV1AV1UD1OA01', 'UV1AV1UD1OA02', 'UV1AV1UD1OA03', 'UV1AV1UD1OA04', 'UV1AV1UD1OA05', 'UV1AV1UD1OA06', 'UV1AV1UD1CN01', 'UV1AV1UD1CN02', 'UV1AV1UD1VC01']} :return: ''' usuario = usuario_logado() parametros = parametros_json_jogos(request.params.items()) print('parametros conclusao OA', parametros) if int(usuario['tipo']) < 6: retorno = {'objetosConcluidos': parametros['objetosAprendizagem']} else: cn_final = facade.oa_teste_facade( id_aluno=str(usuario['id']), oa='{}CN02'.format(parametros['objetosAprendizagem'][0:9])) if cn_final != []: retorno = {'objetosConcluidos': parametros['objetosAprendizagem']} else: teste = [] for k in parametros['objetosAprendizagem']: desempenho_oa = facade.oa_teste_facade(id_aluno=str( usuario['id']), oa=k) if desempenho_oa != []: for jogo in desempenho_oa[0]['jogo_jogado']: nivel_jogo = convertendo_str_in_dict(jogo) try: if nivel_jogo['nivel'] != 'facil' and nivel_jogo[ 'termino'] == True: teste.append(k) except Exception as aaa: for x in nivel_jogo: print('fuuuu', x, aaa, desempenho_oa[0]['objeto_aprendizagem']) retorno = {'objetosConcluidos': teste} print("verificar Conclusoes Objetos Aprendizagem retorno", retorno) return retorno
def verificarAcessoObjetoAprendizagem(): """ percorre todas as OAs da semana e se o aluno tiver terminado o jogo anterior ao menos no medio , debloqueia o prox jogo se for um cinematic, apenas adiciona a lista verifica se jogou o anterior , se tem dados do anterior , verifica se nao é lista, porque se concluir o jogo no facil vem uma lista (dado anomalo) :return: """ usuario = usuario_logado() parametros = parametros_json_jogos(request.params.items()) if usuario['tipo'] < TIPO_USUARIOS['aluno']: retorno = { 'objetosAprendizagemAcessiveis': parametros['objetosAprendizagem'] } else: cn_final = facade.oa_teste_facade( id_aluno=str(usuario['id']), oa='{}CN02'.format(parametros['objetosAprendizagem'][0:9])) if cn_final != []: retorno = { 'objetosAprendizagemAcessiveis': parametros['objetosAprendizagem'] } else: teste = [] for i in parametros['objetosAprendizagem']: e = list(i) print("lista da OA", [len(e) - 1], e) if (e[len(e) - 1] != "1" and e[len(e) - 1] != 1) and e[9] != 'C': e[len(e) - 1] = str(int(e[len(e) - 1]) - 1) anterior = ''.join(e) desempenho_oa = facade.oa_teste_facade(id_aluno=str( usuario['id']), oa=i) desempenho_oa_anterior = facade.oa_teste_facade( id_aluno=str(usuario['id']), oa=anterior) if desempenho_oa_anterior != []: last_best_game = convertendo_str_in_dict( desempenho_oa_anterior[0]['jogo_jogado'][0]) if desempenho_oa == [] and not isinstance( last_best_game, list): if last_best_game['termino'] == True: if last_best_game['nivel'] == "facil": try: #excessao feita por causa do jogo UV1AV1UD6OA03 que gera um dado anormal "certo" , possivel erro do jogo (era para ter 3 niveis?) for x in range( len(desempenho_oa_anterior[0] ['jogo_jogado'][0])): best_game_list = convertendo_str_in_dict( desempenho_oa_anterior[0] ['jogo_jogado'][x]) if best_game_list[ "nivel"] != "facil" and best_game_list[ "termino"] == True: teste.append(i) break break except IndexError: teste.append(i) break # else: teste.append(i) break # elif not isinstance(last_best_game, list): if last_best_game['termino'] == True: teste.append(i) elif i == "UV1AV1UD4OA05" or i == "UV1AV2UD8OA02": teste.append(i) elif desempenho_oa == [] and isinstance( last_best_game, list): if last_best_game[0]['nivel'] == "facil": for x in range( len(desempenho_oa_anterior[0] ["jogo_jogado"])): try: last_facil = convertendo_str_in_dict( desempenho_oa_anterior[0] ["jogo_jogado"][x]) if last_facil["termino"] == True: teste.append(i) break except Exception as aaa: continue else: teste.append(i) else: teste.append(i) break else: desempenho_oa = facade.oa_teste_facade(id_aluno=str( usuario['id']), oa=i) if desempenho_oa == [] and e[len(e) - 1]: teste.append(i) retorno = {'objetosAprendizagemAcessiveis': teste} return retorno