From fa891bbf7b9cbe3ddeef27c53dcd17a1eb822775 Mon Sep 17 00:00:00 2001 From: shuki Date: Fri, 6 Mar 2026 04:47:16 +0200 Subject: [PATCH] Sync crontab after adding or editing a schedule Co-Authored-By: Claude Opus 4.6 --- tui/screens/schedule.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tui/screens/schedule.py b/tui/screens/schedule.py index 2026b0c..71d1fec 100644 --- a/tui/screens/schedule.py +++ b/tui/screens/schedule.py @@ -53,12 +53,12 @@ class ScheduleScreen(Screen): self.app.pop_screen() elif event.button.id == "btn-add": from tui.screens.schedule_edit import ScheduleEditScreen - self.app.push_screen(ScheduleEditScreen(), callback=lambda _: self._refresh_table()) + self.app.push_screen(ScheduleEditScreen(), callback=self._on_schedule_saved) elif event.button.id == "btn-edit": name = self._selected_schedule() if name: from tui.screens.schedule_edit import ScheduleEditScreen - self.app.push_screen(ScheduleEditScreen(name), callback=lambda _: self._refresh_table()) + self.app.push_screen(ScheduleEditScreen(name), callback=self._on_schedule_saved) else: self.notify("Select a schedule first", severity="warning") elif event.button.id == "btn-delete": @@ -79,6 +79,11 @@ class ScheduleScreen(Screen): elif event.button.id == "btn-show": self._show_crontab() + def _on_schedule_saved(self, result: str | None) -> None: + self._refresh_table() + if result is not None: + self._sync_crontab() + def _toggle_active(self, name: str) -> None: conf = CONFIG_DIR / "schedules.d" / f"{name}.conf" data = parse_conf(conf)