From e16487d087fae33efc3d4adbd21e9e6b1338459b Mon Sep 17 00:00:00 2001 From: Sven Arnold Date: Mon, 8 Feb 2016 18:39:18 +0100 Subject: [PATCH] Books can be lend and returned. --- project/books/templates/books/index.html | 12 +++++++++++- project/books/templates/books/lease.html | 6 ++++++ project/books/templates/books/returned.html | 3 +++ project/books/urls.py | 4 +++- project/books/views.py | 25 ++++++++++++++++++++++++- 5 files changed, 47 insertions(+), 3 deletions(-) create mode 100644 project/books/templates/books/lease.html create mode 100644 project/books/templates/books/returned.html diff --git a/project/books/templates/books/index.html b/project/books/templates/books/index.html index 2b440e1..f1cb109 100644 --- a/project/books/templates/books/index.html +++ b/project/books/templates/books/index.html @@ -1,9 +1,19 @@ {% if book_list %} {% else %} Keine Bücher im Regal! {% endif %} +
+ {% csrf_token %} + + +
diff --git a/project/books/templates/books/lease.html b/project/books/templates/books/lease.html new file mode 100644 index 0000000..bcc905f --- /dev/null +++ b/project/books/templates/books/lease.html @@ -0,0 +1,6 @@ +Leihe {{ book }} an +
+ {% csrf_token %} + + +
diff --git a/project/books/templates/books/returned.html b/project/books/templates/books/returned.html new file mode 100644 index 0000000..0d3cff3 --- /dev/null +++ b/project/books/templates/books/returned.html @@ -0,0 +1,3 @@ + +{{ lease.leasee }} returned {{ lease.book }}. + diff --git a/project/books/urls.py b/project/books/urls.py index a580036..a55716b 100644 --- a/project/books/urls.py +++ b/project/books/urls.py @@ -4,5 +4,7 @@ from . import views urlpatterns = [ url(r'^$', views.index, name='index'), - url(r'(?P\d+)', views.detail, name="detail"), + url(r'^(?P\d+)$', views.detail, name="detail"), + url(r'^(?P\d+)/lease$', views.lease_book, name="lease_book"), + url(r'^lease/(?P\d+)/return$', views.return_book, name="return_book"), ] diff --git a/project/books/views.py b/project/books/views.py index 4e57ab8..2a8b689 100644 --- a/project/books/views.py +++ b/project/books/views.py @@ -1,9 +1,17 @@ from django.shortcuts import render -from django.http import HttpResponse +from django.core.urlresolvers import reverse +from django.http import HttpResponse, HttpResponseRedirect from books.models import Book, Lease def index(request): + try: + title = request.POST['title'] + new_book = Book(title=title) + new_book.save() + return HttpResponseRedirect(reverse('index')) + except KeyError: + pass book_list = Book.objects.all() context = { 'book_list': book_list } return render(request, 'books/index.html', context) @@ -12,3 +20,18 @@ def detail(request, book_id): response = "Book ID: %s" return HttpResponse(response % book_id) +def return_book(request, lease_id): + lease = Lease.objects.get(pk = lease_id) + lease.delete() + return render(request, 'books/returned.html', {'lease': lease}) + +def lease_book(request, book_id): + book = Book.objects.get(pk = book_id) + try: + leasee = request.POST['leasee'] + lease = Lease(book = book, leasee = leasee) + lease.save() + return HttpResponseRedirect(reverse('index')) + except KeyError: + return render(request, 'books/lease.html', {'book': book}) + -- 2.11.0