Esempio n. 1
0
    def create(self):
        self.db = DataBaseAccess()
        self.d = Data()

        self.__class__.CANCEL_BUTTON_TEXT = "Refresh"
        self.__class__.OK_BUTTON_TEXT = "Exit"

        self.myBooksButton = self.add(npyscreen.ButtonPress, name = "My books")
        self.myBooksButton.cursor_color = COLOR
        self.myBooksButton.whenPressed = self.on_my_books_pressed

        self.books = self.add(npyscreen.ButtonPress, name = "All books")
        self.books.cursor_color = COLOR
        self.books.whenPressed = self.on_books_pressed

        self.settings = self.add(npyscreen.ButtonPress, name = "Settings")
        self.settings.cursor_color = COLOR
        self.settings.whenPressed = self.on_settings_pressed

        self.editData = self.add(npyscreen.ButtonPress, name = "Edit my data")
        self.editData.cursor_color = COLOR
        self.editData.whenPressed = self.on_editData_pressed

        self.logout = self.add(npyscreen.ButtonPress, name = "Logout")
        self.logout.cursor_color = COLOR
        self.logout.whenPressed = self.on_logout_pressed
Esempio n. 2
0
    def create(self):
        self.__class__.OK_BUTTON_TEXT = "Add"

        self.db = DataBaseAccess()

        self.ISBNF = self.add(npyscreen.TitleText,
                              relx=RELX,
                              rely=RELY,
                              name="Signature: ")
        self.titleF = self.add(npyscreen.TitleText,
                               relx=RELX,
                               rely=RELY + 2,
                               name="Title: ")
        self.authorF = self.add(npyscreen.TitleText,
                                relx=RELX,
                                rely=RELY + 4,
                                name="Author: ")
        self.yearF = self.add(npyscreen.TitleText,
                              relx=RELX,
                              rely=RELY + 6,
                              name="Year: ")

        self.commit = self.add(npyscreen.ButtonPress,
                               relx=RELX,
                               rely=RELY + 8,
                               name="Add")
        self.commit.whenPressed = self.on_commit_pressed
Esempio n. 3
0
    def create(self):
        self.__class__.CANCEL_BUTTON_TEXT = "Exit"
        self.__class__.OK_BUTTON_TEXT = "Refresh"
        self.__class__.CANCEL_BUTTON_BR_OFFSET = (2, 15)

        self.add_handlers({
            ord("s") : self.on_search,
            ord("S") : self.on_search,
            "^A" :     self.add_user,
        })

        self.add(npyscreen.TitleText, name= "CTR + A or a - add; e - edit;  d - delete; i - info; b - show books;CTR + S - search; m - send mail", editable = False)
	
        self.db = DataBaseAccess()
		
        self.search = self.add(npyscreen.TitleText, name = "Search: ", labelColor = "STANDOUT")
        self.search.add_handlers({
            curses.KEY_ENTER : self.on_search,
            "^S"             : self.on_search, 
        })
        
        
        self.grid = self.add(npyscreen.GridColTitles, rely = RELY + 3, slow_scroll = True, always_show_cursor = False, select_whole_line = True, col_titles = ['PESEL', 'Name', 'Surname'])
        self.grid.default_column_number = 3
		
        self.grid.add_handlers({
            ord("e") : self.edit_cell,
            ord("E") : self.edit_cell,
            ord("a") : self.add_user,
            ord("A") : self.add_user,
            ord("d") : self.del_user,
            ord("D") : self.del_user,
            ord("i") : self.info_user,
            ord("I") : self.info_user,
            ord("b") : self.books_user,
            ord("B") : self.books_user,
            ord("s") : self.grid.h_exit_up,
            ord("S") : self.grid.h_exit_up,
            "^S"     : self.on_search,
        })
        
        #self.grid.columns = 1
        #self.grid.rows = 10

        # Add menus
        #self.menu = self.add_menu(name = "Main menu", shortcut = "^M")
        #self.menu.addItemsFromList([
        #    ("Add user", self.add_user)
        #])


        self.getData()
