Adds shelf page

Works on #25
This commit is contained in:
Mouse Reeve
2020-02-21 16:03:05 -08:00
parent 3eb91980e0
commit 6c629be667
8 changed files with 105 additions and 65 deletions

View File

@ -143,12 +143,9 @@ def user_profile(request, username):
# otherwise we're at a UI view
try:
user = models.User.objects.get(localname=username)
user = get_user_from_username(username)
except models.User.DoesNotExist:
try:
user = models.User.objects.get(username=username)
except models.User.DoesNotExist:
return HttpResponseNotFound()
return HttpResponseNotFound()
# TODO: change display with privacy and authentication considerations
shelves = models.Shelf.objects.filter(user=user)
@ -163,6 +160,14 @@ def user_profile(request, username):
}
return TemplateResponse(request, 'user.html', data)
def get_user_from_username(username):
''' resolve a localname or a username to a user '''
try:
user = models.User.objects.get(localname=username)
except models.User.DoesNotExist:
user = models.User.objects.get(username=username)
return user
@login_required
def user_profile_edit(request, username):
@ -256,6 +261,18 @@ def tag_page(request, tag_id):
return TemplateResponse(request, 'tag.html', data)
def shelf_page(request, username, shelf_identifier):
''' display a shelf '''
# TODO: json view
try:
user = get_user_from_username(username)
except models.User.DoesNotExist:
return HttpResponseNotFound()
shelf = models.Shelf.objects.get(user=user, identifier=shelf_identifier)
return TemplateResponse(request, 'shelf.html', {'shelf': shelf})
@login_required
def shelve(request, username, shelf_id, book_id, reshelve=True):
''' put a book on a user's shelf '''