first step toward editstops
This commit is contained in:
parent
9d2648e33c
commit
caafe71240
|
@ -97,7 +97,6 @@ class Stop(models.Model):
|
||||||
alt_names = generic.GenericRelation("AlternativeName")
|
alt_names = generic.GenericRelation("AlternativeName")
|
||||||
|
|
||||||
def get_dict(self):
|
def get_dict(self):
|
||||||
routes = [r.route.alias for r in RouteDetail.objects.filter(stop=self)]
|
|
||||||
return {
|
return {
|
||||||
'id': self.id,
|
'id': self.id,
|
||||||
'code': self.code,
|
'code': self.code,
|
||||||
|
@ -107,8 +106,8 @@ class Stop(models.Model):
|
||||||
'road': self.road.name,
|
'road': self.road.name,
|
||||||
'area': self.area.name,
|
'area': self.area.name,
|
||||||
'name_mr': self.name_mr,
|
'name_mr': self.name_mr,
|
||||||
'routes': routes
|
'routes': ",".join([r.route.alias for r in RouteDetail.objects.filter(stop=self)]),
|
||||||
#FIXME: add alt names
|
'alternative_names': ",".join([a.name for a in self.alt_names.all().filter(typ='common')])
|
||||||
}
|
}
|
||||||
|
|
||||||
def get_geojson(self, srid=4326):
|
def get_geojson(self, srid=4326):
|
||||||
|
@ -131,6 +130,16 @@ class Stop(models.Model):
|
||||||
self.point = Point(geom[0], geom[1])
|
self.point = Point(geom[0], geom[1])
|
||||||
self.display_name = data['display_name']
|
self.display_name = data['display_name']
|
||||||
self.name_mr = data['name_mr']
|
self.name_mr = data['name_mr']
|
||||||
|
if data.has_key('alternative_names') and data['alternative_names'].strip() != '':
|
||||||
|
for a in self.alt_names.all():
|
||||||
|
a.delete()
|
||||||
|
for a in data['alternative_names'].split(","):
|
||||||
|
alt_name = AlternativeName()
|
||||||
|
alt_name.name = a['name']
|
||||||
|
alt_name.typ = 'common'
|
||||||
|
alt_name.save()
|
||||||
|
self.alt_names.add(alt_name)
|
||||||
|
|
||||||
#FIXME: add alt names logic
|
#FIXME: add alt names logic
|
||||||
self.save()
|
self.save()
|
||||||
return self.get_geojson()
|
return self.get_geojson()
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
from models import *
|
from models import *
|
||||||
from django.shortcuts import render_to_response, get_object_or_404
|
from django.shortcuts import render_to_response, get_object_or_404
|
||||||
from django.template import RequestContext
|
from django.template import RequestContext
|
||||||
|
from django.contrib.auth.decorators import login_required
|
||||||
|
|
||||||
def index(request):
|
def index(request):
|
||||||
return render_to_response("index.html", {})
|
return render_to_response("index.html", {})
|
||||||
|
@ -36,3 +37,9 @@ def area(request, name):
|
||||||
})
|
})
|
||||||
return render_to_response("area.html", context)
|
return render_to_response("area.html", context)
|
||||||
|
|
||||||
|
@login_required
|
||||||
|
def editstops(request):
|
||||||
|
context = RequestContext(request, {})
|
||||||
|
return render_to_response("editstops.html", context)
|
||||||
|
|
||||||
|
|
||||||
|
|
0
chaloBEST/static/css/editstops.css
Normal file
0
chaloBEST/static/css/editstops.css
Normal file
31
chaloBEST/static/js/editstops.js
Normal file
31
chaloBEST/static/js/editstops.js
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
var API_BASE = "/1.0/"
|
||||||
|
$(function() {
|
||||||
|
$('.tabButton').click(function() {
|
||||||
|
if ($(this).hasClass("selected")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var $that = $(this);
|
||||||
|
var name = $that.attr("data-name");
|
||||||
|
var $listWrapper = $('#' + name);
|
||||||
|
if ($that.data("loaded")) {
|
||||||
|
$.noop(); //dont load data
|
||||||
|
} else {
|
||||||
|
$that.data("loaded", true);
|
||||||
|
var $list = $('#' + name + 'List');
|
||||||
|
$.post("/" + name, {}, function(items) {
|
||||||
|
$.each(items, function(i,v) {
|
||||||
|
var $li = $('<li />')
|
||||||
|
.addClass("listItem")
|
||||||
|
.text(v)
|
||||||
|
.appendTo($list);
|
||||||
|
});
|
||||||
|
}, "json");
|
||||||
|
}
|
||||||
|
|
||||||
|
$('.listWrapper').hide();
|
||||||
|
$listWrapper.show();
|
||||||
|
$('.selected').removeClass("selected");
|
||||||
|
$that.addClass("selected");
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
|
@ -1,6 +1,7 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
<script type="text/javascript" src="/static/js/jquery-1.7.1.min.js"></script>
|
<script type="text/javascript" src="/static/js/jquery-1.7.1.min.js"></script>
|
||||||
<title>ChaloBEST: {% block title %} {% endblock %}</title>
|
<title>ChaloBEST: {% block title %} {% endblock %}</title>
|
||||||
{% block head %}
|
{% block head %}
|
||||||
|
|
39
chaloBEST/templates/editstops.html
Normal file
39
chaloBEST/templates/editstops.html
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
{% extends 'base.html' %}
|
||||||
|
|
||||||
|
{% block head %}
|
||||||
|
<link rel="stylesheet" href="/static/css/editstops.css" />
|
||||||
|
<script type="text/javascript" src="/static/js/editstops.js"></script>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
<div id="listCol">
|
||||||
|
<div id="tabButtons">
|
||||||
|
<div id="areasTabBtn" class="tabButton" data-name="areas">
|
||||||
|
Areas
|
||||||
|
</div>
|
||||||
|
<div id="routesTabBtn" class="tabButton" data-name="routes">
|
||||||
|
Routes
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="listsWrapper">
|
||||||
|
<div id="areas" class="listWrapper">
|
||||||
|
<input type="text" id="areasSearch" class="listSearch" />
|
||||||
|
<ul id="areasList">
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="routes" class="listWrapper">
|
||||||
|
<input type="text" id="routesSearch" class="listSearch" />
|
||||||
|
<ul id="routesList">
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="mapCol">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div id="formCol">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% endblock %}
|
|
@ -17,6 +17,7 @@ urlpatterns = patterns('',
|
||||||
(r'^route/(?P<alias>[a-zA-Z0-9\s\-]*?)/$', 'mumbai.views.route'),
|
(r'^route/(?P<alias>[a-zA-Z0-9\s\-]*?)/$', 'mumbai.views.route'),
|
||||||
(r'^areas/$', 'mumbai.views.areas'),
|
(r'^areas/$', 'mumbai.views.areas'),
|
||||||
(r'^area/(?P<name>.*?)/$', 'mumbai.views.area'),
|
(r'^area/(?P<name>.*?)/$', 'mumbai.views.area'),
|
||||||
|
(r'^editstops/$', 'mumbai.views.editstops'),
|
||||||
(r'^1.0/', include('mumbai.apiurls')),
|
(r'^1.0/', include('mumbai.apiurls')),
|
||||||
# Uncomment the admin/doc line below to enable admin documentation:
|
# Uncomment the admin/doc line below to enable admin documentation:
|
||||||
(r'^admin/doc/', include('django.contrib.admindocs.urls')),
|
(r'^admin/doc/', include('django.contrib.admindocs.urls')),
|
||||||
|
|
Loading…
Reference in New Issue
Block a user