From fd36fa0fd754eb74987d3dd303a69a9ffedbf04e Mon Sep 17 00:00:00 2001 From: Hafiz Areeb Date: Wed, 31 Dec 2025 21:15:08 +0500 Subject: [PATCH] Feature: Implemented clear all command for change request #201 --- change-request.md | 40 ++++++++++++++++++++++++++++++++++++++++ smartlib/app_manager.py | 12 ++++++++++++ smartlib/controller.py | 3 +++ smartlib/db.py | 4 ++++ 4 files changed, 59 insertions(+) create mode 100644 change-request.md diff --git a/change-request.md b/change-request.md new file mode 100644 index 0000000..28acf28 --- /dev/null +++ b/change-request.md @@ -0,0 +1,40 @@ +\# Change Request #201 + + + +\## Title + +Add "clear all" command + + + +\## Requested By + +Hafiz Areeb + + + +\## Date Submitted + +31-12-2025 + + + +\## Description + +A new command `clear` that will delete all tasks from the database at once. + + + +\## Priority + +Medium + + + +\## Status + +Implemented + + + diff --git a/smartlib/app_manager.py b/smartlib/app_manager.py index 1e195d9..6c486d9 100644 --- a/smartlib/app_manager.py +++ b/smartlib/app_manager.py @@ -33,6 +33,8 @@ def main_menu(self): self.show_tasks(task_type='active') elif cmd == '3': self.show_tasks(task_type='completed') + elif cmd == '4': + self.clear_all_tasks() elif cmd == '0': break else: @@ -45,6 +47,16 @@ def add_task(self): self.view.show_message('Task added!') self.view.press_enter_to_continue() + def clear_all_tasks(self): + confirm_flag = self.view.confirm_action() + if confirm_flag: + self.controller.clear_all_tasks() + self.view.show_message('All tasks have been deleted.') + self.view.press_enter_to_continue() + else: + self.view.show_message('Action canceled!') + self.view.press_enter_to_continue() + def show_tasks(self, task_type): while True: if task_type == 'active': diff --git a/smartlib/controller.py b/smartlib/controller.py index 71ae94e..ab55723 100644 --- a/smartlib/controller.py +++ b/smartlib/controller.py @@ -19,6 +19,9 @@ def add_task(self, name): task = Task(name=name) self.task_database.add_task(task) + def clear_all_tasks(self): + self.repo.delete_all_tasks() + def update_task(self, task): return self.task_database.update_task(task) diff --git a/smartlib/db.py b/smartlib/db.py index 44a7b9a..1408681 100644 --- a/smartlib/db.py +++ b/smartlib/db.py @@ -35,6 +35,10 @@ def add_task(self, task): INSERT INTO tasks (id, name, completed) VALUES (?, ?, ?) ''', (task.id, task.name, task.completed)) + def clear_all_tasks(self): + self.session.query(self.Task).delete() + self.session.commit() + def get_completed_tasks(self): cursor = self.connection.cursor() cursor.execute('SELECT id, name, completed FROM tasks WHERE completed')