Esempio n. 4
0
    def create(self):
        self.__class__.OK_BUTTON_TEXT = "Refresh"
        self.__class__.CANCEL_BUTTON_BR_OFFSET = (2, 12)
        self.add_handlers({
            ord("s"): self.on_search,
            ord("S"): self.on_search,
        })

        self.db = DataBaseAccess()

        self.search = self.add(npyscreen.TitleText,
                               name="Search: ",
                               labelColor="STANDOUT")
        self.search.add_handlers({
            curses.KEY_ENTER: self.on_search,
            "^S": self.on_search,
        })

        self.grid = self.add(
            npyscreen.GridColTitles,
            rely=RELY + 3,
            always_show_cursor=False,
            select_whole_line=True,
            exit_left=False,
            exit_right=False,
            col_titles=['Signature', 'Title', 'Author', "Year"])
        self.grid.default_column_number = 4

        self.grid.add_handlers({
            ord("s"): self.grid.h_exit_up,
            ord("S"): self.grid.h_exit_up,
            "^S": self.on_search,
        })

        self.grid.values = self.getData()
Esempio n. 5
0
    def create(self):
        self.db = DataBaseAccess()

        self.__class__.OK_BUTTON_TEXT = "Exit"
        self.__class__.CANCEL_BUTTON_TEXT = "Login"
        self.__class__.CANCEL_BUTTON_BR_OFFSET = (2, 13)
        self.RELX = 50
        self.login = LoginValidate()
        # creating login page's layout
        self.loginInput = self.add(npyscreen.TitleText,
                                   relx=self.RELX,
                                   rely=13,
                                   name="Login: "******"Password: ")
Esempio n. 6
0
class LoginValidate():
    def __init__(self):
        self.db = DataBaseAccess()

    def validate(self, login, passwd):
        if not isinstance(login, str) or not isinstance(passwd, str):
            return (False), (False)
        
        return self.db.validUser(login, passwd)
Esempio n. 7
0
class UserMainPage(npyscreen.ActionForm):
    def create(self):
        self.db = DataBaseAccess()
        self.d = Data()

        self.__class__.CANCEL_BUTTON_TEXT = "Refresh"
        self.__class__.OK_BUTTON_TEXT = "Exit"

        self.myBooksButton = self.add(npyscreen.ButtonPress, name = "My books")
        self.myBooksButton.cursor_color = COLOR
        self.myBooksButton.whenPressed = self.on_my_books_pressed

        self.books = self.add(npyscreen.ButtonPress, name = "All books")
        self.books.cursor_color = COLOR
        self.books.whenPressed = self.on_books_pressed

        self.settings = self.add(npyscreen.ButtonPress, name = "Settings")
        self.settings.cursor_color = COLOR
        self.settings.whenPressed = self.on_settings_pressed

        self.editData = self.add(npyscreen.ButtonPress, name = "Edit my data")
        self.editData.cursor_color = COLOR
        self.editData.whenPressed = self.on_editData_pressed

        self.logout = self.add(npyscreen.ButtonPress, name = "Logout")
        self.logout.cursor_color = COLOR
        self.logout.whenPressed = self.on_logout_pressed

    def on_my_books_pressed(self):
        self.parentApp.switchForm("ShowBooksUser")

    def on_books_pressed(self):
        self.parentApp.switchForm("ShowBooksPageUser")

    def on_settings_pressed(self):
        self.parentApp.switchForm("SettingsUserPage")

    def on_editData_pressed(self):
        val = self.db.getUserId(self.d.__class__.ID)

        self.parentApp.getForm("EditData").pesel.value = val[0]
        self.parentApp.getForm("EditData").login.value = val[1]
        self.parentApp.getForm("EditData").passwd.value = val[2]
        self.parentApp.getForm("EditData").passwd2.value = val[2]
        self.parentApp.getForm("EditData").name.value = val[5]
        self.parentApp.getForm("EditData").surname.value = val[6]
        self.parentApp.getForm("EditData").mail.value = val[4]
        
        self.parentApp.switchForm("EditData")

    def on_logout_pressed(self):
        self.parentApp.switchForm("MAIN")

    def on_ok(self):
        if npyscreen.notify_yes_no(message = "Are you sure?", title = "?"):
            self.parentApp.switchForm(None)
