Browse Source

Algumas mudancas descartaveis

pull/519/head
Eduardo Calil 9 years ago
parent
commit
1193611230
  1. 28
      sapl/sessao/migrations/0021_adicionamultiplasmaterias.py
  2. 11
      sapl/sessao/models.py
  3. 5
      sapl/sessao/urls.py
  4. 86
      sapl/sessao/views.py
  5. 72
      sapl/templates/sessao/adicionar_varias_materias.html
  6. 3
      sapl/templates/sessao/expedientemateria_list.html

28
sapl/sessao/migrations/0021_adicionamultiplasmaterias.py

@ -0,0 +1,28 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.7 on 2016-08-03 14:27
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('materia', '0038_auto_20160612_1506'),
('sessao', '0020_auto_20160517_1450'),
]
operations = [
migrations.CreateModel(
name='AdicionaMultiplasMaterias',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('materia', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='materia.MateriaLegislativa')),
],
options={
'verbose_name_plural': 'Tabela de Adicionar Várias Matérias',
'verbose_name': 'Tabela de Adicionar Várias Matérias',
},
),
]

11
sapl/sessao/models.py

@ -321,3 +321,14 @@ class SessaoPlenariaPresenca(models.Model):
verbose_name = _('Presença em Sessão Plenária')
verbose_name_plural = _('Presenças em Sessões Plenárias')
ordering = ['parlamentar__nome_parlamentar']
class AdicionaMultiplasMaterias(models.Model):
materia = models.ForeignKey(MateriaLegislativa)
class Meta:
verbose_name = _('Tabela de Adicionar Várias Matérias')
verbose_name_plural = _('Tabela de Adicionar Várias Matérias')
def __str__(self):
return self.materia

5
sapl/sessao/urls.py

