예제 #1
0
 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')
예제 #2
0
 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))
예제 #3
0
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())
예제 #4
0
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
예제 #5
0
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