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))
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))
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())
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())
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())
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())
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())
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))
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))