from django.http import Http404
from django.shortcuts import render_to_response, redirect, get_object_or_404
from django.template import RequestContext
from django.contrib import messages
from django.contrib.auth.decorators import login_required
@@ -20,12 +21,32 @@ def sponsor_apply(request):
return render_to_response("sponsorship/apply.html", {
"form": form,
}, context_instance=RequestContext(request))
@login_required
def sponsor_add(request):
if not request.user.is_staff:
raise Http404()
if request.method == "POST":
form = SponsorApplicationForm(request.POST, user=request.user)
if form.is_valid():
sponsor = form.save(commit=False)
sponsor.active = True
sponsor.save()
return redirect("dashboard")
else:
form = SponsorApplicationForm(user=request.user)
return render_to_response("sponsorship/add.html", {
def sponsor_detail(request, pk):
sponsor = get_object_or_404(Sponsor, pk=pk)
if not sponsor.active or sponsor.applicant != request.user:
return redirect("sponsor_list")
@@ -41,15 +62,15 @@ def sponsor_detail(request, pk):
formset = SponsorBenefitsFormSet(request.POST, request.FILES, **formset_kwargs)
if form.is_valid() and formset.is_valid():
form.save()
formset.save()
messages.success(request, "Your sponsorship application has been submitted!")
messages.success(request, "Sponsorship details have been updated")
return redirect(request.path)
form = SponsorDetailsForm(instance=sponsor)
formset = SponsorBenefitsFormSet(**formset_kwargs)
return render_to_response("sponsorship/detail.html", {
"sponsor": sponsor,