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')] (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 UnidadeTramitacaoForm(ModelForm):
class Meta: class Meta:

14
sapl/materia/urls.py

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

46
sapl/materia/views.py

@ -12,6 +12,7 @@ from django.http.response import HttpResponseRedirect
from django.template import Context, loader from django.template import Context, loader
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.views.generic import CreateView, TemplateView, UpdateView from django.views.generic import CreateView, TemplateView, UpdateView
from django.views.generic.edit import FormMixin
from django_filters.views import FilterView from django_filters.views import FilterView
from sapl.base.models import CasaLegislativa 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, from .forms import (AcompanhamentoMateriaForm, AnexadaForm, AutoriaForm,
DespachoInicialForm, DocumentoAcessorioForm, DespachoInicialForm, DocumentoAcessorioForm,
LegislacaoCitadaForm, MateriaLegislativaFilterSet, LegislacaoCitadaForm, MateriaLegislativaFilterSet,
NumeracaoForm, ProposicaoForm, RelatoriaForm, NumeracaoForm, ProposicaoForm, ReceberProposicaoForm,
TramitacaoForm, UnidadeTramitacaoForm, RelatoriaForm, TramitacaoForm, UnidadeTramitacaoForm,
filtra_tramitacao_destino, filtra_tramitacao_destino,
filtra_tramitacao_destino_and_status, filtra_tramitacao_destino_and_status,
filtra_tramitacao_status) filtra_tramitacao_status)
@ -64,6 +65,43 @@ class UnidadeTramitacaoCrud(Crud):
form_class = UnidadeTramitacaoForm 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): class ProposicaoCrud(Crud):
model = Proposicao model = Proposicao
help_path = '' help_path = ''
@ -98,6 +136,9 @@ class ProposicaoCrud(Crud):
obj.data_envio = obj.data_envio.strftime("%d/%m/%Y %H:%M") obj.data_envio = obj.data_envio.strftime("%d/%m/%Y %H:%M")
if obj.data_recebimento is None: if obj.data_recebimento is None:
obj.data_recebimento = 'Não recebida' 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] return [self._as_row(obj) for obj in object_list]
@ -119,7 +160,6 @@ class ProposicaoCrud(Crud):
class ReciboProposicaoView(TemplateView): class ReciboProposicaoView(TemplateView):
template_name = "materia/recibo_proposicao.html" template_name = "materia/recibo_proposicao.html"
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):

1
sapl/templates/base.html

@ -57,6 +57,7 @@
<ul class="dropdown-menu"> <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: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.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="/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="">Protocolo Geral</a></li> #}
{# <li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'sapl.protocoloadm:proposicao' %}">Proposições</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