diff --git a/sl/SL_Menu.py b/sl/SL_Menu.py index 3ca366a..89cf9aa 100644 --- a/sl/SL_Menu.py +++ b/sl/SL_Menu.py @@ -203,6 +203,7 @@ def render_icon_button_css(): if 'tracker' not in st.session_state: st.session_state.tracker = TimeTracker() st.session_state.tracker.initialize_dependencies() + st.session_state.tracker.set_today_flag_for_due_tasks() # Set 'today' flag for tasks due today if 'menu' not in st.session_state: st.session_state.menu = 'main' diff --git a/tt/TimeTracker.py b/tt/TimeTracker.py index 2f18e1b..03bac4a 100644 --- a/tt/TimeTracker.py +++ b/tt/TimeTracker.py @@ -544,6 +544,28 @@ def cleanup_overdue_today_tasks(self): self._save_data() return changed + def set_today_flag_for_due_tasks(self): + """ + Sets the 'today' flag (⭐) for tasks that have today's date as their due date + and are not yet marked as 'today'. + + :return: True if any task was updated and saved. + :rtype: bool + """ + today_str = date.today().isoformat() + changed = False + for project in self.data.get("projects", []): + for task in project.get("tasks", []): + # Only consider open tasks + if task.get('status') == self.STATUS_OPEN: + # If due date is today and 'today' flag is not set + if task.get('due_date') == today_str and not task.get('today'): + task['today'] = True + changed = True + if changed: + self._save_data() + return changed + def delete_task(self, main_project_name, task_name, task_id=None): """ Deletes a task from a main project.