Adding user validation and overdue search.
This commit is contained in:
parent
dc61d054e5
commit
c4b8499ad7
|
@ -1,6 +1,8 @@
|
|||
from sqlobject import *
|
||||
from sqlobject.sqlbuilder import *
|
||||
from ceo import conf
|
||||
from ceo import members
|
||||
from ceo import terms
|
||||
import time
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
|
@ -37,8 +39,9 @@ class Book(SQLObject):
|
|||
Call this with a username to sign out
|
||||
a book.
|
||||
"""
|
||||
s = Signout(username=u, book=self,
|
||||
outdate=datetime.today(), indate=None)
|
||||
if members.registered(u,terms.currrent()):
|
||||
s = Signout(username=u, book=self,
|
||||
outdate=datetime.today(), indate=None)
|
||||
|
||||
def sign_in(self, u):
|
||||
"""
|
||||
|
|
|
@ -4,7 +4,9 @@ from ceo.urwid import search
|
|||
from ceo.urwid.widgets import *
|
||||
from ceo.urwid.window import *
|
||||
from sqlobject.sqlbuilder import *
|
||||
from datetime import datetime
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
from ceo import terms
|
||||
|
||||
import ceo.library as lib
|
||||
|
||||
|
@ -17,7 +19,7 @@ def library(data):
|
|||
menu = make_menu([
|
||||
("Checkout Book", checkout_book, None),
|
||||
("Return Book", return_book, None),
|
||||
# ("Search Books", search_books, None),
|
||||
("Search Books", search_books, None),
|
||||
# ("Add Book", add_book, None),
|
||||
("Back", raise_back, None),
|
||||
])
|
||||
|
@ -36,6 +38,18 @@ def overdue_books(data):
|
|||
"""
|
||||
Display a list of all books that are overdue.
|
||||
"""
|
||||
oldest = datetime.today() - timedelta(weeks=2)
|
||||
overdue = Signout.select(Signout.q.outdate<oldest)
|
||||
|
||||
widgets = []
|
||||
|
||||
for s in overdue:
|
||||
widgets.append(urwid.AttrWrap(ButtonText(None, s.book, str(s.book)),
|
||||
None, 'selected'))
|
||||
widgets.append(urwid.Divider())
|
||||
|
||||
urwid.WidgetWrap.__init__(self, urwid.ListBox(widgets))
|
||||
|
||||
None
|
||||
|
||||
def checkout_book(data):
|
||||
|
@ -108,6 +122,10 @@ class CheckoutPage(WizardPanel):
|
|||
|
||||
def check(self):
|
||||
self.state['user'] = self.user.get_edit_text()
|
||||
if not members.registered(self.state['user'], terms.current()):
|
||||
set_status("User not registered for this term!")
|
||||
return True
|
||||
return False
|
||||
|
||||
class ConfirmPage(WizardPanel):
|
||||
"""
|
||||
|
|
Loading…
Reference in New Issue