コード例 #1
0
ファイル: views.py プロジェクト: AngellusMortis/hackday
def profile(request, username):
    user = User.objects.get(username=username)
    user_profile = UserProfile.objects.get(user=user)
    env = common_env()
    env['user_'] = user
    env['user_profile'] = user_profile
    return render(request, 'users/profile.html', env)
コード例 #2
0
ファイル: views.py プロジェクト: AngellusMortis/hackday
def suggest(request):
    error_message = None
    env = common_env()

    if request.method == 'POST':
        form = SuggestCharityForm(request.POST)
        if form.is_valid():
            try:
                charity = Charity(
                        name=form.cleaned_data['name'],
                        url=form.cleaned_data['url'],
                        description=form.cleaned_data['description'],
                        suggester=request.user,
                        status=STATUS.PENDING)
                charity.save()
            except IntegrityError:
                error_message = \
                        "That charity has already been suggested, thanks."
            else:
                return render(request, 'charities/suggest_done.html', env)
    else:
        form = SuggestCharityForm()

    env['form'] = form
    env['error_message'] = error_message
    return render(request, 'charities/suggest.html', env)
コード例 #3
0
def rsvp(request):
    saved = False
    updated = False
    if request.method == 'POST':
        form = RSVPForm(request.POST)
        if form.is_valid():
            email = form.cleaned_data['email']
            will_attend = form.cleaned_data['will_attend']
            try:
                rsvp = RSVP.objects.get(email=email)
                updated = True
            except:
                rsvp = RSVP()
                saved = True
            rsvp.email = email
            rsvp.will_attend = will_attend
            rsvp.save()
    else:
        form = RSVPForm()

    env = common_env()
    env['form'] = form
    env['saved'] = saved
    env['updated'] = updated

    return render(request, "messaging/rsvp.html", env)
コード例 #4
0
ファイル: views.py プロジェクト: csitko/hackday
def sign_in(request):
    error_message = None

    if request.method == 'POST':
        form = SignInForm(request.POST)
        if form.is_valid():
            user = authenticate(username=form.cleaned_data['user_name'],
                    password=form.cleaned_data['password'])
            if user:
                try:
                    user_profile = UserProfile.objects.get(user=user)
                    if user.is_active and user_profile:
                        login(request, user)
                        next_url = form.cleaned_data['next']
                        if not next_url.startswith('/'):
                            raise PermissionDenied
                        return HttpResponseRedirect(next_url)
                    else:
                        error_message = "Account disabled"
                except:
                    error_message = "You must sign up before signing in"
            else:
                error_message = "Bad username or password"
    else:
        next_url = request.GET.get('next') or reverse('blog-home')
        form = SignInForm(initial={'next': next_url})

    env = common_env()
    env['form'] = form
    env['error_message'] = error_message
    return render(request, 'users/signin.html', env)
コード例 #5
0
ファイル: views.py プロジェクト: csitko/college-hackday
def page(request, path):
    if request.user.is_superuser:
        page = get_object_or_404(Page, path=path)
    else:
        page = get_object_or_404(Page, path=path, status=STATUS.PUBLISHED)
    env = common_env()
    env['page'] = page
    return render(request, 'wiki/page.html', env)
コード例 #6
0
ファイル: views.py プロジェクト: csitko/hackday
def tag(request, slug):
    all_entries = Entry.objects.filter(tags__slug=slug, status=STATUS.PUBLISHED).order_by("-pub_date")
    page = request.GET.get("page", 1)

    env = common_env()
    env["entries"] = _get_paginated_entries(all_entries, page, 10)
    env["slug"] = slug
    return render(request, "blog/tag.html", env)
コード例 #7
0
ファイル: views.py プロジェクト: mpirnat/hackday
def page(request, path):
    if request.user.has_perms('wiki.add_page'):
        page = get_object_or_404(Page, path=path)
    else:
        page = get_object_or_404(Page, path=path, status=STATUS.PUBLISHED)
    env = common_env()
    env['page'] = page
    return render(request, 'wiki/page.html', env)
コード例 #8
0
ファイル: views.py プロジェクト: csitko/hackday
def index(request):
    all_entries = Entry.objects.filter(status=STATUS.PUBLISHED).order_by("-pub_date")
    page = request.GET.get("page", 1)

    env = common_env()
    env["entries"] = _get_paginated_entries(all_entries, page, 5)
    env["formats"] = FORMAT
    return render(request, "blog/index.html", env)
