/
fenixcyc
/
Bot_Tasks_Manager
Обзор
Документация
Войти
/
fenixcyc
/
Bot_Tasks_Manager
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
task_manager.py
93 строки
3 KB
Wasa
first commit
15 фев 2025, 07:49
15 фев 2025, 07:49
9e1271d
Код
Авторство
О чём код?
from models import TaskManager from typing import Optional, Tuple def print_menu(): print("\n=== Менеджер задач ===") print("1. Добавить задачу") print("2. Показать все задачи") print("3. Отметить задачу как выполненную") print("4. Удалить задачу") print("0. Выход") print("==================") def print_tasks(task_manager): tasks_by_date = task_manager.get_all_tasks() if not tasks_by_date: print("\nСписок задач пуст") return False print("\nСписок задач по датам:") # Сортируем даты для вывода в хронологическом порядке for date in sorted(tasks_by_date.keys()): print(f"\nДата: {date}") for i, task in enumerate(tasks_by_date[date]): print(f"{i + 1}. {task}") return True def select_task(task_manager) -> Tuple[Optional[str], Optional[int]]: """Запрашивает у пользователя дату и номер задачи""" tasks_by_date = task_manager.get_all_tasks() if not print_tasks(task_manager): return None, None try: date = input("\nВведите дату задачи (ДД.ММ.ГГГГ): ") if date not in tasks_by_date: print("Задачи на указанную дату не найдены") return None, None task_num = int(input(f"Введите номер задачи (1-{len(tasks_by_date[date])}): ")) - 1 if not (0 <= task_num < len(tasks_by_date[date])): print("Неверный номер задачи") return None, None return date, task_num except ValueError: print("Ошибка ввода") return None, None def main(): task_manager = TaskManager() while True: print_menu() try: choice = input("Выберите действие (0-4): ") if choice == "0": print("До свидания!") break elif choice == "1": date = input("Введите дату (ДД.ММ.ГГГГ): ") description = input("Введите описание задачи: ") success, message = task_manager.add_task(date, description) print(message) elif choice == "2": print_tasks(task_manager) elif choice == "3": date, task_num = select_task(task_manager) if date is not None and task_num is not None: success, message = task_manager.toggle_task(date, task_num) print(message) elif choice == "4": date, task_num = select_task(task_manager) if date is not None and task_num is not None: success, message = task_manager.remove_task(date, task_num) print(message) else: print("Неверный выбор. Попробуйте снова.") except ValueError as e: print("Ошибка ввода. Попробуйте снова.") except Exception as e: print(f"Произошла ошибка: {str(e)}") if __name__ == "__main__": main()