Browse Source

2014 exclui tramitacao lote (#2020)

* Fix #2014

* Adiciona condicao para excluir
pull/2026/merge
Victor Fabre 7 years ago
committed by Edward
parent
commit
d055b2c86a
  1. 67
      sapl/materia/forms.py
  2. 5
      sapl/materia/urls.py
  3. 27
      sapl/materia/views.py
  4. 7
      sapl/templates/materia/em_lote/excluir_tramitacao.html
  5. 3
      sapl/templates/navbar.yaml

67
sapl/materia/forms.py

@ -32,7 +32,8 @@ from sapl.crispy_layout_mixin import (SaplFormLayout, form_actions, to_column,
to_row)
from sapl.materia.models import (AssuntoMateria, Autoria, MateriaAssunto,
MateriaLegislativa, Orgao, RegimeTramitacao,
TipoDocumento, TipoProposicao)
TipoDocumento, TipoProposicao, StatusTramitacao,
UnidadeTramitacao)
from sapl.norma.models import (LegislacaoCitada, NormaJuridica,
TipoNormaJuridica)
from sapl.parlamentares.models import Legislatura
@ -2032,3 +2033,67 @@ class FichaSelecionaForm(forms.Form):
form_actions(label='Gerar Impresso')
)
)
class ExcluirTramitacaoEmLote(forms.Form):
data_tramitacao = forms.DateField(required=True,
label=_('Data da Tramitação'))
unidade_tramitacao_local = forms.ModelChoiceField(label=_('Unidade Local'),
required=True,
queryset=UnidadeTramitacao.objects.all(),
empty_label='------')
unidade_tramitacao_destino = forms.ModelChoiceField(label=_('Unidade Destino'),
required=True,
queryset=UnidadeTramitacao.objects.all(),
empty_label='------')
status = forms.ModelChoiceField(label=_('Status'),
required=True,
queryset=StatusTramitacao.objects.all(),
empty_label='------')
def clean(self):
super(ExcluirTramitacaoEmLote, self).clean()
cleaned_data = self.cleaned_data
if not self.is_valid():
return cleaned_data
data_tramitacao = cleaned_data['data_tramitacao']
unidade_tramitacao_local = cleaned_data['unidade_tramitacao_local']
unidade_tramitacao_destino = cleaned_data['unidade_tramitacao_destino']
status = cleaned_data['status']
tramitacao_set = Tramitacao.objects.filter(data_tramitacao=data_tramitacao,
unidade_tramitacao_local=unidade_tramitacao_local,
unidade_tramitacao_destino=unidade_tramitacao_destino,
status=status)
if not tramitacao_set.exists():
raise forms.ValidationError(
_("Não existem tramitações com os dados informados."))
return cleaned_data
def __init__(self, *args, **kwargs):
super(ExcluirTramitacaoEmLote, self).__init__(*args, **kwargs)
row1 = to_row(
[('data_tramitacao', 6),
('status', 6),])
row2 = to_row(
[('unidade_tramitacao_local', 6),
('unidade_tramitacao_destino', 6)])
self.helper = FormHelper()
self.helper.layout = Layout(
Fieldset(_('Dados das Tramitações'),
row1,
row2,
HTML(" "),
form_actions(label='Excluir')
)
)

5
sapl/materia/urls.py

@ -23,7 +23,8 @@ from sapl.materia.views import (AcompanhamentoConfirmarView,
TipoFimRelatoriaCrud, TipoMateriaCrud,
TipoProposicaoCrud, TramitacaoCrud,
TramitacaoEmLoteView, UnidadeTramitacaoCrud,
proposicao_texto, recuperar_materia)
proposicao_texto, recuperar_materia,
ExcluirTramitacaoEmLoteView)
from sapl.norma.views import NormaPesquisaSimplesView
from .apps import AppConfig
@ -90,6 +91,8 @@ urlpatterns_materia = [
name='primeira_tramitacao_em_lote'),
url(r'^materia/tramitacao-em-lote', TramitacaoEmLoteView.as_view(),
name='tramitacao_em_lote'),
url(r'^materia/excluir-tramitacao-em-lote', ExcluirTramitacaoEmLoteView.as_view(),
name='excluir_tramitacao_em_lote'),
]

27
sapl/materia/views.py

@ -57,7 +57,8 @@ from .forms import (AcessorioEmLoteFilterSet, AcompanhamentoMateriaForm,
TramitacaoEmLoteFilterSet, UnidadeTramitacaoForm,
filtra_tramitacao_destino,
filtra_tramitacao_destino_and_status,
filtra_tramitacao_status)
filtra_tramitacao_status,
ExcluirTramitacaoEmLote)
from .models import (AcompanhamentoMateria, Anexada, AssuntoMateria, Autoria,
DespachoInicial, DocumentoAcessorio, MateriaAssunto,
MateriaLegislativa, Numeracao, Orgao, Origem, Proposicao,
@ -1972,3 +1973,27 @@ class FichaSelecionaView(PermissionRequiredMixin, FormView):
return gerar_pdf_impressos(self.request, context,
'materia/impressos/ficha_pdf.html')
class ExcluirTramitacaoEmLoteView(PermissionRequiredMixin, FormView):
template_name = 'materia/em_lote/excluir_tramitacao.html'
permission_required = ('materia.add_tramitacao',)
form_class = ExcluirTramitacaoEmLote
form_valid_message = _('Tramitações excluídas com sucesso!')
def get_success_url(self):
return reverse('sapl.materia:excluir_tramitacao_em_lote')
def form_valid(self, form):
tramitacao_set = Tramitacao.objects.filter(data_tramitacao=form.cleaned_data['data_tramitacao'],
unidade_tramitacao_local=form.cleaned_data['unidade_tramitacao_local'],
unidade_tramitacao_destino=form.cleaned_data['unidade_tramitacao_destino'],
status=form.cleaned_data['status'])
for tramitacao in tramitacao_set:
materia = tramitacao.materia
if tramitacao == materia.tramitacao_set.last():
tramitacao.delete()
return redirect(self.get_success_url())

7
sapl/templates/materia/em_lote/excluir_tramitacao.html

@ -0,0 +1,7 @@
{% extends "crud/detail.html" %}
{% load i18n crispy_forms_tags %}
{% block actions %}{% endblock %}
{% block detail_content %}
{% crispy form %}
{% endblock detail_content %}

3
sapl/templates/navbar.yaml

@ -54,6 +54,9 @@
- title: {% trans 'Tramitação em Lote' %}
url: sapl.materia:primeira_tramitacao_em_lote
check_permission: materia.list_tramitacao {% comment %} FIXME transformar para checagens de menu_[funcionalidade]{% endcomment%}
- title: {% trans 'Excluir Tramitação em Lote' %}
url: sapl.materia:excluir_tramitacao_em_lote
check_permission: materia.list_tramitacao {% comment %} FIXME transformar para checagens de menu_[funcionalidade]{% endcomment%}
- title: {% trans 'Normas Jurídicas' %}
children:

Loading…
Cancel
Save