diff --git a/anywayapp/css/style.css b/anywayapp/css/style.css
index 2aa57d3c4..0186a8652 100644
--- a/anywayapp/css/style.css
+++ b/anywayapp/css/style.css
@@ -61,4 +61,8 @@
.followers {
padding-bottom: 40px;
+}
+
+.description {
+ white-space: pre;
}
\ No newline at end of file
diff --git a/anywayapp/data/process.py b/anywayapp/data/process.py
index 19d142ede..66c46d8fd 100644
--- a/anywayapp/data/process.py
+++ b/anywayapp/data/process.py
@@ -73,7 +73,6 @@
2 : "דו סיטרי+קו הפרדה רצוף",
3 : "דו סיטרי אין קו הפרדה רצוף",
4 : "אחר",
- 9 : "לא ידוע מספר מסלולים",
},
"RAV_MASLUL" : {
1 : "מיפרדה מסומנת בצבע",
@@ -108,7 +107,6 @@
2 : "תימרור לקוי/חסר",
3 : "אין ליקוי",
4 : "לא נדרש תמרור",
- 5 : "לא ידוע",
},
"TEURA" : {
1 : "אור יום רגיל",
@@ -116,7 +114,6 @@
3 : "לילה פעלה תאורה",
4 : "קיימת תאורה בלתי תקינה/לא פועלת",
5 : "לילה לא קיימת תאורה",
- 6 : "לילה לא ידוע",
},
"BAKARA" : {
1 : "אין בקרה",
@@ -133,7 +130,6 @@
3 : "שרבי",
4 : "ערפילי",
5 : "אחר",
- 9 : "לא ידוע",
},
"PNE_KVISH" : {
1 : "יבש",
@@ -142,7 +138,6 @@
4 : "מכוסה בבוץ",
5 : "חול או חצץ על הכביש",
6 : "אחר",
- 9 : "לא ידוע",
},
"SUG_EZEM" : {
1 : "עץ",
@@ -153,14 +148,12 @@
6 : "גדר בטיחות לרכב",
7 : "חבית",
8 : "אחר",
- 9 : "לא ידוע",
},
"MERHAK_EZEM" : {
1 : "עד מטר",
2 : "1-3 מטר",
3 : "על הכביש",
4 : "על שטח הפרדה",
- 9 : "לא ידוע",
},
"LO_HAZA" : {
1 : "הלך בכיוון התנועה",
@@ -170,7 +163,6 @@
5 : "היה על אי הפרדה",
6 : "היה על שוליים/מדרכה",
7 : "אחר",
- 9 : "לא ידוע",
},
"OFEN_HAZIYA" : {
1 : "התפרץ אל הכביש",
@@ -183,12 +175,10 @@
2 : "לא במעבר חציה לא ליד צומת",
3 : "במעבר חציה בלי רמזור",
4 : "במעבר חציה עם רמזור",
- 9 : "לא ידוע מקום חציה",
},
"KIVUN_HAZIYA" : {
1 : "מימין לשמאל",
2 : "משמאל לימין",
- 9 : "לא ידוע",
},
"STATUS_IGUN" : {
1 : "עיגון מדויק",
@@ -201,13 +191,13 @@
def number(param, value):
- return int(value) if value else 0
+ return int(value) if value else None
def fixed_table(param, value):
return TABLES[param][int(value)] if value and int(value) in TABLES[param] else None
def dictionary(param, value):
- return "a"
+ return None
def boolean(param, value):
return True if value == 1 else False
@@ -289,7 +279,8 @@ def import_data():
for field in FIELD_LIST:
field_name, processor, parameter = FIELD_FUNCTIONS[field]
output_line[field] = processor(parameter, accident[field])
- description_strings.append("%s: %s" % (field_name, output_line[field]))
+ if output_line[field]:
+ description_strings.append("%s: %s" % (field_name, output_line[field]))
if not accident["X"] or not accident["Y"]:
continue
diff --git a/anywayapp/img/accident.svg b/anywayapp/img/accident.svg
new file mode 100755
index 000000000..f3d988b77
--- /dev/null
+++ b/anywayapp/img/accident.svg
@@ -0,0 +1,57 @@
+
\ No newline at end of file
diff --git a/anywayapp/img/petition.svg b/anywayapp/img/petition.svg
new file mode 100755
index 000000000..064cb356c
--- /dev/null
+++ b/anywayapp/img/petition.svg
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/anywayapp/js/app.js b/anywayapp/js/app.js
index 498785465..629aa9651 100644
--- a/anywayapp/js/app.js
+++ b/anywayapp/js/app.js
@@ -4,8 +4,8 @@ var INIT_LAT = 32.0833;
var INIT_LON = 34.8000;
var INIT_ZOOM = 9;
var ICONS = [
- "/img/exclamation.png",
- "/img/events.png"
+ "/img/petition.svg",
+ "/img/accident.svg"
];
var TYPE_STRING = [
"הצעה",
diff --git a/anywayapp/main.py b/anywayapp/main.py
index 3cd1f9f68..451a14560 100644
--- a/anywayapp/main.py
+++ b/anywayapp/main.py
@@ -56,20 +56,20 @@ def post(self):
self.response.write(json.dumps(marker.serialize(self.user)))
class MarkerHandler(BaseHandler):
- def get(self, id):
- marker = Marker.get_by_id(int(id))
+ def get(self, key_name):
+ marker = Marker.get_by_key_name(key_name)
self.response.write(json.dumps(marker.serialize(self.user)))
@user_required
- def put(self, id):
- marker = Marker.get_by_id(int(id))
+ def put(self, key_name):
+ marker = Marker.get_by_key_name(key_name)
data = json.loads(self.request.body)
marker.update(data, self.user)
self.response.write(json.dumps(marker.serialize(self.user)))
@user_required
- def delete(self, id):
- marker = Marker.get_by_id(int(id))
+ def delete(self, key_name):
+ marker = Marker.get_by_key_name(key_name)
marker.delete()
class LoginHandler(BaseHandler):
@@ -115,16 +115,16 @@ def get(self):
class FollowHandler(BaseHandler):
@user_required
- def get(self, id):
- marker = Marker.get_by_id(int(id))
+ def get(self, key_name):
+ marker = Marker.get_by_key_name(key_name)
follower = Follower.all().filter("marker", marker).filter("user", self.user).get()
if not follower:
- Follower(marker = marker, user = self.user).put()
+ Follower(parent = marker, marker = marker, user = self.user).put()
class UnfollowHandler(BaseHandler):
@user_required
- def get(self, id):
- marker = Marker.get_by_id(int(id))
+ def get(self, key_name):
+ marker = Marker.get_by_key_name(key_name)
follower = Follower.all().filter("marker", marker).filter("user", self.user).get()
if follower:
follower.delete()
@@ -139,12 +139,16 @@ def get(self):
user.put()
class ImportHandler(BaseHandler):
- @user_required
- def post(self):
+ def get(self):
+ my_user = User.all().filter("email", "ron.reiter@gmail.com").get()
for data in process.import_data():
- marker = Marker.get_or_insert(
- str(data["id"]),
- user = self.user,
+ old_marker = Marker.get_by_key_name(str(data["id"]))
+ if old_marker:
+ old_marker.delete()
+
+ marker = Marker(
+ key_name=str(data["id"]),
+ user = my_user,
title = "Accident",
description = data["description"].decode("utf8"),
location = db.GeoPt(data["lat"], data["lng"]),
@@ -158,7 +162,7 @@ def post(self):
class StartImportHandler(BaseHandler):
def get(self):
- taskqueue.add(url="/import")
+ taskqueue.add(url="/import", method="GET")
self.response.write("Import started.")
app = webapp2.WSGIApplication([
@@ -167,9 +171,9 @@ def get(self):
("/login", LoginHandler),
("/logout", LogoutHandler),
("/markers", MarkersHandler),
- ("/markers/(\d+)", MarkerHandler),
- ("/follow/(\d+)", FollowHandler),
- ("/unfollow/(\d+)", UnfollowHandler),
+ ("/markers/(.*)", MarkerHandler),
+ ("/follow/(.*)", FollowHandler),
+ ("/unfollow/(.*)", UnfollowHandler),
("/make_admin", MakeAdminHandler),
("/import", ImportHandler),
("/start_import", StartImportHandler),
diff --git a/anywayapp/models.py b/anywayapp/models.py
index 22127aaf5..1a769c265 100644
--- a/anywayapp/models.py
+++ b/anywayapp/models.py
@@ -13,7 +13,7 @@ class User(db.Model):
def serialize(self):
return {
- "id" : self.key().id(),
+ "id" : str(self.key()),
"first_name" : self.first_name,
"last_name" : self.last_name,
"username" : self.username,
@@ -43,7 +43,7 @@ class Marker(db.Model):
def serialize(self, current_user):
return {
- "id" : self.key().id(),
+ "id" : str(self.key()),
"title" : self.title,
"description" : self.description,
"latitude" : self.location.lat,
@@ -92,8 +92,7 @@ def bounding_box_fetch(cls, ne_lat, ne_lng, sw_lat, sw_lng):
center_lat = (ne_lat + sw_lat) / 2
center_lng = (ne_lng + sw_lng) / 2
- distance = max(ne_lng - sw_lng, ne_lat - sw_lat) * 1000
- distance = 100000
+ distance = max(ne_lng - sw_lng, ne_lat - sw_lat) * 10000
query = "distance(location, geopoint(%(lat)3.4f, %(lng)3.4f)) < %(distance)s" % {
"lat" : center_lat,
@@ -102,6 +101,7 @@ def bounding_box_fetch(cls, ne_lat, ne_lng, sw_lat, sw_lng):
}
search_query = search.Query(
query_string=query,
+ options=search.QueryOptions(limit=20)
)
results = index.search(search_query)
return [Marker.get(result.doc_id) for result in results]