diff --git a/sigi/apps/metas/templatetags/mapa_tags.py b/sigi/apps/metas/templatetags/mapa_tags.py
index 1ef0ebe..79039a6 100644
--- a/sigi/apps/metas/templatetags/mapa_tags.py
+++ b/sigi/apps/metas/templatetags/mapa_tags.py
@@ -1,37 +1,20 @@
# -*- coding: utf-8 -*-
from django import template
from django.utils.safestring import mark_safe
-from django.utils.translation import ugettext as _
from sigi.apps.casas.models import CasaLegislativa
+from sigi.apps.metas.views import parliament_summary
register = template.Library()
@register.filter(name='map_desc_serv')
-def descricao_servicos(value):
- if not isinstance(value, CasaLegislativa):
+def descricao_servicos(casa):
+ if not isinstance(casa, CasaLegislativa):
return ""
- result = ""
-
- for sv in value.servico_set.all():
- result += _(u'
%s ativado em %s') % (sv.tipo_servico.nome, sv.data_ativacao.strftime('%d/%m/%Y'))
-
- for cv in value.convenio_set.all():
- if (cv.data_retorno_assinatura is None) and (cv.equipada and cv.data_termo_aceite is not None):
- result += _(u"Equipada em %s pelo %s") % (cv.data_termo_aceite.strftime('%d/%m/%Y'), cv.projeto.sigla)
- if (cv.data_retorno_assinatura is not None) and not (cv.equipada and cv.data_termo_aceite is not None):
- result += _(u"Conveniada ao %s em %s") % (cv.projeto.sigla, cv.data_retorno_assinatura.strftime('%d/%m/%Y'))
- if (cv.data_retorno_assinatura is not None) and (cv.equipada and cv.data_termo_aceite is not None):
- result += _(u"Conveniada ao %s em %s e equipada em %s") % (cv.projeto.sigla, cv.data_retorno_assinatura.strftime('%d/%m/%Y'), cv.data_termo_aceite.strftime('%d/%m/%Y'))
-
- for dg in value.diagnostico_set.all():
- result += _(u'Diagnosticada no período de %s a %s') % (dg.data_visita_inicio.strftime('%d/%m/%Y') if dg.data_visita_inicio
- else _(u"<< sem data inicial >>"),
- dg.data_visita_fim.strftime('%d/%m/%Y') if dg.data_visita_fim
- else _(u"<< sem data final >>"))
-
+ summary = parliament_summary(casa)
+ result = ''.join('%s' % info for info in summary['info'])
return mark_safe(result)
descricao_servicos.is_safe = True
diff --git a/sigi/apps/metas/views.py b/sigi/apps/metas/views.py
index d2268a9..82e4025 100644
--- a/sigi/apps/metas/views.py
+++ b/sigi/apps/metas/views.py
@@ -13,6 +13,7 @@ from django.http import HttpResponse
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.utils.datastructures import SortedDict
+from django.utils.translation import ugettext as _
from django.views.decorators.cache import cache_page
from easy_thumbnails.templatetags.thumbnail import thumbnail_url
@@ -295,51 +296,9 @@ def gera_map_data_file(cronjob=False):
# Salta essa casa, pois ela não tem nada com o Interlegis
if c.pk not in casas:
- casa = {
- 'nome': c.nome + ', ' + c.municipio.uf.sigla,
- 'icone': '/static/img/mapmarker.png',
- 'thumb': thumbnail_url(c.foto, 'small'),
- 'foto': (c.foto.url if c.foto else ''),
- 'lat': str(c.municipio.latitude),
- 'lng': str(c.municipio.longitude),
- 'estado': c.municipio.uf.sigla,
- 'regiao': c.municipio.uf.regiao,
- 'diagnosticos': [],
- 'seit': [],
- 'convenios': [],
- 'equipadas': [],
- 'info': []
- }
-
- for sv in c.servico_set.all():
- casa['info'].append(
- _(u"%(name)s ativado em %(date)s") % dict(
- name=sv.tipo_servico.nome,
- date=sv.data_ativacao.strftime('%d/%m/%Y') if sv.data_ativacao else _(u'')) +
- " " % (sv.url, STATIC_URL))
- casa['seit'].append(sv.tipo_servico.sigla)
-
- for cv in c.convenio_set.all():
- if (cv.data_retorno_assinatura is None) and (cv.equipada and cv.data_termo_aceite is not None):
- casa['info'].append(_(u"Equipada em %s pelo %s") % (cv.data_termo_aceite.strftime('%d/%m/%Y'), cv.projeto.sigla))
- casa['equipadas'].append(cv.projeto.sigla)
- if (cv.data_retorno_assinatura is not None) and not (cv.equipada and cv.data_termo_aceite is not None):
- casa['info'].append(_(u"Conveniada ao %s em %s") % (cv.projeto.sigla, cv.data_retorno_assinatura.strftime('%d/%m/%Y')))
- casa['convenios'].append(cv.projeto.sigla)
- if (cv.data_retorno_assinatura is not None) and (cv.equipada and cv.data_termo_aceite is not None):
- casa['info'].append(_(u"Conveniada ao %s em %s e equipada em %s") % (cv.projeto.sigla, cv.data_retorno_assinatura.strftime('%d/%m/%Y'), cv.data_termo_aceite.strftime('%d/%m/%Y')))
- casa['equipadas'].append(cv.projeto.sigla)
- casa['convenios'].append(cv.projeto.sigla)
-
- for dg in c.diagnostico_set.all():
- casa['diagnosticos'].append('P' if dg.publicado else 'A')
- casa['info'].append(_(u'Diagnosticada no período de %s a %s') % (dg.data_visita_inicio.strftime('%d/%m/%Y') if
- dg.data_visita_inicio is not None else _(u""),
- dg.data_visita_fim.strftime('%d/%m/%Y') if dg.data_visita_fim else _(u"")))
-
- casa['info'] = "
".join(casa['info'])
-
- casas[c.pk] = casa
+ summary = parliament_summary(c)
+ summary['info'] = "
".join(summary['info'])
+ casas[c.pk] = summary
json_data = simplejson.dumps(casas)
@@ -357,3 +316,49 @@ def gera_map_data_file(cronjob=False):
return _(u"Arquivo %s gerado em %d segundos") % (JSON_FILE_NAME, time.time() - start)
return json_data
+
+
+def parliament_summary(parliament):
+ summary = {
+ 'nome': parliament.nome + ', ' + parliament.municipio.uf.sigla,
+ 'icone': '/static/img/mapmarker.png',
+ 'thumb': thumbnail_url(parliament.foto, 'small'),
+ 'foto': (parliament.foto.url if parliament.foto else ''),
+ 'lat': str(parliament.municipio.latitude),
+ 'lng': str(parliament.municipio.longitude),
+ 'estado': parliament.municipio.uf.sigla,
+ 'regiao': parliament.municipio.uf.regiao,
+ 'diagnosticos': [],
+ 'seit': [],
+ 'convenios': [],
+ 'equipadas': [],
+ 'info': []
+ }
+
+ for sv in parliament.servico_set.all():
+ summary['info'].append(
+ _(u"%(name)s ativado em %(date)s") % dict(
+ name=sv.tipo_servico.nome,
+ date=sv.data_ativacao.strftime('%d/%m/%Y') if sv.data_ativacao else _(u'')) +
+ " " % (sv.url, STATIC_URL))
+ summary['seit'].append(sv.tipo_servico.sigla)
+
+ for cv in parliament.convenio_set.all():
+ if (cv.data_retorno_assinatura is None) and (cv.equipada and cv.data_termo_aceite is not None):
+ summary['info'].append(_(u"Equipada em %s pelo %s") % (cv.data_termo_aceite.strftime('%d/%m/%Y'), cv.projeto.sigla))
+ summary['equipadas'].append(cv.projeto.sigla)
+ if (cv.data_retorno_assinatura is not None) and not (cv.equipada and cv.data_termo_aceite is not None):
+ summary['info'].append(_(u"Conveniada ao %s em %s") % (cv.projeto.sigla, cv.data_retorno_assinatura.strftime('%d/%m/%Y')))
+ summary['convenios'].append(cv.projeto.sigla)
+ if (cv.data_retorno_assinatura is not None) and (cv.equipada and cv.data_termo_aceite is not None):
+ summary['info'].append(_(u"Conveniada ao %s em %s e equipada em %s") % (cv.projeto.sigla, cv.data_retorno_assinatura.strftime('%d/%m/%Y'), cv.data_termo_aceite.strftime('%d/%m/%Y')))
+ summary['equipadas'].append(cv.projeto.sigla)
+ summary['convenios'].append(cv.projeto.sigla)
+
+ for dg in parliament.diagnostico_set.all():
+ summary['diagnosticos'].append('P' if dg.publicado else 'A')
+ summary['info'].append(_(u'Diagnosticada no período de %s a %s') % (dg.data_visita_inicio.strftime('%d/%m/%Y') if
+ dg.data_visita_inicio is not None else _(u""),
+ dg.data_visita_fim.strftime('%d/%m/%Y') if dg.data_visita_fim else _(u"")))
+
+ return summary