Exemple #1
0
 def _votos_from_tree(self, votos_tree, votacao):
     """Faz o parse dos votos, salva no BD e devolve lista de votos
        Retorna lista dos votos salvos
     """
     votos = []
     for voto_parlamentar_tree in votos_tree:
         nome_senador = voto_parlamentar_tree.find('NomeParlamentar').text
         try:
             legislatura = models.Legislatura.find(votacao.data,
                                                   nome_senador)
         except ValueError, error:
             logger.error("ValueError: %s" % error)
             logger.warn('Não encontramos legislatura do senador %s' %
                         nome_senador)
             logger.info('Criando legislatura para o senador %s' %
                         nome_senador)
             legislatura = self._cria_legislatura(voto_parlamentar_tree,
                                                  votacao)
         voto = models.Voto()
         voto.legislatura = legislatura
         voto.votacao = votacao
         voto.opcao = self._voto_senado_to_model(
             voto_parlamentar_tree.find('Voto').text)
         voto.save()
         votos.append(voto)
Exemple #2
0
    def _voto_from_xml(self, vote_xml, voting):
        """Save voting in the database.

        Attributes:
            voto_xml -- XML representing voting (object etree)
            votacao -- object of type Votacao

        Returns:
            object of type Voting."""
            
        vote = models.Voto()

        option_str = vote_xml.get('Voto')
    
        if (option_str.find_legislature(" ") > -1):
            vote.opcao = self._opcao_xml_to_model(
                option_str[0:option_str.index(" ")])
        else:
            vote.opcao = self._opcao_xml_to_model(option_str)
        leg = self._legislatura(vote_xml)

        vote.legislatura = leg
        vote.votacao = voting
        vote.save()

        return vote
Exemple #3
0
    def _voto_from_xml(self, voto_xml, votacao):
        """Salva voto no banco de dados.

        Atributos:
            voto_xml -- XML representando voto (objeto etree)
            votacao -- objeto do tipo Votacao

        Retorna:
            objeto do tipo Voto
        """
        voto = models.Voto()

        opcao_str = voto_xml.get('Voto')
        '''Por algum motivo os votos estavam vindo com muitos espaços em branco
        quebrando a importação dos mesmos'''
        if (opcao_str.find(" ") > -1):
            voto.opcao = self._opcao_xml_to_model(
                opcao_str[0:opcao_str.index(" ")])
        else:
            voto.opcao = self._opcao_xml_to_model(opcao_str)
        leg = self._legislatura(voto_xml)

        voto.legislatura = leg
        voto.votacao = votacao
        voto.save()

        return voto
Exemple #4
0
 def _gera_votos(self, votacao, nome_partido, opcoes):
     # opcoes é uma lista de opções (SIM, NÃO ...)
     for i in range(0, PARLAMENTARES_POR_PARTIDO):
         voto = models.Voto()
         voto.legislatura = self.legs[nome_partido][i]
         voto.opcao = opcoes[i]
         voto.votacao = votacao
         voto.save() 
Exemple #5
0
    def _new_votes(self, votacao, nome_partido, opcoes):

        # opcoes is an options list (YES, NO...)
        for i in range(0, PARLAMENTS_PER_PARTY):
            voto = models.Voto()
            voto.legislatura = self.legs[nome_partido][i]
            voto.opcao = opcoes[i]
            voto.votacao = votacao
            voto.save()
