add delete button

This commit is contained in:
2026-04-15 19:16:38 -06:00
parent 2f6f7d1387
commit b37d4c56de
7 changed files with 284 additions and 8 deletions

View File

@@ -75,7 +75,7 @@ def create_submission(request, payload: SubmissionIn):
from .classifier import classify_conversation_messages
threading.Thread(target=classify_conversation_messages, args=(conversation.id,), daemon=True).start()
Submission.objects.create(
submission = Submission.objects.create(
user=request.user,
task=task,
html=payload.html,
@@ -83,6 +83,22 @@ def create_submission(request, payload: SubmissionIn):
js=payload.js,
)
# Link assistant message if provided
if payload.message_id:
try:
msg = Message.objects.get(
id=payload.message_id,
role="assistant",
conversation__user=request.user,
conversation__task=task,
)
msg.submission = submission
msg.save(update_fields=["submission"])
except Message.DoesNotExist:
pass # invalid message_id — submission already created, silently skip
return {"id": str(submission.id)}
@router.get("/", response=List[SubmissionOut])
@paginate
@@ -193,6 +209,23 @@ def delete_submission(request, submission_id: UUID):
submission = get_object_or_404(Submission, id=submission_id)
if submission.user != request.user:
raise HttpError(403, "只能删除自己的提交")
# Delete linked message pair if present
asst_msg = Message.objects.filter(submission=submission).first()
if asst_msg:
user_msg = (
Message.objects.filter(
conversation=asst_msg.conversation,
created__lt=asst_msg.created,
role="user",
)
.order_by("-created")
.first()
)
if user_msg:
user_msg.delete()
asst_msg.delete()
submission.delete()
return {"message": "删除成功"}

View File

@@ -9,6 +9,7 @@ class SubmissionIn(Schema):
css: Optional[str] = None
js: Optional[str] = None
prompt: Optional[str] = None
message_id: Optional[int] = None # 关联的 assistant message pk
class SubmissionOut(Schema):