67 lines
2.7 KiB
Python
67 lines
2.7 KiB
Python
# -*- coding:utf-8 -*-
|
|
import pymongo
|
|
import bookDAO
|
|
import bottle
|
|
import cgi
|
|
|
|
|
|
__author__ = 'tpeetz'
|
|
|
|
|
|
class Plugin:
|
|
|
|
def __init__(self, app, database, sessions):
|
|
self.app = app
|
|
self.db = database
|
|
self.sessions = sessions
|
|
self.books = bookDAO.BookDAO(database)
|
|
self.routing()
|
|
|
|
def routing(self):
|
|
self.app.route('/library', 'GET', self.book_list)
|
|
self.app.route('/library/book', 'GET', self.book_list)
|
|
self.app.route('/library/book/<id>', 'GET', self.book_details)
|
|
self.app.route('/library/book/create', 'GET', self.get_book_create)
|
|
self.app.route('/library/book/create', 'POST', self.post_create_book)
|
|
|
|
def book_list(self):
|
|
cookie = bottle.request.get_cookie("session")
|
|
username = self.sessions.get_username(cookie)
|
|
l = self.books.get_books()
|
|
return bottle.template('book_list', dict(books=l, username=username))
|
|
|
|
def book_details(self, id):
|
|
cookie = bottle.request.get_cookie("session")
|
|
username = self.sessions.get_username(cookie)
|
|
book = self.books.get_book(id)
|
|
errors = ""
|
|
if book == None:
|
|
errors = "Entry not found"
|
|
return bottle.template('book_template', dict(title=book['title'],
|
|
id=book['_id'],
|
|
current_order=book['current_order'],
|
|
completed=book['completed'],
|
|
errors="",
|
|
username=username))
|
|
|
|
def get_book_create(self):
|
|
cookie = bottle.rddequest.get_cookie("session")
|
|
username = self.sessions.get_username(cookie)
|
|
return bottle.template("book_template", dict(title="",
|
|
id='newentry',
|
|
current_order=False,
|
|
completed=False,
|
|
errors="",
|
|
username=username))
|
|
|
|
def post_create_book(self):
|
|
book_id = bottle.request.forms.get("id")
|
|
book_title = bottle.request.forms.get("title")
|
|
book_order = bottle.request.forms.get("current_order")
|
|
book_completed = bottle.request.forms.get("completed")
|
|
if book_id == "newentry":
|
|
self.books.insert_entry(book_title, None, book_order, book_completed)
|
|
else:
|
|
self.comics.update_entry(book_id, book_title, None, book_order, book_completed)
|
|
bottle.redirect("/comics/comic")
|