diff --git a/sapl/sessao/urls.py b/sapl/sessao/urls.py index 3509a5117..94d5d4219 100644 --- a/sapl/sessao/urls.py +++ b/sapl/sessao/urls.py @@ -36,7 +36,8 @@ from sapl.sessao.views import (AdicionarVariasMateriasExpediente, VotacaoEmBlocoSimbolicaView, VotacaoEmBlocoNominalView, recuperar_nome_tipo_sessao, ExpedienteLeituraView, - OrdemDiaLeituraView) + OrdemDiaLeituraView, + retirar_leitura) from .apps import AppConfig @@ -196,5 +197,8 @@ urlpatterns = [ ExpedienteLeituraView.as_view(), name='leituraexp'), url(r'^sessao/(?P\d+)/matordemdia/leitura/(?P\d+)/(?P\d+)$', OrdemDiaLeituraView.as_view(), name='leituraod'), + + url(r'^sessao/(?P\d+)/(?P\d+)/(?P\d+)/retirar-leitura$', + retirar_leitura, name='retirar_leitura'), ] diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index 23348f751..373985eea 100755 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -4425,16 +4425,12 @@ class AbstractLeituraView(FormView): return url def cancel_url(self): - if self.expediente: - ordem_expediente = ExpedienteMateria.objects.get(id=self.kwargs['oid']) - RegistroLeitura.objects.filter(materia=ordem_expediente.materia, expediente=ordem_expediente).delete() - else: - ordem_expediente = OrdemDia.objects.get(id=self.kwargs['oid']) - RegistroLeitura.objects.filter(materia=ordem_expediente.materia, ordem=ordem_expediente).delete() - ordem_expediente.resultado = "" - ordem_expediente.votacao_aberta = False - ordem_expediente.save() - return self.get_success_url() + url = reverse('sapl.sessao:retirar_leitura', + kwargs={ + 'pk': self.kwargs['pk'], + 'iso': 1 if not self.expediente else 0, + 'oid': self.kwargs['oid']}) + return url class ExpedienteLeituraView(AbstractLeituraView): @@ -4442,4 +4438,25 @@ class ExpedienteLeituraView(AbstractLeituraView): class OrdemDiaLeituraView(AbstractLeituraView): - expediente = False \ No newline at end of file + expediente = False + + +@permission_required('sessao.change_expedientemateria', + 'sessao.change_ordemdia') +def retirar_leitura(request, pk, iso, oid): + is_ordem = bool(int(iso)) + if not is_ordem: + ordem_expediente = ExpedienteMateria.objects.get(id=oid) + RegistroLeitura.objects.filter(materia=ordem_expediente.materia, expediente=ordem_expediente).delete() + succ_url = reverse('sapl.sessao:expedientemateria_list', + kwargs={'pk': pk}) + else: + ordem_expediente = OrdemDia.objects.get(id=oid) + RegistroLeitura.objects.filter(materia=ordem_expediente.materia, ordem=ordem_expediente).delete() + succ_url = reverse('sapl.sessao:ordemdia_list', + kwargs={'pk': pk}) + ordem_expediente.resultado = "" + ordem_expediente.votacao_aberta = False + ordem_expediente.save() + + return HttpResponseRedirect(succ_url) \ No newline at end of file diff --git a/sapl/templates/painel/index.html b/sapl/templates/painel/index.html index 070add376..a7d08aeda 100644 --- a/sapl/templates/painel/index.html +++ b/sapl/templates/painel/index.html @@ -99,6 +99,7 @@

Matéria em Votação

+