as toggl -> reclaim sync is based on today it was made tz local aware

This commit is contained in:
2024-06-20 00:20:25 +02:00
parent cda9543463
commit bd81fa8913
3 changed files with 9 additions and 4 deletions

View File

@@ -1,7 +1,7 @@
#!/opt/homebrew/Caskroom/miniconda/base/envs/things-automation/bin/python3 #!/opt/homebrew/Caskroom/miniconda/base/envs/things-automation/bin/python3
import sqlite3 import sqlite3
from datetime import datetime, timedelta from datetime import datetime
from pathlib import Path from pathlib import Path
from typing import Dict, List, Optional, Union from typing import Dict, List, Optional, Union
import tomllib import tomllib
@@ -334,6 +334,9 @@ def sync_toggl_reclaim_tracking():
since_days = 0 since_days = 0
reclaim_handler.get_reclaim_tasks() reclaim_handler.get_reclaim_tasks()
toggl_time_entries = toggl_handler.get_time_entries_since(since_days = since_days) # end date is inclusive toggl_time_entries = toggl_handler.get_time_entries_since(since_days = since_days) # end date is inclusive
if toggl_time_entries is None:
utils.pwarning("No tasks tracked today in Toggl")
return
reclaim_time_entries = reclaim_handler.get_task_events_since(since_days = since_days) # end date is inclusive reclaim_time_entries = reclaim_handler.get_task_events_since(since_days = since_days) # end date is inclusive
reclaim_time_entry_names = [reclaim_handler.get_clean_time_entry_name(time_entry.name) for time_entry in reclaim_time_entries] reclaim_time_entry_names = [reclaim_handler.get_clean_time_entry_name(time_entry.name) for time_entry in reclaim_time_entries]
missing_reclaim_entries = [time_entry for time_entry in toggl_time_entries if time_entry.description not in reclaim_time_entry_names] missing_reclaim_entries = [time_entry for time_entry in toggl_time_entries if time_entry.description not in reclaim_time_entry_names]
@@ -363,7 +366,9 @@ def display_current_task():
if current_task is None: if current_task is None:
utils.perror("No task is currently tracked in toggl") utils.perror("No task is currently tracked in toggl")
return return
rprint(f"Current task: {current_task.description}\nStarted at: {current_task.start.astimezone(tz.gettz()).strftime("%H:%M")}") rprint((f"Current task: {current_task.description}\nStarted at:",
f"{toggl_handler.get_start_time(current_task)
.astimezone(tz.gettz()).strftime("%H:%M")}"))
@app.command("sync") @app.command("sync")

View File

@@ -75,7 +75,7 @@ def is_task_time_entry(name: str):
def get_task_events_since(since_days: int = 0) -> List[ReclaimTaskEvent]: def get_task_events_since(since_days: int = 0) -> List[ReclaimTaskEvent]:
date_now = datetime.now(tz.tzutc()).date() date_now = datetime.now(tz.tzlocal()).date()
date_since = date_now - timedelta(days=since_days) date_since = date_now - timedelta(days=since_days)
date_end = date_now + timedelta(days = 1) # end date is exclusive date_end = date_now + timedelta(days = 1) # end date is exclusive
events = ReclaimTaskEvent.search(date_since, date_end) events = ReclaimTaskEvent.search(date_since, date_end)

View File

@@ -56,7 +56,7 @@ def get_time_entries_since(since_days: int = 30) -> List[toggl_python.TimeEntry]
""" """
if since_days > 90: if since_days > 90:
raise ValueError("since_days can't be more than 90 days") raise ValueError("since_days can't be more than 90 days")
midnight = datetime.combine(datetime.now(), time.min) midnight = datetime.combine(datetime.now(tz.tzlocal()), time.min)
time_stamp = int((midnight - timedelta(days=since_days)).timestamp()) time_stamp = int((midnight - timedelta(days=since_days)).timestamp())
return toggl_python.TimeEntries(auth=auth).list(since=time_stamp) return toggl_python.TimeEntries(auth=auth).list(since=time_stamp)