From 22af8ade6d8b43a31e2748a8c5c4e2e48000624a Mon Sep 17 00:00:00 2001 From: Schuyler Erle Date: Wed, 22 Feb 2012 04:46:54 -0800 Subject: [PATCH 1/5] Add a save button. --- chaloBEST/static/js/editstops.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/chaloBEST/static/js/editstops.js b/chaloBEST/static/js/editstops.js index 8b8d85c..ddd4b0e 100644 --- a/chaloBEST/static/js/editstops.js +++ b/chaloBEST/static/js/editstops.js @@ -191,6 +191,12 @@ var API_BASE = "/1.0/", $form.submit(); }) .appendTo($form); + $('
').appendTo($form); + $('').attr("type","button").val("Save") + .click(function () { + $form.submit(); + }) + .appendTo($form); var $lat_input = $('').attr("type", "hidden").val(lat).attr("id", "lat").appendTo($form); var $lon_input = $('').attr("type", "hidden").val(lon).attr("id", "lon").appendTo($form); $form.submit(function(e) { From 4a2d93190eff186c19c64f15191a19859ca1a136 Mon Sep 17 00:00:00 2001 From: Sanj Date: Wed, 22 Feb 2012 18:45:52 +0530 Subject: [PATCH 2/5] fix stats --- chaloBEST/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chaloBEST/views.py b/chaloBEST/views.py index ec36d2b..db970db 100644 --- a/chaloBEST/views.py +++ b/chaloBEST/views.py @@ -17,7 +17,7 @@ def stats(request): total_stops = Stop.objects.count() stops_left = total_stops for stp in Stop.objects.all(): - if stp.stoplocation_set.all(): + if stp.point: stops_left-=1 @@ -30,7 +30,7 @@ def stats(request): area_stops = area.stop_set.all() astops_left = len(area_stops) for stp in area_stops: - if stp.stoplocation_set.all(): + if stp.point: astops_left-=1 area_stat.append({'area':area,'neededstops':astops_left}) From 374a8f695fabf8429f931918493ccc3cf5d64869 Mon Sep 17 00:00:00 2001 From: Sanj Date: Wed, 22 Feb 2012 19:27:55 +0530 Subject: [PATCH 3/5] stats view --- chaloBEST/mumbai/views.py | 28 ++++++++++++++++++++++++++++ chaloBEST/templates/stats.html | 21 ++++++--------------- chaloBEST/urls.py | 2 +- chaloBEST/views.py | 13 +++++++------ 4 files changed, 42 insertions(+), 22 deletions(-) diff --git a/chaloBEST/mumbai/views.py b/chaloBEST/mumbai/views.py index 25d520b..20e979c 100644 --- a/chaloBEST/mumbai/views.py +++ b/chaloBEST/mumbai/views.py @@ -43,3 +43,31 @@ def editstops(request): return render_to_response("editstops.html", context) +def stats(request): + total_stops_left = Stop.objects.filter(point=None).count() + areas = [] + for a in Area.objects.all(): + stops = Stop.objects.filter(area=a) + d = { + 'area': a, + #'area_name': a.name, + 'total_stops': stops.count(), + 'remaining_stops': stops.filter(point=None).count() + } + areas.append(d) + routes = [] + for r in Route.objects.all(): + stops = Stop.objects.filter(routedetail__route=r) + d = { + 'route': r, + #'route_name': r.name, + 'total_stops': stops.count(), + 'remaining_stops': stops.filter(point=None).count() + } + routes.append(d) + return render_to_response("stats.html", { + 'total_stops_left': total_stops_left, + 'areas': areas, + 'routes': routes + }) + diff --git a/chaloBEST/templates/stats.html b/chaloBEST/templates/stats.html index 41eb067..29e276f 100644 --- a/chaloBEST/templates/stats.html +++ b/chaloBEST/templates/stats.html @@ -36,16 +36,7 @@ {% endblock %} @@ -55,13 +46,13 @@ ChaloBEST! The Stats.. -

We have {{ stops_left }} stops left!



+

We have {{ total_stops_left }} stops left!



-

Routes needing some love..


+

Routes needing some love..


    - {% for r in route_stat %} + {% for r in routes %}
  • - {{ r.route.alias }} needs {{ r.neededstops }} stop locations. + {{ r.route.alias }} needs {{ r.remaining_stops }} stop locations out of {{ r.total_stops }}.
  • {% endfor %}
@@ -69,9 +60,9 @@

Areas needing some love..


    - {% for a in area_stat %} + {% for a in areas %}
  • - {{ a.area.name }} needs {{ a.neededstops }} stop locations. + {{ a.area.name }} needs {{ a.remaining_stops }} stop locations out of {{ a.total_stops }}.
  • {% endfor %}
diff --git a/chaloBEST/urls.py b/chaloBEST/urls.py index aa1d5ef..f7dde24 100644 --- a/chaloBEST/urls.py +++ b/chaloBEST/urls.py @@ -12,7 +12,7 @@ urlpatterns = patterns('', # Example: # (r'^chaloBEST/', include('chaloBEST.foo.urls')), url(r'^$','chaloBEST.views.index', name='index'), - url(r'^stats/$','chaloBEST.views.stats', name='stats'), + url(r'^stats/$','mumbai.views.stats', name='stats'), url(r'^static/(?P.*)$','django.views.static.serve', {'document_root':'./static'}), (r'^routes/$', 'mumbai.views.routes'), (r'^route/(?P[a-zA-Z0-9\s\-]*?)/$', 'mumbai.views.route'), diff --git a/chaloBEST/views.py b/chaloBEST/views.py index db970db..86985c1 100644 --- a/chaloBEST/views.py +++ b/chaloBEST/views.py @@ -27,12 +27,13 @@ def stats(request): area_stat = [] for area in arealist: - area_stops = area.stop_set.all() - astops_left = len(area_stops) - for stp in area_stops: - if stp.point: - astops_left-=1 - + # area_stops = area.stop_set.all() + # astops_left = len(area_stops) + astops_left = Stop.objects.filter(area=area).filter(point=None).count() +# for stp in area_stops: +# if stp.point: +# astops_left-=1 +# area_stat.append({'area':area,'neededstops':astops_left}) From 67a65eec98848189662b0b7c68c0dfcffc74d566 Mon Sep 17 00:00:00 2001 From: Schuyler Erle Date: Wed, 22 Feb 2012 06:27:36 -0800 Subject: [PATCH 4/5] Add a permalink that opens the relevant view in OSM.org in a different window --- chaloBEST/static/js/editstops.js | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/chaloBEST/static/js/editstops.js b/chaloBEST/static/js/editstops.js index ddd4b0e..8051b27 100644 --- a/chaloBEST/static/js/editstops.js +++ b/chaloBEST/static/js/editstops.js @@ -233,7 +233,8 @@ var API_BASE = "/1.0/", function initMap() { var center = new OpenLayers.LonLat(8110203.9998955, 2170000.4068373); map = new OpenLayers.Map("mapCol", { - projection: new OpenLayers.Projection("EPSG:900913") + projection: new OpenLayers.Projection("EPSG:900913"), + displayProjection: new OpenLayers.Projection("EPSG:4326") }); var layers = []; // layers[0] = new OpenLayers.Layer.OSM(); @@ -245,9 +246,15 @@ var API_BASE = "/1.0/", key: "AqGpO7N9ioFw3YHoPV3C8crGfJqW5YST4gGKgIOnijrUbitLlgcAS2A0M9SJrUv9", }); geojson_format = new OpenLayers.Format.GeoJSON(); + // //yes, jsonLayer is global. Yes, I know it's wrong. jsonLayer = layers[2] = new OpenLayers.Layer.Vector("Bus Stops"); map.addLayers(layers); + jsonLayer.events.on({ + 'featureselected': onFeatureSelect, + 'featureunselected': onFeatureUnselect + }); + map.setCenter(center, 12); var navigationControl = new OpenLayers.Control.Navigation({ defaultDblClick: function(event) { @@ -274,28 +281,30 @@ var API_BASE = "/1.0/", var pt = new OpenLayers.Geometry.Point(lonlat.lon, lonlat.lat); var feature = new OpenLayers.Feature.Vector(pt, stop); $('.selectedStop').removeClass("no_has_point").addClass("has_point"); - //console.log("trying to add", feature); jsonLayer.addFeatures([feature]); mapControl.select(feature); } -// console.log(lonlat); return; } }); map.addControl(navigationControl); + + // Feature selection control mapControl = new OpenLayers.Control.SelectFeature(jsonLayer, { clickout: false, toggle: true }); - map.addControl(new OpenLayers.Control.LayerSwitcher()); map.addControl(mapControl); - // map.addControl(zoomControl); mapControl.activate(); - // zoomControl.activate(); - jsonLayer.events.on({ - 'featureselected': onFeatureSelect, - 'featureunselected': onFeatureUnselect - }); + + // Add a LayerSwitcher since we now have Bing + map.addControl(new OpenLayers.Control.LayerSwitcher()); + + // Add a permalink that opens the relevant view in OSM.org in a different window + var permalink = new OpenLayers.Control.Permalink({base: "http://www.openstreetmap.org/"}); + map.addControl(permalink); + $(".olControlPermalink a").attr("target","_blank").html("View in OSM"); + } function onFeatureSelect(e) { From 7c869fd4da4ed2da2b45c73559cc3367a783adbb Mon Sep 17 00:00:00 2001 From: Sanj Date: Thu, 23 Feb 2012 06:38:39 +0530 Subject: [PATCH 5/5] center map on stop when you click on it --- chaloBEST/static/js/editstops.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/chaloBEST/static/js/editstops.js b/chaloBEST/static/js/editstops.js index ddd4b0e..7284bc5 100644 --- a/chaloBEST/static/js/editstops.js +++ b/chaloBEST/static/js/editstops.js @@ -69,6 +69,8 @@ var API_BASE = "/1.0/", var url = API_BASE + name + "/" + $target.find(".listItemText").text(); $target.data("loading", true); var $loading = $('').addClass("loadingSpan").text("Loading...").appendTo($target); + $('#stopForm').remove(); + $('#formCol').empty(); $.getJSON(url, {'srid': 3857}, function(obj) { $loading.remove(); var stopsGeojson = obj.stops; @@ -370,6 +372,9 @@ var API_BASE = "/1.0/", $('.selectedStop').removeClass("selectedStop"); } mapControl.select(feature); + //map.setCenter(feature.geometry); + var lonLat = new OpenLayers.LonLat(feature.geometry.x, feature.geometry.y); + map.setCenter(lonLat); } //return currently selected feature or false