Browse Source

Tela de recebimento de proposições

pull/527/head
Eduardo Edson Batista Cordeiro Alves 9 years ago
committed by Edward Ribeiro
parent
commit
f97afb6449
  1. 19
      sapl/materia/forms.py
  2. 14
      sapl/materia/urls.py
  3. 46
      sapl/materia/views.py
  4. 1
      sapl/templates/base.html
  5. 4
      sapl/templates/materia/receber_proposicao.html

19
sapl/materia/forms.py

@ -31,6 +31,25 @@ def em_tramitacao():
(False, 'Não')]
class ReceberProposicaoForm(ModelForm):
cod_hash = forms.CharField(label='Código do Documento', required=True)
class Meta:
model = Proposicao
exclude = ['texto_original', 'descricao', 'tipo']
def __init__(self, *args, **kwargs):
row1 = to_row([('cod_hash', 12)])
self.helper = FormHelper()
self.helper.layout = Layout(
Fieldset(
_('Incorporar Proposição'), row1,
form_actions(save_label='Buscar Proposição')
)
)
super(ReceberProposicaoForm, self).__init__(*args, **kwargs)
class UnidadeTramitacaoForm(ModelForm):
class Meta:

14
sapl/materia/urls.py

@ -9,12 +9,12 @@ from sapl.materia.views import (AcompanhamentoConfirmarView,
MateriaLegislativaPesquisaView, MateriaTaView,
NumeracaoCrud, OrgaoCrud, OrigemCrud,
ProposicaoCrud, ProposicaoTaView,
ReciboProposicaoView, RegimeTramitacaoCrud,
RelatoriaCrud, StatusTramitacaoCrud,
TipoAutorCrud, TipoDocumentoCrud,
TipoFimRelatoriaCrud, TipoMateriaCrud,
TipoProposicaoCrud, TramitacaoCrud,
UnidadeTramitacaoCrud)
ReceberProposicao, ReciboProposicaoView,
RegimeTramitacaoCrud, RelatoriaCrud,
StatusTramitacaoCrud, TipoAutorCrud,
TipoDocumentoCrud, TipoFimRelatoriaCrud,
TipoMateriaCrud, TipoProposicaoCrud,
TramitacaoCrud, UnidadeTramitacaoCrud)
from .apps import AppConfig
@ -34,6 +34,8 @@ urlpatterns = [
url(r'^proposicao/', include(ProposicaoCrud.get_urls())),
url(r'^proposicao/recibo/(?P<pk>\d+)', ReciboProposicaoView.as_view(),
name='recibo-proposicao'),
url(r'^proposicao/receber/', ReceberProposicao.as_view(),
name='receber-proposicao'),
# Integração com Compilação
url(r'^materia/(?P<pk>[0-9]+)/ta$',

46
sapl/materia/views.py

@ -12,6 +12,7 @@ from django.http.response import HttpResponseRedirect
from django.template import Context, loader
from django.utils.translation import ugettext_lazy as _
from django.views.generic import CreateView, TemplateView, UpdateView
from django.views.generic.edit import FormMixin
from django_filters.views import FilterView
from sapl.base.models import CasaLegislativa
@ -27,8 +28,8 @@ from sapl.utils import (autor_label, autor_modal, gerar_hash_arquivo,
from .forms import (AcompanhamentoMateriaForm, AnexadaForm, AutoriaForm,
DespachoInicialForm, DocumentoAcessorioForm,
LegislacaoCitadaForm, MateriaLegislativaFilterSet,
NumeracaoForm, ProposicaoForm, RelatoriaForm,
TramitacaoForm, UnidadeTramitacaoForm,
NumeracaoForm, ProposicaoForm, ReceberProposicaoForm,
RelatoriaForm, TramitacaoForm, UnidadeTramitacaoForm,
filtra_tramitacao_destino,
filtra_tramitacao_destino_and_status,
filtra_tramitacao_status)
@ -64,6 +65,43 @@ class UnidadeTramitacaoCrud(Crud):
form_class = UnidadeTramitacaoForm
class ReceberProposicao(CreateView):
template_name = "materia/receber_proposicao.html"
form_class = ReceberProposicaoForm
def get_context_data(self, **kwargs):
context = super(ReceberProposicao, self).get_context_data(
**kwargs)
context.update({'form': self.get_form()})
return context
def post(self, request, *args, **kwargs):
flag = 0
form = ReceberProposicaoForm(request.POST)
if form.is_valid():
proposicoes = Proposicao.objects.filter(data_envio__isnull=False)
for proposicao in proposicoes:
hasher = gerar_hash_arquivo(proposicao.texto_original.path,
str(proposicao.pk))
if hasher == form.cleaned_data['cod_hash']:
proposicao.data_recebimento = datetime.now()
proposicao.save()
flag = 1
if flag == 0:
msg = 'Proposição não encontrada!'
return self.render_to_response({'form': form, 'msg': msg})
msg = 'Proposição recebida!'
return self.render_to_response({'form': form, 'msg': msg})
else:
return self.render_to_response({'form': form})
def get_success_url(self):
return reverse('sapl.materia:receber-proposicao')
class ProposicaoCrud(Crud):
model = Proposicao
help_path = ''
@ -98,6 +136,9 @@ class ProposicaoCrud(Crud):
obj.data_envio = obj.data_envio.strftime("%d/%m/%Y %H:%M")
if obj.data_recebimento is None:
obj.data_recebimento = 'Não recebida'
else:
obj.data_recebimento = obj.data_recebimento.strftime(
"%d/%m/%Y %H:%M")
return [self._as_row(obj) for obj in object_list]
@ -119,7 +160,6 @@ class ProposicaoCrud(Crud):
class ReciboProposicaoView(TemplateView):
template_name = "materia/recibo_proposicao.html"
def get_context_data(self, **kwargs):

1
sapl/templates/base.html

@ -57,6 +57,7 @@
<ul class="dropdown-menu">
<li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'sapl.protocoloadm:protocolo' %}">Pesquisar Protocolo</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'sapl.protocoloadm:pesq_doc_adm' %}">Pesquisar Documento Administrativo</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'sapl.materia:receber-proposicao' %}">Receber Proposições</a></li>
<!-- <li class="nav__sub-item"><a class="nav__sub-link" href="/materia">Protocolo Legislativo</a></li> -->
{# <li class="nav__sub-item"><a class="nav__sub-link" href="">Protocolo Geral</a></li> #}
{# <li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'sapl.protocoloadm:proposicao' %}">Proposições</a></li> #}

4
sapl/templates/materia/receber_proposicao.html

@ -0,0 +1,4 @@
{% extends "crud/form.html" %}
{% load i18n %}
{% load crispy_forms_tags %}
{{msg}}
Loading…
Cancel
Save