Exemplo n.º 1
0
    def importXML(xml):
        obj = xmltodict.parse(xml, process_namespaces=True)

        #pessoa = Pessoa.objects.create(nome=obj['CURRICULO-VITAE']['DADOS-GERAIS']['@NOME-COMPLETO'])
        pessoa = Pessoa()
        try:
            with transaction.atomic():
                pessoa.nome = obj['CURRICULO-VITAE']['DADOS-GERAIS']['@NOME-COMPLETO']
                pessoa.sexo = 'M'
                pessoa.data_nascimento = date(1977,3,3)
                pessoa.numero_documento = '07758079741'
                pessoa.email = '*****@*****.**'

                # Tratamento de país
                paises = Pais.objects.filter(Q(nome_pais=obj['CURRICULO-VITAE']['DADOS-GERAIS']['@PAIS-DE-NACIONALIDADE']))
                if paises.exists():
                    print(paises[0])
                    pessoa.nacionalidade = paises[0]

                pessoa.save()
                # tratamento de abreviação
                abrevs = obj['CURRICULO-VITAE']['DADOS-GERAIS']['@NOME-EM-CITACOES-BIBLIOGRAFICAS']
                if abrevs:
                    first = True
                    items = abrevs.split(';')
                    print(items)
                    for item in items:
                        Abreviatura.objects.create(pessoa=pessoa,
                                                   desc_abreviatura=item,
                                                   flg_principal= first if 1 else 0)

            return pessoa
        except:
            return None
Exemplo n.º 2
0
    def setUp(self):
        self.professor = Pessoa()
        self.professor.nome = 'Fulano'
        self.professor.sobrenome = 'da Silva'
        self.professor.data_nascimento = date(1984, 1, 19)
        self.professor.cpf = '555.555.555-55'
        self.professor.tipo = Pessoa.PROFESSOR
        self.professor.save()

        self.aluno = Pessoa()
        self.aluno.nome = 'Fulaninho'
        self.aluno.sobrenome = 'de Souza'
        self.aluno.data_nascimento = date(1994, 1, 19)
        self.aluno.cpf = '111.111.111-11'
        self.aluno.tipo = Pessoa.ALUNO
        self.aluno.save()

        self.disciplina = Disciplina()
        self.disciplina.nome = 'Português'
        self.disciplina.limite_faltas = 10
        self.disciplina.limite_abonos = 0
        self.disciplina.data_inicio = date(2014, 1, 19)
        self.disciplina.data_termino = date(2014, 5, 19)
        self.disciplina.professor = self.professor
        self.disciplina.save()
        self.disciplina.aluno.add(self.aluno)
        self.disciplina.save()
Exemplo n.º 3
0
class DisciplinaTest(TestCase):

    def setUp(self):
        self.professor = Pessoa()
        self.professor.nome = 'Fulano'
        self.professor.sobrenome = 'da Silva'
        self.professor.data_nascimento = date(1994, 1, 19)
        self.professor.cpf = '444.444.444-44'
        self.professor.tipo = Pessoa.PROFESSOR
        self.professor.save()

    def test_create_disciplina(self):

        disciplina = Disciplina()
        disciplina.nome = ''
        disciplina.limite_faltas = 10
        disciplina.limite_abonos = 0
        disciplina.data_inicio = date(2014, 1, 19)
        disciplina.data_termino = date(2014, 5, 19)
        disciplina.professor = self.professor
        disciplina.save()

        aluno = Pessoa()
        aluno.nome = 'Fulaninho'
        aluno.sobrenome = 'de Souza'
        aluno.data_nascimento = date(1994, 1, 19)
        aluno.cpf = '111.111.111-11'
        aluno.tipo = Pessoa.ALUNO
        aluno.save()
        disciplina.aluno.add(aluno)
        disciplina.save()

        self.assertGreater(disciplina.aluno.count(), 0)
