can now add categories from the category viewer
This commit is contained in:
parent
a3018cb7a6
commit
24511bb11c
18
browser.py
18
browser.py
|
@ -1,6 +1,7 @@
|
||||||
|
import sys
|
||||||
import curses
|
import curses
|
||||||
import dbLayer as db
|
import dbLayer as db
|
||||||
from form import bookForm
|
from form import bookForm,categoryForm
|
||||||
|
|
||||||
class browserWindow:
|
class browserWindow:
|
||||||
hl=0
|
hl=0
|
||||||
|
@ -175,7 +176,22 @@ class categoryBrowser(browserWindow):
|
||||||
cats = db.getCategories()
|
cats = db.getCategories()
|
||||||
for c in cats:
|
for c in cats:
|
||||||
self.entries.append({'category':c})
|
self.entries.append({'category':c})
|
||||||
|
self.sortByColumn('category')
|
||||||
|
|
||||||
|
def addCategory(self):
|
||||||
|
w = curses.newwin(1,1,10,10)
|
||||||
|
cf = categoryForm(w)
|
||||||
|
cats = cf.eventLoop()
|
||||||
|
print >> sys.stderr, cats
|
||||||
|
for c in cats:
|
||||||
|
print >> sys.stderr, "adding "+str(c)
|
||||||
|
db.addCategory(c)
|
||||||
|
cf.clear()
|
||||||
|
|
||||||
def handleInput(self,ch):
|
def handleInput(self,ch):
|
||||||
browserWindow.handleInput(self,ch)
|
browserWindow.handleInput(self,ch)
|
||||||
|
if ch==97:
|
||||||
|
self.addCategory()
|
||||||
|
self.refreshCategories()
|
||||||
|
self.refresh()
|
||||||
|
|
||||||
|
|
20
dbLayer.py
20
dbLayer.py
|
@ -1,3 +1,4 @@
|
||||||
|
import sys
|
||||||
import sqlite3
|
import sqlite3
|
||||||
|
|
||||||
dbFile = 'sqLibrary.db'
|
dbFile = 'sqLibrary.db'
|
||||||
|
@ -181,6 +182,21 @@ def deleteBook(bookid):
|
||||||
#########################################
|
#########################################
|
||||||
# Category related functions
|
# Category related functions
|
||||||
########################################
|
########################################
|
||||||
|
def categorizeBook(bookid, category):
|
||||||
|
conn = sqlite3.connect(dbFile)
|
||||||
|
c = conn.cursor()
|
||||||
|
if isinstance(category,str):
|
||||||
|
query = "INSERT OR IGNORE INTO "+categoryTable+" (category) VALUES ("+stringify(cat)+");"
|
||||||
|
conn.commit()
|
||||||
|
c.execute(query)
|
||||||
|
query = "SELECT cat_id FROM "+categoryTable+" WHERE category = "+stringify(category)+";"
|
||||||
|
c.execute(query)
|
||||||
|
category = c.fetchone()
|
||||||
|
query = "INSERT OR IGNORE INTO "+bookCategoryTable+" (id,cat_id) VALUES ("+str(bookid)+", "+str(category)+");"
|
||||||
|
conn.commit()
|
||||||
|
c.close()
|
||||||
|
|
||||||
|
|
||||||
def getCategories():
|
def getCategories():
|
||||||
conn = sqlite3.connect(dbFile)
|
conn = sqlite3.connect(dbFile)
|
||||||
c = conn.cursor()
|
c = conn.cursor()
|
||||||
|
@ -196,7 +212,9 @@ def addCategory(cat):
|
||||||
conn = sqlite3.connect(dbFile)
|
conn = sqlite3.connect(dbFile)
|
||||||
c = conn.cursor()
|
c = conn.cursor()
|
||||||
query = "INSERT OR IGNORE INTO "+categoryTable+" (category) VALUES ("+stringify(cat)+");"
|
query = "INSERT OR IGNORE INTO "+categoryTable+" (category) VALUES ("+stringify(cat)+");"
|
||||||
c.execte(query)
|
print >>sys.stderr, query
|
||||||
|
c.execute(query)
|
||||||
|
conn.commit()
|
||||||
c.close()
|
c.close()
|
||||||
|
|
||||||
#########################################
|
#########################################
|
||||||
|
|
8
form.py
8
form.py
|
@ -209,3 +209,11 @@ class bookForm(formWindow):
|
||||||
self.updateEntries(book)
|
self.updateEntries(book)
|
||||||
self.refresh()
|
self.refresh()
|
||||||
formWindow.handleInput(self,ch)
|
formWindow.handleInput(self,ch)
|
||||||
|
|
||||||
|
class categoryForm(formWindow):
|
||||||
|
caption = "Add a Category"
|
||||||
|
blabel = "Add"
|
||||||
|
labels = ["Category"]
|
||||||
|
|
||||||
|
def returnValues(self):
|
||||||
|
return self.entries
|
||||||
|
|
|
@ -83,9 +83,9 @@ def redrawMenu(w,items,highlight):
|
||||||
def addForm():
|
def addForm():
|
||||||
w=curses.newwin(1,1)
|
w=curses.newwin(1,1)
|
||||||
(my,mx)=stdscr.getmaxyx()
|
(my,mx)=stdscr.getmaxyx()
|
||||||
|
bf = form.bookForm(w)
|
||||||
(r,c)=w.getmaxyx()
|
(r,c)=w.getmaxyx()
|
||||||
w.mvwin((my-r)/2,(mx-c)/2)
|
w.mvwin((my-r)/2,(mx-c)/2)
|
||||||
bf = form.bookForm(w)
|
|
||||||
bf.lookup=bookData.openLibrary
|
bf.lookup=bookData.openLibrary
|
||||||
bf.caption='Add a Book'
|
bf.caption='Add a Book'
|
||||||
bf.blabel = 'Add'
|
bf.blabel = 'Add'
|
||||||
|
|
Loading…
Reference in New Issue