Skip to content
Snippets Groups Projects
Unverified Commit 68925e74 authored by Nik | Klampfradler's avatar Nik | Klampfradler
Browse files

Add type hints. Advances BiscuIT-ng#20.

parent ad8af3fe
No related branches found
No related tags found
No related merge requests found
......@@ -25,10 +25,10 @@ class Book(SchoolRelated):
cover = models.ImageField(verbose_name=_(
'Photo of cover'), blank=True, null=True)
def __str__(self):
def __str__(self) -> str:
return '%s (%s, %d. %d %d)' % (self.title, self.author, self.edition, _('edition'), self.year)
def is_deleteable(self):
def is_deleteable(self) -> bool:
for book_copy in self.copies.all():
if not book_copy.is_deleteable():
return False
......@@ -69,7 +69,7 @@ class BookCopy(models.Model):
barcode = models.CharField(verbose_name=_(
'Barcode'), max_length=20, unique=True)
def save(self, *args, **kwargs):
def save(self, *args, **kwargs) -> None:
if not self.copy_num:
if self.book.copies.exclude(copy_num__isnull=True).exists():
self.copy_num = self.book.copies.exclude(
......@@ -82,5 +82,5 @@ class BookCopy(models.Model):
super().save(*args, **kwargs)
def is_deleteable(self):
def is_deleteable(self) -> bool:
return not self.borrow_count and not self.borrower
from typing import Dict
import isbnlib
def get_book_meta(isbn):
def get_book_meta(isbn: str) -> Dict[str, str]:
meta_result = {}
for provider in 'dnb', 'openl', 'goob':
......
......@@ -3,7 +3,7 @@ import os
from tempfile import TemporaryDirectory
from django.contrib.auth.decorators import login_required
from django.http import FileResponse
from django.http import FileResponse, HttpRequest, HttpResponse
from django.shortcuts import get_object_or_404, redirect, render
from django.utils.text import slugify
from django.utils.translation import ugettext_lazy as _
......@@ -22,7 +22,7 @@ from .util import get_book_meta
@login_required
def books(request):
def books(request: HttpRequest) -> HttpResponse:
context = {}
# Get all books
......@@ -37,7 +37,7 @@ def books(request):
@login_required
def add_book(request):
def add_book(request: HttpRequest) -> HttpResponse:
context = {}
book_add_isbn_form = BookAddISBNForm(request.POST or None)
......@@ -52,7 +52,7 @@ def add_book(request):
@login_required
def edit_book(request, id_=None, isbn=None):
def edit_book(request: HttpRequest, id_: Optoinal[int] = None, isbn: Optional[str] = None) -> HttpResponse:
context = {}
if id_:
......@@ -92,7 +92,7 @@ def edit_book(request, id_=None, isbn=None):
@login_required
def delete_book(request, id_):
def delete_book(request: HttpRequest, id_: int) -> HttpResponse:
book = get_object_or_404(Book, pk=id_)
title = book.title
......@@ -107,7 +107,7 @@ def delete_book(request, id_):
@login_required
def book(request, id_, template):
def book(request: HttpRequest, id_: int, template: str) -> HttpResponse:
context = {}
book = get_object_or_404(Book, pk=id_)
......@@ -125,7 +125,7 @@ def book(request, id_, template):
@login_required
def add_book_copies(request, id_):
def add_book_copies(request: HttpRequest, id_: int) -> HttpResponse:
context = {}
book = get_object_or_404(Book, pk=id_)
......@@ -151,7 +151,7 @@ def add_book_copies(request, id_):
@login_required
def edit_book_copy(request, id_):
def edit_book_copy(request: HttpRequest, id_: int) -> HttpResponse:
context = {}
book_copy = get_object_or_404(BookCopy, pk=id_)
......@@ -173,7 +173,7 @@ def edit_book_copy(request, id_):
@login_required
def delete_book_copy(request, id_):
def delete_book_copy(request: HttpRequest, id_: int) -> HttpResponse:
book_copy = get_object_or_404(BookCopy, pk=id_)
book = book_copy.book
......@@ -189,7 +189,7 @@ def delete_book_copy(request, id_):
@login_required
def book_copies_labels(request, id_):
def book_copies_labels(request: HttpRequest, id_: int) -> HttpResponse:
book = get_object_or_404(Book, pk=id_)
copies = book.copies.all()
......@@ -231,7 +231,7 @@ def book_copies_labels(request, id_):
@login_required
def get_copy(request):
def get_copy(request: HttpRequest) -> HttpResponse:
context = {}
book_copy_form = BookGetCopyForm(request.POST or None)
......@@ -246,7 +246,7 @@ def get_copy(request):
@login_required
def book_copy(request, barcode, template):
def book_copy(request: HttpRequest, barcode: str, template: str) -> HttpResponse:
context = {}
book_copy = get_object_or_404(BookCopy, barcode=barcode)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment