Browse Source

Acrescentando abas com jquery em casas legislativa. Acrescentando opção de gerar etiquetas com e sem presidente.

diagnosticos
Starlone (Estagiario) 14 years ago
parent
commit
2857e37701
  1. 16
      sigi/apps/casas/admin.py
  2. 41
      sigi/apps/casas/reports.py
  3. 62
      sigi/apps/casas/templates/casas/change_list.html
  4. 22
      sigi/apps/casas/views.py
  5. 9
      sigi/apps/convenios/templates/convenios/change_list.html

16
sigi/apps/casas/admin.py

@ -8,7 +8,7 @@ from sigi.apps.convenios.models import Projeto, Convenio, EquipamentoPrevisto, A
from django.http import HttpResponse, HttpResponseRedirect
from sigi.apps.casas.reports import CasasLegislativasLabels, CasasLegislativasReport
from geraldo.generators import PDFGenerator
from sigi.apps.casas.views import casa_info, labels_report
from sigi.apps.casas.views import casa_info, labels_report, export_csv, labels_report_sem_presidente
from sigi.apps.utils import queryset_ascii
class ContatosInline(generic.GenericTabularInline):
@ -29,7 +29,7 @@ class CasaLegislativaAdmin(admin.ModelAdmin):
form = CasaLegislativaForm
change_form_template = 'casas/change_form.html'
change_list_template = 'casas/change_list.html'
actions = ['etiqueta','relatorio','relatorio_completo']
actions = ['etiqueta','relatorio','relatorio_csv','relatorio_completo','etiqueta_sem_presidente']
inlines = (TelefonesInline, ContatosInline, ConveniosInline)
list_display = ('nome','municipio','presidente','logradouro')
list_display_links = ('nome',)
@ -65,18 +65,28 @@ class CasaLegislativaAdmin(admin.ModelAdmin):
return labels_report(request,queryset=queryset)
etiqueta.short_description = "Gerar etiqueta(s) da(s) casa(s) selecionada(s)"
def etiqueta_sem_presidente(modelAdmin,request,queryset):
response = HttpResponse(mimetype='application/pdf')
return labels_report_sem_presidente(request,queryset=queryset)
etiqueta_sem_presidente.short_description = "Gerar etiqueta(s) sem presidente da(s) casa(s) selecionada(s)"
def relatorio(modelAdmin,request,queryset):
response = HttpResponse(mimetype='application/pdf')
report = CasasLegislativasReport(queryset=queryset)
report.generate_by(PDFGenerator, filename=response)
return response
relatorio.short_description = u"Gerar relatório resumido da(s) casa(s) selecionada(s)"
relatorio.short_description = u"Exportar a(s) casa(s) selecionada(s) para PDF"
def relatorio_completo(modelAdmin,request,queryset):
response = HttpResponse(mimetype='application/pdf')
return casa_info(request,queryset=queryset)
relatorio_completo.short_description = u"Gerar relatório completo da(s) casa(s) selecionada(s)"
def relatorio_csv(modelAdmin,request,queryset):
response = HttpResponse(mimetype='text/csv')
return export_csv(request)
relatorio_csv.short_description = u"Exportar casa(s) selecionada(s) para CSV"
def get_actions(self, request):
actions = super(CasaLegislativaAdmin, self).get_actions(request)
del actions['delete_selected']

41
sigi/apps/casas/reports.py