Esempio n. 8
0
    def create(self):
        self.db = DataBaseAccess()

        self.userID = self.add(npyscreen.TitleText,
                               relx=RELX,
                               rely=RELY,
                               name="PESEL: ")
        self.bookISBN = self.add(npyscreen.TitleText,
                                 relx=RELX,
                                 rely=RELY + 2,
                                 name="ISBN: ")

        self.commitButton = self.add(npyscreen.ButtonPress,
                                     relx=RELX - 1,
                                     rely=RELY + 4,
                                     name="Borrow")
        self.commitButton.whenPressed = self.on_ok
Esempio n. 9
0
    def create(self):
        self.__class__.OK_BUTTON_TEXT = "Exit"
        self.db = DataBaseAccess()

        self.pesel = self.add(npyscreen.TitleText,
                              relx=RELX,
                              rely=RELY,
                              name="PESEL")
        self.name = self.add(npyscreen.TitleText,
                             relx=RELX,
                             rely=RELY + 2,
                             name="Name: ")
        self.surname = self.add(npyscreen.TitleText,
                                relx=RELX,
                                rely=RELY + 4,
                                name="Surname: ")
        self.login = self.add(npyscreen.TitleText,
                              relx=RELX,
                              rely=RELY + 6,
                              name="Login")
        self.passwd = self.add(npyscreen.TitlePassword,
                               relx=RELX,
                               rely=RELY + 8,
                               name="Passwd")
        self.passwd2 = self.add(npyscreen.TitlePassword,
                                relx=RELX,
                                rely=RELY + 10,
                                name="Passwd again")
        self.mail = self.add(npyscreen.TitleText,
                             relx=RELX,
                             rely=RELY + 12,
                             name="Email: ")
        self.admin = self.add(npyscreen.Checkbox,
                              relx=RELX,
                              rely=RELY + 14,
                              name="Admin?")

        self.commit = self.add(npyscreen.ButtonPress,
                               relx=RELX,
                               rely=RELY + 18)
        self.commit.cursor_color = 'CURSOR_INVERSE'
        self.commit.whenPressed = self.on_commit_pressed
Esempio n. 10
0
class LoginPage(npyscreen.ActionForm):
    def create(self):
        self.db = DataBaseAccess()

        self.__class__.OK_BUTTON_TEXT = "Exit"
        self.__class__.CANCEL_BUTTON_TEXT = "Login"
        self.__class__.CANCEL_BUTTON_BR_OFFSET = (2, 13)
        self.RELX = 50
        self.login = LoginValidate()
        # creating login page's layout
        self.loginInput = self.add(npyscreen.TitleText,
                                   relx=self.RELX,
                                   rely=13,
                                   name="Login: "******"Password: "******"AdminMainPage")

            else:
                d = Data()
                d.__class__.ID = self.db.getUserLogin(self.loginInput.value)
                self.parentApp.setNextForm("UserMainPage")

        else:
            self.parentApp.setNextForm("InvalidPasswd")
