Browse Source

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

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

40
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)
@ -23,19 +22,20 @@ def charts_data(request):
g_convassinado_proj = grafico_convenio_projeto(convenios_assinados) g_convassinado_proj = grafico_convenio_projeto(convenios_assinados)
return { return {
'tabela_resumo_camara' : tabela_resumo_camara, 'tabela_resumo_camara': tabela_resumo_camara,
'tabela_resumo_seit' : tabela_resumo_seit, 'tabela_resumo_seit': tabela_resumo_seit,
'tabela_resumo_diagnostico': tabela_resumo_diagnostico, 'tabela_resumo_diagnostico': tabela_resumo_diagnostico,
'g_conv_proj': g_conv_proj, 'g_conv_proj': g_conv_proj,
"g_convassinado_proj":g_convassinado_proj, "g_convassinado_proj": g_convassinado_proj,
'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()
@ -52,7 +52,7 @@ def busca_informacoes_camara():
# Criacao das listas para o resumo de camaras por projeto # Criacao das listas para o resumo de camaras por projeto
cabecalho_topo = ['',] # Cabecalho superior da tabela cabecalho_topo = ['', ] # Cabecalho superior da tabela
lista_total = [] lista_total = []
lista_nao_aderidas = [] lista_nao_aderidas = []
@ -111,23 +111,24 @@ def busca_informacoes_camara():
return { return {
u'cabecalho_topo': cabecalho_topo, u'cabecalho_topo': cabecalho_topo,
u'lista_zip': lista_zip, u'lista_zip': lista_zip,
u'total_camaras' : camaras.count(), u'total_camaras': camaras.count(),
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()},

19
templates/admin/base.html

@ -1,14 +1,15 @@
{% 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>
<link rel="stylesheet" type="text/css" href="{% block stylesheet %}{% static "admin/css/base.css" %}{% endblock %}" /> <link rel="stylesheet" type="text/css" href="{% block stylesheet %}{% static "admin/css/base.css" %}{% endblock %}" />
{% block extrastyle %}{% endblock %} {% block extrastyle %}{% endblock %}
<!--[if lte IE 7]><link rel="stylesheet" type="text/css" href="{% block stylesheet_ie %}{% static "admin/css/ie.css" %}{% endblock %}" /><![endif]--> <!--[if lte IE 7]><link rel="stylesheet" type="text/css" href="{% block stylesheet_ie %}{% static "admin/css/ie.css" %}{% endblock %}" /><![endif]-->
{% if LANGUAGE_BIDI %}<link rel="stylesheet" type="text/css" href="{% block stylesheet_rtl %}{% static "admin/css/rtl.css" %}{% endblock %}" />{% endif %} {% if LANGUAGE_BIDI %}<link rel="stylesheet" type="text/css" href="{% block stylesheet_rtl %}{% static "admin/css/rtl.css" %}{% endblock %}" />{% endif %}
<script type="text/javascript">window.__admin_media_prefix__ = "{% filter escapejs %}{% static "admin/" %}{% endfilter %}";</script> <script type="text/javascript">window.__admin_media_prefix__ = "{% filter escapejs %}{% static "admin/" %}{% endfilter %}";</script>
{% block extrahead %}{% endblock %} {% block extrahead %}{% endblock %}
{% block blockbots %}<meta name="robots" content="NONE,NOARCHIVE" />{% endblock %} {% block blockbots %}<meta name="robots" content="NONE,NOARCHIVE" />{% endblock %}
</head> </head>
{% load i18n %} {% load i18n %}

92
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 %}
@ -60,14 +144,14 @@
{% block breadcrumbs %}{% endblock %} {% block breadcrumbs %}{% endblock %}
{% block content %} {% block content %}
<div id="content-main"> <div id="content-main">
{% include "snippets/modules/charts-convenios.html" %} {% include "snippets/modules/charts-convenios.html" %}
</div> </div>
{% endblock %} {% endblock %}
{% block sidebar %} {% block sidebar %}
<div id="content-related"> <div id="content-related">
{% include "snippets/modules/user.html" %} {% include "snippets/modules/user.html" %}
{% include "snippets/modules/actions.html" %} {% include "snippets/modules/actions.html" %}
</div> </div>
{% endblock %} {% endblock %}

30
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 %}
@ -127,7 +103,7 @@
<div class="align-center"> <div class="align-center">
<a href="/dashboard/mapa/"> <img src="{{ STATIC_URL }}img/mapicon-large.png" style="width: 60%;"/> </a> <a href="/dashboard/mapa/"> <img src="{{ STATIC_URL }}img/mapicon-large.png" style="width: 60%;"/> </a>
</div> </div>
{% comment %} {% comment %}
<h2>Metas BID</h2> <h2>Metas BID</h2>
<h3>Estado das metas do contrato BID</h3> <h3>Estado das metas do contrato BID</h3>
<table style="margin: auto;"> <table style="margin: auto;">

Loading…
Cancel
Save