@ -70,7 +70,45 @@ class CasasLegislativasLabels(Report):
default_style = {'fontName': 'Helvetica', 'fontSize': 11}
elements = [
Label(
text='A Sua Excelência o(a) Senhor(a)',
top=1*cm, left=0.5*cm, width=9.4*cm,
),
ObjectValue(
attribute_name='presidente',
top=1.5*cm, left=0.5*cm, width=9.4*cm,
),
ObjectValue(
attribute_name='tipo',
top=2*cm, left=0.5*cm, width=9.4*cm,
get_value=lambda instance:
"Presidente da " + instance.tipo.nome +" " +instance.nome.split()[2]
),
ObjectValue(
attribute_name='nome',
top=2.5*cm, left=0.5*cm, width=9.4*cm,
get_value=lambda instance:
instance.municipio.uf.nome
if instance.tipo.nome == u'Assembléia Legislativa'
else instance.municipio.nome
),
ManyElements(
ObjectValue,
count=4,
attribute_name=('logradouro','bairro','municipio','cep'),
start_top=3*cm, height=0.5*cm, left=0.5*cm, width=9.4*cm,
),
]
class CasasLegislativasLabelsSemPresidente(CasasLegislativasLabels):
class band_detail(CasasLegislativasLabels.band_detail):
elements = [
Label(
text='A Sua Excelência o(a) Senhor(a)',
@ -80,7 +118,7 @@ class CasasLegislativasLabels(Report):
attribute_name='tipo',
top=1.5*cm, left=0.5*cm, width=9.4*cm,
get_value=lambda instance:
"Presidente da " + instance.tipo.nome + " de "
"Presidente da " + instance.tipo.nome +" " +instance.nome.split()[2]
),
ObjectValue(
attribute_name='nome',
@ -100,6 +138,7 @@ class CasasLegislativasLabels(Report):
]
class CasasLegislativasReport(ReportDefault):
title = u'Relatório de Casas Legislativas'
height = 80*cm

62
sigi/apps/casas/templates/casas/change_list.html

@ -1,9 +1,67 @@
{% extends "admin/change_list.html" %}
{% load adminmedia admin_list i18n reporting_tags %}
{% block extrastyle %}
{{ block.super }}
{% include "jquery/tabs_style.html" %}
{% endblock %}
{% block object-tools %}
{% if has_add_permission %}
<ul class="object-tools">
<div id="tabs">
<ul>
<li><a href="#tabs-1">Exportar para PDF</a></li>
<li><a href="#tabs-2">Exportar para CSV</a></li>
<li><a href="#tabs-3">Etiqueta</a></li>
<li>
<a style="display: none" href="#tabs-0" />
<a href="add/{% if is_popup %}?_popup=1{% endif %}" class="addlink">
{% blocktrans with cl.opts.verbose_name as name %}Add {{ name }}{% endblocktrans %}
</a>
</li>
</ul>
<div id="tabs-1">
<p>Escolha uma das opções abaixo para exportar todas as casas legislátivas listadas.
Caso queira selecionar casas específicas, utilize a opção "exportar
casa(s) selecionada(s)" na caixa "Ação".</p>
<div class="tabs-conteudo">
<ul>
<li><a href="reports/{{query_str}}">Exportar todas as casas listadas</a> </li>
<li>
<a href="casas_sem_convenio_report/{{query_str}}">
Exportar apenas casas listadas sem convênio
</a>
</li>
</ul>
</div>
</div>
<div id="tabs-2">
<div class="tabs-conteudo">
<p>
As opções abaixo exportam todas as casas listadas para um arquivo CSV que
pode ser aberto por programas de planilha eletrônica (Excel, Calc).
Para exportar casas específicas utilize a opção "Exportar casa(s) selecionada(s)
para CSV"
</p>
<ul>
<li><a href="csv/{{query_str}}">Exportar casas listas para CSV</a> </li>
</ul>
</div>
</div>
<div id="tabs-3">
<p>Escolha uma das opções abaixo para gerar etiquetas de todas as casas listadas.
Caso queira gerar de casas especificas, utilize a opção "gerar etiquetas
das casas selecionadas" disponivel na caixa "Ação". </p>
<ul class="tabs-conteudo">
<li><a href="labels/{{ query_str }}">Gerar etiquetas com nome do presidente</a></li>
<li><a href="labels_sem_presidente/{{ query_str }}">Gerar etiquetas sem nome do presidente</a></li>
</ul>
</div>
</div>
<!--<ul class="object-tools">
<li><a href="reports/{{query_str}}">Relatório</a> </li>
<li><a href="csv/{{query_str}}">Exportar CSV</a> </li>
<li><a href="casas_sem_convenio_report/{{query_str}}">Casas sem convênio</a> </li>
@ -13,6 +71,6 @@
{% blocktrans with cl.opts.verbose_name as name %}Add {{ name }}{% endblocktrans %}
</a>
</li>
</ul>
</ul>-->
{% endif %}
{% endblock %}

22
sigi/apps/casas/views.py

@ -4,6 +4,7 @@ from geraldo.generators import PDFGenerator
from sigi.apps.casas.models import CasaLegislativa
from sigi.apps.casas.reports import CasasLegislativasLabels
from sigi.apps.casas.reports import CasasLegislativasLabelsSemPresidente
from sigi.apps.casas.reports import CasasLegislativasReport
from sigi.apps.casas.reports import CasasSemConvenioReport
from sigi.apps.casas.reports import InfoCasaLegislativa
@ -31,6 +32,27 @@ def labels_report(request, id=None,queryset=None):
return response
def labels_report_sem_presidente(request, id=None,queryset=None):
""" TODO: adicionar suporte para resultado de pesquisa do admin.
"""
if queryset:
qs = queryset
else:
qs = CasaLegislativa.objects.all()
if id:
qs = qs.filter(pk=id)
elif request.GET:
kwargs = {}
for k, v in request.GET.iteritems():
kwargs[str(k)] = v
qs = qs.filter(**kwargs)
response = HttpResponse(mimetype='application/pdf')
report = CasasLegislativasLabelsSemPresidente(queryset=qs)
report.generate_by(PDFGenerator, filename=response)
return response
def report(request, id=None):
qs = CasaLegislativa.objects.all().order_by('municipio__uf','nome')

9
sigi/apps/convenios/templates/convenios/change_list.html

@ -13,31 +13,26 @@
<div id="tabs">
<ul>
<!--<li><a href="#tabs-0"> </a></li>-->
<li><a href="#tabs-1">Exportar</a></li>
<li><a href="#tabs-2">Resumo por Região</a></li>
<li>
<a style="display: none" href="#tabs-0" /><a href="add/{% if is_popup %}?_popup=1{% endif %}" class="addlink">
<a style="display: none" href="#tabs-0" />
<a href="add/{% if is_popup %}?_popup=1{% endif %}" class="addlink">
{% blocktrans with cl.opts.verbose_name as name %}Add {{ name }}{% endblocktrans %}
</a>
</li>
</ul>
<!-- <div id="tabs-0">
</div>-->
<div id="tabs-1">
<p>Escolha uma das opções abaixo para exportar todos os convênios listados.
Caso queira selecionar convênios especificos, utilize a opção "exportar
convênios selecionados" na caixa "Ação".</p>
<div class="tabs-conteudo">
<div>
<ul>
<li><a href="reports_por_cm/{{ query_str }}">Exportar para PDF por Câmara Municipal</a></li>
<li><a href="reports_por_al/{{ query_str }}">Exportar para PDF por Assembléia Legislativa</a></li>
</ul>
</div>
</div>
</div>
<div id="tabs-2">
<p>Escolha uma das opções abaixo para obter um resumo de informações do Projeto Interlegis por região.
Outros projetos como PPM e PML não serão incluidos. </p>

Loading…
Cancel
Save