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