Skip to content

Commit

Permalink
work
Browse files Browse the repository at this point in the history
  • Loading branch information
ronreiter committed May 17, 2013
1 parent 8b1386a commit cdc4bd0
Show file tree
Hide file tree
Showing 7 changed files with 100 additions and 39 deletions.
4 changes: 4 additions & 0 deletions anywayapp/css/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -61,4 +61,8 @@

.followers {
padding-bottom: 40px;
}

.description {
white-space: pre;
}
17 changes: 4 additions & 13 deletions anywayapp/data/process.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,6 @@
2 : "דו סיטרי+קו הפרדה רצוף",
3 : "דו סיטרי אין קו הפרדה רצוף",
4 : "אחר",
9 : "לא ידוע מספר מסלולים",
},
"RAV_MASLUL" : {
1 : "מיפרדה מסומנת בצבע",
Expand Down Expand Up @@ -108,15 +107,13 @@
2 : "תימרור לקוי/חסר",
3 : "אין ליקוי",
4 : "לא נדרש תמרור",
5 : "לא ידוע",
},
"TEURA" : {
1 : "אור יום רגיל",
2 : "ראות מוגבלת עקב מזג אויר (עשן,ערפל)",
3 : "לילה פעלה תאורה",
4 : "קיימת תאורה בלתי תקינה/לא פועלת",
5 : "לילה לא קיימת תאורה",
6 : "לילה לא ידוע",
},
"BAKARA" : {
1 : "אין בקרה",
Expand All @@ -133,7 +130,6 @@
3 : "שרבי",
4 : "ערפילי",
5 : "אחר",
9 : "לא ידוע",
},
"PNE_KVISH" : {
1 : "יבש",
Expand All @@ -142,7 +138,6 @@
4 : "מכוסה בבוץ",
5 : "חול או חצץ על הכביש",
6 : "אחר",
9 : "לא ידוע",
},
"SUG_EZEM" : {
1 : "עץ",
Expand All @@ -153,14 +148,12 @@
6 : "גדר בטיחות לרכב",
7 : "חבית",
8 : "אחר",
9 : "לא ידוע",
},
"MERHAK_EZEM" : {
1 : "עד מטר",
2 : "1-3 מטר",
3 : "על הכביש",
4 : "על שטח הפרדה",
9 : "לא ידוע",
},
"LO_HAZA" : {
1 : "הלך בכיוון התנועה",
Expand All @@ -170,7 +163,6 @@
5 : "היה על אי הפרדה",
6 : "היה על שוליים/מדרכה",
7 : "אחר",
9 : "לא ידוע",
},
"OFEN_HAZIYA" : {
1 : "התפרץ אל הכביש",
Expand All @@ -183,12 +175,10 @@
2 : "לא במעבר חציה לא ליד צומת",
3 : "במעבר חציה בלי רמזור",
4 : "במעבר חציה עם רמזור",
9 : "לא ידוע מקום חציה",
},
"KIVUN_HAZIYA" : {
1 : "מימין לשמאל",
2 : "משמאל לימין",
9 : "לא ידוע",
},
"STATUS_IGUN" : {
1 : "עיגון מדויק",
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down
57 changes: 57 additions & 0 deletions anywayapp/img/accident.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions anywayapp/img/petition.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions anywayapp/js/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -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 = [
"הצעה",
Expand Down
44 changes: 24 additions & 20 deletions anywayapp/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down Expand Up @@ -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()
Expand All @@ -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", "[email protected]").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"]),
Expand All @@ -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([
Expand All @@ -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),
Expand Down
8 changes: 4 additions & 4 deletions anywayapp/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand All @@ -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]
Expand Down

0 comments on commit cdc4bd0

Please sign in to comment.