]> git.phdru.name Git - m_librarian.git/blobdiff - m_librarian/web/app.py
Feat(web): Загружать выбранный список книг
[m_librarian.git] / m_librarian / web / app.py
index 95af5cb5d79e3060b0d7a923f02dc6c25a8013af..2296d277bbe17f85d174e49615673176ecb484ae 100644 (file)
@@ -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, AuthorBook, Book
+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
 
 
@@ -69,3 +75,31 @@ def books_by_author(id):
             orderBy=['series', 'ser_no', 'title'],
         )
     }
+
+
+@route('/static/<filename:path>')
+def send_static(filename):
+    return static_file(
+        filename, root=os.path.join(
+            os.path.dirname(__file__),
+            'static'
+        )
+    )
+
+
+@route('/download/', method='POST')
+@cheetah_view('download.tmpl')
+def download_books():
+    books_ids = request.forms.getall('books')
+    download_path = get_config().get('download', 'path')
+    if books_ids:
+        for id in books_ids:
+            book = Book.get(int(id))
+            download(book, download_path)
+        return {
+            'message': u'Книги сохранены.',
+        }
+    else:
+        return {
+            'message': u'Не выбрано книг для сохранения.',
+        }