Books can be lend and returned.
authorSven Arnold <sven@internetallee.de>
Mon, 8 Feb 2016 17:39:18 +0000 (18:39 +0100)
committerSven Arnold <sven@internetallee.de>
Mon, 8 Feb 2016 17:39:18 +0000 (18:39 +0100)
project/books/templates/books/index.html
project/books/templates/books/lease.html [new file with mode: 0644]
project/books/templates/books/returned.html [new file with mode: 0644]
project/books/urls.py
project/books/views.py

index 2b440e1..f1cb109 100644 (file)
@@ -1,9 +1,19 @@
 {% if book_list %}
        <ul>
                {% for book in book_list %}
-               <li>{{ book }}</li>
+               <li>{{ book }} <a href="{% url 'lease_book' book.id %}">Ausleihen</a> <ul>
+                       {% for lease in book.lease_set.all %}
+                               <li><a href="{% url 'return_book' lease.id %}">{{ lease.leasee }}</a></li>
+                       {% endfor %}
+                       </ul>
+               </li>
                {% endfor %}
        </ul>
 {% else %}
        Keine Bücher im Regal!
 {% endif %}
+<form action="{% url 'index' %}" method="post">
+       {% csrf_token %}
+       <input type="text" name="title" />
+       <input type="submit" value="Neues Buch" />
+</form>
diff --git a/project/books/templates/books/lease.html b/project/books/templates/books/lease.html
new file mode 100644 (file)
index 0000000..bcc905f
--- /dev/null
@@ -0,0 +1,6 @@
+Leihe {{ book }} an 
+<form action="{% url 'lease_book' book.id %}" method="post">
+       {% csrf_token %}
+       <input type="text" name="leasee" />
+       <input type="submit" value="Verleihe" />
+</form>
diff --git a/project/books/templates/books/returned.html b/project/books/templates/books/returned.html
new file mode 100644 (file)
index 0000000..0d3cff3
--- /dev/null
@@ -0,0 +1,3 @@
+<a href="{% url 'index' %}">
+{{ lease.leasee }} returned {{ lease.book }}.
+</a>
index a580036..a55716b 100644 (file)
@@ -4,5 +4,7 @@ from . import views
 
 urlpatterns = [
        url(r'^$', views.index, name='index'),
-       url(r'(?P<book_id>\d+)', views.detail, name="detail"),
+       url(r'^(?P<book_id>\d+)$', views.detail, name="detail"),
+       url(r'^(?P<book_id>\d+)/lease$', views.lease_book, name="lease_book"),
+       url(r'^lease/(?P<lease_id>\d+)/return$', views.return_book, name="return_book"),
 ]
index 4e57ab8..2a8b689 100644 (file)
@@ -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})
+