Browse Source

Adiciona exportação csv para relatórios de casas sem convênio

whois_api
Sesostris Vieira 9 years ago
parent
commit
7582f25d3d
  1. 38
      sigi/apps/home/views.py
  2. 15
      templates/snippets/modules/resumo_convenios.html

38
sigi/apps/home/views.py

@ -35,10 +35,11 @@ from sigi.apps.servicos.models import TipoServico
from sigi.apps.servidores.models import Servidor
from django.views.decorators.cache import never_cache
from django.contrib.auth.decorators import login_required
from django.http.response import JsonResponse
from django.http.response import JsonResponse, HttpResponse
from django.core.urlresolvers import reverse
from django.db.models import Q, Count
from sigi.shortcuts import render_to_pdf
import csv
@never_cache
@login_required
@ -159,6 +160,7 @@ def chart_performance(request):
@login_required
def report_sem_convenio(request):
modo = request.GET.get('modo', None)
format = request.GET.get('f', 'pdf')
sc = sem_convenio()
@ -172,10 +174,36 @@ def report_sem_convenio(request):
casas = sc['total']
titulo = _(u"Casas sem convenio que utilizam algum serviço de registro e/ou hospedagem")
context = {'casas': casas, 'titulo': titulo}
print context
# return render(request, 'home/sem_convenio.html', context)
return render_to_pdf('home/sem_convenio.html', context)
if format == 'csv':
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename=casas.csv'
writer = csv.writer(response)
writer.writerow([titulo.encode('utf8')])
writer.writerow([u''])
writer.writerow([u'casa', u'uf', u'gerente', u'serviços'.encode('utf8')])
for casa in casas:
writer.writerow([
casa.nome.encode('utf8'),
casa.municipio.uf.sigla.encode('utf8'),
casa.gerente_contas.nome_completo.encode('utf8'),
(u', '.join(casa.servico_set.filter(data_desativacao__isnull=True).values_list('tipo_servico__nome', flat=True))).encode('utf8'),
])
return response
elif format == 'json':
data = {
'titulo': titulo,
'casas': [
{'nome': casa.nome,
'uf': casa.municipio.uf.sigla,
'gerente': casa.gerente_contas.nome_completo,
'servicos': list(casa.servico_set.filter(data_desativacao__isnull=True).values_list('tipo_servico__nome', flat=True))}
for casa in casas
]
}
return JsonResponse(data, safe=False)
else:
context = {'casas': casas, 'titulo': titulo}
return render_to_pdf('home/sem_convenio.html', context)
def busca_informacoes_camara():

15
templates/snippets/modules/resumo_convenios.html

@ -44,15 +44,24 @@
</tr>
<tr>
<th>{% trans 'Casas sem convenio que utilizam algum serviço de hospedagem' %} <a href="{% url "home_reportsemconvenio" %}?modo=H" target="_blank" aria-label="{% trans "Listar casas" %}" title="{% trans "Listar casas" %}"><span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span></a></th>
<th>{% trans 'Casas sem convenio que utilizam algum serviço de hospedagem' %}
<a href="{% url "home_reportsemconvenio" %}?modo=H" target="_blank" aria-label="{% trans "Listar casas" %}" title="{% trans "Listar casas" %}"><span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span></a>
<a href="{% url "home_reportsemconvenio" %}?modo=H&f=csv" aria-label="{% trans "Download csv" %}" title="{% trans "Download csv" %}"><span class="glyphicon glyphicon-download" aria-hidden="true"></span></a>
</th>
<td>{{ tabela_resumo_camara.sem_convenio.hospedagem|length }}</td>
</tr>
<tr>
<th>{% trans 'Casas sem convenio que utilizam somente serviço de registro' %} <a href="{% url "home_reportsemconvenio" %}?modo=R" target="_blank" aria-label="{% trans "Listar casas" %}" title="{% trans "Listar casas" %}"><span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span></a></th>
<th>{% trans 'Casas sem convenio que utilizam somente serviço de registro' %}
<a href="{% url "home_reportsemconvenio" %}?modo=R" target="_blank" aria-label="{% trans "Listar casas" %}" title="{% trans "Listar casas" %}"><span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span></a>
<a href="{% url "home_reportsemconvenio" %}?modo=R&f=csv" aria-label="{% trans "Download csv" %}" title="{% trans "Download csv" %}"><span class="glyphicon glyphicon-download" aria-hidden="true"></span></a>
</th>
<td>{{ tabela_resumo_camara.sem_convenio.registro|length }}</td>
</tr>
<tr>
<th>{% trans 'Casas sem convenio que utilizam algum serviço de registro e/ou hospedagem' %} <a href="{% url "home_reportsemconvenio" %}" target="_blank" aria-label="{% trans "Listar casas" %}" title="{% trans "Listar casas" %}"><span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span></a></th>
<th>{% trans 'Casas sem convenio que utilizam algum serviço de registro e/ou hospedagem' %}
<a href="{% url "home_reportsemconvenio" %}" target="_blank" aria-label="{% trans "Listar casas" %}" title="{% trans "Listar casas" %}"><span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span></a>
<a href="{% url "home_reportsemconvenio" %}?f=csv" aria-label="{% trans "Download csv" %}" title="{% trans "Download csv" %}"><span class="glyphicon glyphicon-download" aria-hidden="true"></span></a>
</th>
<td>{{ tabela_resumo_camara.sem_convenio.total|length }}</td>
</tr>
</table>

Loading…
Cancel
Save