Browse Source

somente listar parlamentares ativos e do mandato atual em adicionar/editar comissões

pull/1658/head
Edward Ribeiro 8 years ago
committed by João Pedro Sconetto
parent
commit
f13c0b5ff8
  1. 30
      sapl/comissoes/forms.py
  2. 11
      sapl/comissoes/models.py
  3. 11
      sapl/comissoes/views.py

30
sapl/comissoes/forms.py

@ -0,0 +1,30 @@
from django import forms
from sapl.comissoes.models import Participacao
from sapl.parlamentares.models import Parlamentar, Legislatura, Mandato
class ParticipacaoForm(forms.ModelForm):
# composicao = forms.CharField(widget=forms.HiddenInput)
class Meta:
model = Participacao
# exclude = []
exclude = ['composicao']
def __init__(self, user=None, **kwargs):
super(ParticipacaoForm, self).__init__(**kwargs)
legislatura = Legislatura.objects.order_by('-data_inicio').first()
parlamentares = Mandato.objects.filter(legislatura=legislatura,
parlamentar__ativo=True
).prefetch_related('parlamentar').\
values_list('parlamentar',
flat=True)
qs = Parlamentar.objects.filter(id__in=parlamentares).distinct()
self.fields['parlamentar'].queryset = qs
def clean(self):
super(ParticipacaoForm, self).clean()
return self.cleaned_data

11
sapl/comissoes/models.py

@ -154,9 +154,14 @@ class Composicao(models.Model): # IGNORE
class Participacao(models.Model): # ComposicaoComissao
composicao = models.ForeignKey(Composicao,
related_name='participacao_set',
on_delete=models.PROTECT)
parlamentar = models.ForeignKey(Parlamentar, on_delete=models.PROTECT)
cargo = models.ForeignKey(CargoComissao, on_delete=models.PROTECT)
on_delete=models.PROTECT,
verbose_name=_('Composição'))
parlamentar = models.ForeignKey(Parlamentar,
on_delete=models.PROTECT,
verbose_name='Parlamentar')
cargo = models.ForeignKey(CargoComissao,
on_delete=models.PROTECT,
verbose_name='Cargo')
titular = models.BooleanField(
verbose_name=_('Titular'),
default=False,

11
sapl/comissoes/views.py

@ -4,6 +4,7 @@ from django.db.models import F
from django.views.decorators.clickjacking import xframe_options_exempt
from django.views.generic import ListView
from sapl.comissoes.forms import ParticipacaoForm
from sapl.crud.base import RP_DETAIL, RP_LIST, Crud, CrudAux, MasterDetailCrud
from sapl.materia.models import MateriaLegislativa, Tramitacao
@ -36,6 +37,16 @@ class ParticipacaoCrud(MasterDetailCrud):
class BaseMixin(MasterDetailCrud.BaseMixin):
list_field_names = ['composicao', 'parlamentar', 'cargo']
class CreateView(MasterDetailCrud.CreateView):
form_class = ParticipacaoForm
def get_initial(self):
initial = super().get_initial()
return initial
class UpdateView(MasterDetailCrud.UpdateView):
form_class = ParticipacaoForm
class ComposicaoCrud(MasterDetailCrud):
model = Composicao

Loading…
Cancel
Save