Browse Source

Gerando os graficos do dashboard com highcharts, em vez do google-charts

producao
Breno Teixeira 11 years ago
parent
commit
64b52fadd8
  1. 30
      sigi/context_processors.py
  2. 3
      templates/admin/base.html
  3. 84
      templates/index.html
  4. 28
      templates/snippets/modules/charts-convenios.html

30
sigi/context_processors.py

@ -2,17 +2,16 @@
import datetime
from sigi.apps.casas.models import CasaLegislativa
from sigi.apps.convenios.models import Convenio, Projeto
from sigi.apps.contatos.models import UnidadeFederativa
from sigi.apps.servicos.models import TipoServico
from sigi.apps.diagnosticos.models import Diagnostico
from sigi.apps.metas.models import Meta
def charts_data(request):
'''
"""
Busca informacoes para a criacao dos graficos e resumos
'''
"""
projetos = Projeto.objects.all()
convenios = Convenio.objects.all()
convenios_assinados = convenios.exclude(data_retorno_assinatura=None)
@ -31,11 +30,12 @@ def charts_data(request):
'metas': Meta.objects.all(),
}
def busca_informacoes_camara():
'''
"""
Busca informacoes no banco para montar tabela de resumo de camaras por projeto
Retorna um dicionario de listas
'''
"""
camaras = CasaLegislativa.objects.filter(tipo__sigla='CM')
convenios = Convenio.objects.filter(casa_legislativa__tipo__sigla='CM')
projetos = Projeto.objects.all()
@ -115,19 +115,20 @@ def busca_informacoes_camara():
u'camaras_sem_processo': camaras_sem_processo.count(),
}
def grafico_convenio_projeto(convenios):
projetos = Projeto.objects.all()
lista_convenios = []
lista_projetos = []
for projeto in projetos:
lista_convenios.append(convenios.filter(projeto=projeto).count())
lista_projetos.append((projeto.nome, convenios.filter(projeto=projeto).count()))
total_convenios = "Total: " + str(convenios.count())
lista_projetos.insert(0, total_convenios)
return lista_projetos
dic = {
"total_convenios":("Total: " + str(convenios.count())),
"convenios":lista_convenios,
"projetos":projetos
}
return dic
def busca_informacoes_seit():
mes_atual = datetime.date.today().replace(day=1)
@ -149,6 +150,7 @@ def busca_informacoes_seit():
return result
def busca_informacoes_diagnostico():
return [
{'title': 'Diagnósticos digitados', 'count': Diagnostico.objects.count()},

3
templates/admin/base.html

@ -1,4 +1,5 @@
{% load admin_static %}{% load firstof from future %}<!DOCTYPE html>
{% load admin_static %}{% load firstof from future %}
<!DOCTYPE html>
<html lang="{{ LANGUAGE_CODE|default:"en-us" }}" {% if LANGUAGE_BIDI %}dir="rtl"{% endif %}>
<head>
<title>{% block title %}{% endblock %}</title>

84
templates/index.html

@ -47,6 +47,90 @@
})
})(django.jQuery);
</script>
{# Highcharts scripts #}
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>
<script type="text/javascript">
$(function () {
var chart;
$(document).ready(function () {
// Build the chart
$('#processos_conv').highcharts({
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false
},
title: {
text: 'Processos de convênios por projeto <br/> {{ g_conv_proj.0 }}'
},
tooltip: {
pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: false
},
showInLegend: true
}
},
series: [{
type: 'pie',
name: 'Browser share',
data: [
{% for k, v in g_conv_proj %}
{% if not forloop.first %}
['{{ k }}', {{ v }}],
{% endif %}
{% endfor %}
]
}]
});
$('#processos_conv_ass').highcharts({
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false
},
title: {
text: 'Convênios assinados por projeto <br/> {{ g_convassinado_proj.0 }}'
},
tooltip: {
pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: false
},
showInLegend: true
}
},
series: [{
type: 'pie',
name: 'Browser share',
data: [
{% for k, v in g_convassinado_proj %}
{% if not forloop.first %}
['{{ k }}', {{ v }}],
{% endif %}
{% endfor %}
]
}]
});
});
});
</script>
{# end highcharts scripts #}
{% endblock %}
{% block content_title %}<h1>Dashboard</h1>{% endblock %}

28
templates/snippets/modules/charts-convenios.html

@ -1,25 +1,3 @@
{% load charts %}
{% chart as convenios_assinados %}
{% chart-size 250 160 %}
{% chart-type "pie-3d" %}
{% chart-labels g_convassinado_proj.convenios %}
{% chart-data g_convassinado_proj.convenios %}
{% chart-legend g_convassinado_proj.projetos %}
{% chart-colors "A2CD5A,FFB90F,6CA6CD" %}
{% chart-title g_convassinado_proj.total_convenios %}
{% endchart %}
{% chart as processos %}
{% chart-size 250 160 %}
{% chart-type "pie-3d" %}
{% chart-labels g_conv_proj.convenios %}
{% chart-data g_conv_proj.convenios %}
{% chart-legend g_conv_proj.projetos %}
{% chart-colors "A2CD5A,FFB90F,6CA6CD" %}
{% chart-title g_conv_proj.total_convenios %}
{% endchart %}
<div class="module" style="height: 300px;">
<h2>Resumo de informações</h2>
<!-- h3>Câmaras municipais por projeto</h3 -->
@ -50,8 +28,7 @@
<div class="module" style="height: 300px;">
<h2>Convênios</h2>
<h3>Convênios assinados por projeto</h3>
<div class="align-center">
<div id="processos_conv_ass" class="align-center" style="height: 280px;">
{% if g_convassinado_proj.convenios %}
<img src="{{ convenios_assinados.url }}&chdlp=b" class="chart" />
{% else %}
@ -111,8 +88,7 @@
<div class="module" style="height: 300px;">
<h2>Convênios</h2>
<h3>Processos de convênios por projeto</h3>
<div class="align-center">
<div id="processos_conv" class="align-center" style="height: 280px;">
{% if g_conv_proj.convenios %}
<img src="{{ processos.url }}&chdlp=b" class="chart" />
{% else %}

Loading…
Cancel
Save