59 lines
1.9 KiB
Python
59 lines
1.9 KiB
Python
|
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
|
||
|
|
||
|
from pycon.sponsorship.forms import SponsorApplicationForm, SponsorDetailsForm, SponsorBenefitsFormSet
|
||
|
from pycon.sponsorship.models import Sponsor, SponsorBenefit
|
||
|
|
||
|
|
||
|
@login_required
|
||
|
def sponsor_apply(request):
|
||
|
if request.method == "POST":
|
||
|
form = SponsorApplicationForm(request.POST, user=request.user)
|
||
|
if form.is_valid():
|
||
|
form.save()
|
||
|
return redirect("dashboard")
|
||
|
else:
|
||
|
form = SponsorApplicationForm(user=request.user)
|
||
|
|
||
|
return render_to_response("sponsorship/apply.html", {
|
||
|
"form": form,
|
||
|
}, context_instance=RequestContext(request))
|
||
|
|
||
|
|
||
|
@login_required
|
||
|
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")
|
||
|
|
||
|
formset_kwargs = {
|
||
|
"instance": sponsor,
|
||
|
"queryset": SponsorBenefit.objects.filter(active=True)
|
||
|
}
|
||
|
|
||
|
if request.method == "POST":
|
||
|
|
||
|
form = SponsorDetailsForm(request.POST, instance=sponsor)
|
||
|
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!")
|
||
|
|
||
|
return redirect(request.path)
|
||
|
else:
|
||
|
form = SponsorDetailsForm(instance=sponsor)
|
||
|
formset = SponsorBenefitsFormSet(**formset_kwargs)
|
||
|
|
||
|
return render_to_response("sponsorship/detail.html", {
|
||
|
"sponsor": sponsor,
|
||
|
"form": form,
|
||
|
"formset": formset,
|
||
|
}, context_instance=RequestContext(request))
|