Exemple #1
0
    def handleSingleSelectTable(screen,
                                title,
                                dataList,
                                filterRegex,
                                choice=0,
                                caption=""):
        itemSelected = False
        while True:
            UI.clearScreen(screen)

            filteredTable = Tables.filterTable(dataList, filterRegex)

            if (choice == 0):  # Filter row
                UI.printTable(screen, title, filteredTable, 0, curses.LINES,
                              filterRegex)
                screen.addstr(caption)
                choice, filterRegex = Tables.handleFilterField(
                    screen, filterRegex, choice, filteredTable)

            elif (choice > 0 and choice <= len(filteredTable)):  # Item rows
                UI.printTable(screen, title, filteredTable, 0, 0, filterRegex,
                              [choice - 1], choice - 1)
                screen.addstr(caption)
                choice, itemSelected = Tables.handleItemRows(
                    screen, choice, filteredTable)
                if (itemSelected):
                    return filteredTable[choice - 1]

            if choice == -1:
                break

        return None
Exemple #2
0
def exitApp(screen):
    UI.clearScreen(screen)
    state.saveObjects(screen)
    curses.nocbreak()
    screen.keypad(False)
    curses.echo()
    deinitializeScreen()
    exit()
Exemple #3
0
    def addNewDrink(screen, name="", drink_type="", recipe=None):
        UI.clearScreen(screen)

        curses.nocbreak()
        screen.keypad(False)
        curses.echo()

        if not name:
            name = UI.cursedInput("Enter name of drink: ")
        if not drink_type:
            drink_type = UI.cursedInput("Enter type of drink: ")
        if not recipe:
            recipe = UI.cursedInput("Enter recipe of drink (keep it short):")
        _drinks.append(Drink(name, drink_type, recipe))

        curses.cbreak()
        screen.keypad(True)
        curses.noecho()
Exemple #4
0
 def addNewPerson(screen, name="", team="", favDrink=None, PMUDrink="N/A"):
     UI.clearScreen(screen)
     curses.nocbreak()
     screen.keypad(False)
     curses.echo()
     if not name:
         name = UI.cursedInput(screen, "Enter name of person: ")
     if not team:
         team = UI.cursedInput(screen, "Enter name of team person is in: ")
     if not favDrink:
         if State._drinks != []:
             favDrink = tables.handleSingleSelectTable(
                 screen, "Drinks", State._drinks, "", 0,
                 "Select this persons favorite drink")
         elif favDrink == None:
             UI.clearScreen(screen)
             screen.addstr("No drinks found. You can assign drink later...")
             screen.getch()
     State._people.append(Person(name, team, favDrink, PMUDrink))
Exemple #5
0
    def handleMultiSelectTable(screen, title, dataList, filterRegex, choice=0):
        itemSelected = False
        selectedItems = []
        while True:
            UI.clearScreen(screen)
            selectedItemIDs = []
            filteredTable = Tables.filterTable(dataList, filterRegex)
            for index, item in enumerate(filteredTable):
                if item in selectedItems:
                    selectedItemIDs.append(index)
            if (choice == 0):  # Filter row
                UI.printTable(screen, title, filteredTable, 0, curses.LINES,
                              filterRegex, selectedItemIDs, choice - 1,
                              curses.A_DIM, curses.A_NORMAL)
                choice, filterRegex = Tables.handleFilterField(
                    screen, filterRegex, choice, filteredTable)

            elif (choice > 0 and choice <= len(filteredTable)):  # Item rows
                UI.printTable(screen, title, filteredTable, 0, curses.LINES,
                              filterRegex, selectedItemIDs, choice - 1,
                              curses.A_DIM, curses.A_NORMAL, curses.A_REVERSE)
                choice, itemSelected = Tables.handleItemRows(
                    screen, choice, filteredTable)

                if (itemSelected):
                    if (filteredTable[choice - 1] in selectedItems):
                        selectedItems.remove(filteredTable[choice - 1])
                        selectedItemIDs.remove(choice - 1)
                    else:
                        selectedItems.append(filteredTable[choice - 1])
                        selectedItemIDs.append(choice - 1)
                    itemSelected = False

            if (choice == -1):
                break
        return selectedItems