def remove(request, key, login_view='appointmentbook:login', success_view='appointmentbook:logout', cancel_view='appointmentbook:logout', template='remove.html'): if session.has_person_id(request): appointment = get_list_or_404(models.Appointment, key=key) if not appointment.person_id == session.get_person_id(request): return HttpResponseForbidden() if request.method == 'POST': if 'ok' in request.POST: appointment.delete() messages.success(request, MESSAGE_DICT['remove_succeed']) return redirect(success_view) else: messages.success(request, MESSAGE_DICT['operation_cancelled']) return redirect(cancel_view) else: return render_to_response( template, {'appointment': appointment}, context_instance=RequestContext(request)) else: query = {'continue': request.get_full_path()} return HttpResponseRedirect( urlresolvers.reverse(login_view) + urlencode(query))
def add(request, success_view='appointmentbook:show', form_class=forms.AddAppointmentForm, checks_new_appointment=checks.checks_new_appointment, template='add.html'): if request.method == 'POST': cookie_test = request.session.test_cookie_worked() form = form_class(request.POST) if form.is_valid() and cookie_test: form_data = form.cleaned_data try: checks_new_appointment(form_data) except checks.UserAlreadyHaveAnAppointment as e: form.append_non_field_error(e) else: if not 'person_id' in form_data: if session.has_person_id(request): form_data['person_id'] = session.get_person_id(request) elif not session.has_person_id(request): session.set_person_id(request, form_data['person_id']) appointment = models.Appointment(form_data) try: appointment.save(request=request) except models.ResourceExhaustedError: form.append_non_field_error( MESSAGE_DICT['resource_exhausted']) else: request.session.delete_test_cookie() messages.success(request, MESSAGE_DICT['add_succeed']) return redirect(success_view, appointment.key) elif not cookie_test: form.append_non_field_error(MESSAGE_DICT['enable_cookies']) elif session.has_person_id(request): form = form_class(request.session) else: form = form_class() request.session.set_test_cookie() return render_to_response( template, {'form': form}, context_instance=RequestContext(request))
def show(request, key, login_view='appointmentbook:login', template='show.html', logout_after=False): if session.has_person_id(request): appointment = get_list_or_404(models.Appointment, key=key) if not appointment.person_id == session.get_person_id(request): return HttpResponseForbidden() if logout_after: request.session.flush() return render_to_response(template, { 'appointment': appointment }, context_instance=RequestContext(request)) else: query = {'continue': request.get_full_path()} return HttpResponseRedirect(urlresolvers.reverse(login_view) + urlencode(query))