Browse Source

Adiciona tela de confirmação de recebimento de proposição e devolução

pull/527/head
Eduardo Edson Batista Cordeiro Alves 9 years ago
committed by Edward Ribeiro
parent
commit
cc3d7d3ee1
  1. 6
      sapl/materia/forms.py
  2. 8
      sapl/materia/urls.py
  3. 71
      sapl/materia/views.py
  4. 32
      sapl/templates/materia/confirmar_proposicao.html
  5. 4
      sapl/templates/materia/prop_devolvidas_list.html

6
sapl/materia/forms.py

@ -31,6 +31,12 @@ def em_tramitacao():
(False, 'Não')] (False, 'Não')]
class ConfirmarProposicaoForm(ModelForm):
class Meta:
model = Proposicao
exclude = ['texto_original', 'descricao', 'tipo']
class ReceberProposicaoForm(ModelForm): class ReceberProposicaoForm(ModelForm):
cod_hash = forms.CharField(label='Código do Documento', required=True) cod_hash = forms.CharField(label='Código do Documento', required=True)

8
sapl/materia/urls.py

@ -3,9 +3,9 @@ from django.conf.urls import include, url
from sapl.materia.views import (AcompanhamentoConfirmarView, from sapl.materia.views import (AcompanhamentoConfirmarView,
AcompanhamentoExcluirView, AcompanhamentoExcluirView,
AcompanhamentoMateriaView, AnexadaCrud, AcompanhamentoMateriaView, AnexadaCrud,
AutorCrud, AutoriaCrud, DespachoInicialCrud, AutorCrud, AutoriaCrud, ConfirmarProposicao,
DocumentoAcessorioCrud, LegislacaoCitadaCrud, DespachoInicialCrud, DocumentoAcessorioCrud,
MateriaLegislativaCrud, LegislacaoCitadaCrud, MateriaLegislativaCrud,
MateriaLegislativaPesquisaView, MateriaTaView, MateriaLegislativaPesquisaView, MateriaTaView,
NumeracaoCrud, OrgaoCrud, OrigemCrud, NumeracaoCrud, OrgaoCrud, OrigemCrud,
ProposicaoCrud, ProposicaoDevolvida, ProposicaoCrud, ProposicaoDevolvida,
@ -44,6 +44,8 @@ urlpatterns = [
name='proposicao-recebida'), name='proposicao-recebida'),
url(r'^proposicao/devolvida/', ProposicaoDevolvida.as_view(), url(r'^proposicao/devolvida/', ProposicaoDevolvida.as_view(),
name='proposicao-devolvida'), name='proposicao-devolvida'),
url(r'^proposicao/confirmar/(?P<pk>\d+)', ConfirmarProposicao.as_view(),
name='proposicao-confirmar'),
# Integração com Compilação # Integração com Compilação
url(r'^materia/(?P<pk>[0-9]+)/ta$', url(r'^materia/(?P<pk>[0-9]+)/ta$',

71
sapl/materia/views.py

@ -26,11 +26,11 @@ from sapl.utils import (autor_label, autor_modal, gerar_hash_arquivo,
get_base_url) get_base_url)
from .forms import (AcompanhamentoMateriaForm, AnexadaForm, AutoriaForm, from .forms import (AcompanhamentoMateriaForm, AnexadaForm, AutoriaForm,
DespachoInicialForm, DocumentoAcessorioForm, ConfirmarProposicaoForm, DespachoInicialForm,
LegislacaoCitadaForm, MateriaLegislativaFilterSet, DocumentoAcessorioForm, LegislacaoCitadaForm,
NumeracaoForm, ProposicaoForm, ReceberProposicaoForm, MateriaLegislativaFilterSet, NumeracaoForm, ProposicaoForm,
RelatoriaForm, TramitacaoForm, UnidadeTramitacaoForm, ReceberProposicaoForm, RelatoriaForm, TramitacaoForm,
filtra_tramitacao_destino, UnidadeTramitacaoForm, filtra_tramitacao_destino,
filtra_tramitacao_destino_and_status, filtra_tramitacao_destino_and_status,
filtra_tramitacao_status) filtra_tramitacao_status)
from .models import (AcompanhamentoMateria, Anexada, Autor, Autoria, from .models import (AcompanhamentoMateria, Anexada, Autor, Autoria,
@ -111,7 +111,7 @@ class ProposicaoDevolvida(ListView):
def get_queryset(self): def get_queryset(self):
return Proposicao.objects.filter( return Proposicao.objects.filter(
data_envio__isnull=False, data_envio__isnull=False,
data_recebimento__isnull=False, data_recebimento__isnull=True,
data_devolucao__isnull=False) data_devolucao__isnull=False)
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
@ -173,8 +173,7 @@ class ReceberProposicao(CreateView):
form_class = ReceberProposicaoForm form_class = ReceberProposicaoForm
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(ReceberProposicao, self).get_context_data( context = super(ReceberProposicao, self).get_context_data(**kwargs)
**kwargs)
context.update({'form': self.get_form()}) context.update({'form': self.get_form()})
return context return context
@ -188,21 +187,9 @@ class ReceberProposicao(CreateView):
hasher = gerar_hash_arquivo(proposicao.texto_original.path, hasher = gerar_hash_arquivo(proposicao.texto_original.path,
str(proposicao.pk)) str(proposicao.pk))
if hasher == form.cleaned_data['cod_hash']: if hasher == form.cleaned_data['cod_hash']:
proposicao.data_recebimento = datetime.now() return HttpResponseRedirect(
if proposicao.tipo.descricao == 'Parecer': reverse('sapl.materia:proposicao-confirmar',
documento = criar_doc_proposicao(proposicao) kwargs={'pk': proposicao.pk}))
proposicao.documento_gerado = documento
proposicao.save()
return HttpResponseRedirect(
reverse('sapl.materia:documentoacessorio_update',
kwargs={'pk': documento.pk}))
else:
materia = criar_materia_proposicao(proposicao)
proposicao.materia_gerada = materia
proposicao.save()
return HttpResponseRedirect(
reverse('sapl.materia:materialegislativa_update',
kwargs={'pk': materia.pk}))
msg = 'Proposição não encontrada!' msg = 'Proposição não encontrada!'
return self.render_to_response({'form': form, 'msg': msg}) return self.render_to_response({'form': form, 'msg': msg})
@ -213,6 +200,44 @@ class ReceberProposicao(CreateView):
return reverse('sapl.materia:receber-proposicao') return reverse('sapl.materia:receber-proposicao')
class ConfirmarProposicao(CreateView):
template_name = "materia/confirmar_proposicao.html"
form_class = ConfirmarProposicaoForm
def get_context_data(self, **kwargs):
context = super(ConfirmarProposicao, self).get_context_data(**kwargs)
proposicao = Proposicao.objects.get(pk=self.kwargs['pk'])
context.update({'form': self.get_form(), 'proposicao': proposicao})
return context
def post(self, request, *args, **kwargs):
form = ConfirmarProposicaoForm(request.POST)
proposicao = Proposicao.objects.get(pk=self.kwargs['pk'])
if form.is_valid():
if 'incorporar' in request.POST:
proposicao.data_recebimento = datetime.now()
if proposicao.tipo.descricao == 'Parecer':
documento = criar_doc_proposicao(proposicao)
proposicao.documento_gerado = documento
proposicao.save()
return HttpResponseRedirect(
reverse('sapl.materia:documentoacessorio_update',
kwargs={'pk': documento.pk}))
else:
materia = criar_materia_proposicao(proposicao)
proposicao.materia_gerada = materia
proposicao.save()
return HttpResponseRedirect(
reverse('sapl.materia:materialegislativa_update',
kwargs={'pk': materia.pk}))
else:
proposicao.data_devolucao = datetime.now()
proposicao.save()
return HttpResponseRedirect(
reverse('sapl.materia:proposicao-devolvida'))
class ProposicaoCrud(Crud): class ProposicaoCrud(Crud):
model = Proposicao model = Proposicao
help_path = '' help_path = ''

32
sapl/templates/materia/confirmar_proposicao.html

@ -0,0 +1,32 @@
{% extends "base.html" %}
{% load i18n crispy_forms_tags %}
{% block base_content %}
<style>
table {
border-collapse: collapse;
}
table, th, td {
border: 2px solid black;
}
</style>
<fieldset>
<legend>Confirmar recebimento de Proposição</legend>
<table class="table table-striped">
<tr><td><b>Tipo: </b>{{proposicao.tipo}}</td></tr>
<tr><td><b>Autor: </b>{{proposicao.autor}}</td></tr>
<tr><td><b>Descrição: </b>{{proposicao.descricao}}</td></tr>
<tr><td><b>Data de Envio: </b>{{proposicao.data_envio|date:'d/m/Y H:i:s'}}</td></tr>
</table>
<form method="POST">
{% csrf_token %}
<div align="center">
<input type="submit" value="Devolver ao autor" name="devolver" class="btn btn-danger">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="submit" value="Incorporar" name="incorporar" class="btn btn-primary">
</div>
</form>
</fieldset>
{% endblock %}

4
sapl/templates/materia/prop_devolvidas_list.html

@ -7,7 +7,7 @@
<table class="table table-striped table-hover"> <table class="table table-striped table-hover">
<thead> <thead>
<tr> <tr>
<th>Data do Recebimento</th> <th>Data do Devolução</th>
<th>Tipo</th> <th>Tipo</th>
<th>Descrição</th> <th>Descrição</th>
<th>Autor</th> <th>Autor</th>
@ -17,7 +17,7 @@
<tbody> <tbody>
{% for prop in object_list %} {% for prop in object_list %}
<tr> <tr>
<td><a href="{% url 'sapl.materia:proposicao_detail' prop.pk %}">{{ prop.data_recebimento|date:"d/m/Y H:i:s" }}</a></td> <td><a href="{% url 'sapl.materia:proposicao_detail' prop.pk %}">{{ prop.data_devolucao|date:"d/m/Y H:i:s" }}</a></td>
<td>{{ prop.tipo.descricao }}</td> <td>{{ prop.tipo.descricao }}</td>
<td>{{ prop.descricao }}</td> <td>{{ prop.descricao }}</td>
<td>{{ prop.autor }}</td> <td>{{ prop.autor }}</td>

Loading…
Cancel
Save