Browse Source

Refactor map view to remove code duplication

producao
Marcio Mazza 10 years ago
parent
commit
51b82e80e4
  1. 56
      sigi/apps/metas/templates/metas/mapa.html
  2. 52
      sigi/apps/metas/views.py

56
sigi/apps/metas/templates/metas/mapa.html

@ -76,62 +76,20 @@
<div class="panel-heading">{% trans 'Filtros' %}</div> <div class="panel-heading">{% trans 'Filtros' %}</div>
<form id="filter_form" method="get" action=""> <form id="filter_form" method="get" action="">
<h4>{% trans 'Por Serviços SEIT' %}</h4> {% for name, heading, choices in filters %}
<h4>{{ heading }}</h4>
<ul> <ul>
{% for s in servico_choices %} {% for value, span_id, label, checked in choices %}
<li><input type="checkbox" name="seit" value="{{ s.sigla }}" <li><input type="checkbox" name="{{ name }}" value="{{ value }}" {% if checked %}checked="checked" {% endif %}/>
{% if s.sigla in seit %} checked="checked" {% endif %}/> {{ label }}
{{ s.nome }} <span id="{{ span_id }}" class="totalizador">&nbsp;</span>
<span id="{{ s.sigla }}" class="totalizador">&nbsp;</span>
</li>
{% endfor %}
</ul>
<h4>{% trans 'Por Casas conveniadas' %}</h4>
<ul>
{% for p in projeto_choices %}
<li><input type="checkbox" name="convenios" value="{{ p.sigla }}" {% if p.sigla in convenios %}checked="checked" {% endif %}/>
ao {{ p.sigla }} <span id="convenio_{{ p.sigla }}" class="totalizador">&nbsp;</span> </li>
{% endfor %}
</ul>
<h4>{% trans 'Por Casas equipadas' %}</h4>
<ul>
{% for p in projeto_choices %}
<li><input type="checkbox" name="equipadas" value="{{ p.sigla }}" {% if p.sigla in equipadas %}checked="checked"{% endif %} />
pelo {{ p.sigla }}<span id="equip_{{ p.sigla }}" class="totalizador">&nbsp;</span> </li></li>
{% endfor %}
</ul>
<h4>{% trans 'Por Diagnósticos' %}</h4>
<ul>
<li><input type="checkbox" name="diagnosticos" value="A" {% if "A" in diagnosticos %}checked="checked" {% endif %}/>
{% trans 'Em andamento' %}<span id="diagnostico_A" class="totalizador">&nbsp;(1)</span></li>
<li><input type="checkbox" name="diagnosticos" value="P" {% if "P" in diagnosticos %}checked="checked" {% endif %}/>
{% trans 'Publicados' %}<span id="diagnostico_P" class="totalizador">&nbsp;(1)</span></li>
</ul>
<h4>{% trans 'Por região' %}</h4>
<ul>
{% for r in regiao_choices %}
<li><input type="checkbox" name="regioes" value="{{ r.0 }}" {% if r.0 in regioes %}checked="checked"{% endif %}/> {{ r.1 }}
<span id="{{ r.0 }}" class="totalizador">&nbsp;(1)</span></li>
{% endfor %}
</ul>
<h4>{% trans 'Por Estado' %}</h4>
<ul>
{% for e in estado_choices %}
<li><input type="checkbox" name="estados" value="{{ e.sigla }}"
{% if e.sigla in estados %} checked="checked" {% endif %}/>
{{ e.nome }}
<span id="{{ e.sigla }}" class="totalizador">&nbsp;(1)</span>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
{% endfor %}
</form> </form>
</div> </div>
</div> </div>
{% endblock %} {% endblock %}

52
sigi/apps/metas/views.py

@ -10,7 +10,7 @@ from django.core.exceptions import PermissionDenied
from django.db.models import Q from django.db.models import Q
from django.db.models.aggregates import Sum from django.db.models.aggregates import Sum
from django.http import HttpResponse from django.http import HttpResponse
from django.shortcuts import render_to_response from django.shortcuts import render, render_to_response
from django.template import RequestContext from django.template import RequestContext
from django.utils.datastructures import SortedDict from django.utils.datastructures import SortedDict
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
@ -67,32 +67,30 @@ def mapa(request):
Mostra o mapa com filtros carregados com valores default Mostra o mapa com filtros carregados com valores default
""" """
regiao_choices = UnidadeFederativa.REGIAO_CHOICES projetos = Projeto.objects.all()
estado_choices = UnidadeFederativa.objects.all() filters = (
servico_choices = TipoServico.objects.all() # NAME, HEADING,
projeto_choices = Projeto.objects.all() # [(value, label, checked) ...]
("seit", _(u'Por Serviços SEIT'),
seit = [ts.sigla for ts in servico_choices] [(x.sigla, x.sigla, x.nome, True)
convenios = ['PML'] # Apenas o ultimo #hardcoded #fixme for x in TipoServico.objects.all()]),
equipadas = [] # [p.sigla for p in projeto_choices] ("convenios", _(u'Por Casas conveniadas'),
diagnosticos = ['P'] # choices: ["A", "P"] [(x.sigla, 'convenio_' + x.sigla, _(u'ao %(projeto)s') % {'projeto': x.sigla}, x.sigla == 'PML')
regioes = [r[0] for r in regiao_choices] for x in projetos]), # Apenas o ultimo #hardcoded #fixme
estados = [] ("equipadas", _(u'Por Casas equipadas'),
[(x.sigla, 'equip_' + x.sigla, _(u'pelo %(projeto)s') % {'projeto': x.sigla}, False)
extra_context = { for x in projetos]),
'seit': seit, ("diagnosticos", _(u'Por Diagnósticos'),
'convenios': convenios, [('A', 'diagnostico_A', 'Em andamento', False),
'equipadas': equipadas, ('P', 'diagnostico_P', 'Publicados', True)]),
'diagnosticos': diagnosticos, ("regioes", _(u'Por região'),
'regioes': regioes, [(x[0], x[0], x[1], True)
'estados': estados, for x in UnidadeFederativa.REGIAO_CHOICES]),
'regiao_choices': regiao_choices, ("estados", _(u'Por Estado'),
'estado_choices': estado_choices, [(x.sigla, x.sigla, x.nome, False)
'servico_choices': servico_choices, for x in UnidadeFederativa.objects.all()]),
'projeto_choices': projeto_choices, )
} return render(request, 'metas/mapa.html', {'filters': filters})
return render_to_response('metas/mapa.html', extra_context, context_instance=RequestContext(request))
@cache_page(1800) # Cache de 30min @cache_page(1800) # Cache de 30min

Loading…
Cancel
Save