Пример #1
0
def add_tel(tel_list, ddd, tel):
    ddd = ddd.strip()
    tel = tel.strip()
    if ddd and tel:
        tel = '%s%s' % (ddd, tel)
        tipo = get_tipo(tel)
        inst, _ = get_or_create(Telefone, numero=tel, tipo=tipo)
        session.commit()
        if not inst in tel_list:
            tel_list.append(inst)
        session.commit()
Пример #2
0
def main():
    # Iterando sobre as entradas no arquivo csv gerado à partir do dump
    # do banco de dados colhido durante a teia2010.
    #
    # Todos os campos que começam com "p_" são relativos ao projeto, já
    # os que começam com "r_", são relativos ao responsável e,
    # finalmente, os que começam com "e_" são relativos à entidade
    # proponente. Meio tosco, mas é um script utilitário que vai ser
    # usado apenas uma vez, então... let the hammer fall!
    
    for i in list(csv.reader(file('pontos_teia2010.csv')))[1:]:
        (_, _, _, _,
         p_tipo, p_tipo_convenio, p_nome,
         p_logradouro, p_num, p_complemento, p_bairro, p_cep, p_cidade, p_uf,
         p_ddd1, p_tel1, p_ddd2, p_tel2, p_email, p_blog,
         r_nome, r_email, r_ddd, r_tel,
         e_nome,
         e_logradouro, e_num, e_complemento, e_bairro, e_cep, e_cidade, e_uf,
         e_ddd1, e_tel1, e_ddd2, e_tel2, e_email, e_blog,
         data_cadastro, hora_cadastro, _
         ) = i

        # Criando a linha para a pessoa responsável pelo projeto e suas
        # relações
        responsavel, created = get_or_create(Pessoa, email=r_email)
        if created:
            responsavel.nome = clean_name(r_nome)
            add_tel(responsavel.telefones, r_ddd, r_tel)
            set_senha(responsavel, 'alabama')
            responsavel.endereco = get_or_create(Endereco, 
                logradouro="",
                numero="",
                complemento="",
                bairro="",
                cep="",
                cidade="",
                uf="")[0]
            

        # Criando a linha para a entidade responsável pelo projeto e
        # suas relações
        entidade = get_or_create(Entidade, nome=e_nome, email=e_email,
                                 website=e_blog)[0]
        
        entidade.endereco = get_or_create(Endereco, 
            logradouro=e_logradouro,
            numero=e_num,
            complemento=e_complemento,
            bairro=e_bairro,
            cep=e_cep,
            cidade=e_cidade,
            uf=e_uf)[0]

        add_tel(entidade.telefones, e_ddd1, e_tel1)
        add_tel(entidade.telefones, e_ddd2, e_tel2)

        # Finalmente, criando o projeto
        projeto = Projeto(
            nome=clean_name(p_nome),
            tipo=p_tipo,
            tipo_convenio=p_tipo_convenio,
            email=p_email,
            site=p_blog,
            entidade=entidade)

        projeto.responsavel = responsavel

        projeto.endereco_sede = get_or_create(Endereco, 
                logradouro=clean_name(p_logradouro),
                numero=p_num,
                complemento=p_complemento,
                bairro=clean_name(p_bairro),
                cep=p_cep,
                cidade=clean_name(p_cidade),
                uf=p_uf)[0]

        add_tel(projeto.telefones, p_ddd1, p_tel1)
        add_tel(projeto.telefones, p_ddd2, p_tel2)

        data_cadastro = data_cadastro.strip()
        hora_cadastro = hora_cadastro.strip()
        data = ''
        if data_cadastro:
            data = data_cadastro
            formato = '%Y-%m-%d'
        if data_cadastro and hora_cadastro:
            data += ' %s' % hora_cadastro
            formato += ' %H:%M:%S'
        if data:
            time_st = strptime(data, formato)
            projeto.data_cadastro = datetime(*tuple(time_st)[:6])

        session.commit()