def get(self): creator = self.request.get('creator', '') logging.info("Creator: %s", creator) logging.info(self.request.arguments()) distance = self.request.get('distance', '') msg = "" found = [] matches = Profile.all().filter('creator =', creator).fetch(1) if matches: user = matches[0] else: user = None results = [] query = Profile.all() keys = dict(INTERESTS) for interest in self.request.arguments(): if interest in keys: query = query.filter("interests =", interest) logging.info("interests = %s" % interest) if user and distance: if user.location is None: msg = "You need to enter your position on the map in your People Finder Profile wave before doing a location based search" results = query.fetch(20) else: max_distance = distance_to_meters( distance, self.request.get('units', '')) results = Profile.proximity_fetch( query, user.location, # Or db.GeoPt max_results=20, max_distance=max_distance # meters ) else: results = query.fetch(20) if user: found = [{ 'name': r.name, 'id': r.creator } for r in results if r.key().name() != user.key().name()] else: found = [{'name': r.name, 'id': r.creator} for r in results] gtugs = simplejson.dumps({'msg': msg, 'results': found}) logging.info("response: %s" % gtugs) self.response.headers.add_header('Content-type', 'application/json') self.response.out.write(gtugs)
def get(self): creator = self.request.get('creator', '') logging.info("Creator: %s", creator); logging.info(self.request.arguments()) distance = self.request.get('distance', '') msg = "" found = [] matches = Profile.all().filter('creator =', creator).fetch(1) if matches: user = matches[0] else: user = None results = [] query = Profile.all() keys = dict(INTERESTS) for interest in self.request.arguments(): if interest in keys: query = query.filter("interests =", interest) logging.info("interests = %s" % interest) if user and distance: if user.location is None: msg = "You need to enter your position on the map in your People Finder Profile wave before doing a location based search" results = query.fetch(20) else: max_distance = distance_to_meters(distance, self.request.get('units', '')) results = Profile.proximity_fetch( query, user.location, # Or db.GeoPt max_results=20, max_distance=max_distance # meters ) else: results = query.fetch(20) if user: found = [{'name': r.name, 'id': r.creator} for r in results if r.key().name() != user.key().name()] else: found = [{'name': r.name, 'id': r.creator} for r in results] gtugs = simplejson.dumps({'msg': msg, 'results': found}) logging.info("response: %s" % gtugs) self.response.headers.add_header('Content-type', 'application/json') self.response.out.write(gtugs)