feat(attachments): 新增附件管理页面
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.db.models import Count, Q
|
||||
from django.http import HttpRequest, HttpResponse, JsonResponse, StreamingHttpResponse
|
||||
from django.shortcuts import redirect, render
|
||||
from django.views.decorators.http import require_http_methods
|
||||
@@ -10,7 +11,7 @@ from .services import (
|
||||
send_message,
|
||||
stream_message,
|
||||
)
|
||||
from .models import FileAttachment, FileSummaryBatch
|
||||
from .models import Conversation, FileAttachment, FileSummaryBatch
|
||||
|
||||
|
||||
@login_required
|
||||
@@ -56,6 +57,38 @@ def workspace(request: HttpRequest) -> HttpResponse:
|
||||
)
|
||||
|
||||
|
||||
@login_required
|
||||
@require_http_methods(["GET"])
|
||||
def attachment_manager(request: HttpRequest) -> HttpResponse:
|
||||
conversations = (
|
||||
Conversation.objects.filter(user=request.user)
|
||||
.annotate(
|
||||
attachment_count=Count(
|
||||
"file_attachments",
|
||||
filter=~Q(file_attachments__upload_status=FileAttachment.UploadStatus.DELETED),
|
||||
)
|
||||
)
|
||||
.order_by("-updated_at", "-id")
|
||||
)
|
||||
selected = get_conversation_for_user(request.user, request.GET.get("conversation"))
|
||||
attachments = (
|
||||
FileAttachment.objects.filter(conversation=selected)
|
||||
.order_by("original_name", "-version_no")
|
||||
if selected
|
||||
else []
|
||||
)
|
||||
return render(
|
||||
request,
|
||||
"attachment_manager.html",
|
||||
{
|
||||
"page_title": "附件管理",
|
||||
"conversations": conversations,
|
||||
"selected_conversation": selected,
|
||||
"attachments": attachments,
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
@login_required
|
||||
@require_http_methods(["POST"])
|
||||
def stream_chat(request: HttpRequest) -> HttpResponse:
|
||||
|
||||
Reference in New Issue
Block a user