Case 2

 avatar
unknown
python
3 years ago
3.7 kB
5
Indexable
import os
import json


todo = []


def clear():
    if os.name == 'nt':
        os.system('cls')
    elif os.name == 'posix':
        os.system('clear')


def menu():
    print('*****************************')
    print('         Todoify             ')
    print('-----------------------------')
    print('list   | List todos          ')
    print('add    | Add todo            ')
    print('check  | Check todo          ')
    print('delete | Delete todo         ')
    print('-----------------------------')
    print('save   | Save todos to file  ')
    print('load   | Load todos from file')
    print('-----------------------------')


def add():
    print('-----------------------------')
    itemToAdd = input('Todo description > ')
    todo.append(['[ ]',itemToAdd])
    print('-----------------------------')
    print('\nSUCCESS: Todo added\n')


def list_todo():
    print('-----------------------------')
    for item in todo:
        print (item[0], item[1])


def check():
    print('-----------------------------')
    for index, item in enumerate(todo):
        print (index, '|', item[0], item[1])
    print('-----------------------------')
    indexOfItemToCheck = input('Todo index > ')
    try:
        indexOfItemToCheck = int(indexOfItemToCheck)

        if todo[indexOfItemToCheck][0] == '[X]':
            todo[indexOfItemToCheck][0] = '[ ]'
            print('-----------------------------')
            print('\nSUCCESS: CHECKED -> UNCHECKED\n')
        elif todo[indexOfItemToCheck][0] == '[ ]':
            todo[indexOfItemToCheck][0] = '[X]'
            print('-----------------------------')
            print('\nSUCCESS: UNCHECKED -> CHECKED\n')

    except IndexError:
        print('-----------------------------')
        print('\nERROR: ', indexOfItemToCheck, ' is not a valid index\n')
    except ValueError:
        print('-----------------------------')
        print('\nERROR: ', indexOfItemToCheck, ' is not a valid integer\n')


def delete():
    print('-----------------------------')
    for index, item in enumerate(todo):
        print (index,' | ', item[0], item[1])

    print('-----------------------------')
    indexOfItemToDelete = input('Todo index > ')
    try:
        indexOfItemToDelete = int(indexOfItemToDelete)
        del todo[indexOfItemToDelete]

        print('-----------------------------')
        print('\nSUCCESS: Todo deleted\n')
    except IndexError:
        print('-----------------------------')
        print('\nERROR: ',indexOfItemToDelete, ' is not a valid index\n')
    except ValueError:
        print('-----------------------------')
        print('\nERROR: ',indexOfItemToDelete, ' is not a valid integer\n')


def saveToFileAsJson():
    print('-----------------------------')
    file = open('case2fil.json','w')
    list_json = json.dumps(todo)
    file.write(list_json)
    file.close()
    print('\nSUCCESS: Todos saved to file\n')


def loadFromJsonFile():
    print('-----------------------------')
    filejson = open('case2fil.json')
    todo = json.loads(filejson.read())
    filejson.close()
    print('\nSUCCESS: Todos loaded from file\n')


while True:
    clear()
    menu()
    selection = input('Selection > ').lower()
    if selection == 'list':
        list_todo()
    elif selection == 'add':
        add()
    elif selection == 'check':
        check()
    elif selection == 'delete':
        delete()
    elif selection == 'save':
        saveToFileAsJson()
    elif selection == 'load':
        loadFromJsonFile()

    else:
        print('-----------------------------')
        print('\nERROR: Unknown command', '(' + selection + ')\n')

    print('-----------------------------')
    input('Press enter to continue...')
Editor is loading...