def adjust_participacao(new, old): composicao = Composicao() composicao.comissao, composicao.periodo = [ get_fk_related(Composicao._meta.get_field(name), value) for name, value in (('comissao', old.cod_comissao), ('periodo', old.cod_periodo_comp))] # check if there is already an "equal" one in the db already_created = Composicao.objects.filter( comissao=composicao.comissao, periodo=composicao.periodo) if already_created: assert len(already_created) == 1 # we must never have made 2 copies [composicao] = already_created else: composicao.save() new.composicao = composicao
def adjust_participacao(new, old): comp = Composicao.objects.filter(comissao_id=old.cod_comissao, periodo_id=old.cod_periodo_comp) if comp.exists(): if comp.count() > 1: raise Exception("Existe mais de uma composição registrada") comp = comp.first() else: comp = Composicao() comp.comissao_id = old.cod_comissao comp.periodo_id = old.cod_periodo_comp comp.save() new.composicao_id = comp.id new.parlamentar_id = old.cod_parlamentar new.cargo_id = old.cod_cargo new.titular = old.ind_titular new.data_designacao = old.dat_designacao new.data_desligamento = old.dat_desligamento new.motivo_desligamento = old.des_motivo_desligamento new.observacao = old.obs_composicao