Exemplo n.º 4
0
def inserir(request):

	if request.method == 'POST':
		pessoa = Pessoa(nome=request.POST.get('nome'),
						idade=request.POST.get('idade'),
						id =  request.POST.get('id') if request.POST.get('id',None) else None)

		pessoa.save()
		
	return HttpResponseRedirect('/')
Exemplo n.º 5
0
    def test_create_professor(self):
        pessoa = Pessoa()
        pessoa.nome = 'fulaninho',
        pessoa.set_password('123')
        pessoa.email = '*****@*****.**'
        pessoa.sobrenome = 'da Silva'
        pessoa.data_nascimento = date(1994, 1, 19)
        pessoa.cpf = '333.333.333-33'
        pessoa.tipo = Pessoa.PROFESSOR

        data = model_to_dict(pessoa)
        data['tipo'] = Pessoa.PROFESSOR
        data['contato_set-TOTAL_FORMS'] = 1
        data['contato_set-INITIAL_FORMS'] = 1
        data['contato_set-MIN_NUM_FORMS'] = 1
        data['contato_set-MAX_NUM_FORMS'] = 1000
        data['contato_set-0-tipo'] = 'telefone'
        data['contato_set-0-descricao'] = '(11)11111-1111'
        data['contato_set-0-id'] = 1
        data['contato_set-0-pessoa'] = pessoa.id

        response = self.c.post(
            reverse('admin:pessoa_pessoa_add'),
            data
        )

        self.assertEqual(response.status_code, 200)
Exemplo n.º 6
0
def inserir(request):
    if request.method == "POST":

        pessoa = Pessoa(
            id = request.POST.get('id') if request.POST.get('id',None) else None,
            nome = request.POST.get('nome'),
            idade = request.POST.get('idade'),
            telefone = request.POST.get('telefone'))

        pessoa.save()

    return HttpResponseRedirect('/')
Exemplo n.º 7
0
def inserir(request, codigo=0): 
    if request.method == 'POST':                                    
        pessoa = Pessoa(                    
        id=request.POST.get('id') if request.POST.get('id', None) else None,
        nome=request.POST.get('nome'),
        idade=request.POST.get('idade'),
        ano=2015)        
        pessoa.save()    
        return HttpResponseRedirect('/')
    else:
        print 789
        pessoa = Pessoa.objects.get(pk=codigo)
        return render(request, 'index.html', {'msg':'Resultado da Busca', 'pessoa':pessoa})
Exemplo n.º 8
0
 def setUp(self):
     self.professor = Pessoa()
     self.professor.nome = 'Fulano'
     self.professor.sobrenome = 'da Silva'
     self.professor.data_nascimento = date(1994, 1, 19)
     self.professor.cpf = '444.444.444-44'
     self.professor.tipo = Pessoa.PROFESSOR
     self.professor.save()
Exemplo n.º 9
0
def inserir(request, codigo=0):
    if request.method == 'POST':
        try:
            pessoa = Pessoa.objects.get(pk=request.POST.get('id'))
            pessoa.nome = request.POST.get('nome')
            pessoa.idade = request.POST.get('idade')
        except:
            pessoa = Pessoa(
                nome=request.POST.get('nome'), 
                idade=request.POST.get('idade'), 
                ano=2015)

        pessoa.save()
        return HttpResponseRedirect('/')
    else:
        try:
            pessoa = Pessoa.objects.get(pk=codigo)
        except:
            pessoa = Pessoa()

        return render(request,'index.html',
                {'msg':_(u'Altere o registro'),'pessoa':pessoa})
Exemplo n.º 10
0
 def test_create_professor(self):
     professor = Pessoa()
     professor.nome = 'Fulano'
     professor.sobrenome = 'da Silva'
     professor.data_nascimento = date(1994, 1, 19)
     professor.cpf = '333.333.333-33'
     professor.tipo = Pessoa.PROFESSOR
     professor.save()
     Contato.objects.create(
         tipo=Contato.TELEFONE,
         descricao='(00)0000-0000',
         pessoa=professor
     )
     Contato.objects.create(
         tipo=Contato.EMAIL,
         descricao='*****@*****.**',
         pessoa=professor
     )
Exemplo n.º 11
0
 def test_create_aluno(self):
     aluno = Pessoa()
     aluno.nome = 'Fulano'
     aluno.sobrenome = 'da Silva'
     aluno.data_nascimento = date(1994, 1, 19)
     aluno.cpf = '222.222.222-22'
     aluno.tipo = Pessoa.FUNCIONARIO
     aluno.save()
     Contato.objects.create(
         tipo=Contato.TELEFONE,
         descricao='(00)0000-0000',
         pessoa=aluno
     )
     Contato.objects.create(
         tipo=Contato.EMAIL,
         descricao='*****@*****.**',
         pessoa=aluno
     )
Exemplo n.º 12
0
 def test_create_funcionario(self):
     pessoa = Pessoa()
     pessoa.nome = 'Fulano'
     pessoa.sobrenome = 'da Silva'
     pessoa.data_nascimento = date(1994, 1, 19)
     pessoa.cpf = '111.111.111-11'
     pessoa.tipo = Pessoa.FUNCIONARIO
     pessoa.save()
     Contato.objects.create(
         tipo=Contato.TELEFONE,
         descricao='(00)0000-0000',
         pessoa=pessoa
     )
     Contato.objects.create(
         tipo=Contato.EMAIL,
         descricao='*****@*****.**',
         pessoa=pessoa
     )
Exemplo n.º 13
0
    def test_create_disciplina(self):

        disciplina = Disciplina()
        disciplina.nome = ''
        disciplina.limite_faltas = 10
        disciplina.limite_abonos = 0
        disciplina.data_inicio = date(2014, 1, 19)
        disciplina.data_termino = date(2014, 5, 19)
        disciplina.professor = self.professor
        disciplina.save()

        aluno = Pessoa()
        aluno.nome = 'Fulaninho'
        aluno.sobrenome = 'de Souza'
        aluno.data_nascimento = date(1994, 1, 19)
        aluno.cpf = '111.111.111-11'
        aluno.tipo = Pessoa.ALUNO
        aluno.save()
        disciplina.aluno.add(aluno)
        disciplina.save()

        self.assertGreater(disciplina.aluno.count(), 0)
Exemplo n.º 14
0
class AvaliacaoTest(TestCase):

    def setUp(self):
        self.professor = Pessoa()
        self.professor.nome = 'Fulano'
        self.professor.sobrenome = 'da Silva'
        self.professor.data_nascimento = date(1984, 1, 19)
        self.professor.cpf = '555.555.555-55'
        self.professor.tipo = Pessoa.PROFESSOR
        self.professor.save()

        self.aluno = Pessoa()
        self.aluno.nome = 'Fulaninho'
        self.aluno.sobrenome = 'de Souza'
        self.aluno.data_nascimento = date(1994, 1, 19)
        self.aluno.cpf = '111.111.111-11'
        self.aluno.tipo = Pessoa.ALUNO
        self.aluno.save()

        self.disciplina = Disciplina()
        self.disciplina.nome = 'Português'
        self.disciplina.limite_faltas = 10
        self.disciplina.limite_abonos = 0
        self.disciplina.data_inicio = date(2014, 1, 19)
        self.disciplina.data_termino = date(2014, 5, 19)
        self.disciplina.professor = self.professor
        self.disciplina.save()
        self.disciplina.aluno.add(self.aluno)
        self.disciplina.save()

    def test_create_nota(self):
        avaliacoes_count = Avaliacao.objects.count()

        self.assertEqual(avaliacoes_count, 1)

    def test_edit_nota(self):
        avaliacao = Avaliacao.objects.get(disciplina=self.disciplina, aluno=self.aluno)
        avaliacao.faltas = 6
        avaliacao.nota = 8
        avaliacao.save()

    def test_create_nota_disciplinas_diferentes(self):
        disciplina_2 = Disciplina()
        disciplina_2.nome = 'Matemática'
        disciplina_2.limite_faltas = 10
        disciplina_2.limite_abonos = 0
        disciplina_2.data_inicio = date(2014, 1, 19)
        disciplina_2.data_termino = date(2014, 5, 19)
        disciplina_2.professor = self.professor
        disciplina_2.save()
        disciplina_2.aluno.add(self.aluno)
        disciplina_2.save()

        avaliacoes_count = Avaliacao.objects.count()

        self.assertEqual(avaliacoes_count, 2)

    def test_esconder_avaliacoes_de_alunos_fora_da_disciplina(self):
        avaliacoes_count = Avaliacao.objects.count()

        self.assertEqual(avaliacoes_count, 1)
        self.disciplina.aluno.clear()
        self.disciplina.save()
        avaliacoes_count_2 = Avaliacao.objects.count()

        self.assertEqual(avaliacoes_count_2, 0)
