diff --git a/sapl/sessao/forms.py b/sapl/sessao/forms.py index d70353475..90f8e6f59 100644 --- a/sapl/sessao/forms.py +++ b/sapl/sessao/forms.py @@ -431,6 +431,12 @@ class VotacaoForm(forms.Form): total_votos = forms.CharField(required=False, label='total') resultado_votacao = forms.CharField(label='Resultado da Votação') + def save(self, commit=False): + votacao = super(VotacaoForm, self).save(commit) + votacao.materia = self.cleaned_data['materia'] + votacao.save() + return votacao + class VotacaoNominalForm(forms.Form): resultado_votacao = forms.ModelChoiceField(label='Resultado da Votação', diff --git a/sapl/sessao/urls.py b/sapl/sessao/urls.py index bd1e5fcae..bde5261a6 100644 --- a/sapl/sessao/urls.py +++ b/sapl/sessao/urls.py @@ -137,6 +137,10 @@ urlpatterns = [ VotacaoEditView.as_view(), name='votacaosecretaedit'), url(r'^sessao/(?P\d+)/matordemdia/votsimb/(?P\d+)/(?P\d+)$', VotacaoView.as_view(), name='votacaosimbolica'), + + url(r'^sessao/(?P\d+)/matordemdia/votsimbbloco/$', + VotacaoView.as_view(), name='votacaosimbolicabloco'), + url(r'^sessao/(?P\d+)/matordemdia/votsimb' '/view/(?P\d+)/(?P\d+)$', VotacaoEditView.as_view(), name='votacaosimbolicaedit'), diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index 8d46c5181..db33e970f 100755 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -3343,42 +3343,54 @@ class VotacaoEmBlocoOrdemDia(VotacaoEmBlocoExpediente): def post(self, request, *args, **kwargs): marcadas = request.POST.getlist('materia_id') username = request.user.username + tipo_votacao = request.POST['tipo_votacao_'] - for m in marcadas: - try: - tipo_votacao = request.POST['tipo_votacao_%s' % m] - msg = _('%s adicionado(a) com sucesso!' - % MateriaLegislativa.objects.get(id=m)) - messages.add_message(request, messages.SUCCESS, msg) - self.logger.debug('user=' + username + '. MateriaLegislativa de id={} adicionado(a) com sucesso!'.format(m)) - except MultiValueDictKeyError: - msg = _('Formulário Inválido. Você esqueceu de selecionar ' + - 'o tipo de votação de %s' % - MateriaLegislativa.objects.get(id=m)) - messages.add_message(request, messages.ERROR, msg) - self.logger.error('user=' + username + '. Formulário Inválido. Você esqueceu de selecionar ' - 'o tipo de votação de MateriaLegislativa com id={}'.format(m)) - - return self.get(request, self.kwargs) + qs = self.get_queryset() - if tipo_votacao: - lista_materias_ordem_dia = OrdemDia.objects.filter( - sessao_plenaria_id=self.kwargs[ - 'pk']) + qs = qs.filter(id__in=marcadas).distinct() - materia = MateriaLegislativa.objects.get(id=m) + kwargs.update({ + 'queryset': qs, + 'tipo_votacao': tipo_votacao + }) - ordem_dia = OrdemDia() - ordem_dia.sessao_plenaria_id = self.kwargs['pk'] - ordem_dia.materia_id = materia.id - if lista_materias_ordem_dia: - posicao = lista_materias_ordem_dia.last().numero_ordem + 1 - ordem_dia.numero_ordem = posicao - else: - ordem_dia.numero_ordem = 1 - ordem_dia.data_ordem = timezone.now() - ordem_dia.tipo_votacao = tipo_votacao - ordem_dia.save() + import pdb; pdb.set_trace() + + # for m in marcadas: + # try: + # tipo_votacao = request.POST['tipo_votacao_%s' % m] + # msg = _('%s adicionado(a) com sucesso!' + # % MateriaLegislativa.objects.get(id=m)) + # messages.add_message(request, messages.SUCCESS, msg) + # self.logger.debug('user=' + username + '. MateriaLegislativa de id={} adicionado(a) com sucesso!'.format(m)) + # except MultiValueDictKeyError: + # msg = _('Formulário Inválido. Você esqueceu de selecionar ' + + # 'o tipo de votação de %s' % + # MateriaLegislativa.objects.get(id=m)) + # messages.add_message(request, messages.ERROR, msg) + # self.logger.error('user=' + username + '. Formulário Inválido. Você esqueceu de selecionar ' + # 'o tipo de votação de MateriaLegislativa com id={}'.format(m)) + + # return self.get(request, self.kwargs) + + # if tipo_votacao: + # lista_materias_ordem_dia = OrdemDia.objects.filter( + # sessao_plenaria_id=self.kwargs[ + # 'pk']) + + # materia = MateriaLegislativa.objects.get(id=m) + + # ordem_dia = OrdemDia() + # ordem_dia.sessao_plenaria_id = self.kwargs['pk'] + # ordem_dia.materia_id = materia.id + # if lista_materias_ordem_dia: + # posicao = lista_materias_ordem_dia.last().numero_ordem + 1 + # ordem_dia.numero_ordem = posicao + # else: + # ordem_dia.numero_ordem = 1 + # ordem_dia.data_ordem = timezone.now() + # ordem_dia.tipo_votacao = tipo_votacao + # ordem_dia.save() return HttpResponseRedirect( - reverse('sapl.sessao:ordemdia_list', kwargs=self.kwargs)) \ No newline at end of file + reverse('sapl.sessao:votacaosimbolicabloco', kwargs=self.kwargs)) \ No newline at end of file