checkout success/failure for integrity error, and database move

This commit is contained in:
Gianni Gambetti 2015-05-11 12:42:49 -04:00
parent 85ace8ab4c
commit bc2d865520
1 changed files with 17 additions and 5 deletions

View File

@ -2,12 +2,17 @@ import sqlite3
from library import permissions
# because of the way that SQLite works we need to have these two
# files be different, because the Office staff needs read/write
# permission to the directory that contains the checkout.db file.
# (sqlite needs to create temporary files in that directory)
_catalogue_db_file = '/users/libcom/catalogue.db'
_book_table = 'books'
_book_category_table='book_categories'
_category_table = 'categories'
_checkout_db_file = '/users/libcom/checkout.db'
_checkout_db_file = '/users/libcom/checkout/checkout.db'
_checkout_table = 'checked_out'
_return_table = 'returned'
@ -292,10 +297,17 @@ def deleteCategories(cats):
def checkout_book(book_id, uwid):
conn = sqlite3.connect(_checkout_db_file)
c = conn.cursor()
query = "INSERT INTO " + _checkout_table + " (id, uwid) VALUES (?, ?);"
c.execute(query, (book_id, uwid))
conn.commit()
c.close()
try:
query = "INSERT INTO " + _checkout_table + " (id, uwid) VALUES (?, ?);"
c.execute(query, (book_id, uwid))
except sqlite3.IntegrityError:
return False # didn't work
finally:
conn.commit()
c.close()
return True # worked
@permissions.check_permissions(permissions.PERMISSION_OFFICE)
def return_book(book_id):