Sync crontab after adding or editing a schedule

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
shuki
2026-03-06 04:47:16 +02:00
parent 07bc23a7a1
commit fa891bbf7b

View File

@@ -53,12 +53,12 @@ class ScheduleScreen(Screen):
self.app.pop_screen() self.app.pop_screen()
elif event.button.id == "btn-add": elif event.button.id == "btn-add":
from tui.screens.schedule_edit import ScheduleEditScreen 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": elif event.button.id == "btn-edit":
name = self._selected_schedule() name = self._selected_schedule()
if name: if name:
from tui.screens.schedule_edit import ScheduleEditScreen 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: else:
self.notify("Select a schedule first", severity="warning") self.notify("Select a schedule first", severity="warning")
elif event.button.id == "btn-delete": elif event.button.id == "btn-delete":
@@ -79,6 +79,11 @@ class ScheduleScreen(Screen):
elif event.button.id == "btn-show": elif event.button.id == "btn-show":
self._show_crontab() 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: def _toggle_active(self, name: str) -> None:
conf = CONFIG_DIR / "schedules.d" / f"{name}.conf" conf = CONFIG_DIR / "schedules.d" / f"{name}.conf"
data = parse_conf(conf) data = parse_conf(conf)