Made it possible to view uncategorized books

Also "specialized" lists of books (categorized, on
shelf, checked out, uncategorized) don't revert to
the main book list when refreshing.
This commit is contained in:
Felix Bauckholt 2016-01-30 21:03:45 -05:00
parent 91f1ff9c55
commit 89c66c8188
3 changed files with 42 additions and 6 deletions

View File

@ -119,13 +119,23 @@ def trashMenu():
b.eventLoop()
b.clear()
def uncategorizedMenu():
w=curses.newwin(3,5)
b = browser.bookBrowser(w,hb)
(r,c) = w.getmaxyx()
(my,mx)=stdscr.getmaxyx()
w.mvwin((my-r)//2 -2, (mx-c)//2)
b.refreshBooksUncategorized()
b.eventLoop()
b.clear()
def checkedout_menu():
w=curses.newwin(3,5)
b = browser.bookBrowser(w,hb)
(r,c) = w.getmaxyx()
(my,mx)=stdscr.getmaxyx()
w.mvwin((my-r)//2 -2, (mx-c)//2)
b.load_data(db.get_checkedout_books())
b.refreshBooksCheckedout()
b.columnDefs = [("id",0,3),
("uwid",0,8),
("date",0,10),
@ -140,7 +150,7 @@ def onshelf_menu():
(r,c) = w.getmaxyx()
(my,mx)=stdscr.getmaxyx()
w.mvwin((my-r)//2 -2, (mx-c)//2)
b.load_data(db.get_onshelf_books())
b.refreshBooksOnshelf()
b.eventLoop()
b.clear()
@ -172,6 +182,7 @@ if __name__ == "__main__":
("Add Book", addForm),
("Categories", catMenu),
("View Trash", trashMenu),
("View Uncategorized Books", uncategorizedMenu),
("",exit),
("Check Out a Book", co_menu),
("Return a Book", return_menu),

View File

@ -148,6 +148,18 @@ def getRemovedBooks():
c.close()
return books
def getUncategorizedBooks():
conn = sqlite3.connect(_catalogue_db_file)
c = conn.cursor()
query = ("SELECT "+",".join(map(_colify,columns))+" FROM "+_book_table+
" WHERE id NOT IN (SELECT id FROM "+_book_category_table+")"+
" AND deleted=0;")
c.execute(query)
books = [_query_to_book(b) for b in c]
c.close()
return books
def get_book(bookid):
conn = sqlite3.connect(_catalogue_db_file)
c = conn.cursor()

View File

@ -375,7 +375,20 @@ class bookBrowser(browserWindow):
self.load_data(db.get_books())
def refreshBooksInCategory(self,cat):
self.load_data(db.getBooksByCategory(cat))
self.refreshBooks = lambda : self.load_data(db.getBooksByCategory(cat))
self.refreshBooks()
def refreshBooksUncategorized(self):
self.refreshBooks = lambda : self.load_data(db.getUncategorizedBooks())
self.refreshBooks()
def refreshBooksCheckedout(self):
self.refreshBooks = lambda : self.load_data(db.get_checkedout_books())
self.refreshBooks()
def refreshBooksOnshelf(self):
self.refreshBooks = lambda : self.load_data(db.get_onshelf_books())
self.refreshBooks()
def handleInput(self,ch):
browserWindow.handleInput(self,ch)