From 803f3b05cbdc9bdaae79f733a474b72136b4806d Mon Sep 17 00:00:00 2001 From: VictorFabreF Date: Tue, 6 Feb 2018 17:43:36 -0200 Subject: [PATCH] Fix --- sapl/comissoes/forms.py | 22 ++++++++++------------ sapl/comissoes/views.py | 17 ++++++----------- 2 files changed, 16 insertions(+), 23 deletions(-) diff --git a/sapl/comissoes/forms.py b/sapl/comissoes/forms.py index b54da78bf..b195dc772 100644 --- a/sapl/comissoes/forms.py +++ b/sapl/comissoes/forms.py @@ -23,11 +23,9 @@ class ParticipacaoForm(forms.ModelForm): def __init__(self, user=None, **kwargs): super(ParticipacaoForm, self).__init__(**kwargs) - if self.instance: - comissao = kwargs['initial'] - comissao_pk = int(comissao['parent_pk']) - composicao = Composicao.objects.get(id=comissao_pk) - participantes = composicao.participacao_set.all() + import ipdb; ipdb.set_trace() + if self.instance.pk: + participantes = self.instance.composicao.participacao_set.all() id_part = [p.parlamentar.id for p in participantes] else: id_part = [] @@ -36,12 +34,12 @@ class ParticipacaoForm(forms.ModelForm): parlamentares = Mandato.objects.filter(qs, parlamentar__ativo=True - ).prefetch_related('parlamentar').\ - values_list('parlamentar', - flat=True).distinct() + ).prefetch_related('parlamentar'). \ + values_list('parlamentar', + flat=True).distinct() - qs = Parlamentar.objects.filter(id__in=parlamentares).distinct().\ - exclude(id__in=id_part) + qs = Parlamentar.objects.filter(id__in=parlamentares).distinct(). \ + exclude(id__in=id_part) eligible = self.verifica() result = list(set(qs) & set(eligible)) if not cmp(result, eligible): # se igual a 0 significa que o qs e o eli são iguais! @@ -52,7 +50,7 @@ class ParticipacaoForm(forms.ModelForm): self.fields['parlamentar'].queryset = qs def create_participacao(self): - composicao = Composicao.objects.get(id=self.initial['parent_pk']) + composicao = self.instance.composicao data_inicio_comissao = composicao.periodo.data_inicio data_fim_comissao = composicao.periodo.data_fim q1 = Q(data_fim_mandato__isnull=False, @@ -71,7 +69,7 @@ class ParticipacaoForm(forms.ModelForm): return self.cleaned_data def verifica(self): - composicao = Composicao.objects.get(id=self.initial['parent_pk']) + composicao = self.instance.composicao participantes = composicao.participacao_set.all() participantes_id = [p.parlamentar.id for p in participantes] parlamentares = Parlamentar.objects.all().exclude(id__in=participantes_id).order_by('nome_completo') diff --git a/sapl/comissoes/views.py b/sapl/comissoes/views.py index c84bb6b4a..1f286cec7 100644 --- a/sapl/comissoes/views.py +++ b/sapl/comissoes/views.py @@ -29,10 +29,10 @@ TipoComissaoCrud = CrudAux.build( class ParticipacaoCrud(MasterDetailCrud): model = Participacao - parent_field = 'composicao__comissao' + parent_field = 'composicao' public = [RP_DETAIL, ] ListView = None - is_m2m = True + # is_m2m = True link_return_to_parent_field = True class BaseMixin(MasterDetailCrud.BaseMixin): @@ -41,19 +41,14 @@ class ParticipacaoCrud(MasterDetailCrud): class CreateView(MasterDetailCrud.CreateView): form_class = ParticipacaoForm - def get_initial(self): - initial = super().get_initial() - initial['parent_pk'] = self.kwargs['pk'] - return initial + # def get_initial(self): + # initial = super().get_initial() + # initial['parent_pk'] = self.kwargs['pk'] + # return initial class UpdateView(MasterDetailCrud.UpdateView): form_class = ParticipacaoForm - def get_initial(self): - initial = super().get_initial() - initial['parent_pk'] = self.kwargs['pk'] - return initial - class ComposicaoCrud(MasterDetailCrud): model = Composicao