Esempio n. 11
0
class ShowUsersPage(npyscreen.ActionForm):#, npyscreen.FormWithMenus):
    def create(self):
        self.__class__.CANCEL_BUTTON_TEXT = "Exit"
        self.__class__.OK_BUTTON_TEXT = "Refresh"
        self.__class__.CANCEL_BUTTON_BR_OFFSET = (2, 15)

        self.add_handlers({
            ord("s") : self.on_search,
            ord("S") : self.on_search,
            "^A" :     self.add_user,
        })

        self.add(npyscreen.TitleText, name= "CTR + A or a - add; e - edit;  d - delete; i - info; b - show books;CTR + S - search; m - send mail", editable = False)
	
        self.db = DataBaseAccess()
		
        self.search = self.add(npyscreen.TitleText, name = "Search: ", labelColor = "STANDOUT")
        self.search.add_handlers({
            curses.KEY_ENTER : self.on_search,
            "^S"             : self.on_search, 
        })
        
        
        self.grid = self.add(npyscreen.GridColTitles, rely = RELY + 3, slow_scroll = True, always_show_cursor = False, select_whole_line = True, col_titles = ['PESEL', 'Name', 'Surname'])
        self.grid.default_column_number = 3
		
        self.grid.add_handlers({
            ord("e") : self.edit_cell,
            ord("E") : self.edit_cell,
            ord("a") : self.add_user,
            ord("A") : self.add_user,
            ord("d") : self.del_user,
            ord("D") : self.del_user,
            ord("i") : self.info_user,
            ord("I") : self.info_user,
            ord("b") : self.books_user,
            ord("B") : self.books_user,
            ord("s") : self.grid.h_exit_up,
            ord("S") : self.grid.h_exit_up,
            "^S"     : self.on_search,
        })
        
        #self.grid.columns = 1
        #self.grid.rows = 10

        # Add menus
        #self.menu = self.add_menu(name = "Main menu", shortcut = "^M")
        #self.menu.addItemsFromList([
        #    ("Add user", self.add_user)
        #])


        self.getData()
        

    def on_cancel(self):
        self.parentApp.switchForm("AdminMainPage")

    def add_user(self, input):
        self.parentApp.switchForm("AddUserPage")

    def on_del(self, name, surname):
        return npyscreen.notify_yes_no(message = ("Are you sure you want to delete %s %s?" % (name, surname)))
		#npyscreen
		
    def del_user(self, input):
        if self.on_del(self.vals[self.grid.edit_cell[0]][5], self.vals[self.grid.edit_cell[0]][6]):
            self.db.delUser(self.vals[self.grid.edit_cell[0]][0])
            self.getData()

    def edit_cell(self, input):
        cell_edit = self.grid.edit_cell

        self.parentApp.getForm("EditUserPage").pesel.value = self.vals[cell_edit[0]][0]
        self.parentApp.getForm("EditUserPage").login.value = self.vals[cell_edit[0]][1]
        self.parentApp.getForm("EditUserPage").passwd.value = self.vals[cell_edit[0]][2]
        self.parentApp.getForm("EditUserPage").passwd2.value = self.vals[cell_edit[0]][2]
        self.parentApp.getForm("EditUserPage").name.value = self.vals[cell_edit[0]][5]
        self.parentApp.getForm("EditUserPage").surname.value = self.vals[cell_edit[0]][6]

        adm = False
        if self.vals[cell_edit[0]][3] == 'True' or self.vals[cell_edit[0]][3] == 1:
            adm = True
        self.parentApp.getForm("EditUserPage").admin.value = adm
        self.parentApp.getForm("EditUserPage").mail.value = self.vals[cell_edit[0]][4]

        #f = open("EDIT.txt", "a")
        #f.write(str(self.parentApp.getForm("AddUserPage").val) + '\n')
        self.parentApp.switchForm("EditUserPage")
    
    def info_user(self, input):
        cell_edit = self.grid.edit_cell
        
        self.parentApp.getForm("InfoUserPage").pesel.value = self.vals[cell_edit[0]][0]
        self.parentApp.getForm("InfoUserPage").login.value = self.vals[cell_edit[0]][1]
        #self.parentApp.getForm("InfoUserPage").passwd.value = self.vals[cell_edit[0]][2]
        #self.parentApp.getForm("InfoUserPage").passwd2.value = self.vals[cell_edit[0]][2]
        self.parentApp.getForm("InfoUserPage").name.value = self.vals[cell_edit[0]][5]
        self.parentApp.getForm("InfoUserPage").surname.value = self.vals[cell_edit[0]][6]

        adm = False
        if self.vals[cell_edit[0]][3] == 'True' or self.vals[cell_edit[0]][3] == 1:
            adm = True
        self.parentApp.getForm("InfoUserPage").admin.value = adm
        self.parentApp.getForm("InfoUserPage").mail.value = self.vals[cell_edit[0]][4]
    
        self.parentApp.switchForm("InfoUserPage")
    
    def books_user(self, input):
        Data.ID = self.vals[self.grid.edit_cell[0]][0]
        self.parentApp.switchForm("ShowUsersBooksPage")
    
    def parseData(self, vals):
        data = []
        for i in vals:
            a = [i[0], i[5], i[6]]
            data.append(a)

        return data    

    def getData(self):
        # I have to have self.vals because I use all info about user :/ 
        self.vals = self.db.getAllUsers()
        self.grid.values = self.parseData(self.vals)

    def on_search(self, input):
        self.vals = self.db.userSearch(self.search.value)
        self.grid.values = self.parseData(self.vals)
        self.grid.update()
