Files
@ 0f32fdcb74ad
Branch filter:
Location: symposion_app/symposion/sponsorship/views.py - annotation
0f32fdcb74ad
2.5 KiB
text/x-python
allow staff to add sponsors directly via interface
0f32fdcb74ad 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 022d62721d18 022d62721d18 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 0f32fdcb74ad 0f32fdcb74ad 0f32fdcb74ad 0f32fdcb74ad 0f32fdcb74ad 0f32fdcb74ad 0f32fdcb74ad 0f32fdcb74ad 0f32fdcb74ad 0f32fdcb74ad 0f32fdcb74ad 0f32fdcb74ad 0f32fdcb74ad 0f32fdcb74ad 0f32fdcb74ad 0f32fdcb74ad 0f32fdcb74ad 0f32fdcb74ad 0f32fdcb74ad 0f32fdcb74ad 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 0f32fdcb74ad 3ffcc4da7c24 0f32fdcb74ad 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 3ffcc4da7c24 | 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
from symposion.sponsorship.forms import SponsorApplicationForm, SponsorDetailsForm, SponsorBenefitsFormSet
from symposion.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_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", {
"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, "Sponsorship details have been updated")
return redirect("dashboard")
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))
|