Browse Source

Nova funcionalidade. Exportar convenios para PDF sem data de aceite

diagnosticos
Starlone (Estagiario) 14 years ago
parent
commit
c5a86a72c0
  1. 105
      sigi/apps/convenios/reports.py
  2. 17
      sigi/apps/convenios/templates/convenios/change_list.html
  3. 31
      sigi/apps/convenios/views.py

105
sigi/apps/convenios/reports.py

@ -55,7 +55,7 @@ class ConvenioReport(ReportDefault):
width=2*cm, width=2*cm,
), ),
Label( Label(
text="Número do Convenio", text="Número do Convênio",
left=label_left[3]*cm, left=label_left[3]*cm,
top=label_top, top=label_top,
width=2*cm, width=2*cm,
@ -152,6 +152,103 @@ class ConvenioReport(ReportDefault):
) )
] ]
class ConvenioReportSemAceite(ConvenioReport):
class band_page_header(ReportDefault.band_page_header):
label_top = ReportDefault.band_page_header.label_top
label_left = [0,1.5,7,9,11,13,15,17]
elements = list(ReportDefault.band_page_header.elements)
height = 4.7*cm
elements += [
Label(
text="UF",
left=label_left[0]*cm,
top=label_top + 0.4*cm,
),
Label(
text="Município",
left=label_left[1]*cm,
top=label_top + 0.4*cm,
),
Label(
text="Data de Adesão",
left=label_left[3]*cm,
top=label_top,
width=2*cm,
),
Label(
text="Número do Convênio",
left=label_left[4]*cm,
top=label_top,
width=2*cm,
),
Label(
text="Data do Convênio",
left=label_left[5]*cm,
top=label_top,
width=2*cm,
),
Label(
text="Data de Publicação",
left=label_left[6]*cm,
top=label_top,
width=2*cm,
),
Label(
text="Projeto",
left=label_left[7]*cm,
top=label_top + 0.4*cm,
width=2*cm,
),
]
class band_detail(ReportDefault.band_detail):
label_left = [0,1.5,7,9,11,13,15,17]
elements=[
ObjectValue(
attribute_name='casa_legislativa.municipio.uf.sigla',
left=label_left[0]*cm
),
ObjectValue(
attribute_name='casa_legislativa.municipio.nome',
left=label_left[1]*cm
),
ObjectValue(
attribute_name='data_adesao',
left=label_left[3]*cm,
get_value=lambda instance:
instance.data_adesao.strftime('%d/%m/%Y') if instance.data_adesao != None else '-'
),
ObjectValue(
attribute_name='num_convenio',
left=label_left[4]*cm
),
ObjectValue(
attribute_name='data_retorno_assinatura',
left=label_left[5]*cm,
get_value=lambda instance:
instance.data_retorno_assinatura.strftime('%d/%m/%Y') if instance.data_retorno_assinatura != None else '-'
),
ObjectValue(
attribute_name='data_pub_diario',
left=label_left[6]*cm,
get_value=lambda instance:
instance.data_pub_diario.strftime('%d/%m/%Y') if instance.data_pub_diario != None else '-'
),
ObjectValue(
attribute_name='projeto.sigla',
left=label_left[7]*cm
),
]
float_duas_casas = lambda instance: '%.2f' % (instance) float_duas_casas = lambda instance: '%.2f' % (instance)
class ConvenioReportRegiao(ReportDefault): class ConvenioReportRegiao(ReportDefault):
title = u'Relatório de Convênios por Região' title = u'Relatório de Convênios por Região'
@ -211,3 +308,9 @@ class ConvenioPorCMReport(ConvenioReport):
class ConvenioPorALReport(ConvenioReport): class ConvenioPorALReport(ConvenioReport):
title = u'Relatório de Convênios por Assembléia Legislativa' title = u'Relatório de Convênios por Assembléia Legislativa'
class ConvenioReportSemAceiteCM(ConvenioReportSemAceite):
title = u'Relatório de Convênios por Câmara Municipal'
class ConvenioReportSemAceiteAL(ConvenioReportSemAceite):
title = u'Relatório de Convênios por Assembléia Legislativa'

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

