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'')) + - " link" % (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'')) + + " link" % (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