From: Christian Heller Date: Sun, 9 Jun 2024 05:23:52 +0000 (+0200) Subject: Fix inability of updating Todo if .is_done but no more doable. X-Git-Url: https://plomlompom.com/repos/%7B%7Bdb.prefix%7D%7D/static/git-favicon.png?a=commitdiff_plain;h=4691a05e64acb2239f9d449b36f4ff5c678a1d6c;p=plomtask Fix inability of updating Todo if .is_done but no more doable. --- diff --git a/plomtask/http.py b/plomtask/http.py index 4430016..44c710b 100644 --- a/plomtask/http.py +++ b/plomtask/http.py @@ -144,7 +144,7 @@ class TaskHandler(BaseHTTPRequestHandler): """Show single Day of ?date=.""" date = self.params.get_str('date', date_in_n_days(0)) todays_todos = Todo.by_date(self.conn, date) - total_effort = 0 + total_effort = 0.0 for todo in todays_todos: total_effort += todo.performed_effort conditions_present = [] @@ -389,7 +389,8 @@ class TaskHandler(BaseHTTPRequestHandler): todo.set_blockers(self.conn, self.form_data.get_all_int('blocker')) todo.set_enables(self.conn, self.form_data.get_all_int('enables')) todo.set_disables(self.conn, self.form_data.get_all_int('disables')) - todo.is_done = len(self.form_data.get_all_str('done')) > 0 + if len(self.form_data.get_all_str('done')) > 0 != todo.is_done: + todo.is_done = len(self.form_data.get_all_str('done')) > 0 todo.calendarize = len(self.form_data.get_all_str('calendarize')) > 0 todo.comment = self.form_data.get_str('comment', ignore_strict=True) todo.save(self.conn) diff --git a/plomtask/todos.py b/plomtask/todos.py index af45f72..0125b97 100644 --- a/plomtask/todos.py +++ b/plomtask/todos.py @@ -258,7 +258,7 @@ class Todo(BaseModel[int], ConditionsRelations): """Return sum of performed efforts of self and all descendants.""" def walk_tree(node: Todo) -> float: - local_effort = 0 + local_effort = 0.0 for child in node.children: local_effort += walk_tree(child) return node.performed_effort + local_effort