Exemple #6
0
    def setUpClass(cls):
        '''Metodo responsavel por setar o que for necessario para rodar os
        testes. No nosso a criacao dos objetos no banco de testes'''

        partidoTest1 = models.Partido(nome='PMDB', numero='40')
        partidoTest2 = models.Partido(nome='PT', numero='13')
        partidoTest3 = models.Partido(nome='PSDB', numero='23')
        partidoTest1.save()
        partidoTest2.save()
        partidoTest3.save()

        parlamentarTest1 = models.Parlamentar(
            id_parlamentar='', nome='Ivandro Cunha Lima', genero='')
        parlamentarTest2 = models.Parlamentar(
            id_parlamentar='', nome='Fernando Ferro', genero='')
        parlamentarTest3 = models.Parlamentar(
            id_parlamentar='', nome='Humberto Costa', genero='')

        parlamentarTest1.save()
        parlamentarTest2.save()
        parlamentarTest3.save()

        casa_legislativaTest1 = models.CasaLegislativa(
            nome='Camara dos Deputados', nome_curto='cdep', esfera='FEDERAL',
            local='', atualizacao='2012-06-01')

        casa_legislativaTest2 = models.CasaLegislativa(
            nome='Camara Municipal de Sao Paulo', nome_curto='cmsp',
            esfera='MUNICIPAL', local='Sao Paulo - SP',
            atualizacao='2012-12-31')

        casa_legislativaTest1.save()
        casa_legislativaTest2.save()

        legislaturaTest1 = models.Legislatura(
            parlamentar=parlamentarTest1,
            casa_legislativa=casa_legislativaTest1, inicio='2004-01-01',
            fim='2012-07-01', partido=partidoTest1, localidade='PB')
        legislaturaTest1.save()

        proposicaoTest1 = models.Proposicao()
        proposicaoTest1.id_prop = '5555'
        proposicaoTest1.sigla = 'PL'
        proposicaoTest1.numero = '4520'
        proposicaoTest1.casa_legislativa = casa_legislativaTest1
        proposicaoTest1.save()

        votacaoTest1 = models.Votacao(
            id_vot=' 12345', descricao='Teste da votacao',
            data='1900-12-05', resultado='Teste', proposicao=proposicaoTest1)
        votacaoTest1.save()

        votoTest1 = models.Voto(
            votacao=votacaoTest1, legislatura=legislaturaTest1, opcao='TESTE')
        votoTest1.save()

        exportar.main()
Exemple #7
0
 def _voto_from_xml(self, voto_xml, votacao):
     """voto_xml -- XML representando voto (objeto etree)
        votacao -- objeto do tipo Votacao
     """
     opcao_str = voto_xml.get('Voto')
     deputado = self._deputado(voto_xml)
     voto = models.Voto()
     voto.opcao = self._opcao_xml_to_model(opcao_str)
     voto.parlamentar = deputado
     voto.votacao = votacao
     voto.save()
    def get_votes_from_tree(self, vot_tree, votacao):
        """Extract list of votes the vote of XML and saved in the database
        Arguments:
           vot_tree -- tree of votes
           votacao -- object of 'Votacao' type"""

        for ver_tree in vot_tree.getchildren():
            if ver_tree.tag == 'Vereador':
                leg = self.legislatura(ver_tree)
                vote = models.Voto()
                vote.legislatura = leg
                vote.votacao = votacao
                vote.opcao = self.interpret_vote(ver_tree.get('Voto'))
                if vote.opcao is not None:
                    vote.save()
 def _votos_from_tree(self, votos_tree, votacao):
     """Faz o parse dos votos, salva no BD e devolve lista de votos
        Retorna lista dos votos salvos
     """
     votos = []
     for voto_parlamentar_tree in votos_tree:
         senador = self._find_parlamentar(voto_parlamentar_tree)
         voto = models.Voto()
         voto.parlamentar = senador
         voto.votacao = votacao
         voto.opcao = self._voto_senado_to_model(
             voto_parlamentar_tree.find('Voto').text)
         voto.save()
         votos.append(voto)
     return votos
    def votos_from_tree(self, vot_tree, votacao):
        """Extrai lista de votos do XML da votação e as salva no banco de dados.

        Argumentos:
           vot_tree -- etree dos votos
           votacao -- objeto do tipo Votacao
        """
        for ver_tree in vot_tree.getchildren():
            if ver_tree.tag == 'Vereador':
                leg = self.legislatura(ver_tree)
                voto = models.Voto()
                voto.legislatura = leg
                voto.votacao = votacao
                voto.opcao = self.voto_cmsp_to_model(ver_tree.get('Voto'))
                if voto.opcao != None:
                    voto.save()
