コード例 #1
0
def create(request):
    """Create a ride(as owner)"""
    # Authentication
    if not request.user.is_authenticated:
        return HttpResponse(status=401)
    # GET
    if request.method == 'GET':
        return render(request, 'rides/create.html')
    # POST
    if request.method == 'POST':
        user = get_object_or_404(User, id=request.user.id)

        destination = request.POST['destination']
        required_arrival_time = str_to_datetime(request.POST['arrival_time'])
        passenger_number_from_owner = request.POST['number_of_passengers']
        requested_vehicle_type = request.POST['vehicle_type']
        special_request = request.POST['special_request']
        can_be_shared = get_checkbox_input('can_be_shared', request)

        # create object
        Ride.objects.create(
            owner=user,
            destination=destination,
            required_arrival_time=required_arrival_time,
            passenger_number_from_owner=passenger_number_from_owner,
            passenger_number_in_total=passenger_number_from_owner,
            can_be_shared=can_be_shared,
            requested_vehicle_type=requested_vehicle_type,
            special_request=special_request,
        )
        # send message & return
        messages.success(request, 'You have successfully made a request.')
        return redirect('rides')
コード例 #2
0
ファイル: views.py プロジェクト: adityareddy561/Suraksha
def edit(request, ride_id):
    """Edit a ride"""
    # Authentication
    if not request.user.is_authenticated:
        return HttpResponse(status=401)
    # Identify User's role
    user = get_object_or_404(User, id=request.user.id)
    ride = get_object_or_404(Ride, id=ride_id)
    user_role = user_role_in_ride(user, ride)
    # GET: Display ride information
    if request.method == 'GET':
        context = {
            'ride': ride,
            'edit_as': user_role,
        }
        return render(request, 'rides/edit.html', context)
    # POST: Update ride information(for owner only), driver and sharer user different methods below
    if request.method == 'POST' and user_role == 'owner' and ride.ride_status == 'open':
        # get form inputs
        destination = request.POST['destination']
        required_arrival_time = str_to_datetime(
            request.POST['arrival_time']
        )
        passenger_number_from_owner = int(request.POST['number_of_passengers'])
        requested_vehicle_type = request.POST['vehicle_type']
        special_request = request.POST['special_request']
        can_be_shared = get_checkbox_input('can_be_shared', request)
        # Update ride information
        ride.destination = destination
        ride.required_arrival_time = required_arrival_time
        ride.can_be_shared = can_be_shared
        ride.requested_vehicle_type = requested_vehicle_type
        ride.special_request = special_request

        old_passenger_number_from_owner = ride.passenger_number_from_owner # pay special attention
        ride.passenger_number_from_owner = passenger_number_from_owner  # pay special attention
        ride.passenger_number_in_total += (passenger_number_from_owner - old_passenger_number_from_owner)

        ride.save()
        return redirect('rides')