Esempio n. 12
0
 def __init__(self):
     self.DataBase = DataBaseAccess('ItemsDB.db')
     self.itemsYouNeed = {}
     self.askUserForLevels()
Esempio n. 13
0
class AddBookPage(npyscreen.ActionForm):
    def create(self):
        self.__class__.OK_BUTTON_TEXT = "Add"

        self.db = DataBaseAccess()

        self.ISBNF = self.add(npyscreen.TitleText,
                              relx=RELX,
                              rely=RELY,
                              name="Signature: ")
        self.titleF = self.add(npyscreen.TitleText,
                               relx=RELX,
                               rely=RELY + 2,
                               name="Title: ")
        self.authorF = self.add(npyscreen.TitleText,
                                relx=RELX,
                                rely=RELY + 4,
                                name="Author: ")
        self.yearF = self.add(npyscreen.TitleText,
                              relx=RELX,
                              rely=RELY + 6,
                              name="Year: ")

        self.commit = self.add(npyscreen.ButtonPress,
                               relx=RELX,
                               rely=RELY + 8,
                               name="Add")
        self.commit.whenPressed = self.on_commit_pressed

    def on_commit_pressed(self):
        self.getVals()
        if self.valid():
            return

    def getVals(self):
        self.ISBN = self.ISBNF.value
        self.title = self.titleF.value
        self.author = self.authorF.value
        self.year = self.yearF.value

    def valid(self):

        if self.ISBN == "" or self.title == "" or self.author == "" or self.year == "":
            self.notify_error()
            return False

        try:
            int(self.year)
        except:
            self.notify_error()
            return False

        if self.db.add_book(self.ISBN, self.title, self.author, self.year):
            self.on_cancel()
            return

        self.notify_error()

    def notify_error(self):
        npyscreen.notify_confirm(message="Cannot add book!", title="Error")

    def on_cancel(self):
        self.parentApp.switchFormPrevious()

    def on_ok(self):
        self.on_commit_pressed()
Esempio n. 14
0
    def create(self):
        self.add(npyscreen.TitleText, name="ctr + h - pomoc", editable=False)
        #self.add(npyscreen.TitleText, name = "ctr + s - wyszukaj, s - przejdz do szukania", editable = False)
        self.__class__.OK_BUTTON_TEXT = "Exit"
        self.__class__.CANCEL_BUTTON_TEXT = "Confirm"
        d = Data()
        self.cost = d.COST
        # some common stuff
        self.db = DataBaseAccess()
        self.RELY = self.get_half_way()

        # first part
        self.searchUser = self.search = self.add(npyscreen.TitleText,
                                                 name="Search: ",
                                                 labelColor="STANDOUT")
        self.gridUser = self.add(npyscreen.GridColTitles,
                                 rely=6,
                                 slow_scroll=True,
                                 always_show_cursor=True,
                                 max_height=self.get_half_way() - 6,
                                 select_whole_line=True,
                                 col_titles=['PESEL', 'Name', 'Surname'])
        self.gridUser.default_column_number = 3

        # second part
        self.searchBook = self.add(npyscreen.TitleText,
                                   rely=self.RELY + 1,
                                   name="Search: ",
                                   labelColor="STANDOUT")
        self.gridBook = self.add(
            npyscreen.GridColTitles,
            rely=self.RELY + 3,
            slow_scroll=True,
            always_show_cursor=True,
            select_whole_line=True,
            exit_left=False,
            col_titles=['Signature', 'Title', 'Author', "Year"])
        self.gridBook.default_column_number = 4

        # handlers
        self.add_handlers({
            "^B": self.borrow_book,
            "^R": self.recive_book,
            "^Z": self.on_back,
            "^H": self.show_help,
        })

        self.gridUser.add_handlers({
            ord("s"): self.gridUser.h_exit_up,
            ord("S"): self.gridUser.h_exit_up,
            ord("b"): self.on_enterUserBorrow,
            ord("B"): self.on_enterUserBorrow,
            ord("r"): self.on_enterUserRecive,
            ord("R"): self.on_enterUserRecive,
            "^S": self.on_searchUser,
        })

        self.gridBook.add_handlers({
            ord("s"): self.gridBook.h_exit_up,
            ord("S"): self.gridBook.h_exit_up,
            ord("b"): self.borrow_book,
            ord("B"): self.borrow_book,
            ord("r"): self.recive_book,
            ord("R"): self.recive_book,
            "^S": self.on_searchBook,
            "^B": self.borrow_book,
        })

        self.searchUser.add_handlers({
            curses.KEY_ENTER: self.on_searchUser,
            "^S": self.on_searchUser,
            "^H": self.show_help,
        })

        self.searchBook.add_handlers({
            curses.KEY_ENTER: self.on_searchBook,
            "^S": self.on_searchBook,
            "^H": self.show_help,
        })

        self.setDefaultData()
        self.gridBook.editable = False