コード例 #9
0
ファイル: views.py プロジェクト: csitko/hackday
def email(request, entry_id):
    if request.user.is_superuser:
        entry = Entry.objects.get(pk=entry_id)
    else:
        entry = Entry.objects.get(pk=entry_id, status=STATUS.PUBLISHED)
    env = common_env()
    env["entry"] = entry
    env["formats"] = FORMAT
    return render(request, "blog/notification_email_html.html", env)
コード例 #10
0
ファイル: views.py プロジェクト: mpirnat/hackday
def entry(request, entry_id):
    if request.user.has_perm('blog.add_entry'):
        entry = Entry.objects.get(pk=entry_id)
    else:
        entry = get_object_or_404(Entry, pk=entry_id, status=STATUS.PUBLISHED)
    env = common_env()
    env['entry'] = entry
    env['formats'] = FORMAT
    return render(request, 'blog/entry.html', env)
コード例 #11
0
ファイル: views.py プロジェクト: csitko/college-hackday
def tag(request, slug):
    all_entries = Entry.objects.filter(tags__slug=slug,
            status=STATUS.PUBLISHED).order_by('-pub_date')
    page = request.GET.get('page', 1)

    env = common_env()
    env['entries'] = _get_paginated_entries(all_entries, page, 10)
    env['slug'] = slug
    return render(request, 'blog/tag.html', env)
コード例 #12
0
ファイル: views.py プロジェクト: csitko/college-hackday
def entry(request, entry_id):
    if request.user.is_superuser:
        entry = Entry.objects.get(pk=entry_id)
    else:
        entry = Entry.objects.get(pk=entry_id, status=STATUS.PUBLISHED)
    env = common_env()
    env['entry'] = entry
    env['formats'] = FORMAT
    return render(request, 'blog/entry.html', env)
コード例 #13
0
ファイル: views.py プロジェクト: csitko/college-hackday
def index(request):
    all_entries = Entry.objects.filter(status=STATUS.PUBLISHED).\
            order_by('-pub_date')
    page = request.GET.get('page', 1)

    env = common_env()
    env['entries'] = _get_paginated_entries(all_entries, page, 5)
    env['formats'] = FORMAT
    return render(request, 'blog/index.html', env)
コード例 #14
0
ファイル: views.py プロジェクト: mpirnat/hackday
def email(request, entry_id):
    if request.user.has_perm('blog.add_entry'):
        entry = Entry.objects.get(pk=entry_id)
    else:
        entry = Entry.objects.get(pk=entry_id, status=STATUS.PUBLISHED)
    env = common_env()
    env['entry'] = entry
    env['formats'] = FORMAT
    return render(request, 'blog/notification_email_html.html', env)
コード例 #15
0
ファイル: views.py プロジェクト: mpirnat/hackday
def tag(request, slug):
    all_entries = Entry.objects.filter(tags__slug=slug,
            status=STATUS.PUBLISHED).order_by('-pub_date')
    page = request.GET.get('page', 1)

    env = common_env()
    env['entries'] = _get_paginated_entries(all_entries, page, 10)
    env['slug'] = slug
    return render(request, 'blog/tag.html', env)
コード例 #16
0
ファイル: views.py プロジェクト: mpirnat/hackday
def index(request):
    all_entries = Entry.objects.filter(status=STATUS.PUBLISHED).\
            order_by('-pub_date')
    page = request.GET.get('page', 1)

    env = common_env()
    env['entries'] = _get_paginated_entries(all_entries, page, 5)
    env['formats'] = FORMAT

    if request.GET.get('format', '') == 'json':
        return HttpResponse(serializers.serialize('json', all_entries), mimetype="application/json")
    else:
        return render(request, 'blog/index.html', env)