Exemplo n.º 15
0
    def setUp(self):
        self.professor = Pessoa()
        self.professor.nome = 'Fulano'
        self.professor.sobrenome = 'da Silva'
        self.professor.data_nascimento = date(1984, 1, 19)
        self.professor.cpf = '555.555.555-55'
        self.professor.tipo = Pessoa.PROFESSOR
        self.professor.save()

        self.aluno = Pessoa()
        self.aluno.nome = 'Fulaninho'
        self.aluno.sobrenome = 'de Souza'
        self.aluno.data_nascimento = date(1994, 1, 19)
        self.aluno.cpf = '111.111.111-11'
        self.aluno.tipo = Pessoa.ALUNO
        self.aluno.save()

        self.disciplina = Disciplina()
        self.disciplina.nome = 'Português'
        self.disciplina.limite_faltas = 10
        self.disciplina.limite_abonos = 0
        self.disciplina.data_inicio = date(2014, 1, 19)
        self.disciplina.data_termino = date(2014, 5, 19)
        self.disciplina.professor = self.professor
        self.disciplina.save()
        self.disciplina.aluno.add(self.aluno)
        self.disciplina.save()

        funcionario = Pessoa()
        funcionario.nome = 'Fulano',
        funcionario.set_password('123')
        funcionario.email = '*****@*****.**'
        funcionario.sobrenome = 'da Silva'
        funcionario.data_nascimento = date(1994, 1, 19)
        funcionario.cpf = '000.000.000-00'
        funcionario.tipo = Pessoa.FUNCIONARIO
        funcionario.save()

        self.c = Client()
        self.c.login(cpf=funcionario.cpf, password='******')
Exemplo n.º 16
0
class DisciplinaAdminTest(TestCase):
    def setUp(self):
        self.professor = Pessoa()
        self.professor.nome = 'Fulano'
        self.professor.sobrenome = 'da Silva'
        self.professor.data_nascimento = date(1984, 1, 19)
        self.professor.cpf = '555.555.555-55'
        self.professor.tipo = Pessoa.PROFESSOR
        self.professor.save()

        self.aluno = Pessoa()
        self.aluno.nome = 'Fulaninho'
        self.aluno.sobrenome = 'de Souza'
        self.aluno.data_nascimento = date(1994, 1, 19)
        self.aluno.cpf = '111.111.111-11'
        self.aluno.tipo = Pessoa.ALUNO
        self.aluno.save()

        self.disciplina = Disciplina()
        self.disciplina.nome = 'Português'
        self.disciplina.limite_faltas = 10
        self.disciplina.limite_abonos = 0
        self.disciplina.data_inicio = date(2014, 1, 19)
        self.disciplina.data_termino = date(2014, 5, 19)
        self.disciplina.professor = self.professor
        self.disciplina.save()
        self.disciplina.aluno.add(self.aluno)
        self.disciplina.save()

        funcionario = Pessoa()
        funcionario.nome = 'Fulano',
        funcionario.set_password('123')
        funcionario.email = '*****@*****.**'
        funcionario.sobrenome = 'da Silva'
        funcionario.data_nascimento = date(1994, 1, 19)
        funcionario.cpf = '000.000.000-00'
        funcionario.tipo = Pessoa.FUNCIONARIO
        funcionario.save()

        self.c = Client()
        self.c.login(cpf=funcionario.cpf, password='******')

    def test_editar_disciplina_sem_apagar_avaliacoes(self):
        avaliacao = Avaliacao.objects.get(disciplina=self.disciplina,
                                          aluno=self.aluno)
        avaliacao.faltas = 6
        avaliacao.nota = 8
        avaliacao.save()

        data = model_to_dict(self.disciplina)
        data['nome'] = 'Português 2'

        response = self.c.post(
            reverse('admin:disciplina_disciplina_change',
                    args=(self.disciplina.id,)),
            data
        )
        self.assertEqual(response.status_code, 302)

        avaliacao_2 = Avaliacao.objects.first()
        self.assertEqual(avaliacao_2.nota, avaliacao.nota)
