view views.py @ 164:345936c0fed7

remove distribute from pip-requirements This was causing trouble because pip would attempt to install a replacement distribute and thus break its own installation.
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Wed, 17 Oct 2012 10:13:11 -0400
parents a5547f079190
children c494e6ecff58
line wrap: on
line source

from django.contrib.auth import login, authenticate
from django.contrib.auth.models import User
from django.contrib.auth.forms import AuthenticationForm
from django.shortcuts import render, redirect
from django.core.urlresolvers import reverse
from registration.forms import RegistrationForm

from agora.apps.snippet.models import Snippet
from agora.apps.bundle.models import Bundle


def code(request):
    context = {
        'snippets': Snippet.objects.public()[:5],
        'bundles': Bundle.objects.all()[:5],
        'forge': None, # temp
    }

    return render(request, 'code.djhtml', context)


def login_register(request):
    form = None
    next_url = None

    if request.method == 'POST':
        action = request.POST.get('action')
        next_url = request.GET.get('next') or reverse('login')

        if action == 'login':
            username = request.POST.get('username', '')
            password = request.POST.get('password1', '')

            if username and password:
                user = authenticate(username=username, password=password)
                login(request, user)

                return redirect(next_url)
            else:
                form = {
                    'password1': {
                        'errors': 'Please enter a username and password.',
                    },
                }
        elif action == 'register':
            form = RegistrationForm(request.POST)

            if form.is_valid():
                username = form.cleaned_data['username']
                email = form.cleaned_data['email']
                password = form.cleaned_data['password1']

                User.objects.create_user(username, email, password)
                user = authenticate(username=username, password=password)
                login(request, user)
                return redirect(next_url)
        else:
            # The action is not set. Malicious submission?
            pass

    context = {
        'next_url': next_url,
        'form': form,
    }

    return render(request, 'login.djhtml', context)