def updatePercorsiInRideOffers(test=False): import route more, cursor = True, None while more: # for all ride offers, including expired ones records, cursor, more = RideOffer.query().fetch_page( 100, start_cursor=cursor) updating_records = [] for r in records: old_percorso = convertToUtfIfNeeded(r.percorso) new_percorso = getNewPercorso(old_percorso) if new_percorso is None: # triggering a warning in getNewPercorso print 'aborting' return if old_percorso != new_percorso: print 'updating percorso from {} to {}'.format( old_percorso, new_percorso) r.percorso = new_percorso updating_records.append(r) if Route.get_by_id(new_percorso) is None: rt = route.addRoute(new_percorso) rt.populateWithDetails(put=not test) print 'populating new route: {}'.format(new_percorso) if not test: create_futures = ndb.put_multi_async(updating_records) ndb.Future.wait_all(create_futures)
def getRouteEntry(self): from route import Route return Route.get_by_id(self.percorso)