This commit is contained in:
Sanj 2012-02-23 19:53:27 +05:30
commit ba4f482a2b
5 changed files with 95 additions and 104 deletions

View File

@ -54,7 +54,7 @@ def routeWithSomeLocationData(route,limit):
pass pass
if errs <=limit: if errs <=limit:
return dict({'route':route, 'neededstops':len(stoplist) }) return dict({'route':route, 'neededstops':len(stoplist) })
else: else:
return None return None
@ -202,8 +202,6 @@ def getserial(rdlist,stop):
# write ring specific code here. rings have multiple occuring stops, which one to choose?? # write ring specific code here. rings have multiple occuring stops, which one to choose??
return None return None
for rd in rdlist: for rd in rdlist:
if(rd.stop==stop): if(rd.stop==stop):
return rdlist.index(rd) return rdlist.index(rd)
@ -215,14 +213,30 @@ def export_stop_times(routelist):
#routelist = getRoutesHavingAllLocs() #routelist = getRoutesHavingAllLocs()
#1. get routeDetails #1. get routeDetails
#2. #2. get unique routes as unr and the routeDetails subset as rd_subset for that uniqueroute
#3. get unr.routeschedule as unr.rs ?? why is it multiple?
#4. get total distance as tdist from rd_subset
#5. get runtime from unr.rs
#6. if runtime1 is null, then runtime = abs(first_from - first_to)
#7. avgspeed = tdist/runtime... if runtime is not available then ??
#8.
for r in routelist: for r in routelist:
rds = RouteDetail.objects.filter(route=r).order_by('serial') rdlist = RouteDetail.objects.filter(route=r).order_by('serial')
sr_no=0 sr_no=0
for unr in UniqueRoute.objects.filter(route=r).order_by('id'): unrs = UniqueRoute.objects.filter(route=r).order_by('id')
for unr in unrs:
from_stop = unr.from_stop from_stop = unr.from_stop
to_stop = unr.to_stop to_stop = unr.to_stop
rd_subset = rds[getserial(rdlist,from_stop):getserial(rdlist,to_stop)] rd_subset = rdlist[getserial(rdlist,from_stop):getserial(rdlist,to_stop)]
dist=0
for rd in rd_subset:
dist += rd.km
runtime = unr.runtime1
if not runtime:
rs = unr.routeschedule_set.all()[0]
#if rs.
sr_no +=1 sr_no +=1
for rd in rd_subset: for rd in rd_subset:
filedude.writerow([r.code+"_"+sr_no,"","",rd.stop.id,rd.serial]) filedude.writerow([r.code+"_"+sr_no,"","",rd.stop.id,rd.serial])
@ -236,7 +250,7 @@ stop_times.txt
2. Get rdlist = routedetails for that route.order_by('serial'). Get UniqueRoutes for the route. 2. Get rdlist = routedetails for that route.order_by('serial'). Get UniqueRoutes for the route.
3. --- scenario -- Not considering uniqueroutes-- 3. --- scenario -- Not considering uniqueroutes--
3.1 For rd in rdlist 3.1 For rd in rdlist
3.1.1 filewrite (trip_id,,,stopid,stop.serial) 73.1.1 filewrite (trip_id,,,stopid,stop.serial)
----alternate scenario ----alternate scenario
3. For each UniqueRoute, get from_to stops list (rdsubset) from RouteDetail list 3. For each UniqueRoute, get from_to stops list (rdsubset) from RouteDetail list
@ -267,5 +281,13 @@ def export_frequencies():
filedude.writerow(["289_1","16:00:00","22:00:00",420]) filedude.writerow(["289_1","16:00:00","22:00:00",420])
filedude.writerow(["289_1","07:00:00","11:00:00",540]) filedude.writerow(["289_1","07:00:00","11:00:00",540])
def fire_up():
routelist = getRoutesHavingAllLocs()
export_routes(routelist)
#export_stops()
export_frequencies()
export_stop_times()
export_calendar()
export_trips()
export_agency()

View File

@ -1,33 +1 @@
trip_id,arrival_time,departure_time,stop_id,stop_sequence trip_id,arrival_time,departure_time,stop_id,stop_sequence
2820_1,,,1188,1
2820_1,,,1189,2
2820_1,,,1190,3
2820_1,,,1191,4
2820_1,,,1834,5
2820_1,,,1192,6
2820_1,,,1193,7
2820_1,,,1214,8
2820_1,,,1197,9
2820_1,,,1199,10
2820_1,,,1198,11
2894_1,,,1188,1
2894_1,,,1189,2
2894_1,,,1190,3
2894_1,,,1191,4
2894_1,,,1834,5
2894_1,,,1192,6
2894_1,,,1193,7
2894_1,,,1197,8
2894_1,,,1822,9
2894_1,,,1928,10
2894_1,,,1929,11
2894_1,,,1196,12
2894_1,,,1195,13
2894_1,,,1194,14
2894_1,,,1193,15
2894_1,,,1192,16
2894_1,,,1834,17
2894_1,,,1191,18
2894_1,,,1190,19
2894_1,,,1189,20
2894_1,,,1188,21

View File

