Create statuses from django form

This commit is contained in:
Mouse Reeve
2020-10-26 15:00:15 -07:00
parent 6243cf0e4a
commit 2afa111b70
3 changed files with 26 additions and 82 deletions

View File

@ -296,67 +296,37 @@ def shelve(request):
def rate(request):
''' just a star rating for a book '''
form = forms.RatingForm(request.POST)
book_id = request.POST.get('book')
# TODO: better failure behavior
if not form.is_valid():
return redirect('/book/%s' % book_id)
rating = form.cleaned_data.get('rating')
# throws a value error if the book is not found
outgoing.handle_rate(request.user, book_id, rating)
return redirect('/book/%s' % book_id)
return handle_status(request, form)
@login_required
def review(request):
''' create a book review '''
form = forms.ReviewForm(request.POST)
book_id = request.POST.get('book')
if not form.is_valid():
return redirect('/book/%s' % book_id)
# TODO: validation, htmlification
name = form.cleaned_data.get('name')
content = form.cleaned_data.get('content')
rating = form.data.get('rating', None)
try:
rating = int(rating)
except ValueError:
rating = None
outgoing.handle_review(request.user, book_id, name, content, rating)
return redirect('/book/%s' % book_id)
return handle_status(request, form)
@login_required
def quotate(request):
''' create a book quotation '''
form = forms.QuotationForm(request.POST)
book_id = request.POST.get('book')
if not form.is_valid():
return redirect('/book/%s' % book_id)
quote = form.cleaned_data.get('quote')
content = form.cleaned_data.get('content')
outgoing.handle_quotation(request.user, book_id, content, quote)
return redirect('/book/%s' % book_id)
return handle_status(request, form)
@login_required
def comment(request):
''' create a book comment '''
form = forms.CommentForm(request.POST)
return handle_status(request, form)
def handle_status(request, form):
''' all the review/comment/quote etc functions are the same '''
book_id = request.POST.get('book')
# TODO: better failure behavior
if not form.is_valid():
return redirect('/book/%s' % book_id)
# TODO: validation, htmlification
content = form.data.get('content')
outgoing.handle_comment(request.user, book_id, content)
outgoing.handle_status(request.user, form)
return redirect('/book/%s' % book_id)