MCPcopy
hub / github.com/flet-dev/flet / TodoAppState

Class TodoAppState

sdk/python/examples/apps/studio_gallery/todo.py:28–64  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

26@ft.observable
27@dataclass
28class TodoAppState:
29 tasks: list[TaskItem] = field(default_factory=list)
30 statuses: list[str] = field(default_factory=lambda: ["all", "active", "completed"])
31 status: str = "all"
32
33 def get_tasks(self) -> list[TaskItem]:
34 return list(
35 filter(
36 lambda task: self.status == "all"
37 or self.status == "active"
38 and not task.completed
39 or self.status == "completed"
40 and task.completed,
41 self.tasks,
42 )
43 )
44
45 @property
46 def active_tasks_number(self) -> int:
47 return len([task for task in self.tasks if not task.completed])
48
49 def status_changed(self, e: ft.Event[ft.Tabs]):
50 self.status = self.statuses[e.control.selected_index]
51
52 def on_task_status_changed(self):
53 cast(ft.Observable, self).notify()
54
55 def add_task(self, new_task_event: str):
56 self.tasks.append(
57 TaskItem(new_task_event, on_status_changed=self.on_task_status_changed)
58 )
59
60 def delete_task(self, task: TaskItem):
61 self.tasks.remove(task)
62
63 def clear_completed(self):
64 self.tasks = list(filter(lambda task: not task.completed, self.tasks))
65
66
67@ft.component

Callers 1

AppFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected