From b80d0ba0cf596626b704da3cc270657b65ef1842 Mon Sep 17 00:00:00 2001 From: Ulysses Lara Date: Wed, 26 Jun 2019 13:59:10 -0300 Subject: [PATCH] 2806 aprimorar ordem resumo (#2831) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Iniciando mudança de tela ordenar resumo * Melhorando visualização e resposta para usuario. * Apagando antiga maneira de ordenação de resumo * Corrigindo erros code climate Fix #2806 --- sapl/sessao/forms.py | 140 -------------------- sapl/sessao/urls.py | 7 +- sapl/sessao/views.py | 89 +++++++------ sapl/templates/sessao/resumo_ordenacao.html | 62 ++++++++- 4 files changed, 116 insertions(+), 182 deletions(-) diff --git a/sapl/sessao/forms.py b/sapl/sessao/forms.py index 9b3fc1f90..35fa8f574 100644 --- a/sapl/sessao/forms.py +++ b/sapl/sessao/forms.py @@ -739,146 +739,6 @@ class PautaSessaoFilterSet(SessaoPlenariaFilterSet): titulo = _('Pesquisa de Pauta de Sessão') -class ResumoOrdenacaoForm(forms.Form): - primeiro = forms.ChoiceField( - label='1°', - choices=ORDENACAO_RESUMO - ) - segundo = forms.ChoiceField( - label='2°', - choices=ORDENACAO_RESUMO - ) - terceiro = forms.ChoiceField( - label='3°', - choices=ORDENACAO_RESUMO - ) - quarto = forms.ChoiceField( - label='4°', - choices=ORDENACAO_RESUMO - ) - quinto = forms.ChoiceField( - label='5°', - choices=ORDENACAO_RESUMO - ) - sexto = forms.ChoiceField( - label='6°', - choices=ORDENACAO_RESUMO - ) - setimo = forms.ChoiceField( - label='7°', - choices=ORDENACAO_RESUMO - ) - oitavo = forms.ChoiceField( - label='8°', - choices=ORDENACAO_RESUMO - ) - nono = forms.ChoiceField( - label='9°', - choices=ORDENACAO_RESUMO - ) - decimo = forms.ChoiceField( - label='10°', - choices=ORDENACAO_RESUMO - ) - decimo_primeiro = forms.ChoiceField( - label='11°', - choices=ORDENACAO_RESUMO - ) - decimo_segundo = forms.ChoiceField( - label='12°', - choices=ORDENACAO_RESUMO - ) - decimo_terceiro = forms.ChoiceField( - label='13°', - choices=ORDENACAO_RESUMO - ) - decimo_quarto = forms.ChoiceField( - label='14°', - choices=ORDENACAO_RESUMO - ) - - def __init__(self, *args, **kwargs): - row1 = to_row( - [('primeiro', 12)]) - row2 = to_row( - [('segundo', 12)]) - row3 = to_row( - [('terceiro', 12)]) - row4 = to_row( - [('quarto', 12)]) - row5 = to_row( - [('quinto', 12)]) - row6 = to_row( - [('sexto', 12)]) - row7 = to_row( - [('setimo', 12)]) - row8 = to_row( - [('oitavo', 12)]) - row9 = to_row( - [('nono', 12)]) - row10 = to_row( - [('decimo', 12)]) - row11 = to_row( - [('decimo_primeiro', 12)]) - row12 = to_row( - [('decimo_segundo', 12)]) - row13 = to_row( - [('decimo_terceiro', 12)]) - row14 = to_row( - [('decimo_quarto', 12)] - ) - - self.helper = SaplFormHelper() - self.helper.layout = Layout( - Fieldset(_(''), - row1, row2, row3, row4, row5, - row6, row7, row8, row9, row10, - row11, row12, row13, row14, - form_actions(label='Atualizar')) - ) - - super().__init__(*args, **kwargs) - - def clean(self): - super(ResumoOrdenacaoForm, self).clean() - - if not self.is_valid(): - return self.cleaned_data - - cleaned_data = self.cleaned_data - - for c1 in cleaned_data: - i = 0 - for c2 in cleaned_data: - if cleaned_data[str(c1)] == cleaned_data[str(c2)]: - i = i + 1 - if i > 1: - raise ValidationError(_( - 'Não é possível ter campos repetidos')) - return self.cleaned_data - - def save(self): - ordenacao = ResumoOrdenacao.objects.get() - cleaned_data = self.cleaned_data - - ordenacao.primeiro = cleaned_data['primeiro'] - ordenacao.segundo = cleaned_data['segundo'] - ordenacao.terceiro = cleaned_data['terceiro'] - ordenacao.quarto = cleaned_data['quarto'] - ordenacao.quinto = cleaned_data['quinto'] - ordenacao.sexto = cleaned_data['sexto'] - ordenacao.setimo = cleaned_data['setimo'] - ordenacao.oitavo = cleaned_data['oitavo'] - ordenacao.nono = cleaned_data['nono'] - ordenacao.decimo = cleaned_data['decimo'] - ordenacao.decimo_primeiro = cleaned_data['decimo_primeiro'] - ordenacao.decimo_segundo = cleaned_data['decimo_segundo'] - ordenacao.decimo_terceiro = cleaned_data['decimo_terceiro'] - ordenacao.decimo_quarto = cleaned_data['decimo_quarto'] - - ordenacao.save() - - class JustificativaAusenciaForm(ModelForm): class Meta: diff --git a/sapl/sessao/urls.py b/sapl/sessao/urls.py index c570dfde8..9b58d274c 100644 --- a/sapl/sessao/urls.py +++ b/sapl/sessao/urls.py @@ -11,7 +11,7 @@ from sapl.sessao.views import (AdicionarVariasMateriasExpediente, PesquisarPautaSessaoView, PesquisarSessaoPlenariaView, PresencaOrdemDiaView, PresencaView, - ResumoOrdenacaoView, ResumoView, ResumoAtaView, RetiradaPautaCrud, SessaoCrud, + ResumoView, ResumoAtaView, RetiradaPautaCrud, SessaoCrud, TipoJustificativaCrud, TipoExpedienteCrud, TipoResultadoVotacaoCrud, TipoExpedienteCrud, TipoResultadoVotacaoCrud, TipoRetiradaPautaCrud, TipoSessaoCrud, VotacaoEditView, @@ -33,7 +33,8 @@ from sapl.sessao.views import (AdicionarVariasMateriasExpediente, renumerar_materias_expediente, sessao_legislativa_legislatura_ajax, VotacaoEmBlocoOrdemDia, VotacaoEmBlocoExpediente, - VotacaoEmBlocoSimbolicaView, VotacaoEmBlocoNominalView) + VotacaoEmBlocoSimbolicaView, VotacaoEmBlocoNominalView, + resumo_ordenacao) from .apps import AppConfig @@ -99,7 +100,7 @@ urlpatterns = [ url(r'^sistema/cargo-bancada/', include(CargoBancadaCrud.get_urls())), url(r'^sistema/resumo-ordenacao/', - ResumoOrdenacaoView.as_view(), + resumo_ordenacao, name='resumo_ordenacao'), url(r'^sessao/(?P\d+)/adicionar-varias-materias-expediente/', AdicionarVariasMateriasExpediente.as_view(), diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index 9372b5398..a04b55c49 100755 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -1,6 +1,6 @@ - import logging -from re import sub +from re import sub, search +import ast from django.contrib import messages from django.contrib.auth.decorators import permission_required @@ -22,6 +22,8 @@ from django.views.generic.base import RedirectView from django.views.generic.detail import DetailView from django.views.generic.edit import FormMixin from django_filters.views import FilterView +from django.shortcuts import render + from sapl.base.models import AppConfig as AppsAppConfig from sapl.crud.base import (RP_DETAIL, RP_LIST, Crud, CrudAux, @@ -41,7 +43,7 @@ from sapl.utils import show_results_filter_set, remover_acentos, get_client_ip, from .forms import (AdicionarVariasMateriasFilterSet, BancadaForm, ExpedienteForm, JustificativaAusenciaForm, OcorrenciaSessaoForm, ListMateriaForm, MesaForm, OradorExpedienteForm, OradorForm, PautaSessaoFilterSet, - PresencaForm, ResumoOrdenacaoForm, SessaoPlenariaFilterSet, + PresencaForm, SessaoPlenariaFilterSet, SessaoPlenariaForm, VotacaoEditForm, VotacaoForm, VotacaoNominalForm, RetiradaPautaForm, OradorOrdemDiaForm) from .models import (Bancada, CargoBancada, CargoMesa, @@ -1295,45 +1297,58 @@ def remove_parlamentar_composicao(request): {'msg': ( 'Selecione algum parlamentar para ser excluido!', 0)}) - -class ResumoOrdenacaoView(PermissionRequiredMixin, FormView): - template_name = 'sessao/resumo_ordenacao.html' - form_class = ResumoOrdenacaoForm - permission_required = {'sessao.change_resumoordenacao'} - - def get_tupla(self, tupla_key): +def get_tupla(tupla_key): for tupla in ORDENACAO_RESUMO: if tupla[0] == tupla_key: return tupla - def get_initial(self): - ordenacao = ResumoOrdenacao.objects.get_or_create()[0] +def resumo_ordenacao(request): + ordenacao = ResumoOrdenacao.objects.get_or_create()[0] + + initial = [ + get_tupla(ordenacao.primeiro), + get_tupla(ordenacao.segundo), + get_tupla(ordenacao.terceiro), + get_tupla(ordenacao.quarto), + get_tupla(ordenacao.quinto), + get_tupla(ordenacao.sexto), + get_tupla(ordenacao.setimo), + get_tupla(ordenacao.oitavo), + get_tupla(ordenacao.nono), + get_tupla(ordenacao.decimo), + get_tupla(ordenacao.decimo_primeiro), + get_tupla(ordenacao.decimo_segundo), + get_tupla(ordenacao.decimo_terceiro), + get_tupla(ordenacao.decimo_quarto) + ] + + context = { + 'ordenacao': initial + } + if request.method == 'GET': + return render(request, 'sessao/resumo_ordenacao.html', context) + elif request.method == 'POST': + ordenacao.primeiro = ast.literal_eval(request.POST['0'])[0] + ordenacao.segundo = ast.literal_eval(request.POST['1'])[0] + ordenacao.terceiro = ast.literal_eval(request.POST['2'])[0] + ordenacao.quarto = ast.literal_eval(request.POST['3'])[0] + ordenacao.quinto = ast.literal_eval(request.POST['4'])[0] + ordenacao.sexto = ast.literal_eval(request.POST['5'])[0] + ordenacao.setimo = ast.literal_eval(request.POST['6'])[0] + ordenacao.oitavo = ast.literal_eval(request.POST['7'])[0] + ordenacao.nono = ast.literal_eval(request.POST['8'])[0] + ordenacao.decimo = ast.literal_eval(request.POST['9'])[0] + ordenacao.decimo_primeiro =ast.literal_eval(request.POST['10'])[0] + ordenacao.decimo_segundo = ast.literal_eval(request.POST['11'])[0] + ordenacao.decimo_terceiro = ast.literal_eval(request.POST['12'])[0] + ordenacao.decimo_quarto = ast.literal_eval(request.POST['13'])[0] + ordenacao.save() + + msg = _('Ordem salva com sucesso.') + messages.add_message(request, messages.SUCCESS, msg) - initial = { - 'primeiro': self.get_tupla(ordenacao.primeiro), - 'segundo': self.get_tupla(ordenacao.segundo), - 'terceiro': self.get_tupla(ordenacao.terceiro), - 'quarto': self.get_tupla(ordenacao.quarto), - 'quinto': self.get_tupla(ordenacao.quinto), - 'sexto': self.get_tupla(ordenacao.sexto), - 'setimo': self.get_tupla(ordenacao.setimo), - 'oitavo': self.get_tupla(ordenacao.oitavo), - 'nono': self.get_tupla(ordenacao.nono), - 'decimo': self.get_tupla(ordenacao.decimo), - 'decimo_primeiro': self.get_tupla(ordenacao.decimo_primeiro), - 'decimo_segundo': self.get_tupla(ordenacao.decimo_segundo), - 'decimo_terceiro': self.get_tupla(ordenacao.decimo_terceiro), - 'decimo_quarto': self.get_tupla(ordenacao.decimo_quarto) - } - - return initial - - def get_success_url(self): - return reverse('sapl.base:sistema') - - def form_valid(self, form): - form.save() - return HttpResponseRedirect(self.get_success_url()) + return HttpResponseRedirect(reverse( + 'sapl.sessao:resumo_ordenacao')) def get_turno(turno): diff --git a/sapl/templates/sessao/resumo_ordenacao.html b/sapl/templates/sessao/resumo_ordenacao.html index 6146c6812..5c43e2057 100644 --- a/sapl/templates/sessao/resumo_ordenacao.html +++ b/sapl/templates/sessao/resumo_ordenacao.html @@ -1,4 +1,5 @@ -{% extends "crud/form.html" %} +{% extends "base.html" %} + {% load i18n %} {% load crispy_forms_tags %} @@ -7,7 +8,64 @@ {% endblock %} {% block base_content %} +
+ {% csrf_token %} +
+
+
+

Ordem

+
    + {% for item in ordenacao %} +
  • + {{forloop.counter}}º +
  • + {% endfor %} +
      +
+
+

Tópico

+
    + {% for item in ordenacao %} +
  • + + {{item.1}} + +
  • + {% endfor %} +
      +
+
+
+ + + + + -{% crispy form %} +
+ +{% endblock %} +{% block extra_js %} + + + {% endblock %}