def latest(): fixes = [] for fix in TrackingFix.get_latest(): json = dict( time=fix.time.isoformat() + "Z", location=fix.location.to_wkt(), pilot=dict(id=fix.pilot_id, name=fix.pilot.name), ) optional_attributes = [ "track", "ground_speed", "airspeed", "altitude", "vario", "engine_noise_level", ] for attr in optional_attributes: value = getattr(fix, attr) if value is not None: json[attr] = value fixes.append(json) return jsonify(fixes=fixes)
def index(): fix_schema = TrackingFixSchema(only=('time', 'location', 'altitude', 'elevation', 'pilot')) airport_schema = AirportSchema(only=('id', 'name', 'countryCode')) @cache.memoize(timeout=(60 * 60)) def get_nearest_airport(track): airport = Airport.by_location(track.location, None) if not airport: return None return dict(airport=airport_schema.dump(airport).data, distance=airport.distance(track.location)) tracks = [] for t in TrackingFix.get_latest(): nearest_airport = get_nearest_airport(t) track = fix_schema.dump(t).data if nearest_airport: track['nearestAirport'] = nearest_airport['airport'] track['nearestAirportDistance'] = nearest_airport['distance'] tracks.append(track) if request.user_id: followers = [ f.destination_id for f in Follower.query(source_id=request.user_id) ] else: followers = [] return jsonify(friends=followers, tracks=tracks)
def index(): if 'application/json' not in request.headers.get('Accept', ''): return render_template('ember-page.jinja', active_page='tracking') fix_schema = TrackingFixSchema(only=('time', 'location', 'altitude', 'elevation', 'pilot')) airport_schema = AirportSchema(only=('id', 'name', 'countryCode')) @current_app.cache.memoize(timeout=(60 * 60)) def get_nearest_airport(track): airport = Airport.by_location(track.location, None) if not airport: return None return dict(airport=airport_schema.dump(airport).data, distance=airport.distance(track.location)) tracks = [] for t in TrackingFix.get_latest(): nearest_airport = get_nearest_airport(t) track = fix_schema.dump(t).data if nearest_airport: track['nearestAirport'] = nearest_airport['airport'] track['nearestAirportDistance'] = nearest_airport['distance'] tracks.append(track) if g.current_user: followers = [f.destination_id for f in Follower.query(source=g.current_user)] else: followers = [] return jsonify(friends=followers, tracks=tracks)
def index(): fix_schema = TrackingFixSchema(only=("time", "location", "altitude", "elevation", "pilot")) airport_schema = AirportSchema(only=("id", "name", "countryCode")) @cache.memoize(timeout=(60 * 60)) def get_nearest_airport(track): airport = Airport.by_location(track.location, None) if not airport: return None return dict( airport=airport_schema.dump(airport).data, distance=airport.distance(track.location), ) tracks = [] for t in TrackingFix.get_latest(): nearest_airport = get_nearest_airport(t) track = fix_schema.dump(t).data if nearest_airport: track["nearestAirport"] = nearest_airport["airport"] track["nearestAirportDistance"] = nearest_airport["distance"] tracks.append(track) if request.user_id: followers = [ f.destination_id for f in Follower.query(source_id=request.user_id) ] else: followers = [] return jsonify(friends=followers, tracks=tracks)
def latest(): fixes = [] for fix in TrackingFix.get_latest(): json = dict( time=fix.time.isoformat() + "Z", location=fix.location.to_wkt(), pilot=dict(id=fix.pilot_id, name=fix.pilot.name), ) optional_attributes = [ "track", "ground_speed", "airspeed", "altitude", "vario", "engine_noise_level", ] for attr in optional_attributes: value = getattr(fix, attr) if value is not None: json[attr] = value fixes.append(json) return jsonify(fixes=fixes)
def index(): fix_schema = TrackingFixSchema(only=('time', 'location', 'altitude', 'elevation', 'pilot')) airport_schema = AirportSchema(only=('id', 'name', 'countryCode')) @cache.memoize(timeout=(60 * 60)) def get_nearest_airport(track): airport = Airport.by_location(track.location, None) if not airport: return None return dict(airport=airport_schema.dump(airport).data, distance=airport.distance(track.location)) tracks = [] for t in TrackingFix.get_latest(): nearest_airport = get_nearest_airport(t) track = fix_schema.dump(t).data if nearest_airport: track['nearestAirport'] = nearest_airport['airport'] track['nearestAirportDistance'] = nearest_airport['distance'] tracks.append(track) if request.user_id: followers = [f.destination_id for f in Follower.query(source_id=request.user_id)] else: followers = [] return jsonify(friends=followers, tracks=tracks)
def latest(): fixes = [] for fix in TrackingFix.get_latest(): json = dict(time=isoformat_utc(fix.time), location=fix.location.to_wkt(), pilot=dict(id=fix.pilot_id, name=unicode(fix.pilot))) optional_attributes = ['track', 'ground_speed', 'airspeed', 'altitude', 'vario', 'engine_noise_level'] for attr in optional_attributes: value = getattr(fix, attr) if value is not None: json[attr] = value fixes.append(json) return jsonify(fixes=fixes)
def latest(): fixes = [] for fix in TrackingFix.get_latest(): json = dict(time=fix.time.isoformat() + 'Z', location=fix.location.to_wkt(), pilot=dict(id=fix.pilot_id, name=unicode(fix.pilot))) optional_attributes = [ 'track', 'ground_speed', 'airspeed', 'altitude', 'vario', 'engine_noise_level' ] for attr in optional_attributes: value = getattr(fix, attr) if value is not None: json[attr] = value fixes.append(json) return jsonify(fixes=fixes)
def index(self, **kw): na_cache = cache.get_cache('tracking.nearest_airport', expire=60 * 60) def add_nearest_airport_data(track): def get_nearest_airport(): airport = Airport.by_location(track.location, None) if airport is None: return None, None distance = airport.distance(track.location) return airport, distance airport, distance = na_cache.get(key=track.id, createfunc=get_nearest_airport) return track, airport, distance tracks = [] tracks.extend(map(add_nearest_airport_data, TrackingFix.get_latest())) return dict(tracks=tracks)
def latest(self, **kw): if not request.path.endswith('.json'): raise HTTPNotFound fixes = [] for fix in TrackingFix.get_latest(): json = dict(time=isoformat_utc(fix.time), location=fix.location_wkt.geom_wkt, pilot=dict(id=fix.pilot_id, name=unicode(fix.pilot))) optional_attributes = ['track', 'ground_speed', 'airspeed', 'altitude', 'vario', 'engine_noise_level'] for attr in optional_attributes: value = getattr(fix, attr) if value is not None: json[attr] = value fixes.append(json) return dict(fixes=fixes)
def index(): tracks = TrackingFix.get_latest() @current_app.cache.memoize(timeout=(60 * 60)) def get_nearest_airport(track): airport = Airport.by_location(track.location, None) if not airport: return None distance = airport.distance(track.location) return { 'name': airport.name, 'country_code': airport.country_code, 'distance': distance, } tracks = [(track, get_nearest_airport(track)) for track in tracks] if g.current_user: followers = [ f.destination_id for f in Follower.query(source=g.current_user) ] def is_self_or_follower(track): pilot_id = track[0].pilot_id return pilot_id == g.current_user.id or pilot_id in followers friend_tracks = [t for t in tracks if is_self_or_follower(t)] other_tracks = [t for t in tracks if t not in friend_tracks] else: friend_tracks = [] other_tracks = tracks return render_template('tracking/list.jinja', friend_tracks=friend_tracks, other_tracks=other_tracks)
def index(): tracks = TrackingFix.get_latest() @current_app.cache.memoize(timeout=(60 * 60)) def get_nearest_airport(track): airport = Airport.by_location(track.location, None) if not airport: return None distance = airport.distance(track.location) return { 'name': airport.name, 'country_code': airport.country_code, 'distance': distance, } tracks = [(track, get_nearest_airport(track)) for track in tracks] if g.current_user: followers = [f.destination_id for f in Follower.query(source=g.current_user)] def is_self_or_follower(track): pilot_id = track[0].pilot_id return pilot_id == g.current_user.id or pilot_id in followers friend_tracks = [t for t in tracks if is_self_or_follower(t)] other_tracks = [t for t in tracks if t not in friend_tracks] else: friend_tracks = [] other_tracks = tracks return render_template('tracking/list.jinja', friend_tracks=friend_tracks, other_tracks=other_tracks)
def index(): if 'application/json' not in request.headers.get('Accept', ''): return render_template('ember-page.jinja', active_page='tracking') fix_schema = TrackingFixSchema(only=('time', 'location', 'altitude', 'elevation', 'pilot')) airport_schema = AirportSchema(only=('id', 'name', 'countryCode')) @current_app.cache.memoize(timeout=(60 * 60)) def get_nearest_airport(track): airport = Airport.by_location(track.location, None) if not airport: return None return dict(airport=airport_schema.dump(airport).data, distance=airport.distance(track.location)) tracks = [] for t in TrackingFix.get_latest(): nearest_airport = get_nearest_airport(t) track = fix_schema.dump(t).data if nearest_airport: track['nearestAirport'] = nearest_airport['airport'] track['nearestAirportDistance'] = nearest_airport['distance'] tracks.append(track) if g.current_user: followers = [ f.destination_id for f in Follower.query(source=g.current_user) ] else: followers = [] return jsonify(friends=followers, tracks=tracks)
def index(): fix_schema = TrackingFixSchema( only=("time", "location", "altitude", "elevation", "pilot") ) airport_schema = AirportSchema(only=("id", "name", "countryCode")) @cache.memoize(timeout=(60 * 60)) def get_nearest_airport(track): airport = Airport.by_location(track.location, None) if not airport: return None return dict( airport=airport_schema.dump(airport).data, distance=airport.distance(track.location), ) tracks = [] for t in TrackingFix.get_latest(): nearest_airport = get_nearest_airport(t) track = fix_schema.dump(t).data if nearest_airport: track["nearestAirport"] = nearest_airport["airport"] track["nearestAirportDistance"] = nearest_airport["distance"] tracks.append(track) if request.user_id: followers = [ f.destination_id for f in Follower.query(source_id=request.user_id) ] else: followers = [] return jsonify(friends=followers, tracks=tracks)