Beispiel #1
0
    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)
Beispiel #2
0
    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)
Beispiel #3
0
    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)
Beispiel #4
0
 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)
Beispiel #5
0
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)
Beispiel #6
0
    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