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
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)
@ -23,19 +22,20 @@ def charts_data(request):
g_convassinado_proj = grafico_convenio_projeto(convenios_assinados)
return {
'tabela_resumo_camara' : tabela_resumo_camara,
'tabela_resumo_seit' : tabela_resumo_seit,
'tabela_resumo_camara': tabela_resumo_camara,
'tabela_resumo_seit': tabela_resumo_seit,
'tabela_resumo_diagnostico': tabela_resumo_diagnostico,
'g_conv_proj': g_conv_proj,
"g_convassinado_proj":g_convassinado_proj,
"g_convassinado_proj": g_convassinado_proj,
'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()
@ -52,7 +52,7 @@ def busca_informacoes_camara():
# 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_nao_aderidas = []
@ -111,23 +111,24 @@ def busca_informacoes_camara():
return {
u'cabecalho_topo': cabecalho_topo,
u'lista_zip': lista_zip,
u'total_camaras' : camaras.count(),
u'total_camaras': camaras.count(),
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()},

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 %}>
<head>
<title>{% block title %}{% endblock %}</title>
<link rel="stylesheet" type="text/css" href="{% block stylesheet %}{% static "admin/css/base.css" %}{% 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 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>
{% block extrahead %}{% endblock %}
{% block blockbots %}<meta name="robots" content="NONE,NOARCHIVE" />{% endblock %}
<title>{% block title %}{% endblock %}</title>
<link rel="stylesheet" type="text/css" href="{% block stylesheet %}{% static "admin/css/base.css" %}{% 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 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>
{% block extrahead %}{% endblock %}
{% block blockbots %}<meta name="robots" content="NONE,NOARCHIVE" />{% endblock %}
</head>
{% load i18n %}

92
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 %}
@ -60,14 +144,14 @@
{% block breadcrumbs %}{% endblock %}
{% block content %}
<div id="content-main">
<div id="content-main">
{% include "snippets/modules/charts-convenios.html" %}
</div>
</div>
{% endblock %}
{% block sidebar %}
<div id="content-related">
<div id="content-related">
{% include "snippets/modules/user.html" %}
{% include "snippets/modules/actions.html" %}
</div>
</div>
{% 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;">
<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 %}
@ -127,7 +103,7 @@
<div class="align-center">
<a href="/dashboard/mapa/"> <img src="{{ STATIC_URL }}img/mapicon-large.png" style="width: 60%;"/> </a>
</div>
{% comment %}
{% comment %}
<h2>Metas BID</h2>
<h3>Estado das metas do contrato BID</h3>
<table style="margin: auto;">

Loading…
Cancel
Save