コード例 #17
0
ファイル: views.py プロジェクト: csitko/college-hackday
def edit_profile(request, username):
    user = User.objects.get(username=username)
    user_profile = UserProfile.objects.get(user=user)
    message = None

    if request.user != user:
        raise PermissionDenied

    elif request.method == 'POST':
        form = UserProfileForm(request.POST)
        if form.is_valid():
            user.first_name = form.cleaned_data['first_name']
            user.last_name = form.cleaned_data['last_name']
            user.email = form.cleaned_data['email']

            if form.cleaned_data['password']:
                user.set_password(form.cleaned_data['password'])

            user_profile.tshirt = form.cleaned_data['tshirt']
            user_profile.diet = form.cleaned_data['diet']
            user_profile.description = form.cleaned_data['description']
            user_profile.notify_by_email = form.cleaned_data['notify_by_email']

            user.save()
            user_profile.save()

            message = 'Updated profile.'

    else:
        form = UserProfileForm(initial={
                'first_name': user.first_name,
                'last_name': user.last_name,
                'email': user.email,
                'tshirt': user_profile.tshirt,
                'diet': user_profile.diet,
                'description': user_profile.description,
                'notify_by_email': user_profile.notify_by_email,
        })

    env = common_env()
    env['form'] = form
    env['user_'] = user
    env['message'] = message
    env['user_profile'] = user_profile
    return render(request, 'users/edit_profile.html', env)
コード例 #18
0
ファイル: views.py プロジェクト: AngellusMortis/hackday
def sign_in(request):
    error_message = None
    backends = settings.AUTHENTICATION_BACKENDS
    form_class = SignInForm
    ldap_enabled = False
    site = Site.objects.get_current()

    if 'hackday.auth.backend.ActiveDirectoryBackend' in backends:
        form_class = ActiveDirectorySignInForm
        ldap_enabled = True

    if request.method == 'POST':
        form = form_class(request.POST)
        if form.is_valid():
            user = authenticate(username=form.cleaned_data['user_name'],
                    password=form.cleaned_data['password'])
            if user:
                try:
                    user_profile = UserProfile.objects.get(user=user)
                    if user.is_active and user_profile:
                        login(request, user)
                        next_url = form.cleaned_data['next']
                        if not next_url.startswith('/'):
                            raise PermissionDenied
                        return HttpResponseRedirect(next_url)
                    else:
                        error_message = "Account disabled"
                except:
                    error_message = "You must sign up before signing in"
            else:
                error_message = "Bad username or password"
    else:
        next_url = request.GET.get('next') or reverse('blog-home')
        form = form_class(initial={'next': next_url})

    backends = settings.AUTHENTICATION_BACKENDS
    env = common_env()
    env['form'] = form
    env['error_message'] = error_message
    env['ldap_enabled'] = ldap_enabled
    env['site_name'] = site.name

    return render(request, 'users/signin.html', env)
コード例 #19
0
ファイル: views.py プロジェクト: csitko/college-hackday
def sign_up(request):
    error_message = None

    if request.method == 'POST':
        form = SignUpForm(request.POST)
        if form.is_valid():
            # Create the user
            try:
                user = User.objects.create_user(
                        form.cleaned_data['user_name'],
                        form.cleaned_data['email'],
                        form.cleaned_data['password'])
            except IntegrityError:
                error_message = "That username is not available."
            else:
                user.first_name = form.cleaned_data['first_name']
                user.last_name = form.cleaned_data['last_name']
                user.save()

                # Create the user profile
                user_profile = UserProfile(
                        user=user,
                        tshirt=form.cleaned_data['tshirt'],
                        diet=form.cleaned_data['diet'],
                        description=form.cleaned_data['description'],
                        notify_by_email=form.cleaned_data['notify_by_email'])
                user_profile.save()

                # Log the user in
                user = authenticate(username=user.username,
                        password=form.cleaned_data['password'])
                login(request, user)

                return HttpResponseRedirect(reverse('users-profile', args=[user.username])) # Redirect after POST
    else:
        form = SignUpForm()

    env = common_env()
    env['form'] = form
    env['error_message'] = error_message
    return render(request, 'users/signup.html', env)
コード例 #20
0
ファイル: views.py プロジェクト: AngellusMortis/hackday
def index(request):
    users = User.objects.exclude(last_name='', first_name='').\
            order_by('last_name', 'first_name', 'username')
    env = common_env()
    env['users'] = users
    return render(request, 'users/index.html', env)
コード例 #21
0
ファイル: views.py プロジェクト: AngellusMortis/hackday
def index(request):
    charities = Charity.objects.filter(status=STATUS.APPROVED).order_by("name")
    env = common_env()
    env['charities'] = charities
    return render(request, 'charities/index.html', env)