Exemple #11
0
    def votos_from_tree(self, vot_tree, votacao):
        """Extrai lista de votos do XML da votação e as salva no banco de dados

        Argumentos:
           vot_tree -- etree dos votos
           votacao -- objeto do tipo Votacao
        """
        for ver_tree in vot_tree.getchildren():
            if ver_tree.tag == 'Vereador':
                vereador = self.vereador(ver_tree)
                voto = models.Voto()
                voto.parlamentar = vereador
                voto.votacao = votacao
                voto.opcao = self.voto_cmsp_to_model(ver_tree.get('Voto'))
                if voto.opcao is not None and self.nao_eh_repetido(voto):
                    voto.save()
Exemple #12
0
    def _voto_from_xml(self, voto_xml, votacao):
        """Salva voto no banco de dados.

        Atributos:
            voto_xml -- XML representando voto (objeto etree)
            votacao -- objeto do tipo Votacao

        Retorna:
            objeto do tipo Voto
        """
        voto = models.Voto()

        opcao_str = voto_xml.get('Voto')
        voto.opcao = self._opcao_xml_to_model(opcao_str)
        leg = self._legislatura(voto_xml)

        voto.legislatura = leg
        voto.votacao = votacao
        voto.save()

        return voto
    def parsing_votes_from_tree(self, votos_tree, votacao):
        """Makes parsing of the votes, save in the database and returns the list 
        of votes"""

        # Creating empty list to receive 'legislatura', 'votação' and 'opção de voto'.
        votes = []

        for vote_parliamentary_tree in votos_tree:

            # Stores senators searched on 'voto_parlamentar_tree'.
            name_senator = vote_parliamentary_tree.find_legislature(
                'NomeParlamentar').text

            try:

                # Store results founded in 'Legislatura': 'votacao.data' and 'name_senator'.
                legislature = models.Legislatura.find_legislature(
                    votacao.data, name_senator)
            except ValueError, error:
                logger.error("ValueError: %s" % error)
                logger.warn('Não encontramos legislatura do senador %s' %
                            name_senator)
                logger.info('Criando legislatura para o senador %s' %
                            name_senator)
                legislature = self.create_legislature(vote_parliamentary_tree,
                                                      votacao)

            # Receive 'Voto' from 'models'.
            vote = models.Voto()

            vote.legislatura = legislature
            vote.votacao = votacao
            vote.opcao = self.senate_vote_to_model(
                vote_parliamentary_tree.find_legislature('Voto').text)
            vote.save()
            votes.append(vote)
