4 Commits
Author SHA1 Message Date
brian 120c7ec309 Merge pull request 'Make recent activity cards dynamic' (#45) from make-recent-activity-last-sleep-dynamic into main
Python Code Quality / python-code-quality (push) Successful in 12s
Python Test / python-test (push) Successful in 21s
Build and Push Docker Image / build-and-push (push) Successful in 39s
Reviewed-on: https://gitea.lille-vemmelund.dk/brian/baby-monitor/pulls/45
2026-05-21 15:29:16 +02:00
Brian Bjarke Jensen 6c74358d8b changed formatting of recent activity cards
Build and Push Docker Image / build-and-push (pull_request) Successful in 3m23s
Python Code Quality / python-code-quality (pull_request) Successful in 13s
Python Test / python-test (pull_request) Successful in 20s
2026-05-21 15:20:42 +02:00
brian 993612a90f Merge pull request 'added support for setting start time of sleep entry' (#44) from fix(#43)--enable-editing-sleep-entries into main
Python Code Quality / python-code-quality (push) Successful in 12s
Python Test / python-test (push) Successful in 20s
Build and Push Docker Image / build-and-push (push) Successful in 41s
Refresh Showcase Data / refresh-data (push) Successful in 22s
Reviewed-on: #44
2026-03-29 20:29:28 +02:00
Brian Bjarke Jensen 0b06aefa03 added support for setting start time of sleep entry
Build and Push Docker Image / build-and-push (pull_request) Successful in 1m25s
Python Code Quality / python-code-quality (pull_request) Successful in 12s
Python Test / python-test (pull_request) Successful in 21s
2026-03-29 20:22:26 +02:00
5 changed files with 9 additions and 3 deletions
+1
View File
@@ -15,6 +15,7 @@ class CreateSleepRequest(BaseModel):
class UpdateSleepRequest(BaseModel): class UpdateSleepRequest(BaseModel):
"""Request model for updating a sleep log.""" """Request model for updating a sleep log."""
start_time: datetime | None = None
end_time: datetime | None = None end_time: datetime | None = None
@@ -32,6 +32,7 @@ class SleepRepositoryInterface(ABC):
def update( def update(
self, self,
sleep_id: int, sleep_id: int,
start_time: datetime | None = None,
end_time: datetime | None = None, end_time: datetime | None = None,
) -> dict | None: ) -> dict | None:
"""Update a sleep log entry.""" """Update a sleep log entry."""
@@ -73,6 +73,7 @@ class DatabaseSleepRepository(SleepRepositoryInterface):
def update( def update(
self, self,
sleep_id: int, sleep_id: int,
start_time: datetime | None = None,
end_time: datetime | None = None, end_time: datetime | None = None,
) -> dict | None: ) -> dict | None:
"""Update a sleep log entry.""" """Update a sleep log entry."""
@@ -80,6 +81,8 @@ class DatabaseSleepRepository(SleepRepositoryInterface):
if not sleep: if not sleep:
return None return None
if start_time is not None:
sleep.start_time = start_time # type: ignore[assignment]
if end_time is not None: if end_time is not None:
sleep.end_time = end_time # type: ignore[assignment] sleep.end_time = end_time # type: ignore[assignment]
+1
View File
@@ -112,6 +112,7 @@ def update_sleep(
updated = sleep_repo.update( updated = sleep_repo.update(
sleep_id=sleep_id, sleep_id=sleep_id,
start_time=request.start_time,
end_time=request.end_time, end_time=request.end_time,
) )
+3 -3
View File
@@ -414,7 +414,7 @@
if (feedings.length > 0) { if (feedings.length > 0) {
// Calculate the most recent feeding session // Calculate the most recent feeding session
let sessionStart = feedings[0].start_time; let sessionStart = feedings[0].start_time;
let sessionEnd = feedings[0].end_time || feedings[0].start_time; let sessionEnd = feedings[0].end_time;
let sessionChildId = feedings[0].child_id; let sessionChildId = feedings[0].child_id;
let sessionEntries = [feedings[0]]; let sessionEntries = [feedings[0]];
@@ -649,7 +649,7 @@
<a href="/feedings.html" class="activity-card" style="text-decoration:none; color:inherit;"> <a href="/feedings.html" class="activity-card" style="text-decoration:none; color:inherit;">
<div class="icon">🍼</div> <div class="icon">🍼</div>
<div class="type">Last Feeding Session</div> <div class="type">Last Feeding Session</div>
<div class="time">${formatTime(lastFeeding.start_time)}</div> <div class="time">${lastFeeding.end_time ? `stopped ${formatTime(lastFeeding.end_time)}` : `started ${formatTime(lastFeeding.start_time)}`}</div>
<div class="details"> <div class="details">
${lastFeeding.feeding_types_string ? `${lastFeeding.feeding_types_string}` : ""} ${lastFeeding.feeding_types_string ? `${lastFeeding.feeding_types_string}` : ""}
${lastFeeding.feeding_types_string && lastFeeding.accumulated_minutes ? " • " : ""} ${lastFeeding.feeding_types_string && lastFeeding.accumulated_minutes ? " • " : ""}
@@ -671,7 +671,7 @@
<a href="/sleep.html" class="activity-card" style="text-decoration:none; color:inherit;"> <a href="/sleep.html" class="activity-card" style="text-decoration:none; color:inherit;">
<div class="icon">😴</div> <div class="icon">😴</div>
<div class="type">Last Sleep</div> <div class="type">Last Sleep</div>
<div class="time">${formatTime(lastSleep.start_time)}</div> <div class="time">${lastSleep.end_time ? `stopped ${formatTime(lastSleep.end_time)}` : `started ${formatTime(lastSleep.start_time)}`}</div>
<div class="details"> <div class="details">
Duration: ${lastSleep.end_time ? calculateDuration(lastSleep.start_time, lastSleep.end_time) : "ongoing"} Duration: ${lastSleep.end_time ? calculateDuration(lastSleep.start_time, lastSleep.end_time) : "ongoing"}
</div> </div>