fix: apply the group filter to the Analytics hourly chart (#30978)

This commit is contained in:
G30
2026-09-24 12:11:13 -04:00
committed by GitHub
parent 6c6d35c72e
commit 9836367ab2
2 changed files with 9 additions and 1 deletions
@@ -1012,12 +1012,15 @@ class ChatMessageTable:
self,
start_date: Optional[int] = None,
end_date: Optional[int] = None,
group_id: Optional[str] = None,
db: Optional[AsyncSession] = None,
) -> dict[str, dict[str, int]]:
"""Get message counts grouped by hour and model."""
async with get_async_db_context(db) as db:
from datetime import datetime, timedelta
from open_webui.models.groups import GroupMember
stmt = select(ChatMessage.created_at, ChatMessage.model_id).filter(
ChatMessage.role == 'assistant',
ChatMessage.model_id.isnot(None),
@@ -1027,6 +1030,9 @@ class ChatMessageTable:
stmt = stmt.filter(ChatMessage.created_at >= start_date)
if end_date:
stmt = stmt.filter(ChatMessage.created_at <= end_date)
if group_id:
group_users = select(GroupMember.user_id).filter(GroupMember.group_id == group_id).scalar_subquery()
stmt = stmt.filter(ChatMessage.user_id.in_(group_users))
result = await db.execute(stmt)
results = result.all()
+3 -1
View File
@@ -207,7 +207,9 @@ async def get_daily_stats(
):
"""Get message counts grouped by model for time-series chart."""
if granularity == 'hourly':
counts = await ChatMessages.get_hourly_message_counts_by_model(start_date=start_date, end_date=end_date, db=db)
counts = await ChatMessages.get_hourly_message_counts_by_model(
start_date=start_date, end_date=end_date, group_id=group_id, db=db
)
else:
counts = await ChatMessages.get_daily_message_counts_by_model(
start_date=start_date, end_date=end_date, group_id=group_id, db=db