Esempio n. 15
0
class BorrowBookPage(npyscreen.ActionForm, npyscreen.SplitForm):
    def create(self):
        self.add(npyscreen.TitleText, name="ctr + h - pomoc", editable=False)
        #self.add(npyscreen.TitleText, name = "ctr + s - wyszukaj, s - przejdz do szukania", editable = False)
        self.__class__.OK_BUTTON_TEXT = "Exit"
        self.__class__.CANCEL_BUTTON_TEXT = "Confirm"
        d = Data()
        self.cost = d.COST
        # some common stuff
        self.db = DataBaseAccess()
        self.RELY = self.get_half_way()

        # first part
        self.searchUser = self.search = self.add(npyscreen.TitleText,
                                                 name="Search: ",
                                                 labelColor="STANDOUT")
        self.gridUser = self.add(npyscreen.GridColTitles,
                                 rely=6,
                                 slow_scroll=True,
                                 always_show_cursor=True,
                                 max_height=self.get_half_way() - 6,
                                 select_whole_line=True,
                                 col_titles=['PESEL', 'Name', 'Surname'])
        self.gridUser.default_column_number = 3

        # second part
        self.searchBook = self.add(npyscreen.TitleText,
                                   rely=self.RELY + 1,
                                   name="Search: ",
                                   labelColor="STANDOUT")
        self.gridBook = self.add(
            npyscreen.GridColTitles,
            rely=self.RELY + 3,
            slow_scroll=True,
            always_show_cursor=True,
            select_whole_line=True,
            exit_left=False,
            col_titles=['Signature', 'Title', 'Author', "Year"])
        self.gridBook.default_column_number = 4

        # handlers
        self.add_handlers({
            "^B": self.borrow_book,
            "^R": self.recive_book,
            "^Z": self.on_back,
            "^H": self.show_help,
        })

        self.gridUser.add_handlers({
            ord("s"): self.gridUser.h_exit_up,
            ord("S"): self.gridUser.h_exit_up,
            ord("b"): self.on_enterUserBorrow,
            ord("B"): self.on_enterUserBorrow,
            ord("r"): self.on_enterUserRecive,
            ord("R"): self.on_enterUserRecive,
            "^S": self.on_searchUser,
        })

        self.gridBook.add_handlers({
            ord("s"): self.gridBook.h_exit_up,
            ord("S"): self.gridBook.h_exit_up,
            ord("b"): self.borrow_book,
            ord("B"): self.borrow_book,
            ord("r"): self.recive_book,
            ord("R"): self.recive_book,
            "^S": self.on_searchBook,
            "^B": self.borrow_book,
        })

        self.searchUser.add_handlers({
            curses.KEY_ENTER: self.on_searchUser,
            "^S": self.on_searchUser,
            "^H": self.show_help,
        })

        self.searchBook.add_handlers({
            curses.KEY_ENTER: self.on_searchBook,
            "^S": self.on_searchBook,
            "^H": self.show_help,
        })

        self.setDefaultData()
        self.gridBook.editable = False

    # init values
    def setDefaultData(self):
        self.gridBook.values = self.db.getBooksSearch("")
        self.gridUser.values = self.parseData(self.db.getAllUsers())
        self.gridBook.editable = False

    def setInitPos(self):
        self.gridBook.edit_cell = [0, 0]
        self.gridUser.update()

        self.gridUser.edit_cell = [0, 0]
        self.gridUser.update()

        # I know that it is stupid...
        self.gridBook.h_exit_up("")
        self.searchBook.h_exit_up("")
        self.set_editing(self.gridUser)
        self.display()
        self.gridUser.h_exit_up("")

    def parseData(self, vals):
        data = []
        for i in vals:
            a = [i[0], i[5], i[6]]
            data.append(a)

        return data

    def on_cancel(self):
        self.setDefaultData()
        self.setInitPos()
        self.searchUser.value = ""
        self.searchBook.value = ""

    def on_ok(self):
        self.parentApp.switchForm("AdminMainPage")

    def get_half_way(self):
        return 19

    def on_searchUser(self, input):
        self.gridUser.values = self.parseData(
            self.db.userSearch(self.searchUser.value))
        self.gridUser.update()

        #self.searchUser.h_exit_down("")
        #self.searchUser.update()
        #self.set_editing(self.gridUser)
        #self.display()

        #self.searchUser.editale = True
        #self.gridUser.h_exit_down("")
        #self.searchUser.h_exit_down("")
        #self.gridUser.h_exit_down("")

    def on_searchBook(self, input):
        self.cell = self.gridUser.values[0]

        self.gridBook.values = self.db.getUserBooksSearch(
            self.searchBook.value, self.cell[0])
        self.gridBook.update()

    def on_enterUserRecive(self, input):
        self.cell = self.gridUser.values[self.gridUser.edit_cell[0]]

        self.gridUser.values = [self.cell]
        self.gridBook.values = self.db.getUsersBooksToDisplay(self.cell[0])

        self.gridUser.update()
        self.gridBook.update()

        self.gridUser.h_exit_down("")
        self.gridBook.editable = True

    def on_enterUserBorrow(self, input):
        # wybiera uzytkownika i potem przechodzi do ksiaze
        self.cell = self.gridUser.values[self.gridUser.edit_cell[0]]
        self.gridUser.h_exit_down("")

        self.gridBook.values = self.db.get_free_books()
        self.gridBook.editable = True

    def borrow_book(self, input):
        self.book = self.gridBook.values[self.gridBook.edit_cell[0]]
        if not self.db.borrowBook(self.cell[0], self.book[0],
                                  str(datetime.date.today())):
            npyscreen.notify_confirm(message="Cannot borrow book!",
                                     title="Error!")
            return

        self.setDefaultData()
        self.setInitPos()

        npyscreen.notify_confirm(message="Success!", title="Message")

    def recive_book(self, input):
        ISBN = self.gridBook.values[self.gridBook.edit_cell[0]][0]
        data = self.db.returnBook(self.gridUser.values[0][0], ISBN)

        data = datetime.datetime.strptime(data[0][0].replace("-", ""),
                                          "%Y%m%d").date()
        td = datetime.date.today() - data
        open("DATA.txt", "a").write(str(td.days))
        if (td.days - 31) > 0:
            npyscreen.notify_confirm(message="Musisz zaplacic %f" %
                                     ((float(td.days) - 31.0) * self.cost),
                                     title="Timeout")
        else:
            npyscreen.notify_confirm(message="Success", title="Success")

        self.setDefaultData()
        self.setInitPos()

    def on_back(self, input):
        self.on_cancel()

    def show_help(self, input):
        npyscreen.notify_confirm(
            title="Help",
            message=
            "r - wybierz uzytkownika do oddania, \nb - wybierz uzytkownika do wypozyczenia, \nctr + r - oddaj, \nctr + b - wypozycz\nctr + s - szukaj\ns - przejdz do szukania"
        )
Esempio n. 16
0
 def __init__(self):
     self.db = DataBaseAccess()