Exemplo n.º 17
0
    def setUp(self):
        funcionario = Pessoa()
        funcionario.nome = 'Fulano',
        funcionario.set_password('123')
        funcionario.email = '*****@*****.**'
        funcionario.sobrenome = 'da Silva'
        funcionario.data_nascimento = date(1994, 1, 19)
        funcionario.cpf = '000.000.000-00'
        funcionario.tipo = Pessoa.FUNCIONARIO
        funcionario.save()

        self.c = Client()
        self.c.login(cpf=funcionario.cpf, password='******')
Exemplo n.º 18
0
def save_docente(request, id=0, template_name='pessoa/docente_form.html'):
    if id > 0:
        docente = get_object_or_404(Docente, pk=id)
        pessoa = docente.pessoa
    else:
        docente = Docente()
        pessoa = Pessoa()

    # tramento para importar xml lates
    dict_abrevs = []
    if request.method == 'POST' and "import_xml" in request.POST and bool(
            request.FILES.get('myfile', False)):
        myfile = request.FILES['myfile']

        if myfile.name.endswith('.xml'):
            data = myfile.read()
            pessoa_xml = LattesService.import_xml_memory(data)
            request.session["docente_pessoa_xml"] = pessoa_xml
        else:
            pessoa_xml = "Erro"

        return redirect("docente_new")

    pessoa_xml = request.session.get("docente_pessoa_xml", None)
    if pessoa_xml:
        if pessoa_xml is not "Erro":
            messages.success(
                request, 'Currículo de(a), %s importado com sucesso.' %
                pessoa_xml["nome"])
            LattesService.fill_pessoa(pessoa, pessoa_xml, dict_abrevs)
            request.session["docente_pessoa_xml"] = None
        else:
            messages.success(
                request,
                'Arquivo não é XML. Apenas arquivos XML podem ser importados!')
            request.session["docente_pessoa_xml"] = None

    # FIM tramento para importar xml lates

    # Preparação dos forms
    pessoa_form = PessoaForm(request.POST or None, instance=pessoa)
    docente_form = DocenteForm(request.POST or None, instance=docente)
    AbreviaturaFormSet = inlineformset_factory(Pessoa,
                                               Abreviatura,
                                               form=AbreviaturaForm,
                                               extra=1)
    abreviatura_form = AbreviaturaFormSet(instance=pessoa)

    # inicializa o form com as abreviaturas do xml latters
    for subform, data in zip(abreviatura_form.forms, dict_abrevs):
        subform.initial = data

    if request.method == 'POST' and pessoa_form.is_valid(
    ) and docente_form.is_valid():
        # transação
        with transaction.atomic():

            pessoa = pessoa_form.save()
            docente = docente_form.save(False)

            docente.pessoa = pessoa
            docente.save()

            abreviatura_form = AbreviaturaFormSet(request.POST,
                                                  instance=pessoa)
            print(abreviatura_form.is_valid())
            if abreviatura_form.is_valid():
                abreviatura_form.save()

        return redirect('docente_list')

    args = {}
    args.update(csrf(request))
    args['pessoa_form'] = pessoa_form
    args['docente_form'] = docente_form
    args['abreviatura_form'] = abreviatura_form
    args['is_new'] = id <= 0

    return render(request, template_name, args)