diff --git a/backend/app/routers/logs.py b/backend/app/routers/logs.py index 9b0bd9b..c4b1e76 100644 --- a/backend/app/routers/logs.py +++ b/backend/app/routers/logs.py @@ -22,6 +22,8 @@ router = APIRouter(prefix="/api/logs", tags=["logs"]) async def get_timeline( child_id: int | None = None, log_date: date | None = None, + date_from: date | None = None, + date_to: date | None = None, current_user: User = Depends(get_current_user), db: AsyncSession = Depends(get_db), ): @@ -44,6 +46,10 @@ async def get_timeline( query = query.where(DailySession.child_id == child_id) if log_date: query = query.where(DailySession.session_date == log_date) + if date_from: + query = query.where(DailySession.session_date >= date_from) + if date_to: + query = query.where(DailySession.session_date <= date_to) result = await db.execute(query) events = result.scalars().all() @@ -125,6 +131,8 @@ async def delete_timeline_event( async def get_strike_events( child_id: int | None = None, log_date: date | None = None, + date_from: date | None = None, + date_to: date | None = None, current_user: User = Depends(get_current_user), db: AsyncSession = Depends(get_db), ): @@ -139,6 +147,10 @@ async def get_strike_events( query = query.where(StrikeEvent.child_id == child_id) if log_date: query = query.where(func.date(StrikeEvent.occurred_at) == log_date) + if date_from: + query = query.where(func.date(StrikeEvent.occurred_at) >= date_from) + if date_to: + query = query.where(func.date(StrikeEvent.occurred_at) <= date_to) result = await db.execute(query) events = result.scalars().all() @@ -178,6 +190,8 @@ async def delete_strike_event( async def list_logs( child_id: int | None = None, log_date: date | None = None, + date_from: date | None = None, + date_to: date | None = None, current_user: User = Depends(get_current_user), db: AsyncSession = Depends(get_db), ): @@ -191,6 +205,10 @@ async def list_logs( query = query.where(ActivityLog.child_id == child_id) if log_date: query = query.where(ActivityLog.log_date == log_date) + if date_from: + query = query.where(ActivityLog.log_date >= date_from) + if date_to: + query = query.where(ActivityLog.log_date <= date_to) result = await db.execute(query) return result.scalars().all() diff --git a/frontend/src/views/LogView.vue b/frontend/src/views/LogView.vue index 84c1f3c..91a3891 100644 --- a/frontend/src/views/LogView.vue +++ b/frontend/src/views/LogView.vue @@ -4,7 +4,10 @@
@@ -120,6 +123,37 @@
No activity recorded yet.
+ + +
+
+

Export Activity Report

+
+
+ + +
+
+ + +
+
+ + +
+
+

{{ exportError }}

+
+ + +
+
+