def register(request): meeting = current_meeting_or_none() if not meeting or not meeting.can_register(request.user): #if user can't register, take them back return HttpResponseRedirect(reverse("django_conference_home")) if 'registerMeeting' in request.POST: register_form = MeetingRegister(meeting, data=request.POST) session_form = MeetingSessions(meeting, data=request.POST) extras_form = MeetingExtras(meeting, data=request.POST) donations_form = MeetingDonations(meeting, data=request.POST) forms = [register_form, extras_form, session_form, donations_form] if all(f.is_valid() for f in forms): extras = extras_form.get_extras(request.user) cont = RegistrationContainer( register_form.get_registration(request.user), register_form.get_guest(), extras, donations_form.get_donations(), session_form.get_sessions(), request.POST) if cont.get_total() == Decimal("0.00"): # they must have registered with a free option, so no # payment is necessary cont.registration.payment_type = "na" cont.save() cont.registration.send_register_email() if 'regContainer' in request.session: del request.session['regContainer'] url = reverse("django_conference_register_success") else: #don't save registration object yet since we haven't #received payment. request.session['regContainer'] = cont url = reverse("django_conference_payment") return HttpResponseRedirect(url) else: cont = request.session.get('regContainer') previous_data = cont.page1_cache if cont else None initial_data = request.POST or previous_data or {} register_form = MeetingRegister(meeting, initial=initial_data) session_form = MeetingSessions(meeting, initial=initial_data) extras_form = MeetingExtras(meeting, initial=initial_data) donations_form = MeetingDonations(meeting, initial=initial_data) return render_to_response('django_conference/register.html', { 'register_form': register_form, 'session_form': session_form, 'extras_form': extras_form, 'donations_form': donations_form, 'meeting': meeting, 'registrant': request.user, }, context_instance=RequestContext(request))
def homepage(request): meeting = current_meeting_or_none() return render_to_response('django_conference/homepage.html', { 'meeting': meeting, 'has_registered': request.user.is_authenticated() and meeting and \ meeting.has_registered(request.user), 'reg_deadline_passed': meeting and date.today() > meeting.reg_deadline, 'session_deadline_passed': meeting and \ datetime.now() > meeting.session_submission_end, 'paper_deadline_passed': meeting and \ datetime.now() > meeting.paper_submission_end, })
def submit_session(request): """ Allows users to submit a session for approval """ meeting = current_meeting_or_none() if not meeting or not meeting.can_submit_session(): return HttpResponseRedirect(reverse("django_conference_home")) session_form = SessionForm(request.POST or None) organizer_form = SessionCadreForm(request.POST or None, optional=False) organizer_form.fields['gender'].required = False chair_form = SessionCadreForm(request.POST or None, optional=False, prefix="chair") commentator_form = SessionCadreForm(request.POST or None, prefix="commentator") errors = {} if request.POST and all(f.is_valid() for f in [session_form, organizer_form, chair_form, commentator_form]): num_papers = session_form.cleaned_data['num_papers'] if int(num_papers) == 3 and not commentator_form.has_entered_info(): errors = {'Paper Abstracts': ['Sessions with 3 papers '+\ 'must have a commentator.']} else: request.session['session_data'] = request.POST url = reverse('django_conference_submit_session_papers') return HttpResponseRedirect(url) return render_to_response('django_conference/submit_session.html', { 'session_form': session_form, 'organizer_form': organizer_form, 'chair_form': chair_form, 'commentator_form': commentator_form, 'meeting': meeting, 'contact_email': settings.DJANGO_CONFERENCE_CONTACT_EMAIL, 'error_dict': errors.items(), }, context_instance=RequestContext(request))
def submit_paper(request): """ Allow users to submit a paper for approval """ meeting = current_meeting_or_none() if not meeting or not meeting.can_submit_paper(): return HttpResponseRedirect(reverse("django_conference_home")) paper_form = PaperForm(request.POST or None) paper_presenter_form = PaperPresenterForm(request.POST or None) if request.POST and paper_form.is_valid() and \ paper_presenter_form.is_valid(): presenter = paper_presenter_form.save() paper = paper_form.save(request.user, presenter) paper.send_submission_email() kwargs = {'id': paper.id} url = reverse('django_conference_submission_success', kwargs=kwargs) return HttpResponseRedirect(url) return render_to_response('django_conference/submit_paper.html', { 'forms': [paper_presenter_form, paper_form], 'meeting': meeting, }, context_instance=RequestContext(request))