Exemplo n.º 1
0
def search_menu():
    """Opens menu with different options for searching entries"""
    display.clear_screen()
    message = "What would you like to search by?"
    while True:
        print(display.blue_row("=" * 36))
        print(message)
        print("\na) By Employee"
              "\nb) By Date"
              "\nc) By Time Spent"
              "\nd) By Keyword"
              "\ne) Return to Menu\n")
        search_task = input("> ")
        if search_task.lower() == 'a':
            search_employee()
        elif search_task.lower() == 'b':
            search_date()
        elif search_task.lower() == 'c':
            search_time()
        elif search_task.lower() == 'd':
            search_exact()
        elif search_task.lower() == 'e':
            display.clear_screen()
            return None
        else:
            print(display.red_err("That was not an option"))
Exemplo n.º 2
0
def search_exact():
    """Search database by an exact keyword"""
    search = input("Please select desired keyword: ")
    entries = Entry.select()

    results = []
    for entry in entries:
        if search.lower() in entry.task.lower():
            result = entry
            results.append(entry)
        elif search.lower() in entry.note.lower():
            result = entry
            results.append(entry)
        elif search.lower() != entry.task.lower() and results == []:
            result = None
        elif search.lower() != entry.note.lower() and results == []:
            result = None

    if result:
        print_entries(results)
    else:
        print(
            display.red_err("\nSorry, no keyword found. Please try again.\n"))

    return None
Exemplo n.º 3
0
def list_search(entries):
    """Takes list of entries and compares against """
    action = input("\n(Enter 'Q' anytime to QUIT)"
                   "\nType Employee Name AND Date from "
                   "list separated by a space: ")
    results = []
    for entry in entries:
        if action.upper() == 'Q':
            display.clear_screen()
            return None

        elif action == str(entry.user) + " " + str(entry.date)[:-9]:
            results.append(entry)
            result = entry
            display.clear_screen()
            print("Your search: {}".format(action))
            print_entries(results)
        elif action != str(entry.user) + " " + str(entry.date)[:-9]\
                and results == []:
            result = entry

    if not result:
        print(
            display.red_err("Please select entry from list by typing "
                            "name and date separated by a space."))
def start_menu():
    """Opens menu with user options"""
    active_entry = True
    display.clear_screen()
    while active_entry:
        welcome()
        print("\na) Add New Entry"
              "\nb) Search Existing Entry"
              "\nc) Quit Program\n")
        task = input("> ")
        if task.lower() == 'a':
            display.clear_screen()
            entries = {
                'user': entry_functions.entry_user(),
                'task': entry_functions.entry_task(),
                'date': entry_functions.entry_date(),
                'time': entry_functions.entry_time(),
                'note': entry_functions.entry_note(),
            }
            Entry.create(**entries)
        elif task.lower() == 'b':
            display.clear_screen()
            search_functions.search_menu()
        elif task.lower() == 'c':
            display.clear_screen()
            print("\n" + display.blue_row("*" * 7) +
                  " Thanks for using the work log! " +
                  display.blue_row("*" * 7) + "\n")
            active_entry = False
        else:
            display.clear_screen()
            print(display.red_err("\nThat was not an option"))
Exemplo n.º 5
0
def entry_task():
    """Continuous prompt, returns a task name and rejects empty string"""
    while True:
        task_name = input("What is the title of the task? ")
        if task_name == '':
            print(display.red_err("Please try again with a task name"))
        else:
            return task_name
Exemplo n.º 6
0
def entry_user():
    """Continuous prompt, returns user name and rejects empty string"""
    print("Hello, valued employee.")
    while True:
        username = input("What is your name? ")
        if username == '':
            print(display.red_err("Please try again."))
        else:
            return username
 def setUp(self):
     self.entry = work_log.Entry()
     self.clear_work = display.clear_screen()
     self.welcome = work_log.welcome()
     self.initialize = work_log.initialize()
     self.print_entry = search_functions.print_entry(self.entry)
     self.print_entries = search_functions.print_entries([self.entry])
     self.dates = entry_functions.get_datetime(str(self.entry.date)[:-16])
     self.red = display.red_err("Test")
     self.blue = display.blue_row("Test")
Exemplo n.º 8
0
def entry_time():
    """Continuous prompt, returns a time and rejects non-integer"""
    while True:
        try:
            time = abs(int(input("How many minutes did the task take? ")))
            return time
        except ValueError:
            print(
                display.red_err("Please try again using an integer to "
                                "represent minutes spent on task."))
Exemplo n.º 9
0
def entry_date():
    """Continuous prompt, returns datetime and rejects non-datetime object"""
    fmt = '%Y-%m-%d'
    while True:
        try:
            date = input("What date was the task completed? Please use "
                         "YYYY-MM-DD format. ")
            return datetime.datetime.strptime(date, fmt)
        except ValueError:
            print(display.red_err("Please try again using proper format"))
Exemplo n.º 10
0
def search_employee():
    """Search database by employee name"""
    search = input("Please type desired employee: ")
    entries = Entry.select()

    results = []
    for entry in entries:
        if search == entry.user:
            result = entry
            results.append(entry)
        elif search != entry.user and results == []:
            result = None

    if result:
        list_entries(results)
    else:
        print(display.red_err("\nSorry, no match found. Please try again.\n"))

    return None
Exemplo n.º 11
0
def search_time():
    """Search database by time in minutes"""
    search = input("Please select task time in minutes: ")
    entries = Entry.select()

    results = []
    for entry in entries:
        if str(search) == str(entry.time):
            result = entry
            results.append(entry)
        elif search != entry.time and results == []:
            result = None

    if result:
        print_entries(results)
    else:
        print(display.red_err("\nSorry, no match found. Please try again.\n"))

    return None
Exemplo n.º 12
0
def search_date():
    """Search database by date"""
    search = input("\nPlease select desired date using YYYY-MM-DD format: ")
    search = (search + ' 00:00:00')
    entries = Entry.select()
    results = []

    for entry in entries:
        if str(search) == str(entry.date):
            result = entry
            results.append(entry)
        elif search != entry.date and results == []:
            result = None

    if result:
        list_entries(results)
    else:
        print(display.red_err("\nSorry, date not found. Please try again."))

    return None
 def test_red(self):
     self.assertEqual(self.red, display.red_err("Test"))