Example #1
0
def handle_assign_to_taxi(sender, signal_type, **kwargs):
    from ordering.models import BaseRide, PickMeAppRide, SharedRide, RideStatus

    fmr = kwargs["fmr"]
    ride = BaseRide.by_uuid(fmr.id)

    logging.info(u"fleet update received: %s" % fmr)
    if fmr.taxi_id and str(fmr.taxi_id) != ride.taxi_number:
        logging.info("taxi number changed: %s -> %s" % (ride.taxi_number, fmr.taxi_id))
        ride.update(taxi_number=fmr.taxi_id)
        if isinstance(ride, PickMeAppRide): # PickmeAppRide: send via SMS
            deferred.defer(do_notify_passenger, ride.order, _countdown=40) # wait 40 seconds and then notify passengers

    if isinstance(ride, SharedRide):
        accepted_statuses = [FleetManagerRideStatus.DRIVER_ACCEPTED, FleetManagerRideStatus.ASSIGNED_TO_TAXI, FleetManagerRideStatus.WAITING_FOR_PASSENGER,
                    FleetManagerRideStatus.PASSENGER_PICKUP, FleetManagerRideStatus.PASSENGER_DROPOFF]

        if fmr.taxi_id and fmr.status in accepted_statuses and ride.status == RideStatus.VIEWED:
            ride.change_status(old_status=RideStatus.VIEWED, new_status=RideStatus.ACCEPTED)
Example #2
0
def rides_from_uuid(ride_uuid):
    ride = BaseRide.by_uuid(ride_uuid)
    pickmeapp_ride = ride if isinstance(ride, PickMeAppRide) else None
    shared_ride = ride if isinstance(ride, SharedRide) else None

    return pickmeapp_ride, shared_ride
Example #3
0
def rides_from_uuid(ride_uuid):
    ride = BaseRide.by_uuid(ride_uuid)
    pickmeapp_ride = ride if isinstance(ride, PickMeAppRide) else None
    shared_ride = ride if isinstance(ride, SharedRide) else None

    return pickmeapp_ride, shared_ride