Пример #1
0
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})
Пример #2
0
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})
Пример #3
0
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
        })
Пример #4
0
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
    })