Exemple #14
0
    def setUpClass(cls):
        #Criando dados ficticios no mock
        partidoTest1 = models.Partido(nome='PMDB', numero='40')
        partidoTest2 = models.Partido(nome='PT', numero='13')
        partidoTest3 = models.Partido(nome='PSDB', numero='23')

        partidoTest1.save()
        partidoTest2.save()
        partidoTest3.save()

        parlamentarTest1 = models.Parlamentar(id_parlamentar='',
                                              nome='Ivandro Cunha Lima',
                                              genero='')
        parlamentarTest2 = models.Parlamentar(id_parlamentar='',
                                              nome='Fernando Ferro',
                                              genero='')
        parlamentarTest3 = models.Parlamentar(id_parlamentar='',
                                              nome='Humberto Costa',
                                              genero='')

        parlamentarTest1.save()
        parlamentarTest2.save()
        parlamentarTest3.save()

        casa_legislativaTest1 = models.CasaLegislativa(
            nome='Camara dos Deputados',
            nome_curto='cdep',
            esfera='FEDERAL',
            local='',
            atualizacao='2012-06-01')

        casa_legislativaTest2 = models.CasaLegislativa(
            nome='Camara Municipal de Sao Paulo',
            nome_curto='cmsp',
            esfera='MUNICIPAL',
            local='Sao Paulo - SP',
            atualizacao='2012-12-31')

        casa_legislativaTest1.save()
        casa_legislativaTest2.save()

        legislaturaTest1 = models.Legislatura(
            parlamentar=parlamentarTest1,
            casa_legislativa=casa_legislativaTest1,
            inicio='2004-01-01',
            fim='2012-07-01',
            partido=partidoTest1,
            localidade='PB')
        legislaturaTest1.save()

        proposicaoTest1 = models.Proposicao()
        proposicaoTest1.id_prop = '5555'
        proposicaoTest1.sigla = 'PL'
        proposicaoTest1.numero = '4520'
        proposicaoTest1.casa_legislativa = casa_legislativaTest1
        proposicaoTest1.save()

        votacaoTest1 = models.Votacao(id_vot=' 12345',
                                      descricao='Teste da votacao',
                                      data='1900-12-05',
                                      resultado='Teste',
                                      proposicao=proposicaoTest1)
        votacaoTest1.save()

        votoTest1 = models.Voto(votacao=votacaoTest1,
                                legislatura=legislaturaTest1,
                                opcao='TESTE')
        votoTest1.save()

        #Exportando dados do mock para os xml
        exportar.serialize_partido()
        exportar.serialize_parlamentar()
        exportar.serialize_casa_legislativa()
        exportar.serialize_legislatura()
        exportar.serialize_proposicao()
        exportar.serialize_votacao()
        exportar.serialize_voto()

        #Deletando os registros do mock
        partidoTest1.delete()
        partidoTest2.delete()
        partidoTest3.delete()

        parlamentarTest1.delete()
        parlamentarTest2.delete()
        parlamentarTest3.delete()

        casa_legislativaTest1.delete()
        casa_legislativaTest2.delete()

        legislaturaTest1.delete()

        proposicaoTest1.delete()

        votacaoTest1.delete()

        votoTest1.delete()
    def carrega_xml(self, nome_curto):
        diretorio = RESOURCES_FOLDER + nome_curto + '.xml'
        try:
            tree = etree.parse(diretorio)
            root = tree.getroot()
        except Exception:
            print "Xml não encontrado"
            return None

        models.CasaLegislativa.deleta_casa(nome_curto)
        print "Voltei"

        casaLegislativa = models.CasaLegislativa()
        casaLegislativa.nome_curto = root.attrib.get("nome_curto")
        #if(models.CasaLegislativa.objects.get(nome_curto = casaLegislativa.nome_curto)):
        #models.deleta_casa(casaLegislativa.nome_curto)

        casaLegislativa.nome = root.attrib.get("nome")
        casaLegislativa.esfera = root.attrib.get("esfera")
        casaLegislativa.local = root.attrib.get("local")
        casaLegislativa.atualizacao = root.attrib.get("atualizacao")
        casaLegislativa.save()

        for child_proposicao in root.iter("Proposicao"):

            proposicao = models.Proposicao()
            proposicao.casa_legislativa = casaLegislativa
            proposicao.id_prop = child_proposicao.attrib.get("id_prop")
            proposicao.sigla = child_proposicao.attrib.get("sigla")
            proposicao.numero = child_proposicao.attrib.get("numero")
            proposicao.ano = child_proposicao.attrib.get("ano")
            proposicao.ementa = child_proposicao.attrib.get("ementa")
            proposicao.descricao = child_proposicao.attrib.get("descricao")
            proposicao.indexacao = child_proposicao.attrib.get("indexacao")
            if (child_proposicao.attrib.get("data_apresentacao") == "None"):
                #Valor default caso a data venha em branco
                proposicao.data_apresentacao = "1900-01-01"
                proposicao.save()
            else:
                proposicao.data_apresentacao = child_proposicao.attrib.get(
                    "data_apresentacao")
                proposicao.save()

            #Pega a filha da subarvore que está sendo percorrida.
            for child_votacao in child_proposicao.findall("Votacao"):

                votacao = models.Votacao()
                votacao.proposicao = proposicao
                votacao.id_votacao = child_votacao.attrib.get("id_votacao")
                votacao.id_vot = child_votacao.attrib.get("id_vot")
                votacao.descricao = child_votacao.attrib.get("descricao")
                votacao.data = child_votacao.attrib.get("data")
                votacao.resultado = child_votacao.attrib.get("resultado")
                votacao.save()
                #self.verifica_votacao = True

                for child_voto in child_votacao.findall("Voto"):

                    partido = models.Partido()
                    partido.numero = child_voto.attrib.get("numero")
                    partido.nome = child_voto.attrib.get("partido")
                    partido_existente = models.Partido.objects.filter(
                        numero=partido.numero, nome=partido.nome)
                    if len(partido_existente) > 0:
                        partido = partido_existente[0]
                    else:
                        partido.save()

                    parlamentar = models.Parlamentar()
                    parlamentar.nome = child_voto.attrib.get("nome")
                    parlamentar.id_parlamentar = child_voto.attrib.get(
                        "id_parlamentar")
                    parlamentar.genero = child_voto.attrib.get("genero")
                    parlamentar_existente = models.Parlamentar.objects.filter(
                        nome=parlamentar.nome,
                        id_parlamentar=parlamentar.id_parlamentar,
                        genero=parlamentar.genero)
                    if len(parlamentar_existente) > 0:
                        parlamentar = parlamentar_existente[0]
                    else:
                        parlamentar.save()

                    legislatura = models.Legislatura()
                    legislatura.partido = partido
                    legislatura.parlamentar = parlamentar
                    legislatura.casa_legislativa = casaLegislativa
                    legislatura.inicio = child_voto.attrib.get("inicio")
                    legislatura.fim = child_voto.attrib.get("fim")
                    legislatura.localidade = child_voto.attrib.get(
                        "localidade")
                    if legislatura.localidade == None:
                        legislatura.localidade = ""
                    else:
                        legislatura.localidade = "" + legislatura.localidade
                    legislatura_existente = models.Legislatura.objects.filter(
                        partido=legislatura.partido,
                        parlamentar=legislatura.parlamentar,
                        casa_legislativa=legislatura.casa_legislativa,
                        inicio=legislatura.inicio,
                        fim=legislatura.fim)
                    if len(legislatura_existente) > 0:
                        legislatura = legislatura_existente[0]
                    else:
                        legislatura.save()

                    voto = models.Voto()
                    voto.votacao = votacao
                    voto.legislatura = legislatura
                    voto.opcao = child_voto.attrib.get("opcao")
                    voto.save()