コード例 #22
0
ファイル: views.py プロジェクト: AngellusMortis/hackday
def edit_profile(request, username):
    user = User.objects.get(username=username)
    user_profile = UserProfile.objects.get(user=user)
    message = None

    form_class = UserProfileForm
    backends = settings.AUTHENTICATION_BACKENDS
    update_user = True

    if 'hackday.auth.backend.ActiveDirectoryBackend' in backends:
        form_class = ActiveDirectoryUserProfileForm
        update_user = False

    if request.user != user:
        raise PermissionDenied

    elif request.method == 'POST':
        form = form_class(request.POST)
        if form.is_valid():
            if update_user:
                user.first_name = form.cleaned_data['first_name']
                user.last_name = form.cleaned_data['last_name']
                user.email = form.cleaned_data['email']

                if form.cleaned_data['password']:
                    user.set_password(form.cleaned_data['password'])

                user.save()

            user_profile.alternate_email = form.cleaned_data['alternate_email']
            user_profile.phone = form.cleaned_data['phone']
            user_profile.tshirt = form.cleaned_data['tshirt']
            user_profile.diet = form.cleaned_data['diet']
            user_profile.location = form.cleaned_data['location']
            user_profile.description = form.cleaned_data['description']
#            user_profile.notes = form.cleaned_data['notes']
            user_profile.notify_by_email = form.cleaned_data['notify_by_email']
            user_profile.dinner_required = form.cleaned_data['dinner_required']
            user_profile.breakfast_required = form.cleaned_data['breakfast_required']

            user_profile.save()

            message = 'Updated profile.'

    else:
        form = form_class(initial={
                'first_name': user.first_name,
                'last_name': user.last_name,
                'email': user.email,
                'alternate_email': user_profile.alternate_email,
                'phone': user_profile.phone,
                'tshirt': user_profile.tshirt,
                'diet': user_profile.diet,
                'location': user_profile.location,
                'description': user_profile.description,
#                'notes': user_profile.notes,
                'notify_by_email': user_profile.notify_by_email,
                'dinner_required': user_profile.dinner_required,
                'breakfast_required': user_profile.breakfast_required,
        })

    env = common_env()
    env['form'] = form
    env['user_'] = user
    env['message'] = message
    env['user_profile'] = user_profile
    return render(request, 'users/edit_profile.html', env)
コード例 #23
0
ファイル: views.py プロジェクト: AngellusMortis/hackday
def sign_up(request):
    error_message = None
    backends = settings.AUTHENTICATION_BACKENDS
    form_class = SignUpForm
    create_user = True

    # the AD backend makes users on login and fills in name and email for us
    # so we don't need those fields on the form
    if 'hackday.auth.backend.ActiveDirectoryBackend' in backends:
        form_class = ActiveDirectorySignUpForm
        create_user = False

    if request.method == 'POST':
        form = form_class(request.POST)
        if form.is_valid():
            if create_user:
                # Create the user
                try:
                    user = User.objects.create_user(
                            form.cleaned_data['user_name'],
                            form.cleaned_data['email'],
                            form.cleaned_data['password'])
                except IntegrityError:
                    error_message = "That username is not available."
                else:
                    user.first_name = form.cleaned_data['first_name']
                    user.last_name = form.cleaned_data['last_name']
                    user.save()
            else:
                user = authenticate(username=form.cleaned_data['user_name'],
                    password=form.cleaned_data['password'])
                if not user:
                    error_message = "Invalid username or password."

            if not error_message:
                # Create the user profile
                user_profile = UserProfile(
                        user=user,
                        alternate_email=form.cleaned_data['alternate_email'],
                        phone=form.cleaned_data['phone'],
                        tshirt=form.cleaned_data['tshirt'],
                        diet=form.cleaned_data['diet'],
                        location=form.cleaned_data['location'],
                        description=form.cleaned_data['description'],
                        notify_by_email=form.cleaned_data['notify_by_email'],
                        dinner_required=form.cleaned_data['dinner_required'],
                        breakfast_required=form.cleaned_data['breakfast_required'])
                try:
                    user_profile.save()
                except IntegrityError:
                    error_message = "That user has already registered."
                else:
                    # Log the user in
                    user = authenticate(username=user.username,
                            password=form.cleaned_data['password'])
                    login(request, user)

                    return HttpResponseRedirect(reverse('users-profile', args=[user.username])) # Redirect after POST
    else:
        form = form_class()

    env = common_env()
    env['ldap_enabled'] = not create_user
    env['form'] = form
    env['error_message'] = error_message
    return render(request, 'users/signup.html', env)
コード例 #24
0
ファイル: views.py プロジェクト: AngellusMortis/hackday
def sign_out(request):
    logout(request)
    env = common_env()
    return render(request, 'users/signout.html', env)