@ -27,10 +27,19 @@
Caso queira selecionar convênios especificos, utilize a opção "exportar Caso queira selecionar convênios especificos, utilize a opção "exportar
convênios selecionados" na caixa "Ação".</p> convênios selecionados" na caixa "Ação".</p>
<div class="tabs-conteudo"> <div class="tabs-conteudo">
<ul> <table>
<li><a href="reports_por_cm/{{ query_str }}">Exportar para PDF por Câmara Municipal</a></li> <tr>
<li><a href="reports_por_al/{{ query_str }}">Exportar para PDF por Assembléia Legislativa</a></li> <td>
</ul> <ul><li><a href="reports_por_cm/{{ query_str }}">PDF por Câmara Municipal</a></li></ul>
<ul><li><a href="reports_por_al/{{ query_str }}">PDF por Assembléia Legislativa</a></li></ul>
</td>
<td>
<ul><li><a href="report_semaceite_por_cm/{{ query_str }}">PDF por Câmara Municipal (sem Data de Aceite)</a></li></ul>
<ul><li><a href="report_semaceite_por_al/{{ query_str }}">PDF por Assembléia Legislativa (sem Data de Aceite)</a></li></ul>
</td>
</tr>
</table>
</div> </div>
</div> </div>
<div id="tabs-2"> <div id="tabs-2">

31
sigi/apps/convenios/views.py

@ -5,7 +5,9 @@ from sigi.apps.convenios.models import Convenio
from sigi.apps.convenios.reports import ConvenioReport, \ from sigi.apps.convenios.reports import ConvenioReport, \
ConvenioPorCMReport, \ ConvenioPorCMReport, \
ConvenioPorALReport, \ ConvenioPorALReport, \
ConvenioReportRegiao ConvenioReportRegiao, \
ConvenioReportSemAceiteAL, \
ConvenioReportSemAceiteCM
from sigi.apps.casas.models import CasaLegislativa from sigi.apps.casas.models import CasaLegislativa
from sigi.apps.contatos.models import UnidadeFederativa from sigi.apps.contatos.models import UnidadeFederativa
@ -72,6 +74,33 @@ def report_por_al(request, id=None):
report.generate_by(PDFGenerator, filename=response) report.generate_by(PDFGenerator, filename=response)
return response return response
def report_semaceite_por_cm(request, id=None):
qs = Convenio.objects.filter(casa_legislativa__tipo__sigla='CM').order_by('casa_legislativa__municipio__uf','casa_legislativa')
if id:
qs = qs.filter(pk=id)
elif request.GET: #Se tiver algum parametro de pesquisa
qs = get_for_qs(request.GET,qs)
if not qs:
return HttpResponseRedirect('../')
response = HttpResponse(mimetype='application/pdf')
report = ConvenioReportSemAceiteCM(queryset=qs)
report.generate_by(PDFGenerator, filename=response)
return response
def report_semaceite_por_al(request, id=None):
qs = Convenio.objects.filter(casa_legislativa__tipo__sigla='AL').order_by('casa_legislativa__municipio__uf','casa_legislativa')
if id:
qs = qs.filter(pk=id)
elif request.GET: #Se tiver algum parametro de pesquisa
qs = get_for_qs(request.GET,qs)
if not qs:
return HttpResponseRedirect('../')
response = HttpResponse(mimetype='application/pdf')
report = ConvenioReportSemAceiteAL(queryset=qs)
report.generate_by(PDFGenerator, filename=response)
return response
class RelatorioRegiao(object): class RelatorioRegiao(object):
def __init__(self, estado, casas, casas_aderidas, casas_equipadas,casas_nao_equipadas): def __init__(self, estado, casas, casas_aderidas, casas_equipadas,casas_nao_equipadas):
self.estado = estado self.estado = estado

Loading…
Cancel
Save