def grant_school_access(request, conference_slug, school_slug): school = get_object_or_404(School, url_name=school_slug) if request.method == 'POST': access_code = request.POST.get("access_code", "") redirect_to = request.POST.get("next", '') if access_code == school.access_code: # grant access to this school sponsor = FacultySponsor() sponsor.user = request.user sponsor.school = school sponsor.save() if not redirect_to or ' ' in redirect_to: redirect_to = settings.LOGIN_REDIRECT_URL elif '//' in redirect_to and re.match(r'[^\?]*//', redirect_to): redirect_to = settings.LOGIN_REDIRECT_URL return HttpResponseRedirect(redirect_to) return render_response(request, "school/wrong-access-code.html", {'school' : school})
def register_school(request, conference_slug): conference = get_object_or_404(Conference, url_name=conference_slug) if request.method == 'POST': school_form = NewSchoolForm(request.POST) sponsor_form = NewFacultySponsorForm(request.POST) captcha_response = get_recaptcha_response(request) if school_form.is_valid(): if request.user.is_authenticated() or sponsor_form.is_valid(): if captcha_response.is_valid or not settings.ENABLE_CAPTCHA: new_school = School() new_school.name = school_form.cleaned_data['school_name'] new_school.url_name = slugify( school_form.cleaned_data['school_name']) new_school.address_line_1 = school_form.cleaned_data[ 'school_address_line_1'] new_school.address_line_2 = school_form.cleaned_data[ 'school_address_line_2'] new_school.city = school_form.cleaned_data['school_city'] new_school.state = school_form.cleaned_data['school_state'] new_school.zip = school_form.cleaned_data['school_zip'] new_school.address_country = school_form.cleaned_data[ 'school_address_country'] new_school.access_code = User.objects.make_random_password( ) new_school.save() new_school.conferences.add(conference) new_sponsor = FacultySponsor() new_sponsor.school = new_school if hasattr(sponsor_form, 'cleaned_data'): new_sponsor.phone = sponsor_form.cleaned_data[ 'sponsor_phone'] new_user = request.user if not request.user.is_authenticated(): new_user = User() new_user.username = sponsor_form.cleaned_data[ 'sponsor_username'] new_user.first_name = sponsor_form.cleaned_data[ 'sponsor_first_name'] new_user.last_name = sponsor_form.cleaned_data[ 'sponsor_last_name'] new_user.email = sponsor_form.cleaned_data[ 'sponsor_email'] new_user.set_password( sponsor_form.cleaned_data['sponsor_password']) new_user.save() else: try: # delete any existing faculty sponsor ties existing_sponsor = FacultySponsor.objects.get( user=new_user) new_sponsor.phone = existing_sponsor.phone existing_sponsor.delete() except ObjectDoesNotExist: pass new_sponsor.user = new_user new_sponsor.save() new_sponsor.conferences.add(conference) return HttpResponseRedirect( reverse(school_admin, args=( conference.url_name, new_school.url_name, ))) else: school_form._errors.setdefault( "school_name", ErrorList()).append( "The reCAPTCHA wasn't entered correctly.") else: try: school = request.user.faculty_sponsor.school try: school.conferences.get(id=conference.id) except Conference.DoesNotExist: school.conferences.add(conference) try: request.user.faculty_sponsor.conferences.get(id=conference.id) except Conference.DoesNotExist: request.user.faculty_sponsor.conferences.add(conference) return HttpResponseRedirect( reverse(school_admin, args=( conference.url_name, school.url_name, ))) except: school_form = NewSchoolForm() sponsor_form = NewFacultySponsorForm() return render_response( request, 'register-new-school.html', { 'school_form': school_form, 'sponsor_form': sponsor_form, 'conference': conference })
def register_school(request, conference_slug): conference = get_object_or_404(Conference, url_name=conference_slug) if request.method == 'POST': school_form = NewSchoolForm(request.POST) sponsor_form = NewFacultySponsorForm(request.POST) captcha_response = get_recaptcha_response(request) if school_form.is_valid(): if request.user.is_authenticated() or sponsor_form.is_valid(): if captcha_response.is_valid or not settings.ENABLE_CAPTCHA: new_school = School() new_school.name = school_form.cleaned_data['school_name'] new_school.url_name = slugify(school_form.cleaned_data['school_name']) new_school.address_line_1 = school_form.cleaned_data['school_address_line_1'] new_school.address_line_2 = school_form.cleaned_data['school_address_line_2'] new_school.city = school_form.cleaned_data['school_city'] new_school.state = school_form.cleaned_data['school_state'] new_school.zip = school_form.cleaned_data['school_zip'] new_school.address_country = school_form.cleaned_data['school_address_country'] new_school.access_code = User.objects.make_random_password() new_school.save() new_school.conferences.add(conference) new_sponsor = FacultySponsor() new_sponsor.school = new_school if hasattr(sponsor_form, 'cleaned_data'): new_sponsor.phone = sponsor_form.cleaned_data['sponsor_phone'] new_user = request.user if not request.user.is_authenticated(): new_user = User() new_user.username = sponsor_form.cleaned_data['sponsor_username'] new_user.first_name = sponsor_form.cleaned_data['sponsor_first_name'] new_user.last_name = sponsor_form.cleaned_data['sponsor_last_name'] new_user.email = sponsor_form.cleaned_data['sponsor_email'] new_user.set_password(sponsor_form.cleaned_data['sponsor_password']) new_user.save() else: try: # delete any existing faculty sponsor ties existing_sponsor = FacultySponsor.objects.get(user=new_user) new_sponsor.phone = existing_sponsor.phone existing_sponsor.delete() except ObjectDoesNotExist: pass new_sponsor.user = new_user new_sponsor.save() new_sponsor.conferences.add(conference) return HttpResponseRedirect(reverse(school_admin, args=(conference.url_name, new_school.url_name,))) else: school_form._errors.setdefault("school_name", ErrorList()).append("The reCAPTCHA wasn't entered correctly.") else: try: school = request.user.faculty_sponsor.school try: school.conferences.get(id=conference.id) except Conference.DoesNotExist: school.conferences.add(conference) try: request.user.faculty_sponsor.conferences.get(id=conference.id) except Conference.DoesNotExist: request.user.faculty_sponsor.conferences.add(conference) return HttpResponseRedirect(reverse(school_admin, args=(conference.url_name, school.url_name,))) except: school_form = NewSchoolForm() sponsor_form = NewFacultySponsorForm() return render_response(request, 'register-new-school.html', { 'school_form': school_form, 'sponsor_form': sponsor_form, 'conference' : conference })