add task ui
This commit is contained in:
@@ -9,6 +9,7 @@ from .calendar import calendar
|
||||
from .ticktick import ticktick
|
||||
from .godspeed import godspeed
|
||||
from .gitlab_monitor import gitlab_monitor
|
||||
from .tasks import tasks
|
||||
|
||||
|
||||
@click.group()
|
||||
@@ -24,6 +25,7 @@ cli.add_command(calendar)
|
||||
cli.add_command(ticktick)
|
||||
cli.add_command(godspeed)
|
||||
cli.add_command(gitlab_monitor)
|
||||
cli.add_command(tasks)
|
||||
|
||||
# Add 'mail' as an alias for email
|
||||
cli.add_command(email, name="mail")
|
||||
|
||||
@@ -298,6 +298,7 @@ class SyncDashboard(App):
|
||||
TaskListItem("calendar", "Calendar Sync", id="task-calendar"),
|
||||
# Stage 3: Task management
|
||||
TaskListItem("godspeed", "Godspeed Sync", id="task-godspeed"),
|
||||
TaskListItem("dstask", "dstask Sync", id="task-dstask"),
|
||||
TaskListItem("sweep", "Task Sweep", id="task-sweep"),
|
||||
id="task-list",
|
||||
)
|
||||
@@ -871,6 +872,14 @@ async def run_dashboard_sync(
|
||||
await asyncio.sleep(0.3)
|
||||
tracker.complete_task("godspeed", "42 tasks synced")
|
||||
|
||||
# dstask sync
|
||||
tracker.start_task("dstask", 100)
|
||||
tracker.update_task("dstask", 30, "Running dstask sync...")
|
||||
await asyncio.sleep(0.3)
|
||||
tracker.update_task("dstask", 70, "Pushing changes...")
|
||||
await asyncio.sleep(0.2)
|
||||
tracker.complete_task("dstask", "Sync completed")
|
||||
|
||||
# Task sweep
|
||||
tracker.start_task("sweep")
|
||||
tracker.update_task("sweep", 50, "Scanning notes directory...")
|
||||
@@ -1084,6 +1093,24 @@ async def run_dashboard_sync(
|
||||
else:
|
||||
tracker.skip_task("godspeed", "Not due yet (every 15 min)")
|
||||
|
||||
# dstask sync
|
||||
tracker.start_task("dstask", 100)
|
||||
try:
|
||||
from src.services.dstask.client import DstaskClient
|
||||
|
||||
dstask_client = DstaskClient()
|
||||
if dstask_client.is_available():
|
||||
tracker.update_task("dstask", 30, "Running dstask sync...")
|
||||
success = dstask_client.sync()
|
||||
if success:
|
||||
tracker.complete_task("dstask", "Sync completed")
|
||||
else:
|
||||
tracker.error_task("dstask", "Sync failed")
|
||||
else:
|
||||
tracker.skip_task("dstask", "dstask not installed")
|
||||
except Exception as e:
|
||||
tracker.error_task("dstask", str(e))
|
||||
|
||||
# Task sweep (runs once daily after 6 PM)
|
||||
tracker.start_task("sweep", 100)
|
||||
if should_run_sweep():
|
||||
@@ -1133,6 +1160,7 @@ async def run_dashboard_sync(
|
||||
"inbox",
|
||||
"calendar",
|
||||
"godspeed",
|
||||
"dstask",
|
||||
"sweep",
|
||||
]:
|
||||
if task_id in dashboard._task_items:
|
||||
|
||||
11
src/cli/tasks.py
Normal file
11
src/cli/tasks.py
Normal file
@@ -0,0 +1,11 @@
|
||||
"""CLI command for Tasks TUI."""
|
||||
|
||||
import click
|
||||
|
||||
|
||||
@click.command()
|
||||
def tasks():
|
||||
"""Launch the Tasks TUI for managing tasks via dstask."""
|
||||
from src.tasks import run_app
|
||||
|
||||
run_app()
|
||||
Reference in New Issue
Block a user