def manual_dispatch(request, work_station, ride_id): ride = SharedRide.by_id(ride_id) taxi_number = request.POST.get("taxi_number") pickup_estimate = request.POST.get("pickup_estimate") if taxi_number and pickup_estimate and ride and ride.station == work_station.station: ride.taxi_number = taxi_number ride.pickup_estimate = int(pickup_estimate) fleet_manager.cancel_ride(ride) fleet_manager.create_ride(ride) ride.change_status(old_status=RideStatus.VIEWED, new_status=RideStatus.ACCEPTED) return HttpResponse("OK") return HttpResponseForbidden()
def resend_to_fleet_manager(request, ride_id): resend_result = False ride = SharedRide.by_id(ride_id) cancel_result = fleet_manager.cancel_ride(ride) if cancel_result: resend_result = fleet_manager.create_ride(ride) return JSONResponse({'result': resend_result})
def reassign_ride(request, work_station, ride_id): ride = SharedRide.by_id(ride_id) if ride and ride.station == work_station.station: ride.update(taxi_number=None) if fleet_manager.cancel_ride(ride) and fleet_manager.create_ride(ride): return HttpResponse("OK") else: logging.error("could not reassign ride: %s" % ride_id) return HttpResponseForbidden()
def create_ny_isr_ride(request, ride_id): ride = SharedRide.by_id(ride_id) if not ride: msg = "no SharedRide found with id=%s" % ride_id logging.error(msg) return HttpResponseBadRequest(msg) if settings.LOCAL: isrproxy_id = 2738544 test_station_id = 1008 else: isrproxy_id = 3673085 test_station_id = 1713061 # amir_station_1 if ride.debug: target_station_id = test_station_id target_station_isr_id = 8 # test station isr id else: # real rides created from stable - send to New York taxi station target_station_id = 1529226 target_station_isr_id = 10 logging.info(u"create_ny_isr_ride: %s" % u", ".join([unicode(s) for s in [target_station_id, ride]])) if not (ride.station and ride.station.id == target_station_id): msg = "wrong station: ride.station=%s target_station=%s" % ( ride.station, target_station_id) logging.error(msg) response = HttpResponseBadRequest(msg) else: # fix the station data since stable.Station does not have fleet field if not ride.station.fleet_station_id: ride.station.fleet_station_id = target_station_isr_id ride.station.save() ride.dn_fleet_manager_id = isrproxy_id ride.save() result = fleet_manager.create_ride(ride) response = HttpResponse(str(result)) return response
def create_ny_isr_ride(request, ride_id): ride = SharedRide.by_id(ride_id) if not ride: msg = "no SharedRide found with id=%s" % ride_id logging.error(msg) return HttpResponseBadRequest(msg) if settings.LOCAL: isrproxy_id = 2738544 test_station_id = 1008 else: isrproxy_id = 3673085 test_station_id = 1713061 # amir_station_1 if ride.debug: target_station_id = test_station_id target_station_isr_id = 8 # test station isr id else: # real rides created from stable - send to New York taxi station target_station_id = 1529226 target_station_isr_id = 10 logging.info(u"create_ny_isr_ride: %s" % u", ".join([unicode(s) for s in [target_station_id, ride]])) if not (ride.station and ride.station.id == target_station_id): msg = "wrong station: ride.station=%s target_station=%s" % (ride.station, target_station_id) logging.error(msg) response = HttpResponseBadRequest(msg) else: # fix the station data since stable.Station does not have fleet field if not ride.station.fleet_station_id: ride.station.fleet_station_id = target_station_isr_id ride.station.save() ride.dn_fleet_manager_id = isrproxy_id ride.save() result = fleet_manager.create_ride(ride) response = HttpResponse(str(result)) return response
def create_ride(address, comments, passenger_phone, first_name, last_name, start_time, finish_time, station_id, as_raw_output): from common.tz_support import set_default_tz_time from geo.coder import geocode if not address: return "Please choose a valid street address: street, house number and city" lat, lon, city, street, house_number = None, None, None, None, None results = geocode(address, lang_code="he") if results: result = results[0] if "street_address" in result["types"]: lat = result["geometry"]["location"]["lat"] lon = result["geometry"]["location"]["lng"] for component in result["address_components"]: if "street_number" in component["types"]: house_number = component["short_name"] if "route" in component["types"]: street = component["short_name"] if "locality" in component["types"]: city_name = component["short_name"] city = City.objects.get(name=city_name) if not all([lat, lon, city, street, house_number]): return "Please choose a valid street address: street, house number and city" user = User() user.first_name = first_name user.last_name = last_name passenger = Passenger() passenger.user = user passenger.phone = passenger_phone passenger.id = random.randrange(1, 999999) order = Order() order.id = random.randrange(1, 999999) order.from_raw = address order.from_city = city order.from_street_address = street order.from_house_number = house_number order.from_lat = lat order.from_lon = lon order.comments = comments order.depart_time = set_default_tz_time(datetime.datetime.strptime(start_time, "%Y-%m-%dT%H:%M:%S")) if start_time else None order.arrive_time = set_default_tz_time(datetime.datetime.strptime(finish_time, "%Y-%m-%dT%H:%M:%S")) if finish_time else None order.passenger = passenger station = Station() station.fleet_manager = isr_fm station.fleet_station_id = station_id or 8 # waybetter station operator id ride = FakeSharedRide([order]) ride.id = random.randrange(1, 999999) ride.station = station ride.dn_fleet_manager_id = isr_fm.id ride.status = ASSIGNED DEV_WB_ONGOING_RIDES.append(ride) if as_raw_output: ex_order = ISR._create_external_order(order, station.fleet_station_id) reply = ISR._get_client().service.Insert_External_Order(ISR._get_login_token(), ex_order) return reply return "%s ride id=%s" % (fleet_manager.create_ride(ride), ride.id)
def create_ride(address, comments, passenger_phone, first_name, last_name, start_time, finish_time, station_id, as_raw_output): from common.tz_support import set_default_tz_time from geo.coder import geocode if not address: return "Please choose a valid street address: street, house number and city" lat, lon, city, street, house_number = None, None, None, None, None results = geocode(address, lang_code="he") if results: result = results[0] if "street_address" in result["types"]: lat = result["geometry"]["location"]["lat"] lon = result["geometry"]["location"]["lng"] for component in result["address_components"]: if "street_number" in component["types"]: house_number = component["short_name"] if "route" in component["types"]: street = component["short_name"] if "locality" in component["types"]: city_name = component["short_name"] city = City.objects.get(name=city_name) if not all([lat, lon, city, street, house_number]): return "Please choose a valid street address: street, house number and city" user = User() user.first_name = first_name user.last_name = last_name passenger = Passenger() passenger.user = user passenger.phone = passenger_phone passenger.id = random.randrange(1, 999999) order = Order() order.id = random.randrange(1, 999999) order.from_raw = address order.from_city = city order.from_street_address = street order.from_house_number = house_number order.from_lat = lat order.from_lon = lon order.comments = comments order.depart_time = set_default_tz_time( datetime.datetime.strptime( start_time, "%Y-%m-%dT%H:%M:%S")) if start_time else None order.arrive_time = set_default_tz_time( datetime.datetime.strptime( finish_time, "%Y-%m-%dT%H:%M:%S")) if finish_time else None order.passenger = passenger station = Station() station.fleet_manager = isr_fm station.fleet_station_id = station_id or 8 # waybetter station operator id ride = FakeSharedRide([order]) ride.id = random.randrange(1, 999999) ride.station = station ride.dn_fleet_manager_id = isr_fm.id ride.status = ASSIGNED DEV_WB_ONGOING_RIDES.append(ride) if as_raw_output: ex_order = ISR._create_external_order(order, station.fleet_station_id) reply = ISR._get_client().service.Insert_External_Order( ISR._get_login_token(), ex_order) return reply return "%s ride id=%s" % (fleet_manager.create_ride(ride), ride.id)
def dispatch_ride(pickmeapp_ride): if pickmeapp_ride.dn_fleet_manager_id: fleet_manager.create_ride(pickmeapp_ride) else: logging.info("pickmeapp ride %s has no fleet manager" % pickmeapp_ride.id)