@ -45,6 +45,7 @@ def editstops(request):
def stats(request): def stats(request):
total_stops_left = Stop.objects.filter(point=None).count() total_stops_left = Stop.objects.filter(point=None).count()
total_stops = Stop.objects.count()
areas = [] areas = []
for a in Area.objects.all(): for a in Area.objects.all():
stops = Stop.objects.filter(area=a) stops = Stop.objects.filter(area=a)
@ -52,7 +53,9 @@ def stats(request):
'area': a, 'area': a,
#'area_name': a.name, #'area_name': a.name,
'total_stops': stops.count(), 'total_stops': stops.count(),
'remaining_stops': stops.filter(point=None).count() 'remaining_stops': stops.filter(point=None).count(),
'stops_done': stops.filter(point__isnull=False).count(),
} }
areas.append(d) areas.append(d)
routes = [] routes = []
@ -62,12 +65,29 @@ def stats(request):
'route': r, 'route': r,
#'route_name': r.name, #'route_name': r.name,
'total_stops': stops.count(), 'total_stops': stops.count(),
'remaining_stops': stops.filter(point=None).count() 'remaining_stops': stops.filter(point=None).count(),
'stops_done': stops.filter(point__isnull=False).count(),
} }
routes.append(d) routes.append(d)
return render_to_response("stats.html", {
areas_sorted = sorted(areas, key=lambda k: k['remaining_stops'])
routes_sorted = sorted(routes, key=lambda k: k['remaining_stops'])
routes = routes_sorted
areas = areas_sorted
routes.reverse()
areas.reverse()
context = {
'total_stop_count': total_stops,
'total_stops_left': total_stops_left, 'total_stops_left': total_stops_left,
'areas': areas, 'areas': areas,
'routes': routes 'routes': routes
}) }
#return context
return render_to_response("stats.html", context)

View File

@ -5,11 +5,11 @@
{% endblock %} {% endblock %}
{% block head %} {% block head %}
<meta http-equiv="refresh" content="45"> <meta http-equiv="refresh" content="60">
<style type ="text/css"> <style type ="text/css">
body { body {
width: 80%; width: 92%;
margin: 0 auto; margin: 0 auto;
background-color:#ff9900 background-color:#ff9900
} }
@ -29,9 +29,29 @@
.areas { .areas {
color:#000000; color:#000000;
background-color:#00ccff; background-color:#ccff99;
} }
ul{
width:900px;
margin-bottom:20px;
overflow:hidden;
border-top:1px solid #ccc;
}
li{
line-height:1.5em;
/*border-bottom:1px solid #ccc; */
float:left;
display:inline;
}
.double li { width:50%;} /* 2 col */
.triple li { width:33.333%; } /* 3 col */
.quad li { width:25%; } /* 4 col */
.six li { width:16.666%; } /*
</style> </style>
@ -42,27 +62,29 @@
{% block body %} {% block body %}
<div class="header" > <div class="header" >
<h1> <h1> ChaloBEST! The Stats..
ChaloBEST! The Stats..
</h1> </h1>
</div> </div>
<div class="stops"> <h2> We have {{ total_stops_left }} stops left! </h2> <br /> <br /> <div class="stops"> <h2>Total Stops : {{ total_stop_count }} <br /> Stops left : {{ total_stops_left }}</h2>
</div>
<div class="routes"> <h3> Routes needing some love.. </h3><br /> <div class="routes"> <h3> Routes: </h3><br />
<ul id="routesList"> <ul id="routesList" class="six" >
{% for r in routes %} {% for r in routes %}
<li class="route listItem"> <li class="route listItem" >
<a href="{{r.route.get_absolute_url}}" title="view stops for route">{{ r.route.alias }} </a> needs {{ r.remaining_stops }} stop locations out of {{ r.total_stops }}. <a href="{{r.route.get_absolute_url}}" title="view stops for route"> {{ r.route.alias }} </a>
- {{ r.stops_done }} / {{ r.total_stops }}
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
</div>
<div class="areas"> <h3> Areas: </h3> <br />
<div class="areas"> <h3> Areas needing some love.. </h3> <br /> <ul id="AreasList" class="quad" >
<ul id="AreasList">
{% for a in areas %} {% for a in areas %}
<li class="area listItem"> <li class="area listItem">
<a href="{{a.area.get_absolute_url}}" title="view stops for area">{{ a.area.name }}</a> needs {{ a.remaining_stops }} stop locations out of {{ a.total_stops }}. <a href="{{a.area.get_absolute_url}}" title="view stops for area">{{ a.area.name }}</a> - {{ a.stops_done }} / {{ a.total_stops }}.
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>

View File

@ -11,44 +11,3 @@ def index(request):
return render_to_response('index.html', {} ) return render_to_response('index.html', {} )
def stats(request):
#No. of stops left
total_stops = Stop.objects.count()
stops_left = total_stops
for stp in Stop.objects.all():
if stp.point:
stops_left-=1
#list of of areas having stops left
arealist = Area.objects.all()
area_stat = []
for area in arealist:
# 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})
#Routes having min stops left...
route_stats_temp = getRoutesHavingSomeLocs(5)
route_stat = []
for routedict in route_stats_temp:
if routedict['neededstops']:
route_stat.append(routedict)
ret = {}
ret['area_stat'] = area_stat
ret['route_stat'] = route_stat
ret['stops_left'] = stops_left
#return ret
return render_to_response('stats.html', ret)