X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=m_librarian%2Fweb%2Fapp.py;h=7032825e8224d3f4c0cf94e04228eeddd46d21f7;hb=b446a389796d3e6922ce93f089e25324765a8c62;hp=638f1528e3826c41e102d164d4aa4ac7d8789aa1;hpb=ee485bf9817d65fb5b7641a6638b931cf7747b13;p=m_librarian.git diff --git a/m_librarian/web/app.py b/m_librarian/web/app.py index 638f152..7032825 100644 --- a/m_librarian/web/app.py +++ b/m_librarian/web/app.py @@ -1,7 +1,13 @@ +# -*- coding: utf-8 -*- + +import os + from sqlobject.sqlbuilder import CONCAT -from bottle import cheetah_view, redirect, request, route +from bottle import cheetah_view, redirect, request, route, static_file -from m_librarian.db import Author, open_db +from m_librarian.config import get_config +from m_librarian.db import Author, Book +from m_librarian.download import download from m_librarian.search import search_authors @@ -49,7 +55,6 @@ def search_authors_post(): CONCAT(Author.q.surname, ' ', Author.q.name, ' ', Author.q.misc_name), decode(value) )] - open_db() authors = search_authors(search_type, case_sensitive, {}, expressions, orderBy=('surname', 'name', 'misc_name')) return { @@ -58,3 +63,35 @@ def search_authors_post(): 'search_type': search_type, 'case_sensitive': case_sensitive, } + + +@route('/books-by-author//', method='GET') +@cheetah_view('books_by_author.tmpl') +def books_by_author(id): + return { + 'author': Author.get(id), + 'books': Book.select( + Book.j.authors & (Author.q.id == id), + orderBy=['series', 'ser_no', 'title'], + ) + } + + +@route('/static/') +def send_static(filename): + return static_file( + filename, root=os.path.join( + os.path.dirname(__file__), + 'static' + ) + ) + + +@route('/download//', method='GET') +@cheetah_view('download.tmpl') +def download_book(id): + book = Book.get(id) + download(book, get_config().get('download', 'path')) + return { + 'message': u'Книга сохранена', + }