All checks were successful
Chore App Build, Test, and Push Docker Images / build-and-push (push) Successful in 2m45s
- Implemented TimeSelector component for selecting time with AM/PM toggle and minute/hour increment/decrement functionality. - Created ScheduleModal component for scheduling chores with options for specific days or intervals. - Added utility functions for scheduling logic in scheduleUtils.ts. - Developed comprehensive tests for TimeSelector and scheduleUtils functions to ensure correct behavior.
40 lines
1.3 KiB
Python
40 lines
1.3 KiB
Python
from db.db import chore_schedules_db
|
|
from models.chore_schedule import ChoreSchedule
|
|
from tinydb import Query
|
|
|
|
|
|
def get_schedule(child_id: str, task_id: str) -> ChoreSchedule | None:
|
|
q = Query()
|
|
result = chore_schedules_db.search((q.child_id == child_id) & (q.task_id == task_id))
|
|
if not result:
|
|
return None
|
|
return ChoreSchedule.from_dict(result[0])
|
|
|
|
|
|
def upsert_schedule(schedule: ChoreSchedule) -> None:
|
|
q = Query()
|
|
existing = chore_schedules_db.get((q.child_id == schedule.child_id) & (q.task_id == schedule.task_id))
|
|
if existing:
|
|
chore_schedules_db.update(schedule.to_dict(), (q.child_id == schedule.child_id) & (q.task_id == schedule.task_id))
|
|
else:
|
|
chore_schedules_db.insert(schedule.to_dict())
|
|
|
|
|
|
def delete_schedule(child_id: str, task_id: str) -> bool:
|
|
q = Query()
|
|
existing = chore_schedules_db.get((q.child_id == child_id) & (q.task_id == task_id))
|
|
if not existing:
|
|
return False
|
|
chore_schedules_db.remove((q.child_id == child_id) & (q.task_id == task_id))
|
|
return True
|
|
|
|
|
|
def delete_schedules_for_child(child_id: str) -> None:
|
|
q = Query()
|
|
chore_schedules_db.remove(q.child_id == child_id)
|
|
|
|
|
|
def delete_schedules_for_task(task_id: str) -> None:
|
|
q = Query()
|
|
chore_schedules_db.remove(q.task_id == task_id)
|