def create_ride_point(ride, point_data, depart_time=None): """ @param depart_time: ride depart time to compute offsets from """ if not depart_time: depart_time = ride.depart_time point = RidePoint() point.type = point_data.stop_type point.lon = point_data.lon point.lat = point_data.lat point.address = point_data.address point.city_name= point_data.city_name point.stop_time = depart_time + datetime.timedelta(seconds=point_data.offset) point.ride = ride point.save() logging.info("created new ride point [%s]" % point.id) return point
def create_single_order_ride(order): from sharing.signals import ride_created_signal if order.status != APPROVED: logging.error("denied creating ride for unapproved order [%s]" % order.id) return None ride = SharedRide() ride.debug = order.debug ride.depart_time = order.depart_time ride.arrive_time = order.arrive_time ride.save() pickup = RidePoint() pickup.ride = ride pickup.stop_time = order.depart_time pickup.type = StopType.PICKUP pickup.address = order.from_raw pickup.lat = order.from_lat pickup.lon = order.from_lon pickup.save() dropoff = RidePoint() dropoff.ride = ride dropoff.stop_time = order.arrive_time dropoff.type = StopType.DROPOFF dropoff.address = order.to_raw or order.from_raw dropoff.lat = order.to_lat or order.from_lat dropoff.lon = order.to_lon or order.from_lon dropoff.save() order.ride = ride order.pickup_point = pickup order.dropoff_point = dropoff order.save() logging.info("created single order ride: order[%s] -> ride[%s]" % (order.id, ride.id)) ride_created_signal.send(sender='create_single_order_ride', obj=ride) return ride