Browse Source

Fix

pull/1696/head
VictorFabreF 8 years ago
parent
commit
803f3b05cb
  1. 22
      sapl/comissoes/forms.py
  2. 17
      sapl/comissoes/views.py

22
sapl/comissoes/forms.py

@ -23,11 +23,9 @@ class ParticipacaoForm(forms.ModelForm):
def __init__(self, user=None, **kwargs): def __init__(self, user=None, **kwargs):
super(ParticipacaoForm, self).__init__(**kwargs) super(ParticipacaoForm, self).__init__(**kwargs)
if self.instance: import ipdb; ipdb.set_trace()
comissao = kwargs['initial'] if self.instance.pk:
comissao_pk = int(comissao['parent_pk']) participantes = self.instance.composicao.participacao_set.all()
composicao = Composicao.objects.get(id=comissao_pk)
participantes = composicao.participacao_set.all()
id_part = [p.parlamentar.id for p in participantes] id_part = [p.parlamentar.id for p in participantes]
else: else:
id_part = [] id_part = []
@ -36,12 +34,12 @@ class ParticipacaoForm(forms.ModelForm):
parlamentares = Mandato.objects.filter(qs, parlamentares = Mandato.objects.filter(qs,
parlamentar__ativo=True parlamentar__ativo=True
).prefetch_related('parlamentar').\ ).prefetch_related('parlamentar'). \
values_list('parlamentar', values_list('parlamentar',
flat=True).distinct() flat=True).distinct()
qs = Parlamentar.objects.filter(id__in=parlamentares).distinct().\ qs = Parlamentar.objects.filter(id__in=parlamentares).distinct(). \
exclude(id__in=id_part) exclude(id__in=id_part)
eligible = self.verifica() eligible = self.verifica()
result = list(set(qs) & set(eligible)) 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! 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 self.fields['parlamentar'].queryset = qs
def create_participacao(self): 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_inicio_comissao = composicao.periodo.data_inicio
data_fim_comissao = composicao.periodo.data_fim data_fim_comissao = composicao.periodo.data_fim
q1 = Q(data_fim_mandato__isnull=False, q1 = Q(data_fim_mandato__isnull=False,
@ -71,7 +69,7 @@ class ParticipacaoForm(forms.ModelForm):
return self.cleaned_data return self.cleaned_data
def verifica(self): def verifica(self):
composicao = Composicao.objects.get(id=self.initial['parent_pk']) composicao = self.instance.composicao
participantes = composicao.participacao_set.all() participantes = composicao.participacao_set.all()
participantes_id = [p.parlamentar.id for p in participantes] participantes_id = [p.parlamentar.id for p in participantes]
parlamentares = Parlamentar.objects.all().exclude(id__in=participantes_id).order_by('nome_completo') parlamentares = Parlamentar.objects.all().exclude(id__in=participantes_id).order_by('nome_completo')

17
sapl/comissoes/views.py

@ -29,10 +29,10 @@ TipoComissaoCrud = CrudAux.build(
class ParticipacaoCrud(MasterDetailCrud): class ParticipacaoCrud(MasterDetailCrud):
model = Participacao model = Participacao
parent_field = 'composicao__comissao' parent_field = 'composicao'
public = [RP_DETAIL, ] public = [RP_DETAIL, ]
ListView = None ListView = None
is_m2m = True # is_m2m = True
link_return_to_parent_field = True link_return_to_parent_field = True
class BaseMixin(MasterDetailCrud.BaseMixin): class BaseMixin(MasterDetailCrud.BaseMixin):
@ -41,19 +41,14 @@ class ParticipacaoCrud(MasterDetailCrud):
class CreateView(MasterDetailCrud.CreateView): class CreateView(MasterDetailCrud.CreateView):
form_class = ParticipacaoForm form_class = ParticipacaoForm
def get_initial(self): # def get_initial(self):
initial = super().get_initial() # initial = super().get_initial()
initial['parent_pk'] = self.kwargs['pk'] # initial['parent_pk'] = self.kwargs['pk']
return initial # return initial
class UpdateView(MasterDetailCrud.UpdateView): class UpdateView(MasterDetailCrud.UpdateView):
form_class = ParticipacaoForm form_class = ParticipacaoForm
def get_initial(self):
initial = super().get_initial()
initial['parent_pk'] = self.kwargs['pk']
return initial
class ComposicaoCrud(MasterDetailCrud): class ComposicaoCrud(MasterDetailCrud):
model = Composicao model = Composicao

Loading…
Cancel
Save