Create statuses from django form
This commit is contained in:
@ -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)
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user