@ -1,6 +1,7 @@
from django.conf.urls import include, url
from sapl.sessao.views import (BancadaCrud, CargoBancadaCrud,
from sapl.sessao.views import (AdicionarVariasMaterias,
BancadaCrud, CargoBancadaCrud,
EditMateriaOrdemDiaView, ExpedienteMateriaCrud,
ExpedienteView, ListMateriaOrdemDiaView,
MateriaOrdemDiaView, MesaView, OradorCrud,
@ -49,6 +50,8 @@ urlpatterns = [
include(BancadaCrud.get_urls())),
url(r'^sistema/cargo-bancada/',
include(CargoBancadaCrud.get_urls())),
url(r'^sessao/(?P<pk>\d+)/adicionar-varias-materias/',
AdicionarVariasMaterias.as_view(), name='adicionar_varias_materias'),
# PAUTA SESSÃO
url(r'^pauta-sessao$',

86
sapl/sessao/views.py

@ -8,7 +8,7 @@ from django.forms.utils import ErrorList
from django.http.response import HttpResponseRedirect
from django.utils.html import strip_tags
from django.utils.translation import ugettext_lazy as _
from django.views.generic import ListView, TemplateView
from django.views.generic import FormView, ListView, TemplateView
from django.views.generic.edit import FormMixin
from django_filters.views import FilterView
from rest_framework import generics
@ -17,8 +17,10 @@ from sapl.crud.base import (Crud, CrudBaseMixin, CrudCreateView,
CrudDetailView, CrudListView, CrudUpdateView,
make_pagination)
from sapl.crud.masterdetail import MasterDetailCrud
from sapl.materia.views import MateriaLegislativaFilterSet
from sapl.materia.models import (Autoria, DocumentoAcessorio,
TipoMateriaLegislativa, Tramitacao)
from sapl.materia.views import MateriaLegislativaPesquisaView
from sapl.norma.models import NormaJuridica
from sapl.parlamentares.models import Parlamentar
from sapl.sessao.serializers import SessaoPlenariaSerializer
@ -1958,3 +1960,85 @@ class PesquisarSessaoPlenariaView(FilterView):
)
return self.render_to_response(context)
class AdicionarVariasMaterias(MateriaLegislativaPesquisaView):
model = MateriaLegislativa
filterset_class = MateriaLegislativaFilterSet
paginate_by = 10
template_name = 'sessao/adicionar_varias_materias.html'
def get_filterset_kwargs(self, filterset_class):
super(AdicionarVariasMaterias,
self).get_filterset_kwargs(filterset_class)
kwargs = {'data': self.request.GET or None}
qs = self.get_queryset()
qs = qs.distinct()
kwargs.update({
'queryset': qs,
})
return kwargs
def get_context_data(self, **kwargs):
# import ipdb; ipdb.set_trace()
import ipdb; ipdb.set_trace()
context = super(MateriaLegislativaPesquisaView,
self).get_context_data(**kwargs)
context['title'] = _('Pesquisar Matéria Legislativa')
paginator = context['paginator']
page_obj = context['page_obj']
context['page_range'] = make_pagination(
page_obj.number, paginator.num_pages)
self.filterset.form.fields['o'].label = _('Ordenação')
qr = self.request.GET.copy()
if 'page' in qr:
del qr['page']
context['filter_url'] = ('&' + qr.urlencode()) if len(qr) > 0 else ''
context['pk_sessao'] = self.kwargs['pk']
return context
def post(self, request, *args, **kwargs):
import ipdb; ipdb.set_trace()
sessao = SessaoPlenaria.objects.get(id=self.kwargs['pk'])
context = self.get_context_data()
materia_id = request.POST['materia_id']
materia = MateriaLegislativa.objects.get(id=materia_id)
try:
materia = MateriaLegislativa.objects.get(
numero=request.POST['numero_materia'],
tipo_id=request.POST['tipo_materia'],
ano=request.POST['ano_materia'])
except ObjectDoesNotExist:
form._errors["error_message"] = ErrorList([u""])
context.update({'form': form})
return self.render_to_response(context)
# TODO: barrar matérias não existentes
# TODO: barrar criação de ordemdia para materias já incluídas
expediente = ExpedienteMateria()
expediente.sessao_plenaria_id = self.kwargs['pk']
expediente.materia_id = materia.id
expediente.numero_ordem = request.POST['numero_ordem']
expediente.data_ordem = datetime.now()
expediente.observacao = sub('&nbsp;', ' ',
strip_tags(request.POST['observacao']))
ordemdia.tipo_votacao = request.POST['tipo_votacao']
ordemdia.save()
return self.form_valid(form)
else:
return self.form_invalid(form)

72
sapl/templates/sessao/adicionar_varias_materias.html

@ -0,0 +1,72 @@
{% extends "crud/detail.html" %}
{% load i18n %}
{% load crispy_forms_tags %}
{% block actions %}{% endblock %}
{% block sections_nav %}
{% endblock %}
{% block detail_content %}
{% if filter_url %}
<div class="actions btn-group pull-right" role="group">
<a href="{% url 'sapl.sessao:adicionar_varias_materias' pk_sessao %}" class="btn btn-default">{% trans 'Fazer nova pesquisa' %}</a>
</div>
{% endif %}
{% if not filter_url %}
{% crispy filter.form %}
{% endif %}
<p></p>
{% if filter_url %}
<table class="table table-striped table-bordered">
<thead class="thead-default">
<tr><td><h3>{% trans "Resultados" %}</h3></td></tr>
</thead>
{% if paginator.count %}
{% if paginator.count > 1 %}
<h3>{% blocktrans with paginator.count as total_materias %}Pesquisa concluída com sucesso! Foram encontradas {{total_materias}} matérias.{% endblocktrans %}</h3>
{% elif paginator.count == 1 %}
<h3>{% trans 'Pesquisa concluída com sucesso! Foi encontrada 1 matéria.'%}</h3>
{% endif %}
{% for m in page_obj %}
<form method="POST" enctype="application/x-www-form-urlencoded">
{% csrf_token %}
<tr>
<td>
<strong><a href="{% url 'sapl.materia:materialegislativa_detail' m.id %}">{{m.tipo.sigla}} {{m.numero}}/{{m.ano}} - {{m.tipo}}</strong></a></br>
<strong>Autores:</strong>
{% for a in m.autoria_set.all %}
{% if not forloop.first %}
, &nbsp;&nbsp; {{a.autor|default_if_none:"Não Informado"}}
{% else %}
&nbsp;{{a.autor|default_if_none:"Não Informado"}}
{% endif %}
{% endfor %}
</br>
<strong>Localização Atual:</strong> &nbsp;{{m.tramitacao_set.last.unidade_tramitacao_destino|default_if_none:"Não Informada"}}</br>
<strong>Status:</strong> &nbsp;{{m.tramitacao_set.last.status|default_if_none:"Não Informada"}}</br>
<strong>Data da última Tramitação:</strong> &nbsp;{{m.tramitacao_set.last.data_tramitacao|default_if_none:"Não Informada"}}</br>
<strong>Ementa:</strong>&nbsp;{{ m.ementa|safe }}</br>
<p></p>
<input type="hidden" name="materia_id" value="{{m.id}}"/>
<input type="submit" name="materia_adicionada" value="Adicionar" class="btn btn-primary" />
</tr>
</form>
{% endfor %}
{% else %}
<tr>
<td>
<h3>Nenhuma matéria encontrada com essas especificações</h3>
</tr>
{% endif %}
</table>
{% include "paginacao.html" %}
{% endif %}
{% endblock detail_content %}

3
sapl/templates/sessao/expedientemateria_list.html

@ -6,4 +6,7 @@
<a href="{% url 'sapl.sessao:reordenar_expediente' root_pk %}" class="btn btn-default">
{% blocktrans with verbose_name=view.verbose_name %} Reordenar Matérias {% endblocktrans %}
</a>
<a href="{% url 'sapl.sessao:adicionar_varias_materias' root_pk %}" class="btn btn-default">
{% blocktrans with verbose_name=view.verbose_name %} Adicionar Várias Matérias {% endblocktrans %}
</a>
{% endblock more_buttons %}

Loading…
Cancel
Save