Esempio n. 1
0
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)
Esempio n. 2
0
 def getRouteEntry(self):
     from route import Route
     return Route.get_by_id(self.percorso)