mirror of https://github.com/interlegis/sigi.git
4 changed files with 94 additions and 1 deletions
@ -0,0 +1,28 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
from django.http import HttpResponse |
||||
|
from django.utils import simplejson |
||||
|
from django.db.models import Q |
||||
|
from sigi.apps.servicos.models import CasaAtendida |
||||
|
|
||||
|
def municipios_atendidos(self, servico): |
||||
|
municipios = [] |
||||
|
servico = servico.upper() |
||||
|
|
||||
|
query = Q() |
||||
|
|
||||
|
if servico != 'ALL': |
||||
|
for sigla in servico.split('_'): |
||||
|
query = query | Q(tipo_servico__sigla=sigla) |
||||
|
|
||||
|
query = Q(data_desativacao=None) & query |
||||
|
|
||||
|
for casa in CasaAtendida.objects.all(): |
||||
|
if casa.servico_set.filter(query).exists(): |
||||
|
m = casa.municipio |
||||
|
municipio = {'nome': casa.nome + ', ' + m.uf.sigla, |
||||
|
'lat': str(m.latitude), |
||||
|
'lng': str(m.longitude), |
||||
|
'servicos': "<ul><li>" + "</li><li>".join([s.tipo_servico.nome for s in casa.servico_set.filter(query)]) + "</li></ul>",} |
||||
|
municipios.append(municipio) |
||||
|
|
||||
|
return HttpResponse(simplejson.dumps(municipios), mimetype="application/json") |
@ -0,0 +1,61 @@ |
|||||
|
{% extends "admin/index.html" %} |
||||
|
{% load adminmedia %} |
||||
|
|
||||
|
{% block title %}SIGI{% endblock %} |
||||
|
|
||||
|
{% block extrahead %} |
||||
|
{{ block.super }} |
||||
|
<script type="text/javascript" src="{% admin_media_prefix %}js/core.js"></script> |
||||
|
<script type="text/javascript" src="{% admin_media_prefix %}js/jquery.min.js"></script> |
||||
|
<script type="text/javascript" src="{% admin_media_prefix %}js/jquery.init.js"></script> |
||||
|
<script type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=false"> </script> |
||||
|
<script type="text/javascript"> |
||||
|
(function($) { |
||||
|
$(document).ready(function($) { |
||||
|
var latlng = new google.maps.LatLng(-14.2350040, -51.925280); |
||||
|
var myOptions = { |
||||
|
zoom: 5, |
||||
|
center: latlng, |
||||
|
mapTypeId: google.maps.MapTypeId.ROADMAP |
||||
|
}; |
||||
|
|
||||
|
var map = new google.maps.Map(document.getElementById("map"), |
||||
|
myOptions); |
||||
|
|
||||
|
$.get("/sigi/servicos/munatenjson/{{ params.servico }}", function(municipios) { |
||||
|
for (var i in municipios) { |
||||
|
var municipio = municipios[i]; |
||||
|
var markData = { |
||||
|
map: map, |
||||
|
position: new google.maps.LatLng(municipio.lat, municipio.lng), |
||||
|
title: municipio.nome, |
||||
|
icon: '{{ MEDIA_URL }}images/mapmarker.png' //'/sigi/media/images/mapmarker.png' |
||||
|
} |
||||
|
var mark = new google.maps.Marker(markData); |
||||
|
var infoWin = new google.maps.InfoWindow({content: |
||||
|
'<strong>' + municipio.nome + '</strong><br/>' + |
||||
|
'<strong>Serviço(s):</strong><br/>' + municipio.servicos }); |
||||
|
linkMarkMessage(mark, infoWin, map); |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
function linkMarkMessage(mark, infoWin, map) { |
||||
|
google.maps.event.addListener(mark, 'click', function() { |
||||
|
infoWin.open(map, mark);}); |
||||
|
} |
||||
|
})})(django.jQuery); |
||||
|
</script> |
||||
|
{% endblock %} |
||||
|
|
||||
|
{% block content %} |
||||
|
{% comment %} |
||||
|
<div id="painel"> |
||||
|
<form method="get"> |
||||
|
{% for tipo in servicos %} |
||||
|
<input type="checkbox" value="{{ tipo.sigla }}"/>{{ tipo.nome }} |
||||
|
{% endfor %} |
||||
|
</form> |
||||
|
</div> |
||||
|
{% endcomment %} |
||||
|
<div id="map" style="width:100%; height: 800px; float: left;"></div> |
||||
|
{% endblock %} |
Loading…
Reference in new issue