Ejemplo n.º 1
0
def reservation_edit(request, schedule_id, id):
    """
    Display the details related to a reservation and also process edits.
    """

    schedule = get_object_or_404(Schedule, pk=schedule_id)
    reservation = get_object_or_404(Reservation, pk=id)

    if request.method == 'POST':
        form = ReservationForm(request.POST, instance=reservation,)
        if form.is_valid():
            form.save()
            request.user.message_set.create(
                    message="Your reservation was updated.")
            return HttpResponseRedirect(
                    reverse('resources_reservation_edit', 
                            args=[schedule.id, reservation.id] ))
    else:
        form = ReservationForm( instance=reservation )


    return render_to_response(
                'resources/reservation_edit.html',
                { 'reservation': reservation, 
                  'form': form,
                  'schedule': schedule,},
                context_instance=RequestContext(request))
Ejemplo n.º 2
0
    def test_validation_overlap(self):
        """
        test reservation form for May 1 Midnight - May 2 Midnight
        """
        form = ReservationForm(
                dict(resource=self.resource.id,
                    start_date='2009-5-1',
                    start_time='0',
                    end_date='2009-5-2',
                    end_time='0',
                    summary='test summary',))

        self.assertEquals(False, form.is_valid())
Ejemplo n.º 3
0
    def test_validation_short_within(self):
        """
        test reservation form for Apr 21 1pm to Apr 21 3pm
        """
        form = ReservationForm(
                dict(resource=self.resource.id,
                    start_date='2009-4-21',
                    start_time='13:00',
                    end_date='2009-4-21',
                    end_time='15:00',
                    summary='test summary',))

        self.assertEquals(False, form.is_valid())
Ejemplo n.º 4
0
 def test_validation_starts_at_end(self):
     """
     test reservation form that starts at the same time one ends
     """
     # Apr 22 8am - Apr 25 8am
     form = ReservationForm(
             dict(
                 resource=self.resource.id,
                 start_date='2009-4-22',
                 start_time='8:00',
                 end_date='2009-4-25',
                 end_time='8:00',
                 summary='this is for adv web'))
     # should validate
     self.assertEquals(True, form.is_valid())
Ejemplo n.º 5
0
 def test_validation_ends_during(self):
     """
     test reservation that ends during an existing reservation
     """
     # Apr 19 8am - Apr 21 1pm
     form = ReservationForm(
             dict(
                 resource=self.resource.id,
                 start_date='2009-4-19',
                 start_time='8:00',
                 end_date='2009-4-21',
                 end_time='13:00',
                 summary='this is a summ'))
     # should conflict and not validate
     self.assertEquals(False, form.is_valid())
Ejemplo n.º 6
0
 def test_validation_begins_during(self):
     """
     test reservation that begins during an existing reservation
     """
     # Apr 21-25 8am
     form = ReservationForm(
             dict(resource=self.resource.id,
                 # start at 8am
                 start_date='2009-4-21',
                 start_time='8:00',
                 # end at 8am following day
                 end_date='2009-4-25',
                 end_time='8:00',
                 summary='this is a summ',))
     # should conflict and not validate
     self.assertEquals(False, form.is_valid())
Ejemplo n.º 7
0
def reservation_edit(request, schedule_id, id):
    """
    Display the details related to a reservation and also process edits.
    """

    schedule = get_object_or_404(Schedule, pk=schedule_id)
    reservation = get_object_or_404(Reservation, pk=id)

    if request.method == 'POST':
        form = ReservationForm(
            request.POST,
            instance=reservation,
        )
        if form.is_valid():
            form.save()
            request.user.message_set.create(
                message="Your reservation was updated.")
            return HttpResponseRedirect(
                reverse('resources_reservation_edit',
                        args=[schedule.id, reservation.id]))
    else:
        form = ReservationForm(instance=reservation)

    return render_to_response('resources/reservation_edit.html', {
        'reservation': reservation,
        'form': form,
        'schedule': schedule,
    },
                              context_instance=RequestContext(request))
Ejemplo n.º 8
0
def reservation_add(request, schedule_id, resource_id):
    """
    Take a resource id and create a reservation object.
    """
    
    resource = get_object_or_404(Resource, pk=resource_id)
    schedule = get_object_or_404(Schedule, pk=schedule_id)
    start_date = request.GET.get('start_date', None)
    end_date = request.GET.get('start_date', None)    
    profile = request.user.get_profile()

    if not resource.is_available():
        raise Http403, "Sorry, this resource is currently not available for checkout."

    if request.method == 'POST':
        form = ReservationForm(request.POST)
        if form.is_valid():

            reservation = form.save(commit=False)
            reservation.start_when = form.cleaned_data['start_when']
            reservation.end_when = form.cleaned_data['end_when']
            reservation.profile = profile
            reservation.resource = resource
            reservation.save()

            request.user.message_set.create(message="Your reservation was saved.")
            # redirect to the schedule detail on the right start date
            return HttpResponseRedirect(
                        reverse('resources_reservation_edit', 
                                args=[schedule.id, reservation.id] ))

    else:
        # Process GET request
        form = ReservationForm( 
                    initial={'start_date':start_date,
                             'end_date':end_date,                            
                             'schedule':schedule.id,
                             'resource':resource.id, })

    return render_to_response(
                'resources/reservation_add.html',
                locals(),
                context_instance=RequestContext(request))
Ejemplo n.º 9
0
def reservation_add(request, schedule_id, resource_id):
    """
    Take a resource id and create a reservation object.
    """

    resource = get_object_or_404(Resource, pk=resource_id)
    schedule = get_object_or_404(Schedule, pk=schedule_id)
    start_date = request.GET.get('start_date', None)
    end_date = request.GET.get('start_date', None)
    profile = request.user.get_profile()

    if not resource.is_available():
        raise Http403, "Sorry, this resource is currently not available for checkout."

    if request.method == 'POST':
        form = ReservationForm(request.POST)
        if form.is_valid():

            reservation = form.save(commit=False)
            reservation.start_when = form.cleaned_data['start_when']
            reservation.end_when = form.cleaned_data['end_when']
            reservation.profile = profile
            reservation.resource = resource
            reservation.save()

            request.user.message_set.create(
                message="Your reservation was saved.")
            # redirect to the schedule detail on the right start date
            return HttpResponseRedirect(
                reverse('resources_reservation_edit',
                        args=[schedule.id, reservation.id]))

    else:
        # Process GET request
        form = ReservationForm(
            initial={
                'start_date': start_date,
                'end_date': end_date,
                'schedule': schedule.id,
                'resource': resource.id,
            })

    return render_to_response('resources/reservation_add.html',
                              locals(),
                              context_instance=RequestContext(request))