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.
jessie
Felix Bauckholt 7 years ago
parent 91f1ff9c55
commit 89c66c8188
  1. 19
      librarian
  2. 14
      library/database.py
  3. 15
      library/interface/browser.py

@ -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,19 +150,19 @@ 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()
def co_menu():
w=curses.newwin(1,1)
(my,mx)=stdscr.getmaxyx()
co.checkout_procedure(w,hb,my//2,mx//2,mx)
co.checkout_procedure(w,hb,my//2,mx//2,mx)
def return_menu():
w=curses.newwin(1,1)
(my,mx)=stdscr.getmaxyx()
co.return_procedure(w,hb,my//2,mx//2,mx)
co.return_procedure(w,hb,my//2,mx//2,mx)
def catMenu():
(my,mx)=stdscr.getmaxyx()
@ -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),

@ -91,7 +91,7 @@ def addBook(book):
if v!="":
cols.append(_colify(k))
vals.append(_stringify(v))
query = ("INSERT INTO "+_book_table+" ("+", ".join(cols)+") VALUES ("+
", ".join(vals)+");")
c.execute(query)
@ -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()

@ -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)

Loading…
Cancel
Save