fix: use request.admin_site in daily report views to avoid circular import
This commit is contained in:
@@ -35,7 +35,6 @@ def daily_report_list_view(request):
|
|||||||
.order_by("agent_name")
|
.order_by("agent_name")
|
||||||
)
|
)
|
||||||
|
|
||||||
# Query messages within range, select_related session for efficiency
|
|
||||||
messages_qs = Message.objects.filter(
|
messages_qs = Message.objects.filter(
|
||||||
timestamp__date__gte=start_date,
|
timestamp__date__gte=start_date,
|
||||||
timestamp__date__lte=end_date,
|
timestamp__date__lte=end_date,
|
||||||
@@ -44,7 +43,6 @@ def daily_report_list_view(request):
|
|||||||
if agent_filter:
|
if agent_filter:
|
||||||
messages_qs = messages_qs.filter(session__agent_name=agent_filter)
|
messages_qs = messages_qs.filter(session__agent_name=agent_filter)
|
||||||
|
|
||||||
# Group by (agent_name, date) in Python — simple and reliable
|
|
||||||
groups = defaultdict(lambda: {"message_count": 0, "session_ids": set()})
|
groups = defaultdict(lambda: {"message_count": 0, "session_ids": set()})
|
||||||
for msg in messages_qs:
|
for msg in messages_qs:
|
||||||
d = msg.timestamp.date()
|
d = msg.timestamp.date()
|
||||||
@@ -52,7 +50,6 @@ def daily_report_list_view(request):
|
|||||||
groups[key]["message_count"] += 1
|
groups[key]["message_count"] += 1
|
||||||
groups[key]["session_ids"].add(msg.session.session_id)
|
groups[key]["session_ids"].add(msg.session.session_id)
|
||||||
|
|
||||||
# Build sorted list (newest first, then by agent)
|
|
||||||
groups_list = sorted(
|
groups_list = sorted(
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
@@ -66,8 +63,10 @@ def daily_report_list_view(request):
|
|||||||
key=lambda x: (-x["date_val"].toordinal(), x["agent_name"]),
|
key=lambda x: (-x["date_val"].toordinal(), x["agent_name"]),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Use request.admin_site (set by AdminSite.admin_view wrapper)
|
||||||
|
admin_site = getattr(request, "admin_site", admin.site)
|
||||||
context = {
|
context = {
|
||||||
**admin.site.each_context(request),
|
**admin_site.each_context(request),
|
||||||
"start_date": start_date,
|
"start_date": start_date,
|
||||||
"end_date": end_date,
|
"end_date": end_date,
|
||||||
"selected_agent": agent_filter,
|
"selected_agent": agent_filter,
|
||||||
@@ -112,8 +111,9 @@ def daily_report_detail_view(request, agent_name, year, month, day):
|
|||||||
"system": "System",
|
"system": "System",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
admin_site = getattr(request, "admin_site", admin.site)
|
||||||
context = {
|
context = {
|
||||||
**admin.site.each_context(request),
|
**admin_site.each_context(request),
|
||||||
"agent_name": agent_name,
|
"agent_name": agent_name,
|
||||||
"target_date": target_date,
|
"target_date": target_date,
|
||||||
"sessions": sessions_with_messages,
|
"sessions": sessions_with_messages,
|
||||||
|
|||||||
Reference in New Issue
Block a user