Compare commits
4 Commits
email_remi
...
master
Author | SHA1 | Date |
---|---|---|
|
358decd75d | |
|
292f6fd8af | |
|
d18ff562fc | |
|
4ce53141e0 |
1
TODO
1
TODO
|
@ -6,6 +6,7 @@ Support for multiple copies
|
|||
- (better support, that is)
|
||||
Search function in db_layer
|
||||
- eventually something which takes things like "title:foo author:bar some other keywords"
|
||||
Don't let patrons with overdue books checkout more books
|
||||
|
||||
|
||||
_Code Quality Improvements_
|
||||
|
|
|
@ -1,9 +1,28 @@
|
|||
library (1.0-4stretch0) UNRELEASED; urgency=medium
|
||||
library (1.1-0~bionic0) bionic; urgency=medium
|
||||
|
||||
* Package for bionic
|
||||
|
||||
-- Charlie Wang <s455wang@csclub.uwaterloo.ca> Sun, 17 Feb 2019 21:45:27 -0500
|
||||
|
||||
library (1.1-0~xenial0) xenial; urgency=medium
|
||||
|
||||
* Package for xenial
|
||||
|
||||
-- Zachary Seguin <ztseguin@csclub.uwaterloo.ca> Sun, 15 Apr 2018 16:16:07 -0400
|
||||
|
||||
library (1.1-0~buster0) buster; urgency=medium
|
||||
|
||||
* Package for buster
|
||||
|
||||
-- Zachary Seguin <ztseguin@csclub.uwaterloo.ca> Sun, 15 Apr 2018 16:14:05 -0400
|
||||
|
||||
library (1.1-0~stretch0) stretch; urgency=medium
|
||||
|
||||
[ Patrick James Melanson ]
|
||||
* New menu option to send out mass email for overdue books
|
||||
* Community effort by Connor Murphy, Charlie Wang, Patrick Melanson
|
||||
|
||||
-- Patrick James Melanson <pj2melan@csclub.uwaterloo.ca> Sat, 29 Jul 2017 15:12:12 -0400
|
||||
-- Zachary Seguin <ztseguin@csclub.uwaterloo.ca> Sun, 15 Apr 2018 16:12:58 -0400
|
||||
|
||||
library (1.0-3stretch0) stretch; urgency=medium
|
||||
|
||||
|
|
50
librarian
50
librarian
|
@ -10,7 +10,9 @@ import library.interface.sendemails as sendemails
|
|||
|
||||
from library import book_data
|
||||
|
||||
|
||||
class SmallScreenException(Exception):
|
||||
def __init__(self, *args, **kwargs):
|
||||
Exception.__init__(self, *args, **kwargs)
|
||||
|
||||
stdscr=0
|
||||
hb=0
|
||||
|
@ -36,11 +38,16 @@ def menutest(s, l):
|
|||
try:
|
||||
menu(w, l)
|
||||
except SystemExit: pass
|
||||
except SmallScreenException:
|
||||
text = """That's a small screen!
|
||||
This librarian program won't work with a small screen.
|
||||
Make your terminal window bigger and try again."""
|
||||
form.error_form(text, stdscr, hb)
|
||||
raise
|
||||
except:
|
||||
text = """An unexpected error occured.
|
||||
You can contact the librarian (librarian@csclub.uwaterloo.ca),
|
||||
but given the history of the library system, it seems unlikely
|
||||
that somebody will be around to care.
|
||||
Email the librarian (librarian@csclub.uwaterloo.ca)
|
||||
with python's output after this program quits.
|
||||
The program will now quit."""
|
||||
form.error_form(text, stdscr, hb)
|
||||
raise
|
||||
|
@ -101,7 +108,10 @@ def addForm():
|
|||
(my,mx)=stdscr.getmaxyx()
|
||||
bf = form.BookForm(w,hb,width=mx-20)
|
||||
(r,c)=w.getmaxyx()
|
||||
w.mvwin((my-r)//2,(mx-c)//2)
|
||||
try:
|
||||
w.mvwin((my-r)//2,(mx-c)//2)
|
||||
except curses.error as exc:
|
||||
raise SmallScreenException("Terminal screen too small. Try again with a bigger terminal.") from exc
|
||||
bf.lookup_isbn=book_data.openLibrary_isbn
|
||||
bf.lookup_lccn=book_data.openLibrary_lccn
|
||||
bf.caption='Add a Book'
|
||||
|
@ -116,7 +126,10 @@ def browseMenu():
|
|||
b = browser.bookBrowser(w,hb)
|
||||
(r,c) = w.getmaxyx()
|
||||
(my,mx)=stdscr.getmaxyx()
|
||||
w.mvwin((my-r)//2 -2, (mx-c)//2)
|
||||
try:
|
||||
w.mvwin((my-r)//2 -2, (mx-c)//2)
|
||||
except curses.error as exc:
|
||||
raise SmallScreenException("Terminal screen too small. Try again with a bigger terminal.") from exc
|
||||
b.refreshBooks()
|
||||
b.eventLoop()
|
||||
b.clear()
|
||||
|
@ -126,7 +139,10 @@ def trashMenu():
|
|||
b = browser.trashBrowser(w,hb)
|
||||
(r,c) = w.getmaxyx()
|
||||
(my,mx)=stdscr.getmaxyx()
|
||||
w.mvwin((my-r)//2 -2, (mx-c)//2)
|
||||
try:
|
||||
w.mvwin((my-r)//2 -2, (mx-c)//2)
|
||||
except curses.error as exc:
|
||||
raise SmallScreenException("Terminal screen too small. Try again with a bigger terminal.") from exc
|
||||
b.refreshBooks()
|
||||
b.eventLoop()
|
||||
b.clear()
|
||||
|
@ -136,7 +152,10 @@ def uncategorizedMenu():
|
|||
b = browser.bookBrowser(w,hb)
|
||||
(r,c) = w.getmaxyx()
|
||||
(my,mx)=stdscr.getmaxyx()
|
||||
w.mvwin((my-r)//2 -2, (mx-c)//2)
|
||||
try:
|
||||
w.mvwin((my-r)//2 -2, (mx-c)//2)
|
||||
except curses.error as exc:
|
||||
raise SmallScreenException("Terminal screen too small. Try again with a bigger terminal.") from exc
|
||||
b.refreshBooksUncategorized()
|
||||
b.eventLoop()
|
||||
b.clear()
|
||||
|
@ -146,7 +165,10 @@ def checkedout_menu():
|
|||
b = browser.bookBrowser(w,hb)
|
||||
(r,c) = w.getmaxyx()
|
||||
(my,mx)=stdscr.getmaxyx()
|
||||
w.mvwin((my-r)//2 -2, (mx-c)//2)
|
||||
try:
|
||||
w.mvwin((my-r)//2 -2, (mx-c)//2)
|
||||
except curses.error as exc:
|
||||
raise SmallScreenException("Terminal screen too small. Try again with a bigger terminal.") from exc
|
||||
b.refreshBooksCheckedout()
|
||||
b.columnDefs = [("id",0,3),
|
||||
("uwid",0,8),
|
||||
|
@ -161,7 +183,10 @@ def onshelf_menu():
|
|||
b = browser.bookBrowser(w,hb)
|
||||
(r,c) = w.getmaxyx()
|
||||
(my,mx)=stdscr.getmaxyx()
|
||||
w.mvwin((my-r)//2 -2, (mx-c)//2)
|
||||
try:
|
||||
w.mvwin((my-r)//2 -2, (mx-c)//2)
|
||||
except curses.error as exc:
|
||||
raise SmallScreenException("Terminal screen too small. Try again with a bigger terminal.") from exc
|
||||
b.refreshBooksOnshelf()
|
||||
b.eventLoop()
|
||||
b.clear()
|
||||
|
@ -181,7 +206,10 @@ def catMenu():
|
|||
w=curses.newwin(3,5)
|
||||
cat = browser.categoryBrowser(w,hb)
|
||||
(r,c) = w.getmaxyx()
|
||||
w.mvwin((my-r)//2 -2, (mx-c)//2)
|
||||
try:
|
||||
w.mvwin((my-r)//2 -2, (mx-c)//2)
|
||||
except curses.error as exc:
|
||||
raise SmallScreenException("Terminal screen too small. Try again with a bigger terminal.") from exc
|
||||
cat.refreshCategories()
|
||||
cat.sortByColumn('category')
|
||||
cat.eventLoop()
|
||||
|
|
|
@ -23,6 +23,8 @@ Our records indicate that you have had the book {} signed out for {} days.
|
|||
|
||||
If you would like to keep this book checked out, tell us when in the next month you will return this book.
|
||||
|
||||
If you think you have received this message in error, reply back to this email please!
|
||||
|
||||
Otherwise, please return the book to the CS Club office (MC 3036) at your earliest convenience.
|
||||
|
||||
Thank you for using the CS Club library!
|
||||
|
|
|
@ -283,19 +283,6 @@ class FormWindow:
|
|||
if self.bt==-1:
|
||||
self.entries[self.hl].handle_input(ch)
|
||||
|
||||
class LoginForm(FormWindow):
|
||||
caption = "Enter your csclub login to access the mail server"
|
||||
blabel = "Login"
|
||||
labels = ["ID", "Password"]
|
||||
|
||||
def _make_entries(self):
|
||||
self.entries = []
|
||||
self.entries.append(TextEntry(self.w))
|
||||
self.entries.append(PasswordEntry(self.w))
|
||||
|
||||
def _return_values(self):
|
||||
return [self.entries[0].value, self.entries[1].value]
|
||||
|
||||
class BookForm(FormWindow):
|
||||
caption = "Add a Book"
|
||||
blabel = "Add"
|
||||
|
|
Loading…
Reference in New Issue