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 import datetime
from sigi.apps.casas.models import CasaLegislativa from sigi.apps.casas.models import CasaLegislativa
from sigi.apps.convenios.models import Convenio, Projeto 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.servicos.models import TipoServico
from sigi.apps.diagnosticos.models import Diagnostico from sigi.apps.diagnosticos.models import Diagnostico
from sigi.apps.metas.models import Meta from sigi.apps.metas.models import Meta
def charts_data(request): def charts_data(request):
''' """
Busca informacoes para a criacao dos graficos e resumos Busca informacoes para a criacao dos graficos e resumos
''' """
projetos = Projeto.objects.all()
convenios = Convenio.objects.all() convenios = Convenio.objects.all()
convenios_assinados = convenios.exclude(data_retorno_assinatura=None) convenios_assinados = convenios.exclude(data_retorno_assinatura=None)
@ -31,11 +30,12 @@ def charts_data(request):
'metas': Meta.objects.all(), 'metas': Meta.objects.all(),
} }
def busca_informacoes_camara(): def busca_informacoes_camara():
''' """
Busca informacoes no banco para montar tabela de resumo de camaras por projeto Busca informacoes no banco para montar tabela de resumo de camaras por projeto
Retorna um dicionario de listas Retorna um dicionario de listas
''' """
camaras = CasaLegislativa.objects.filter(tipo__sigla='CM') camaras = CasaLegislativa.objects.filter(tipo__sigla='CM')
convenios = Convenio.objects.filter(casa_legislativa__tipo__sigla='CM') convenios = Convenio.objects.filter(casa_legislativa__tipo__sigla='CM')
projetos = Projeto.objects.all() projetos = Projeto.objects.all()
@ -115,19 +115,20 @@ def busca_informacoes_camara():
u'camaras_sem_processo': camaras_sem_processo.count(), u'camaras_sem_processo': camaras_sem_processo.count(),
} }
def grafico_convenio_projeto(convenios): def grafico_convenio_projeto(convenios):
projetos = Projeto.objects.all() projetos = Projeto.objects.all()
lista_convenios = [] lista_projetos = []
for projeto in 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(): def busca_informacoes_seit():
mes_atual = datetime.date.today().replace(day=1) mes_atual = datetime.date.today().replace(day=1)
@ -149,6 +150,7 @@ def busca_informacoes_seit():
return result return result
def busca_informacoes_diagnostico(): def busca_informacoes_diagnostico():
return [ return [
{'title': 'Diagnósticos digitados', 'count': Diagnostico.objects.count()}, {'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 %}> <html lang="{{ LANGUAGE_CODE|default:"en-us" }}" {% if LANGUAGE_BIDI %}dir="rtl"{% endif %}>
<head> <head>
<title>{% block title %}{% endblock %}</title> <title>{% block title %}{% endblock %}</title>

84
templates/index.html

@ -47,6 +47,90 @@
}) })
})(django.jQuery); })(django.jQuery);
</script> </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 %} {% endblock %}
{% block content_title %}<h1>Dashboard</h1>{% 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;"> <div class="module" style="height: 300px;">
<h2>Resumo de informações</h2> <h2>Resumo de informações</h2>
<!-- h3>Câmaras municipais por projeto</h3 --> <!-- h3>Câmaras municipais por projeto</h3 -->
@ -50,8 +28,7 @@
<div class="module" style="height: 300px;"> <div class="module" style="height: 300px;">
<h2>Convênios</h2> <h2>Convênios</h2>
<h3>Convênios assinados por projeto</h3> <div id="processos_conv_ass" class="align-center" style="height: 280px;">
<div class="align-center">
{% if g_convassinado_proj.convenios %} {% if g_convassinado_proj.convenios %}
<img src="{{ convenios_assinados.url }}&chdlp=b" class="chart" /> <img src="{{ convenios_assinados.url }}&chdlp=b" class="chart" />
{% else %} {% else %}
@ -111,8 +88,7 @@
<div class="module" style="height: 300px;"> <div class="module" style="height: 300px;">
<h2>Convênios</h2> <h2>Convênios</h2>
<h3>Processos de convênios por projeto</h3> <div id="processos_conv" class="align-center" style="height: 280px;">
<div class="align-center">
{% if g_conv_proj.convenios %} {% if g_conv_proj.convenios %}
<img src="{{ processos.url }}&chdlp=b" class="chart" /> <img src="{{ processos.url }}&chdlp=b" class="chart" />
{% else %} {% else %}

Loading…
Cancel
Save