예제 #1
0
def JourneyBatch(request):
    user = User.all().filter('facebook_id',
                             request.session['facebook_id']).get()

    for point in json.loads(request.body):
        # Date sent
        date = datetime.fromtimestamp(int(
            point['date'])).replace(tzinfo=pytz.UTC)
        if 'journey' in point:
            if point['journey'] != 'Stop':
                journey = Journey(user=user,
                                  travel_type=TravelType.all().filter(
                                      'name', point['journey']).get(),
                                  start_date=date)
                journey.put()
                logging.info('Journey started for ' + point['journey'])
                user.active_trip_id = journey.key().id()
            else:
                logging.info('Journey ended')
                journey = Journey.get_by_id(user.active_trip_id)
                journey.end_date = date
                journey.put()
                # Remove active trip
                user.active_trip_id = -1
            user.put()

        elif 'distance' in point and user.active_trip_id != -1:
            # Get the current journey and save point
            Point(journey=Journey.get_by_id(user.active_trip_id),
                  latitude=float(point['x']),
                  longitude=float(point['y']),
                  speed=float(point['speed']),
                  time=date,
                  distance=float(point['distance'])).put()
    return HttpResponse()
예제 #2
0
파일: views.py 프로젝트: premik91/ecoTravel
def TripBatch(request):
    user_profile = UserProfile.objects.get(user=request.user)
    for point in json.loads(request.body):
        # Start new journey
        if 'journey' in point:
            if point['journey'] == 'Stop':
                print 'Journey ended'
                journey = Journey.objects.get(id=user_profile.active_trip_id)
                # End date
                date = datetime.fromtimestamp(int(point['date']))
                date = date.replace(tzinfo=pytz.UTC)
                journey.end_date = date
                journey.save()
                # Remove active trip
                user_profile.active_trip_id = -1
            else:
                # Start date
                date = datetime.fromtimestamp(int(point['date']))
                date = date.replace(tzinfo=pytz.UTC)
                journey = Journey(
                    user_profile=user_profile,
                    travel_type=TravelType.objects.get(name=point['journey']),
                    start_date=date)
                journey.save()
                print 'Journey started for ' + point['journey']
                user_profile.active_trip_id = journey.id
            user_profile.save()
        elif 'distance' in point and user_profile.active_trip_id > -1:
            # Get the current journey and save point
            date = datetime.fromtimestamp(int(point['date']))
            date = date.replace(tzinfo=pytz.UTC)
            Point(journey=Journey.objects.get(id=user_profile.active_trip_id),
                  latitude=float(point['x']),
                  longitude=float(point['y']),
                  speed=float(point['speed']),
                  time=date,
                  distance=float(point['distance'])).save()
    return HttpResponse()