def sendDriverEmail(self,ride): if not ride.driver: return if choice != "facebook": to = ride.driver.email() else: logging.debug(ride.driver) to = FBUser.get_by_key_name(ride.driver) logging.debug(to) sender = FROM_EMAIL_ADDR subject = "New Passenger for your ride" p = db.get(ride.passengers[-1]) user = FBUser.get_by_key_name(p.name) body = """ Dear %s, We wanted to let you know that %s has been added to your ride from %s to %s on %s. If you need to contact %s you can do so at %s. Thanks for being a driver! Sincerely, The Rideshare Team """ % (to.nickname(), user.nickname(), ride.start_point_title, ride.destination_title, ride.ToD, user.nickname(), p.contact) if choice != "facebook": logging.debug(body) mail.send_mail(sender,to,subject,body) else: graph = facebook.GraphAPI(to.access_token) logging.debug(graph) graph.put_object("me", "feed", message=body)
def sendDriverEmail(self, ride): if not ride.driver: return if choice != "facebook": to = ride.driver.email() else: logging.debug(ride.driver) to = FBUser.get_by_key_name(ride.driver) logging.debug(to) sender = FROM_EMAIL_ADDR subject = "New Passenger for your ride" p = db.get(ride.passengers[-1]) user = FBUser.get_by_key_name(p.name) body = """ Dear %s, We wanted to let you know that %s has been added to your ride from %s to %s on %s. If you need to contact %s you can do so at %s. Thanks for being a driver! Sincerely, The Rideshare Team """ % (to.nickname(), user.nickname(), ride.start_point_title, ride.destination_title, ride.ToD, user.nickname(), p.contact) if choice != "facebook": logging.debug(body) mail.send_mail(sender, to, subject, body) else: graph = facebook.GraphAPI(to.access_token) logging.debug(graph) graph.put_object("me", "feed", message=body)
def get(self): user = FBUser.get_by_key_name(self.current_user.id) aquery = db.Query(College) mycollege= aquery.get() eventsList = [] circles = [] for item in user.circles: query = db.Query(Event) query.filter("ToD > ", datetime.date.today()) query.filter("circle =",str(item)) event_list = query.fetch(limit=100) logging.debug(event_list) for event in event_list: eventsList.append(event.to_dict()) circles.append(Circle.get_by_id(int(item))) path = os.path.join(os.path.dirname(__file__), 'templates/main.html') self.response.out.write(str(template.render(path, { 'event_list': eventsList, 'circles' : circles, 'college':mycollege, 'logout':'/auth/logout', 'nick':self.current_user.nickname() })))
def sendRiderEmail(self, ride, to): if choice == "facebook": to = FBUser.get_by_key_name(to) user = self.current_user logging.debug(to) sender = FROM_EMAIL_ADDR subject = "Change in your ride" body = """ Dear %s, We have good news about your request for a ride from %s to %s on %s. %s has agreed to drive. You can contact the driver at %s. Have a safe trip! Sincerely, The Rideshare Team """ % (to.nickname(), ride.start_point_title, ride.destination_title, ride.ToD, user.nickname(), ride.contact) if choice != "facebook": logging.debug(body) mail.send_mail(sender,to.email(),subject,body) else: graph = facebook.GraphAPI(to.access_token) graph.put_object("me", "feed", message=body)
def sendRiderEmail(self, ride, to): if choice == "facebook": to = FBUser.get_by_key_name(to) logging.debug(to) sender = FROM_EMAIL_ADDR subject = "Change in your ride" body = """ Dear %s, We wanted to let you know that there has been a change in status of your ride from %s to %s on %s. Unfortunately the driver is unable to drive anymore. The ride will remain, but it will appear as a ride that is in need of a driver. When a new driver is found you will be notified by email. Sincerely, The Rideshare Team """ % (to.nickname(), ride.start_point_title, ride.destination_title, ride.ToD) if choice != "facebook": mail.send_mail(sender, to.email(), subject, body) else: try: graph = facebook.GraphAPI(to.access_token) graph.put_object("me", "feed", message=body) except: logging.debug(graph.put_object("me", "feed", message=body))
def sendRiderEmail(self, ride, to): if choice == "facebook": to = FBUser.get_by_key_name(to) user = self.current_user logging.debug(to) sender = FROM_EMAIL_ADDR subject = "Change in your ride" body = """ Dear %s, We have good news about your request for a ride from %s to %s on %s. %s has agreed to drive. You can contact the driver at %s. Have a safe trip! Sincerely, The Rideshare Team """ % (to.nickname(), ride.start_point_title, ride.destination_title, ride.ToD, user.nickname(), ride.contact) if choice != "facebook": logging.debug(body) mail.send_mail(sender, to.email(), subject, body) else: graph = facebook.GraphAPI(to.access_token) graph.put_object("me", "feed", message=body)
def get(self): drivernum = self.request.get('dkey') user = FBUser.get_by_key_name(drivernum) doRender(self, 'ratedriver.html', { 'driver': user.nickname(), 'drivernum':drivernum })
def sendRiderEmail(self, ride, to): if choice == "facebook": to = FBUser.get_by_key_name(to) logging.debug(to) sender = FROM_EMAIL_ADDR subject = "Change in your ride" body = """ Dear %s, We wanted to let you know that there has been a change in status of your ride from %s to %s on %s. Unfortunately the driver is unable to drive anymore. The ride will remain, but it will appear as a ride that is in need of a driver. When a new driver is found you will be notified by email. Sincerely, The Rideshare Team """ % (to.nickname(), ride.start_point_title, ride.destination_title, ride.ToD) if choice != "facebook": mail.send_mail(sender,to.email(),subject,body) else: try: graph = facebook.GraphAPI(to.access_token) graph.put_object("me", "feed", message=body) except: logging.debug(graph.put_object("me", "feed", message=body))
def get(self): drivernum = self.request.get('dkey') user = FBUser.get_by_key_name(drivernum) doRender( self, 'ratedriver.html', { 'driver': user.nickname(), 'nick': self.current_user.nickname(), 'drivernum': drivernum })
def get(self): aquery = db.Query(College) mycollege= aquery.get() drivernum = self.request.get('dkey') user = FBUser.get_by_key_name(drivernum) doRender(self, 'ratedriver.html', { 'driver': user.nickname(), 'drivernum':drivernum, 'college':mycollege })
def post(self): drivernum = self.request.get("driver") text = self.request.get("ratetext") ooFrating = self.request.get("ooFrating") user = FBUser.get_by_key_name(drivernum) user.drivercomments.append(text) user.numrates = user.numrates + 1 if user.rating == None: user.rating = float(ooFrating) else: user.rating = user.rating + float(ooFrating) user.put() doRender(self, "submit.html", {}) self.redirect("/home")
def post(self): drivernum = self.request.get("driver") text = self.request.get("ratetext") ooFrating = self.request.get("ooFrating") user= FBUser.get_by_key_name(drivernum) user.drivercomments.append(text) user.numrates = user.numrates + 1 if user.rating== None: user.rating= float(ooFrating) else: user.rating= user.rating + float(ooFrating) user.put() doRender(self, "submit.html",{}) self.redirect("/home")
def get(self): drivernum = self.request.get('drivernum') user = FBUser.get_by_key_name(drivernum) ratingslist= user.drivercomments name = user.nickname() if user.rating != None: rating = user.rating/user.numrates else: rating= 0.00 numrates = user.numrates doRender(self, 'driverrating.html', { 'ratingslist': ratingslist, 'name': name, 'rating':str(rating)[0:3], 'numrates':numrates })
def post(self): aquery = db.Query(College) mycollege = aquery.get() drivernum = self.request.get("driver") text = self.request.get("ratetext") ooFrating = self.request.get("ooFrating") # Out Of Five user = FBUser.get_by_key_name(drivernum) user.drivercomments.append(text) user.numrates = user.numrates + 1 if user.rating == None: user.rating = float(ooFrating) else: user.rating = user.rating + float(ooFrating) user.put() doRender(self, "submit.html",{"college",mycollege}) self.redirect("/home")
def get(self): ride_key = self.request.get("key") contact = self.request.get("contact") numpass = self.request.get("numpass") user = self.current_user ride = Ride.get(ride_key) ride.driver = user.id ride.drivername = FBUser.get_by_key_name(user.id).nickname() ride.contact = contact ride.max_passengers = int(numpass) ride.put() for p in ride.passengers: to = Passenger.get(p).name self.sendRiderEmail(ride, to) self.response.out.write("OK")
def get(self): ride_key = self.request.get("key") contact = self.request.get("contact") numpass = self.request.get("numpass") user = self.current_user ride = Ride.get(ride_key) ride.driver = user.id ride.drivername = FBUser.get_by_key_name(user.id).nickname() ride.contact = contact ride.max_passengers = int(numpass) ride.put() for p in ride.passengers: to = Passenger.get(p).name self.sendRiderEmail(ride,to) self.response.out.write("OK")
def get(self): drivernum = self.request.get('drivernum') user = FBUser.get_by_key_name(drivernum) ratingslist = user.drivercomments name = user.nickname() if user.rating != None: rating = user.rating / user.numrates else: rating = 0.00 numrates = user.numrates doRender( self, 'driverrating.html', { 'ratingslist': ratingslist, 'nick': self.current_user.nickname(), 'name': name, 'rating': str(rating)[0:3], 'numrates': numrates })
def get(self): ride_key = self.request.get("key") contact = self.request.get("contact") numpass = self.request.get("numpass") user = self.current_user ride = Ride.get(ride_key) ride.driver = user.id ride.drivername = FBUser.get_by_key_name(user.id).nickname() ride.contact = contact ride.max_passengers = int(numpass) ride.put() for p in ride.passengers: logger = logging.getLogger('MySite') logger.info(str(p)) passenger = Passenger.get(p) if passenger.loginType =="google": self.sendRiderEmail(ride,passenger.email,"google") elif passenger.loginType=="facebook": self.sendRiderEmail(ride, passenger.name, "facebook") self.response.out.write("OK")
def get(self): key = self.request.get('key') ride = db.get(key) if ride == None: doRender(self, 'error.html', { 'error_message': "No such ride exists."}) elif ride.num_passengers == 0: db.delete(ride) else: ride.driver = None ride.put() for p in ride.passengers: passenger = Passenger.get(p) passenger = FBUser.get_by_key_name(p.name) if passenger.loginType =="google": self.sendRiderEmail(ride,passenger.email,"google") elif passenger.loginType=="facebook": self.sendRiderEmail(ride, passenger.name, "facebook") user = self.current_user aquery = db.Query(College) mycollege= aquery.get() greeting = '' if user: greeting = ("Welcome, %s! (<a href=\"%s\">sign out</a>) Go to your <a href='/home'>Home Page</a>" % (user.nickname(), users.create_logout_url("/"))) message = 'Your ride has been deleted.' path = os.path.join(os.path.dirname(__file__), 'templates/map.html') self.response.out.write(template.render(path, { 'greeting' : greeting, 'message' : message, 'mapkey':MAP_APIKEY, 'college': mycollege, 'nick' : user.nickname() }))
def post(self): user = FBUser.get_by_key_name(self.current_user.id) user.circles = self.request.str_params.getall("circle") user.put() self.redirect("/main")
def get(self): """ Called when adding a passenger to a ride Arguments: - 'self' Web Arguments: - user_name - ride_key """ # The current user can add himself to the ride. No need for this in the form. user_name = self.current_user.id ride_key = self.request.get('ride_key') contact = self.request.get('contact') address = self.request.get('address') lat = float(self.request.get('lat')) lng = float(self.request.get('lng')) ride = db.get(db.Key(ride_key)) if ride == None: # Check if the ride was found temp = os.path.join(os.path.dirname(__file__), 'templates/error.html') outstr = template.render(temp, {'error_message': 'Error in ride matching'}) self.response.out.write(outstr) # Check if the current user is the driver elif ride.max_passengers == ride.num_passengers: doRender(self, 'error.html', {'error_message': 'This ride is full'}) # Check if the current user is already on the ride already = False for p in ride.passengers: if db.get(p).name== user_name: already = True if already: temp = os.path.join(os.path.dirname(__file__), 'templates/error.html') outstr = template.render(temp, {'error_message': 'You are already registered for this ride!'}) self.response.out.write(outstr) # Check if the current user is already the driver for the ride elif user_name == ride.driver: doRender(self, 'error.html', {'error_message': 'You can\'t be a passenger for a ride which you a driving.'}) else: passenger = Passenger() passenger.name = user_name passenger.fullname = FBUser.get_by_key_name(user_name).nickname() passenger.contact = contact passenger.location = address passenger.lat = lat passenger.lng = lng passenger.ride = db.Key(ride_key) pass_key = passenger.put() ride.num_passengers = ride.num_passengers + 1 ride.passengers.append(pass_key) ride.put() if ride.num_passengers == ride.max_passengers: capacity_message = 'is now full.' else: num_left = ride.max_passengers - ride.num_passengers capacity_message = 'can hold ' + str(num_left) + ' more passengers.' query = db.Query(Ride) query.filter("ToD > ", datetime.datetime.now()) ride_list = query.fetch(limit=100) user = self.current_user greeting = '' if user: greeting = ("Welcome, %s! (<a href=\"%s\">sign out</a>) Go to your <a href='/home'>Home Page</a>" % (user.nickname(), users.create_logout_url("/"))) message = 'You have been added to %s ride.' % (ride.driver) self.sendDriverEmail(ride) path = os.path.join(os.path.dirname(__file__), 'templates/index.html') self.response.out.write(template.render(path, { 'ride_list': ride_list, 'greeting': greeting, 'message': message, 'mapkey':MAP_APIKEY, }))
def get(self): """ Called when a new ride needs to be added to the database. Probably with all of this data it should be done as a form post. Arguments: - `self`: Web Arguments: - max_passengers - num_passengers - driver - start_point_title - start_point_lat - start_point_long - destination_title - destination_lat - destination_long - part_of_day - ToD - contact - ridecomments - driver """ user = self.current_user newRide = Ride() maxp = self.request.get("maxp") inumber = self.request.get("contact") if not "-" in inumber: number = inumber[0:3]+'-'+inumber[3:6]+'-'+inumber[6:] else: number = inumber newRide.contact = number isDriver = self.request.get("isDriver") if isDriver.lower() == "false": isDriver = False else: isDriver = True aquery = db.Query(College) mycollege= aquery.get() """ # For testing latlng = ['41.517658', '-95.452065'] lat = float(latlng[0]) lng = float(latlng[1]) """ lat = float(self.request.get("lat")) * (random.random() * (1.000001-.999999) + 1.000001) lng = float(self.request.get("lng")) * (random.random() * (1.000001-.999999) + 1.000001) checked = self.request.get("toLuther") if checked == 'true': newRide.start_point_title = self.request.get("from") newRide.start_point_lat = lat newRide.start_point_long = lng newRide.destination_title = mycollege.name newRide.destination_lat = mycollege.lat newRide.destination_long = mycollege.lng elif checked == 'false': newRide.start_point_title = mycollege.name newRide.start_point_lat = mycollege.lat newRide.start_point_long = mycollege.lng newRide.destination_title = self.request.get("to") newRide.destination_lat = lat newRide.destination_long = lng y = int(self.request.get("year")) m = int(self.request.get("month")) + 1 d = int(self.request.get("day")) early_late_value = int(self.request.get("earlylate")) part_of_day_value = int(self.request.get("partofday")) # TODO: replace this logic with the global dictionaries. part_of_day = '' if early_late_value == 0: part_of_day += 'Early ' else: part_of_day += 'Late ' if part_of_day_value == 0: part_of_day += 'Morning' elif part_of_day_value == 1: part_of_day += 'Afternoon' else: part_of_day += 'Evening' newRide.part_of_day = part_of_day newRide.ToD = datetime.datetime(int(y),int(m),int(d)) newRide.max_passengers = int(maxp) newRide.num_passengers = 0 newRide.passengers = [] if isDriver: newRide.driver = user.id newRide.drivername = FBUser.get_by_key_name(user.id).nickname() else: user_name = user.id passenger = Passenger() passenger.name = user_name passenger.fullname = FBUser.get_by_key_name(user.id).nickname() logging.debug(FBUser.get_by_key_name(user.id).nickname()) passenger.contact = number passenger.location = newRide.destination_title passenger.lat = lat passenger.lng = lng pass_key = passenger.put() newRide.passengers.append(pass_key) newRide.num_passengers = 1 newRide.comment = self.request.get("comment") ride_key = newRide.put() if not isDriver: passenger.ride = ride_key passenger.put() query = db.Query(Ride) query.filter("ToD > ", datetime.datetime.now()) ride_list = query.fetch(limit=100) self.sendRideEmail(newRide) greeting = '' if user: greeting = ("Welcome, %s! (<a href=\"%s\">sign out</a>) Go to your <a href='/home'>Home Page</a>" % (user.nickname(), users.create_logout_url("/"))) message = 'Your ride has been created!' path = os.path.join(os.path.dirname(__file__), 'templates/index.html') self.response.out.write(template.render(path, { 'ride_list': ride_list, 'greeting': greeting, 'message': message, 'mapkey' : MAP_APIKEY, }))
def get(self): user = self.current_user newRide = Ride() maxp = self.request.get("maxp") inumber = self.request.get("contact") if not "-" in inumber: number = inumber[0:3]+'-'+inumber[3:6]+'-'+inumber[6:] else: number = inumber newRide.contact = number isDriver = self.request.get("isDriver") if isDriver.lower() == "false": isDriver = False else: isDriver = True aquery = db.Query(College) mycollege= aquery.get() lat = float(self.request.get("lat")) * (random.random() * (1.000001-.999999) + 1.000001) lng = float(self.request.get("lng")) * (random.random() * (1.000001-.999999) + 1.000001) checked = self.request.get("toLuther") if checked == 'true': newRide.start_point_title = self.request.get("from") newRide.start_point_lat = lat newRide.start_point_long = lng newRide.destination_title = mycollege.name newRide.destination_lat = mycollege.lat newRide.destination_long = mycollege.lng elif checked == 'false': newRide.start_point_title = mycollege.name newRide.start_point_lat = mycollege.lat newRide.start_point_long = mycollege.lng newRide.destination_title = self.request.get("to") newRide.destination_lat = lat newRide.destination_long = lng y = int(self.request.get("year")) m = int(self.request.get("month")) d = int(self.request.get("day")) time = self.request.get("time") early_late_value = int(self.request.get("earlylate")) part_of_day = '' newRide.event = self.request.get("eventId") newRide.time = time newRide.part_of_day = part_of_day logger = logging.getLogger('MySite') logger.info(str(m)) newRide.ToD = datetime.date(int(y),int(m),int(d)) newRide.max_passengers = int(maxp) newRide.num_passengers = 0 newRide.passengers = [] if isDriver: newRide.driver = user.id newRide.drivername = FBUser.get_by_key_name(user.id).nickname() else: user_name = user.id passenger = Passenger() passenger.name = user_name passenger.fullname = FBUser.get_by_key_name(user.id).nickname() logging.debug(FBUser.get_by_key_name(user.id).nickname()) passenger.contact = number passenger.location = newRide.destination_title passenger.lat = lat passenger.lng = lng pass_key = passenger.put() newRide.passengers.append(pass_key) newRide.num_passengers = 1 newRide.comment = self.request.get("comment") newRide.circle = self.request.get("circleType") ride_key = newRide.put() if not isDriver: passenger.ride = ride_key passenger.put() query = db.Query(Ride) query.filter("ToD > ", datetime.date.today()) query.filter("circle = ",self.request.get("circle")) ride_list = query.fetch(limit=100) self.sendRideEmail(newRide) greeting = '' if user: greeting = ("Welcome, %s! (<a href=\"%s\">sign out</a>) Go to your <a href='/home'>Home Page</a>" % (user.nickname(), users.create_logout_url("/"))) message = 'Your ride has been created!' path = os.path.join(os.path.dirname(__file__), 'templates/map.html') self.response.out.write(str(template.render(path, { 'ride_list': ride_list, 'greeting': greeting, 'message': message, 'mapkey' : MAP_APIKEY, })))
def get(self): """ Called when adding a passenger to a ride Arguments: - 'self' Web Arguments: - user_name - ride_key """ # The current user can add himself to the ride. No need for this in the form. user_name = self.current_user.id ride_key = self.request.get('ride_key') contact = self.request.get('contact') address = self.request.get('address') lat = float(self.request.get('lat')) lng = float(self.request.get('lng')) ride = db.get(db.Key(ride_key)) if ride == None: # Check if the ride was found temp = os.path.join(os.path.dirname(__file__), 'templates/error.html') outstr = template.render( temp, {'error_message': 'Error in ride matching'}) self.response.out.write(outstr) # Check if the current user is the driver elif ride.max_passengers == ride.num_passengers: doRender(self, 'error.html', {'error_message': 'This ride is full'}) # Check if the current user is already on the ride already = False for p in ride.passengers: if db.get(p).name == user_name: already = True if already: temp = os.path.join(os.path.dirname(__file__), 'templates/error.html') outstr = template.render( temp, {'error_message': 'You are already registered for this ride!'}) self.response.out.write(outstr) # Check if the current user is already the driver for the ride elif user_name == ride.driver: doRender( self, 'error.html', { 'error_message': 'You can\'t be a passenger for a ride which you a driving.' }) else: passenger = Passenger() passenger.name = user_name passenger.fullname = FBUser.get_by_key_name(user_name).nickname() passenger.contact = contact passenger.location = address passenger.lat = lat passenger.lng = lng passenger.ride = db.Key(ride_key) pass_key = passenger.put() ride.num_passengers = ride.num_passengers + 1 ride.passengers.append(pass_key) ride.put() if ride.num_passengers == ride.max_passengers: capacity_message = 'is now full.' else: num_left = ride.max_passengers - ride.num_passengers capacity_message = 'can hold ' + str( num_left) + ' more passengers.' query = db.Query(Ride) query.filter("ToD > ", datetime.datetime.now()) ride_list = query.fetch(limit=100) user = self.current_user greeting = '' if user: greeting = ( "Welcome, %s! (<a href=\"%s\">sign out</a>) Go to your <a href='/home'>Home Page</a>" % (user.nickname(), users.create_logout_url("/"))) message = 'You have been added to %s ride.' % (ride.driver) self.sendDriverEmail(ride) path = os.path.join(os.path.dirname(__file__), 'templates/index.html') self.response.out.write( template.render( path, { 'ride_list': ride_list, 'greeting': greeting, 'message': message, 'mapkey': MAP_APIKEY, }))
def get(self): aquery = db.Query(College) mycollege= aquery.get() allCircles = Circle.all() user = FBUser.get_by_key_name(self.current_user.id) doRender(self, "changecircles.html",{"circles":allCircles,"userCircles":user.circles,"college":mycollege})
def get(self): """ Called when a new ride needs to be added to the database. Probably with all of this data it should be done as a form post. Arguments: - `self`: Web Arguments: - max_passengers - num_passengers - driver - start_point_title - start_point_lat - start_point_long - destination_title - destination_lat - destination_long - part_of_day - ToD - contact - ridecomments - driver """ user = self.current_user newRide = Ride() maxp = self.request.get("maxp") inumber = self.request.get("contact") if not "-" in inumber: number = inumber[0:3] + '-' + inumber[3:6] + '-' + inumber[6:] else: number = inumber newRide.contact = number isDriver = self.request.get("isDriver") if isDriver.lower() == "false": isDriver = False else: isDriver = True aquery = db.Query(College) mycollege = aquery.get() """ # For testing latlng = ['41.517658', '-95.452065'] lat = float(latlng[0]) lng = float(latlng[1]) """ lat = float(self.request.get("lat")) lng = float(self.request.get("lng")) checked = self.request.get("toLuther") if checked == 'true': newRide.start_point_title = self.request.get("from") newRide.start_point_lat = lat newRide.start_point_long = lng newRide.destination_title = mycollege.name newRide.destination_lat = mycollege.lat newRide.destination_long = mycollege.lng elif checked == 'false': newRide.start_point_title = mycollege.name newRide.start_point_lat = mycollege.lat newRide.start_point_long = mycollege.lng newRide.destination_title = self.request.get("to") newRide.destination_lat = lat newRide.destination_long = lng y = int(self.request.get("year")) m = int(self.request.get("month")) + 1 d = int(self.request.get("day")) early_late_value = int(self.request.get("earlylate")) part_of_day_value = int(self.request.get("partofday")) # TODO: replace this logic with the global dictionaries. part_of_day = '' if early_late_value == 0: part_of_day += 'Early ' else: part_of_day += 'Late ' if part_of_day_value == 0: part_of_day += 'Morning' elif part_of_day_value == 1: part_of_day += 'Afternoon' else: part_of_day += 'Evening' newRide.part_of_day = part_of_day newRide.ToD = datetime.datetime(int(y), int(m), int(d)) newRide.max_passengers = int(maxp) newRide.num_passengers = 0 newRide.passengers = [] if isDriver: newRide.driver = user.id newRide.drivername = FBUser.get_by_key_name(user.id).nickname() else: user_name = user.id passenger = Passenger() passenger.name = user_name passenger.fullname = FBUser.get_by_key_name(user.id).nickname() logging.debug(FBUser.get_by_key_name(user.id).nickname()) passenger.contact = number passenger.location = newRide.destination_title passenger.lat = lat passenger.lng = lng pass_key = passenger.put() newRide.passengers.append(pass_key) newRide.num_passengers = 1 newRide.comment = self.request.get("comment") ride_key = newRide.put() if not isDriver: passenger.ride = ride_key passenger.put() query = db.Query(Ride) query.filter("ToD > ", datetime.datetime.now()) ride_list = query.fetch(limit=100) self.sendRideEmail(newRide) greeting = '' if user: greeting = ( "Welcome, %s! (<a href=\"%s\">sign out</a>) Go to your <a href='/home'>Home Page</a>" % (user.nickname(), users.create_logout_url("/"))) message = 'Your ride has been created!' path = os.path.join(os.path.dirname(__file__), 'templates/index.html') self.response.out.write( template.render( path, { 'ride_list': ride_list, 'greeting': greeting, 'message': message, 'mapkey': MAP_APIKEY, }))