diff --git a/sigi/apps/casas/reports.py b/sigi/apps/casas/reports.py
index 2c7a043..d94a3fa 100644
--- a/sigi/apps/casas/reports.py
+++ b/sigi/apps/casas/reports.py
@@ -1,8 +1,9 @@
# -*- coding: utf-8 -*-
-from django.templatetags.static import static
-from django.utils.translation import ugettext as _
from geraldo import Report, DetailBand, Label, ObjectValue, ReportGroup, ReportBand, landscape, SubReport, BAND_WIDTH, SystemField
from geraldo.graphics import Image
+
+from django.templatetags.static import static
+from django.utils.translation import ugettext as _
from reportlab.lib.enums import TA_CENTER
from reportlab.lib.pagesizes import A4
from reportlab.lib.units import cm
@@ -238,7 +239,6 @@ class CasasLegislativasReport(ReportDefault):
top=label_top,
),
-
]
class band_page_footer(ReportDefault.band_page_footer):
@@ -293,285 +293,3 @@ class CasasLegislativasReport(ReportDefault):
class CasasSemConvenioReport(CasasLegislativasReport):
title = _(u'Relatório de Casas Legislativas sem Convênio')
-
-
-class InfoCasaLegislativa(ReportDefault):
- title = _(u'Casa Legislativa')
-
- class band_summary(ReportBand):
- pass
-
- class band_page_footer(ReportBand):
- height = 1 * cm
-
- elements = [
- SystemField(expression=_(u'%(now:%d/%m/%Y)s às %(now:%H:%M)s'), top=0.3 * cm),
- ]
-
- class band_detail(ReportDefault.band_detail):
-
- posicao_left = [
- 0, 1.3, # Tipo
- 0, 1.8, # Regiao
- 5.5, 6.8, # U.F.
- 0, 2.3, # Municipio
- 0, 2.4, # Endereco
- 0, 1.6, # Bairro
- 0, 1.3, # CEP
- 0, 1.6, # CNPJ
- 0, 2.3, # Telefone
- 0, 2.7, # Presidente
- ]
- posicao_top = [
- 0.5, # Tipo
- 1.3, # Regiao
- 1.3, # U.F.
- 2.1, # Municipio
- 2.9, # Logradouro
- 3.7, # Bairro
- 4.5, # CEP
- 5.3, # CNPJ
- 6.1, # Telefone
- 6.9, # Presidente
- ]
-
- height = 30 * cm
-
- display_inline = True
- default_style = {'fontName': 'Helvetica', 'fontSize': 14}
-
- elements = [
-
- Label(
- text=label_text(_(u"Tipo")),
- left=posicao_left[0] * cm,
- top=posicao_top[0] * cm,
- ),
- ObjectValue(
- attribute_name='tipo.nome',
- left=posicao_left[1] * cm,
- top=posicao_top[0] * cm,
- width=6 * cm,
- ),
- Label(
- text=label_text(_(u"Região")),
- left=posicao_left[2] * cm,
- top=posicao_top[1] * cm,
- ),
- ObjectValue(
- attribute_name='municipio.uf.regiao',
- left=posicao_left[3] * cm,
- top=posicao_top[1] * cm,
- get_value=lambda instance:
- {'SL': _(u'Sul'), 'SD': _(u'Sudeste'), 'CO': _(u'Centro-Oeste'), 'NE': _(u'Nordeste'), 'NO': _(u'Norte'), }
- [instance.municipio.uf.regiao]
- ),
- Label(
- text=label_text(_(u"UF")),
- left=posicao_left[4] * cm,
- top=posicao_top[2] * cm,
- ),
- ObjectValue(
- attribute_name='municipio.uf',
- left=posicao_left[5] * cm,
- top=posicao_top[2] * cm,
- ),
- Label(
- text=label_text(_(u"Município")),
- left=posicao_left[6] * cm,
- top=posicao_top[3] * cm,
- ),
- ObjectValue(
- attribute_name='municipio.nome',
- left=posicao_left[7] * cm,
- top=posicao_top[3] * cm,
- width=20 * cm,
- ),
- # Linha 3
- Label(
- text=label_text(_(u"Endereço")),
- left=posicao_left[8] * cm,
- top=posicao_top[4] * cm,
- ),
- ObjectValue(
- attribute_name='logradouro',
- left=posicao_left[9] * cm,
- top=posicao_top[4] * cm,
- width=20 * cm,
- ),
- Label(
- text=label_text(_(u"Bairro")),
- left=posicao_left[10] * cm,
- top=posicao_top[5] * cm,
- ),
- ObjectValue(
- attribute_name='bairro',
- left=posicao_left[11] * cm,
- top=posicao_top[5] * cm,
- ),
- Label(
- text=label_text(_(u"CEP")),
- left=posicao_left[12] * cm,
- top=posicao_top[6] * cm,
- ),
- ObjectValue(
- attribute_name='cep',
- left=posicao_left[13] * cm,
- top=posicao_top[6] * cm,
- ),
- Label(
- text=label_text(_(u"CNPJ")),
- left=posicao_left[14] * cm,
- top=posicao_top[7] * cm,
- ),
- ObjectValue(
- attribute_name='cnpj',
- left=posicao_left[15] * cm,
- top=posicao_top[7] * cm,
- ),
- Label(
- text=label_text(_(u"Telefone")),
- left=posicao_left[16] * cm,
- top=posicao_top[8] * cm,
- ),
- ObjectValue(
- attribute_name='telefone',
- left=posicao_left[17] * cm,
- top=posicao_top[8] * cm,
- ),
- Label(
- text=label_text(_(u"Presidente")),
- left=posicao_left[18] * cm,
- top=posicao_top[9] * cm,
- ),
- ObjectValue(
- attribute_name='presidente',
- left=posicao_left[19] * cm,
- top=posicao_top[9] * cm,
- width=20 * cm,
- ),
- ]
- # Telefones
- tel_top = 2 * cm
- tel_left = [0, 3, 5]
- # Contato
- cont_top = 2 * cm
- cont_left = [0, 6, 9]
- # Convenios
- convenio_top = 2 * cm
- convenio_left = [0, 1.8, 4.5, 8, 10.5, 13, 15.5, 18]
- subreports = [
- # Telefones
- SubReport(
- queryset_string='%(object)s.telefones.all()',
- band_header=ReportBand(
- default_style={'fontName': 'Helvetica', 'fontSize': 12},
- height=2.5 * cm,
- elements=[
- Label(
- text=_(u"Telefone(s)"),
- style={'fontSize': 14, 'alignment': TA_CENTER},
- width=BAND_WIDTH,
- top=1 * cm,
- ),
- Label(text=_(u"Número"), left=tel_left[0] * cm, top=tel_top),
- Label(text=_(u"Tipo"), left=tel_left[1] * cm, top=tel_top),
- Label(text=_(u"Nota"), left=tel_left[2] * cm, top=tel_top),
- ],
- borders={'bottom': True},
- ),
- band_detail=ReportBand(
- default_style={'fontName': 'Helvetica', 'fontSize': 11},
- height=0.5 * cm,
- elements=[
- ObjectValue(attribute_name='__unicode__', left=tel_left[0] * cm),
- ObjectValue(attribute_name='tipo', left=tel_left[1] * cm,
- get_value=lambda instance:
- {'F': _(u'Fixo'), 'M': _(u'Móvel'), 'X': _(u'Fax'), 'I': _(u'Indefinido')}[instance.tipo],
- ),
- ObjectValue(attribute_name='nota', left=tel_left[2] * cm),
- ],
- #borders = {'all':True},
- ),
- ),
- # Contatos
- SubReport(
- queryset_string='%(object)s.funcionario_set.all()',
- band_header=ReportBand(
- default_style={'fontName': 'Helvetica', 'fontSize': 12},
- height=2.5 * cm,
- elements=[
- Label(
- text=_(u"Contato(s)"),
- style={'fontSize': 14, 'alignment': TA_CENTER},
- width=BAND_WIDTH,
- top=1 * cm,
- ),
- Label(text=_(u"Nome"), left=cont_left[0] * cm, top=cont_top),
- Label(text=_(u"Nota"), left=cont_left[1] * cm, top=cont_top),
- Label(text=_(u"E-mail"), left=cont_left[2] * cm, top=cont_top),
- ],
- borders={'bottom': True, 'top': True},
- ),
- band_detail=ReportBand(
- default_style={'fontName': 'Helvetica', 'fontSize': 11},
- height=0.5 * cm,
- elements=[
- ObjectValue(attribute_name='nome', left=cont_left[0] * cm),
- ObjectValue(attribute_name='nota', left=cont_left[1] * cm),
- ObjectValue(attribute_name='email', left=cont_left[2] * cm),
- ],
- #borders = {'all':True},
- ),
- ),
- # Convenios
- SubReport(
- queryset_string='%(object)s.convenio_set.all()',
- band_header=ReportBand(
- default_style={'fontName': 'Helvetica', 'fontSize': 12},
- height=2.5 * cm,
- elements=[
- Label(
- text=_(u"Convênio(s)"),
- style={'fontSize': 14, 'alignment': TA_CENTER},
- width=BAND_WIDTH,
- top=1 * cm,
- ),
- Label(text=_(u"Projeto"), left=convenio_left[0] * cm, top=convenio_top),
- Label(text=_(u"Nº Convenio"), left=convenio_left[1] * cm, top=convenio_top),
- Label(text=_(u"Nº Processo SF"), left=convenio_left[2] * cm, top=convenio_top),
- Label(text=_(u"Adesão"), left=convenio_left[3] * cm, top=convenio_top),
- Label(text=_(u"Convênio"), left=convenio_left[4] * cm, top=convenio_top),
- Label(text=_(u"Equipada"), left=convenio_left[5] * cm, top=convenio_top),
- Label(text=_(u"Data D.O."), left=convenio_left[6] * cm, top=convenio_top),
- ],
- borders={'bottom': True}
- ),
- band_detail=ReportBand(
- default_style={'fontName': 'Helvetica', 'fontSize': 11},
- height=0.5 * cm,
- elements=[
- ObjectValue(attribute_name='projeto.sigla', left=convenio_left[0] * cm),
- ObjectValue(attribute_name='num_convenio', left=convenio_left[1] * cm),
- ObjectValue(attribute_name='num_processo_sf', left=convenio_left[2] * cm),
- ObjectValue(attribute_name='data_adesao', left=convenio_left[3] * cm,
- get_value=lambda instance:
- instance.data_adesao.strftime('%d/%m/%Y') if instance.data_adesao is not None else '-'
- ),
- ObjectValue(attribute_name='data_retorno_assinatura', left=convenio_left[4] * cm,
- get_value=lambda instance:
- instance.data_retorno_assinatura.strftime('%d/%m/%Y') if instance.data_retorno_assinatura is not None else '-'
- ),
- ObjectValue(attribute_name='data_termo_aceite', left=convenio_left[5] * cm,
- get_value=lambda instance:
- instance.data_termo_aceite.strftime('%d/%m/%Y') if instance.data_termo_aceite is not None else '-'
- ),
- ObjectValue(attribute_name='data_pub_diario', left=convenio_left[6] * cm,
- get_value=lambda instance:
- instance.data_pub_diario.strftime('%d/%m/%Y') if instance.data_pub_diario is not None else '-'
- ),
- ],
- #borders = {'all':True},
- ),
- )
- ]
diff --git a/sigi/apps/casas/templates/casas/report_complete_pdf.html b/sigi/apps/casas/templates/casas/report_complete_pdf.html
new file mode 100644
index 0000000..284dfa0
--- /dev/null
+++ b/sigi/apps/casas/templates/casas/report_complete_pdf.html
@@ -0,0 +1,237 @@
+{% load smart_if %}
+{% load static from staticfiles %}
+{% load i18n %}
+
+
+
+
+ Casa Legislativa
+
+
+
+
+
+ {% for casa in casas %}
+
+
{{ casa.nome }}
+
+ {% trans 'Presidente:' %} | {{ casa.presidente }} |
+ {% trans 'Tipo:' %} | {{ casa.tipo.nome }} |
+ {% trans 'Estado / região:' %} | {{ casa.municipio.uf.nome }} / {{ casa.municipio.uf.get_regiao_display }} |
+ {% trans 'Município:' %} | {{ casa.municipio.nome }} |
+ {% trans 'Endereço:' %} | {{ casa.logradouro }} |
+ {% trans 'Bairro:' %} | {{ casa.bairro }} |
+ {% trans 'CEP:' %} | {{ casa.cep }} |
+ {% trans 'CNPJ:' %} | {{ casa.cnpj }} |
+ {% trans 'Telefone:' %} | {{ casa.telefone }} |
+ {% trans 'E-mail:' %} | {{ casa.email }} |
+
+
+
Telefones
+
+
+
+
+ Número |
+ Tipo |
+ Nota |
+
+
+ {% for tel in casa.telefones.all %}
+
+ {{ tel.numero }} |
+ {{ tel.get_tipo_display }} |
+ {{ tel.nota }} |
+
+ {% endfor %}
+
+
+
Pessoas de contato
+
+
+
+
+ Nome |
+ E-mail |
+ Setor |
+ Notas |
+
+
+ {% for func in casa.funcionario_set.all %}
+
+ {{ func.nome }} |
+ {{ func.email }} |
+ {{ func.get_setor_display }} |
+ {{ func.nota }} |
+
+ {% endfor %}
+
+
+
Convênios
+
+
+
+
+ Projeto |
+ Nº convênio |
+ Nº processo SF |
+ Adesão |
+ Convênio |
+ Equipada |
+ Publicada |
+
+
+ {% for conv in casa.convenio_set.all %}
+
+ {{ conv.projeto.nome }} |
+ {{ conv.num_convenio|default_if_none:"-" }} |
+ {{ conv.num_processo_sf|default_if_none:"-" }} |
+ {{ conv.data_adesao|date:"SHORT_DATE_FORMAT" }} |
+ {{ conv.data_retorno_assinatura|date:"SHORT_DATE_FORMAT" }} |
+ {{ conv.equipada|yesno }} |
+ {{ conv.data_pub_diario|date:"SHORT_DATE_FORMAT" }} |
+
+ {% endfor %}
+
+
+
Serviços Interlegis
+
+
+
+
+ Serviço |
+ Endereço |
+ Ativado em |
+ Desativado em |
+
+
+ {% for srv in casa.servico_set.all %}
+
+ {{ srv.tipo_servico.nome }} |
+ {{ srv.url|default_if_none:"-" }} |
+ {{ srv.data_ativacao|date:"SHORT_DATE_FORMAT" }} |
+ {{ srv.data_desativacao|date:"SHORT_DATE_FORMAT" }} |
+
+ {% endfor %}
+
+
+
+
+ {% endfor %}
+
+
+
+
diff --git a/sigi/apps/casas/views.py b/sigi/apps/casas/views.py
index d8cea61..97f5cdb 100644
--- a/sigi/apps/casas/views.py
+++ b/sigi/apps/casas/views.py
@@ -1,30 +1,31 @@
# -*- coding: utf-8 -*-
import csv
from functools import reduce
+from geraldo.generators import PDFGenerator
+from django.contrib.auth.decorators import login_required
from django.core.paginator import Paginator, InvalidPage, EmptyPage
-from django.http import HttpResponse, HttpResponseRedirect, Http404
+from django.db.models import Count, Q
+from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render, get_object_or_404
from django.utils.translation import ugettext as _, ungettext
-from geraldo.generators import PDFGenerator
+from sigi.apps.casas.forms import PortfolioForm
from sigi.apps.casas.models import CasaLegislativa
-from sigi.apps.casas.reports import CasasLegislativasLabels, CasasLegislativasLabelsSemPresidente, CasasLegislativasReport, CasasSemConvenioReport, InfoCasaLegislativa
-from sigi.apps.parlamentares.reports import ParlamentaresLabels
+from sigi.apps.casas.reports import (CasasLegislativasLabels,
+ CasasLegislativasLabelsSemPresidente,
+ CasasLegislativasReport,
+ CasasSemConvenioReport)
from sigi.apps.contatos.models import UnidadeFederativa, Mesorregiao, Microrregiao
-from sigi.apps.casas.forms import PortfolioForm
-from django.contrib.auth.decorators import login_required
+from sigi.apps.ocorrencias.models import Ocorrencia
+from sigi.apps.parlamentares.reports import ParlamentaresLabels
from sigi.apps.servicos.models import TipoServico
from sigi.apps.servidores.models import Servidor
-from sigi.apps.ocorrencias.models import Ocorrencia
-from django.db.models import Count, Q
-from django.http.response import JsonResponse
+from sigi.shortcuts import render_to_pdf
# @param qs: queryset
# @param o: (int) number of order field
-
-
def query_ordena(qs, o):
from sigi.apps.casas.admin import CasaLegislativaAdmin
list_display = CasaLegislativaAdmin.list_display
@@ -85,6 +86,7 @@ def adicionar_casas_carrinho(request, queryset=None, id=None):
lista.append(id)
request.session['carrinho_casas'] = lista
+
@login_required
def visualizar_carrinho(request):
@@ -117,12 +119,14 @@ def visualizar_carrinho(request):
}
)
+
@login_required
def excluir_carrinho(request):
if 'carrinho_casas' in request.session:
del request.session['carrinho_casas']
return HttpResponseRedirect('.')
+
@login_required
def deleta_itens_carrinho(request):
if request.method == 'POST':
@@ -139,6 +143,7 @@ def deleta_itens_carrinho(request):
return HttpResponseRedirect('.')
+
@login_required
def labels_report(request, id=None, tipo=None, formato='3x9_etiqueta'):
""" TODO: adicionar suporte para resultado de pesquisa do admin.
@@ -168,6 +173,7 @@ def labels_report(request, id=None, tipo=None, formato='3x9_etiqueta'):
return response
+
@login_required
def labels_report_parlamentar(request, id=None, formato='3x9_etiqueta'):
""" TODO: adicionar suporte para resultado de pesquisa do admin.
@@ -216,6 +222,7 @@ def carrinhoOrGet_for_parlamentar_qs(request):
qs = get_for_qs(request.GET, qs)
return qs
+
@login_required
def labels_report_sem_presidente(request, id=None, formato='2x5_etiqueta'):
""" TODO: adicionar suporte para resultado de pesquisa do admin.
@@ -236,6 +243,7 @@ def labels_report_sem_presidente(request, id=None, formato='2x5_etiqueta'):
return response
+
@login_required
def report(request, id=None, tipo=None):
@@ -261,6 +269,7 @@ def report(request, id=None, tipo=None):
report.generate_by(PDFGenerator, filename=response)
return response
+
@login_required
def report_complete(request, id=None):
@@ -271,33 +280,9 @@ def report_complete(request, id=None):
if not qs:
return HttpResponseRedirect('../')
+
+ return render_to_pdf('casas/report_complete_pdf.html', {'casas': qs})
- response = HttpResponse(content_type='application/pdf')
- response['Content-Disposition'] = 'attachment; filename=casas.pdf'
-
- # Gera um relatorio para cada casa e concatena os relatorios
- cont = 0
- canvas = None
- quant = qs.count()
- if quant > 1:
- for i in qs:
- cont += 1
- # queryset deve ser uma lista
- lista = (i,)
- if cont == 1:
- report = InfoCasaLegislativa(queryset=lista)
- canvas = report.generate_by(PDFGenerator, return_canvas=True, filename=response,)
- else:
- report = InfoCasaLegislativa(queryset=lista)
- if cont == quant:
- report.generate_by(PDFGenerator, canvas=canvas)
- else:
- canvas = report.generate_by(PDFGenerator, canvas=canvas, return_canvas=True)
- else:
- report = InfoCasaLegislativa(queryset=qs)
- report.generate_by(PDFGenerator, filename=response)
-
- return response
@login_required
def casas_sem_convenio_report(request):
@@ -313,6 +298,7 @@ def casas_sem_convenio_report(request):
report.generate_by(PDFGenerator, filename=response)
return response
+
@login_required
def export_csv(request):
response = HttpResponse(content_type='text/csv')
@@ -392,6 +378,7 @@ def export_csv(request):
return response
+
@login_required
def portfolio(request):
page = request.GET.get('page', 1)
@@ -426,7 +413,7 @@ def portfolio(request):
data['mesorregioes'] = uf.mesorregiao_set.all()
data['microrregioes'] = mesorregiao.microrregiao_set.all()
data['form'] = PortfolioForm(_(u'Atribuir casas da microrregiao %s para') % (unicode(microrregiao),))
- data['querystring'] = 'micro=%s' % (microrregiao.pk,)
+ data['querystring'] = 'micro=%s' % (microrregiao.pk,)
casas = CasaLegislativa.objects.filter(municipio__microrregiao=microrregiao)
elif meso_id:
mesorregiao = get_object_or_404(Mesorregiao, pk=meso_id)
@@ -438,7 +425,7 @@ def portfolio(request):
data['mesorregioes'] = uf.mesorregiao_set.all()
data['microrregioes'] = mesorregiao.microrregiao_set.all()
data['form'] = PortfolioForm(_(u'Atribuir casas da mesorregiao %s para') % (unicode(mesorregiao),))
- data['querystring'] = 'meso=%s' % (mesorregiao.pk,)
+ data['querystring'] = 'meso=%s' % (mesorregiao.pk,)
casas = CasaLegislativa.objects.filter(municipio__microrregiao__mesorregiao=mesorregiao)
elif uf_id:
uf = get_object_or_404(UnidadeFederativa, pk=uf_id)
@@ -447,13 +434,13 @@ def portfolio(request):
data['ufs'] = UnidadeFederativa.objects.filter(regiao=uf.regiao)
data['mesorregioes'] = uf.mesorregiao_set.all()
data['form'] = PortfolioForm(_(u'Atribuir casas do estado %s para') % (unicode(uf),))
- data['querystring'] = 'uf=%s' % (uf.pk,)
+ data['querystring'] = 'uf=%s' % (uf.pk,)
casas = CasaLegislativa.objects.filter(municipio__uf=uf)
elif regiao:
data['regiao'] = regiao
data['ufs'] = UnidadeFederativa.objects.filter(regiao=regiao)
- data['form'] = PortfolioForm(_(u'Atribuir casas da região %s para') % [x[1] for x in UnidadeFederativa.REGIAO_CHOICES if x[0]==regiao][0])
- data['querystring'] = 'regiao=%s' % (regiao,)
+ data['form'] = PortfolioForm(_(u'Atribuir casas da região %s para') % [x[1] for x in UnidadeFederativa.REGIAO_CHOICES if x[0] == regiao][0])
+ data['querystring'] = 'regiao=%s' % (regiao,)
casas = CasaLegislativa.objects.filter(municipio__uf__regiao=regiao)
if casas:
@@ -536,12 +523,12 @@ def resumo_carteira(casas):
resumo.append([_(u"Casas em sua carteira"), total['total']] + [total[r[0]] for r in UnidadeFederativa.REGIAO_CHOICES])
resumo.append({'subtitle': _(u"Uso dos produtos Interlegis")})
resumo.append([_(u"Casas sem nenhum produto"), sem_produto['total']] + [sem_produto[r[0]] for r in UnidadeFederativa.REGIAO_CHOICES])
- resumo.extend([[ts.nome, dados[ts.id]['total']]+[dados[ts.id][r[0]] for r in UnidadeFederativa.REGIAO_CHOICES] for ts in tipos_servico])
+ resumo.extend([[ts.nome, dados[ts.id]['total']] + [dados[ts.id][r[0]] for r in UnidadeFederativa.REGIAO_CHOICES] for ts in tipos_servico])
resumo.append({'subtitle': _(u"Registros no sistema de ocorrências")})
- resumo.append([_(u"Casas que nunca registraram ocorrências"), dados_ocorrencia['sem']['total']]+[dados_ocorrencia['sem'][r[0]] for r in UnidadeFederativa.REGIAO_CHOICES])
- resumo.append([_(u"Total de ocorrências registradas"), dados_ocorrencia['registradas']['total']]+[dados_ocorrencia['registradas'][r[0]] for r in UnidadeFederativa.REGIAO_CHOICES])
- resumo.append([_(u"Total de ocorrências pendentes"), dados_ocorrencia['pendentes']['total']]+[dados_ocorrencia['pendentes'][r[0]] for r in UnidadeFederativa.REGIAO_CHOICES])
- resumo.append([_(u"Média de ocorrências por casa"), round(dados_ocorrencia['media']['total'],2)]+[round(dados_ocorrencia['media'][r[0]],2) for r in UnidadeFederativa.REGIAO_CHOICES])
+ resumo.append([_(u"Casas que nunca registraram ocorrências"), dados_ocorrencia['sem']['total']] + [dados_ocorrencia['sem'][r[0]] for r in UnidadeFederativa.REGIAO_CHOICES])
+ resumo.append([_(u"Total de ocorrências registradas"), dados_ocorrencia['registradas']['total']] + [dados_ocorrencia['registradas'][r[0]] for r in UnidadeFederativa.REGIAO_CHOICES])
+ resumo.append([_(u"Total de ocorrências pendentes"), dados_ocorrencia['pendentes']['total']] + [dados_ocorrencia['pendentes'][r[0]] for r in UnidadeFederativa.REGIAO_CHOICES])
+ resumo.append([_(u"Média de ocorrências por casa"), round(dados_ocorrencia['media']['total'], 2)] + [round(dados_ocorrencia['media'][r[0]], 2) for r in UnidadeFederativa.REGIAO_CHOICES])
return resumo
@@ -594,7 +581,7 @@ def casas_carteira(request, casas, context):
else:
casas = casas.filter(servico__tipo_servico__sigla__in=servicos)
casas = casas.distinct('nome', 'municipio__uf')
- context['qs_servico'] = "&".join(['servico=%s' %s for s in servicos])
+ context['qs_servico'] = "&".join(['servico=%s' % s for s in servicos])
context['servicos_check'] = servicos
@@ -602,6 +589,7 @@ def casas_carteira(request, casas, context):
return casas, context
+
@login_required
def painel_relacionamento(request):
page = request.GET.get('page', 1)
@@ -634,7 +622,7 @@ def painel_relacionamento(request):
'servicos': tipos_servico,
'gerentes': Servidor.objects.exclude(casas_que_gerencia=None),
'gerente': gerente,
- 'qs_servidor': ('servidor=%s' % gerente.pk) if gerente else '',
+ 'qs_servidor': ('servidor=%s' % gerente.pk) if gerente else '',
}
if snippet != 'lista':
@@ -678,4 +666,4 @@ def painel_relacionamento(request):
if snippet == 'resumo':
return render(request, 'casas/resumo_carteira_snippet.html', context)
- return render(request, 'casas/painel.html', context)
\ No newline at end of file
+ return render(request, 'casas/painel.html', context)