# -*- 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/', '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")