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
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()
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)
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('/')
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)
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('/')
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})
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 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})
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 )
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 )
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 )
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)
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)
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='******')
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)
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='******')
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)