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) to_row)
from sapl.materia.models import (AssuntoMateria, Autoria, MateriaAssunto, from sapl.materia.models import (AssuntoMateria, Autoria, MateriaAssunto,
MateriaLegislativa, Orgao, RegimeTramitacao, MateriaLegislativa, Orgao, RegimeTramitacao,
TipoDocumento, TipoProposicao) TipoDocumento, TipoProposicao, StatusTramitacao,
UnidadeTramitacao)
from sapl.norma.models import (LegislacaoCitada, NormaJuridica, from sapl.norma.models import (LegislacaoCitada, NormaJuridica,
TipoNormaJuridica) TipoNormaJuridica)
from sapl.parlamentares.models import Legislatura from sapl.parlamentares.models import Legislatura
@ -2032,3 +2033,67 @@ class FichaSelecionaForm(forms.Form):
form_actions(label='Gerar Impresso') 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, TipoFimRelatoriaCrud, TipoMateriaCrud,
TipoProposicaoCrud, TramitacaoCrud, TipoProposicaoCrud, TramitacaoCrud,
TramitacaoEmLoteView, UnidadeTramitacaoCrud, TramitacaoEmLoteView, UnidadeTramitacaoCrud,
proposicao_texto, recuperar_materia) proposicao_texto, recuperar_materia,
ExcluirTramitacaoEmLoteView)
from sapl.norma.views import NormaPesquisaSimplesView from sapl.norma.views import NormaPesquisaSimplesView
from .apps import AppConfig from .apps import AppConfig
@ -90,6 +91,8 @@ urlpatterns_materia = [
name='primeira_tramitacao_em_lote'), name='primeira_tramitacao_em_lote'),
url(r'^materia/tramitacao-em-lote', TramitacaoEmLoteView.as_view(), url(r'^materia/tramitacao-em-lote', TramitacaoEmLoteView.as_view(),
name='tramitacao_em_lote'), 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, TramitacaoEmLoteFilterSet, UnidadeTramitacaoForm,
filtra_tramitacao_destino, filtra_tramitacao_destino,
filtra_tramitacao_destino_and_status, filtra_tramitacao_destino_and_status,
filtra_tramitacao_status) filtra_tramitacao_status,
ExcluirTramitacaoEmLote)
from .models import (AcompanhamentoMateria, Anexada, AssuntoMateria, Autoria, from .models import (AcompanhamentoMateria, Anexada, AssuntoMateria, Autoria,
DespachoInicial, DocumentoAcessorio, MateriaAssunto, DespachoInicial, DocumentoAcessorio, MateriaAssunto,
MateriaLegislativa, Numeracao, Orgao, Origem, Proposicao, MateriaLegislativa, Numeracao, Orgao, Origem, Proposicao,
@ -1972,3 +1973,27 @@ class FichaSelecionaView(PermissionRequiredMixin, FormView):
return gerar_pdf_impressos(self.request, context, return gerar_pdf_impressos(self.request, context,
'materia/impressos/ficha_pdf.html') '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' %} - title: {% trans 'Tramitação em Lote' %}
url: sapl.materia:primeira_tramitacao_em_lote url: sapl.materia:primeira_tramitacao_em_lote
check_permission: materia.list_tramitacao {% comment %} FIXME transformar para checagens de menu_[funcionalidade]{% endcomment%} 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' %} - title: {% trans 'Normas Jurídicas' %}
children: children:

Loading…
Cancel
Save