def reserve_book(self, title_id, book_id, patron_id): # TODO: Check duplicates if title_id not in self.reserved_books_by_title: self.reserved_books_by_title[title_id] = [] self.reserved_books_by_title[title_id].append(book_id) book = Book.find_book(book_id) book.reserve(patron_id)
def eject_reserved_book(self, patron_id, book_id): # TODO: Check validity book = Book.find_book(book_id) title_id = book.title_isbn # If this doesn't work, it wasn't reserved. self.reserved_books_by_title[title_id].remove(book_id) # Set the bearer book.set_bearer(patron_id)
def insert_book(self, qr_code): # TODO: check duplicates book = Book.find_book(qr_code) title_id = book.title_isbn book_id = book.qr_code # Was requested at this kiosk? if self.has_request(title_id): print self.requests patron_id = self.requests[title_id].pop(0) self.reserve_book(title_id, book_id, patron_id) else: if title_id not in self.available_books_by_title: self.available_books_by_title[title_id] = [] self.available_books_by_title[title_id].append(qr_code) book.set_bearer(self.uuid)
def eject_book(self, employee_id, book_id): book = Book.find_book(book_id) self.available_books_by_title[book.title_isbn].remove(book_id) book.set_bearer(employee_id)
def main(): # load the system state db = yaml.load(open("inventory.yaml").read()) inventory_import(db['inventory']) #pprint.pprint(obj) # (System) Creates inventory inv = Inventory() # (System) Creates admin admin = Admin("Joe") # (System) Creates kiosk .. and adds it to the inventory kiosk = Kiosk('aacpl') Kiosk.add_kiosk(kiosk) # (Admin) Creates a title .. and adds it to the inventory title1 = Title(1234, "title1", "author1") Title.add_title(title1) # (Admin) Creates a book .. and associates it with a title and bearer Book.add_book(Book(4321, title1, admin)) # *Admin sends book to kiosk for insertion* # (Employee) Inserts book into kiosk (via qr_code) kiosk.insert_book(4321) print "\nKiosk Title Availability: (Employee just inserted a book)" pprint.pprint(kiosk.available_books_by_title) pprint.pprint(kiosk.reserved_books_by_title) # (User) Searches for book userweb1 = UserWebService("user1") results = userweb1.search("title1") print "\nSearch Results: (User just searched for a title.)" pprint.pprint(results) # (User) Reserves A Book title_choice = results.items()[0][0] kiosk_choice = results.items()[0][1].keys()[0] userweb1.reserve_title(title_choice, kiosk_choice) print "\nKiosks Title Availability: (User just reserved a title)" pprint.pprint(kiosk.available_books_by_title) pprint.pprint(kiosk.reserved_books_by_title) # Another user tries for the same title, but must request userweb2 = UserWebService("user2") results = userweb2.search("title1") print "\nSearch Results: (User Searched For Unavailable Title)" pprint.pprint(results) # 2nd User Requests Title title_choice = results.items()[0][0] kiosk_choice = results.items()[0][1].keys()[0] userweb2.request_title(title_choice, kiosk_choice) print "\nKiosk Requests: (User just requested unavailable title.)" pprint.pprint(kiosk.requests) # First user picks up a book. kiosk.eject_reserved_book("user1", 4321) print "\nBook Bearer: ", Book.find_book(4321).bearer_uuid print "Kiosks Title Availability: (User just picked up a book)" pprint.pprint(kiosk.available_books_by_title) pprint.pprint(kiosk.reserved_books_by_title) # User returns book kiosk.insert_book(4321) print "\nBook Bearer: ", Book.find_book(4321).bearer_uuid print "Kiosks Title Availability: (User just returned a book)" pprint.pprint(kiosk.available_books_by_title) pprint.pprint(kiosk.reserved_books_by_title) # Second user picks up a book. kiosk.eject_reserved_book("user2", 4321) print "\nBook Bearer: ", Book.find_book(4321).bearer_uuid print "Kiosks Title Availability: (User just picked up a book)" pprint.pprint(kiosk.available_books_by_title) pprint.pprint(kiosk.reserved_books_by_title) # Second user returns book kiosk.insert_book(4321) print "\nBook Bearer: ", Book.find_book(4321).bearer_uuid print "Kiosks Title Availability: (User just returned a book)" pprint.pprint(kiosk.available_books_by_title) pprint.pprint(kiosk.reserved_books_by_title)
Book('20', 'Python MT', '2018', '987654321987', 'Stephanie Enders'), Book('30', 'Python AA', '2019', '143567833456', 'Suki Dog') ] #display all books #add book id, title, year, isbn, author = '22', 'new book', '2000', '777777777777', 'Marvel' list_of_book.append(Book(id, title, year, isbn, author)) #for b in list_of_book: # print(b) to_search = '20001' x = Book.find_book(list_of_book, str(to_search)) if not x: print('no found') else: for b in x: print(b) #search book #delete book # [1] Display Users # [2] Add User # [3] Delete USer # [4] Search User # [5] Add Book # [6] Borrow Book