Exemple #16
0
    def setUpClass(cls):
        """Method to set responsible for what is needed to run the tests. 
        In this case, the creation of objects in the test bank."""

        testParty1 = models.Partido(nome='PMDB', numero='40')
        testParty2 = models.Partido(nome='PT', numero='13')
        partyTest3 = models.Partido(nome='PSDB', numero='23')
        testParty1.save()
        testParty2.save()
        partyTest3.save()

        parliamentaryTest1 = models.Parlamentar(id_parlamentar='',
                                                nome='Ivandro Cunha Lima',
                                                genero='')
        parliamentaryTest2 = models.Parlamentar(id_parlamentar='',
                                                nome='Fernando Ferro',
                                                genero='')
        parliamentaryTest3 = models.Parlamentar(id_parlamentar='',
                                                nome='Humberto Costa',
                                                genero='')

        parliamentaryTest1.save()
        parliamentaryTest2.save()
        parliamentaryTest3.save()

        legislative_houseTest1 = models.CasaLegislativa(
            nome='Camara dos Deputados',
            nome_curto='cdep',
            esfera='FEDERAL',
            local='',
            atualizacao='2012-06-01')

        legislative_houseTest2 = models.CasaLegislativa(
            nome='Camara Municipal de Sao Paulo',
            nome_curto='cmsp',
            esfera='MUNICIPAL',
            local='Sao Paulo - SP',
            atualizacao='2012-12-31')

        legislative_houseTest1.save()
        legislative_houseTest2.save()

        legislatureTest1 = models.Legislatura(
            parlamentar=parliamentaryTest1,
            casa_legislativa=legislative_houseTest1,
            inicio='2004-01-01',
            fim='2012-07-01',
            partido=testParty1,
            localidade='PB')
        legislatureTest1.save()

        propositionTest1 = models.Proposicao()
        propositionTest1.id_prop = '5555'
        propositionTest1.sigla = 'PL'
        propositionTest1.numero = '4520'
        propositionTest1.casa_legislativa = legislative_houseTest1
        propositionTest1.save()

        votingTest1 = models.Votacao(id_vot=' 12345',
                                     descricao='Teste da votacao',
                                     data='1900-12-05',
                                     resultado='Teste',
                                     proposicao=propositionTest1)
        votingTest1.save()

        voteTest1 = models.Voto(votacao=votingTest1,
                                legislatura=legislatureTest1,
                                opcao='TESTE')
        voteTest1.save()

        exportar.main()
    def setUpClass(cls):

        # Creating dummy data in mock:
        partyTest1 = models.Partido(nome='PMDB', numero='40')
        partyTest2 = models.Partido(nome='PT', numero='13')
        partyTest3 = models.Partido(nome='PSDB', numero='23')

        partyTest1.save()
        partyTest2.save()
        partyTest3.save()

        parliamentarianTest1 = models.Parlamentar(id_parlamentar='',
                                                  nome='Ivandro Cunha Lima',
                                                  genero='')
        parliamentarianTest2 = models.Parlamentar(id_parlamentar='',
                                                  nome='Fernando Ferro',
                                                  genero='')
        parliamentarianTest3 = models.Parlamentar(id_parlamentar='',
                                                  nome='Humberto Costa',
                                                  genero='')

        parliamentarianTest1.save()
        parliamentarianTest2.save()
        parliamentarianTest3.save()

        legislative_houseTest1 = models.CasaLegislativa(
            nome='Camara dos Deputados',
            nome_curto='cdep',
            esfera='FEDERAL',
            local='',
            atualizacao='2012-06-01')

        legislative_houseTest2 = models.CasaLegislativa(
            nome='Camara Municipal de Sao Paulo',
            nome_curto='cmsp',
            esfera='MUNICIPAL',
            local='Sao Paulo - SP',
            atualizacao='2012-12-31')

        legislative_houseTest1.save()
        legislative_houseTest2.save()

        legislatureTest1 = models.Legislatura(
            parlamentar=parliamentarianTest1,
            casa_legislativa=legislative_houseTest1,
            inicio='2004-01-01',
            fim='2012-07-01',
            partido=partyTest1,
            localidade='PB')
        legislatureTest1.save()

        propositionTest1 = models.Proposicao()
        propositionTest1.id_prop = '5555'
        propositionTest1.sigla = 'PL'
        propositionTest1.numero = '4520'
        propositionTest1.casa_legislativa = legislative_houseTest1
        propositionTest1.save()

        votingTest1 = models.Votacao(id_vot=' 12345',
                                     descricao='Teste da votacao',
                                     data='1900-12-05',
                                     resultado='Teste',
                                     proposicao=propositionTest1)
        votingTest1.save()

        voteTest1 = models.Voto(votacao=votingTest1,
                                legislatura=legislatureTest1,
                                opcao='TESTE')
        voteTest1.save()

        # Exporting the mocks's data to XMLs:
        exportar.serialize_partido()
        exportar.serialize_parlamentar()
        exportar.serialize_casa_legislativa()
        exportar.serialize_legislatura()
        exportar.serialize_proposicao()
        exportar.serialize_votacao()
        exportar.serialize_voto()

        # Deleting records of mock:
        partyTest1.delete()
        partyTest2.delete()
        partyTest3.delete()

        parliamentarianTest1.delete()
        parliamentarianTest2.delete()
        parliamentarianTest3.delete()

        legislative_houseTest1.delete()
        legislative_houseTest2.delete()

        legislatureTest1.delete()

        propositionTest1.delete()

        votingTest1.delete()

        voteTest1.delete()
    def carrega_xml(self, short_name):
        directory = RESOURCES_FOLDER + short_name + '.xml'
        try:
            tree = etree.parse(directory)
            root = tree.getroot()
        except Exception:
            logger.error("Arquivo não encontrado: %s.xml" % short_name)
            print "Xml não encontrado"
            return None

        models.CasaLegislativa.remove_house(short_name)
        print "Voltei"

        legislativeHouse = models.CasaLegislativa()
        legislativeHouse.nome_curto = root.attrib.get("short_name")
        legislativeHouse.nome = root.attrib.get("nome")
        legislativeHouse.esfera = root.attrib.get("esfera")
        legislativeHouse.local = root.attrib.get("local")
        legislativeHouse.atualizacao = root.attrib.get("atualizacao")
        legislativeHouse.save()

        for child_proposition in root.iter("Proposicao"):

            proposition = models.Proposicao()
            proposition.casa_legislativa = legislativeHouse
            proposition.id_prop = child_proposition.attrib.get("id_prop")
            proposition.sigla = child_proposition.attrib.get("sigla")
            proposition.numero = child_proposition.attrib.get("numero")
            proposition.ano = child_proposition.attrib.get("ano")
            proposition.ementa = child_proposition.attrib.get("ementa")
            proposition.descricao = child_proposition.attrib.get("descricao")
            proposition.indexacao = child_proposition.attrib.get("indexacao")

            if (child_proposition.attrib.get("data_apresentacao") == "None"):

                # Default value if the date comes in white
                proposition.data_apresentacao = "1900-01-01"
                proposition.save()
            else:
                proposition.data_apresentacao = child_proposition.attrib.get(
                    "data_apresentacao")
                proposition.save()

            # Get the daughter of the subtree being traversed.
            for child_voting in child_proposition.findall("Votacao"):

                voting = models.Votacao()
                voting.proposicao = proposition
                voting.id_votacao = child_voting.attrib.get("id_votacao")
                voting.id_vot = child_voting.attrib.get("id_vot")
                voting.descricao = child_voting.attrib.get("descricao")
                voting.data = child_voting.attrib.get("data")
                voting.resultado = child_voting.attrib.get("resultado")
                voting.save()

                for child_vote in child_voting.findall("Voto"):

                    party = models.Partido()
                    party.numero = child_vote.attrib.get("numero")
                    party.nome = child_vote.attrib.get(
                        "search_political_party")
                    partido_existente = models.Partido.objects.filter(
                        numero=party.numero, nome=party.nome)

                    if len(partido_existente) > 0:
                        party = partido_existente[0]
                    else:
                        party.save()

                    parliamentarian = models.Parlamentar()
                    parliamentarian.nome = child_vote.attrib.get("nome")
                    parliamentarian.id_parlamentar = child_vote.attrib.get(
                        "id_parlamentar")
                    parliamentarian.genero = child_vote.attrib.get("genero")
                    existing_parliamentarian = models.Parlamentar.objects.filter(
                        nome=parliamentarian.nome,
                        id_parlamentar=parliamentarian.id_parlamentar,
                        genero=parliamentarian.genero)

                    if len(existing_parliamentarian) > 0:
                        parliamentarian = existing_parliamentarian[0]
                    else:
                        parliamentarian.save()

                    legislature = models.Legislatura()
                    legislature.partido = party
                    legislature.parlamentar = parliamentarian
                    legislature.casa_legislativa = legislativeHouse
                    legislature.inicio = child_vote.attrib.get("inicio")
                    legislature.fim = child_vote.attrib.get("fim")
                    legislature.localidade = child_vote.attrib.get(
                        "localidade")

                    if legislature.localidade is None:
                        legislature.localidade = ""
                    else:
                        legislature.localidade = "" + legislature.localidade
                    existing_legislature = models.Legislatura.objects.filter(
                        party=legislature.partido,
                        parliamentarian=legislature.parlamentar,
                        legislative_house=legislature.casa_legislativa,
                        init=legislature.inicio,
                        fim=legislature.fim)

                    if len(existing_legislature) > 0:
                        legislature = existing_legislature[0]
                    else:
                        legislature.save()

                    vote = models.Voto()
                    vote.votacao = voting
                    vote.legislatura = legislature
                    vote.opcao = child_vote.attrib.get("opcao")
                    vote.save()