71 lines
2.2 KiB
Python
71 lines
2.2 KiB
Python
from django.shortcuts import render, redirect
|
|
from .models import Club, BookRecommendation
|
|
import random
|
|
|
|
def index(request):
|
|
if request.method == 'POST':
|
|
club_id = request.POST.get('club')
|
|
book_title = request.POST.get('book_title')
|
|
author = request.POST.get('author')
|
|
reason = request.POST.get('reason')
|
|
# Simple CAPTCHA
|
|
num1 = int(request.POST.get('num1'))
|
|
num2 = int(request.POST.get('num2'))
|
|
captcha = int(request.POST.get('captcha'))
|
|
|
|
if captcha == num1 + num2:
|
|
club = Club.objects.get(id=club_id)
|
|
BookRecommendation.objects.create(
|
|
club=club,
|
|
book_title=book_title,
|
|
author=author,
|
|
reason=reason,
|
|
)
|
|
return redirect('/?submitted=true')
|
|
else:
|
|
return redirect('/?captcha_error=true')
|
|
|
|
|
|
clubs = Club.objects.all()
|
|
num1 = random.randint(1, 10)
|
|
num2 = random.randint(1, 10)
|
|
submitted = request.GET.get('submitted')
|
|
captcha_error = request.GET.get('captcha_error')
|
|
return render(request, 'core/index.html', {
|
|
'clubs': clubs,
|
|
'num1': num1,
|
|
'num2': num2,
|
|
'submitted': submitted,
|
|
'captcha_error': captcha_error,
|
|
})
|
|
|
|
from django.contrib.auth import login, logout
|
|
from django.contrib.auth.forms import AuthenticationForm
|
|
from .forms import SignUpForm
|
|
|
|
def signup_view(request):
|
|
if request.method == 'POST':
|
|
form = SignUpForm(request.POST)
|
|
if form.is_valid():
|
|
user = form.save()
|
|
login(request, user)
|
|
return redirect('/')
|
|
else:
|
|
form = SignUpForm()
|
|
return render(request, 'core/signup.html', {'form': form})
|
|
|
|
def login_view(request):
|
|
if request.method == 'POST':
|
|
form = AuthenticationForm(data=request.POST)
|
|
if form.is_valid():
|
|
user = form.get_user()
|
|
login(request, user)
|
|
return redirect('/')
|
|
else:
|
|
form = AuthenticationForm()
|
|
return render(request, 'core/login.html', {'form': form})
|
|
|
|
def logout_view(request):
|
|
if request.method == 'POST':
|
|
logout(request)
|
|
return redirect('/') |