Spaces:
Runtime error
Runtime error
Commit ·
3d6de09
1
Parent(s): fdfba16
added latest models
Browse files- app/routes/forms.py +7 -2
app/routes/forms.py
CHANGED
|
@@ -14,7 +14,7 @@ from datetime import datetime
|
|
| 14 |
|
| 15 |
from ..core.db import get_db
|
| 16 |
from ..core.security import get_current_user
|
| 17 |
-
from ..models import User, Form, FormQuestion, ConditionalRule, PublicForm, QuestionType, ConditionType, FormResponse as FormResponseModel, ResponseAnswer, ChatMessage as ChatMessageModel
|
| 18 |
from ..schemas.form import (
|
| 19 |
FormCreate, FormUpdate, FormResponse, FormGenerationResponse,
|
| 20 |
QuestionCreate, QuestionUpdate, QuestionResponse,
|
|
@@ -269,9 +269,14 @@ async def delete_form(
|
|
| 269 |
# 1. Delete chat messages
|
| 270 |
db.query(ChatMessageModel).filter(ChatMessageModel.form_id == form_id).delete(synchronize_session=False)
|
| 271 |
|
| 272 |
-
# 2.
|
| 273 |
response_ids = [r.id for r in db.query(FormResponseModel.id).filter(FormResponseModel.form_id == form_id).all()]
|
|
|
|
| 274 |
if response_ids:
|
|
|
|
|
|
|
|
|
|
|
|
|
| 275 |
db.query(ResponseAnswer).filter(ResponseAnswer.form_response_id.in_(response_ids)).delete(synchronize_session=False)
|
| 276 |
|
| 277 |
# 3. Delete form responses
|
|
|
|
| 14 |
|
| 15 |
from ..core.db import get_db
|
| 16 |
from ..core.security import get_current_user
|
| 17 |
+
from ..models import User, Form, FormQuestion, ConditionalRule, PublicForm, QuestionType, ConditionType, FormResponse as FormResponseModel, ResponseAnswer, ChatMessage as ChatMessageModel, FormUpload
|
| 18 |
from ..schemas.form import (
|
| 19 |
FormCreate, FormUpdate, FormResponse, FormGenerationResponse,
|
| 20 |
QuestionCreate, QuestionUpdate, QuestionResponse,
|
|
|
|
| 269 |
# 1. Delete chat messages
|
| 270 |
db.query(ChatMessageModel).filter(ChatMessageModel.form_id == form_id).delete(synchronize_session=False)
|
| 271 |
|
| 272 |
+
# 2. Get response IDs first (needed for cascading deletes)
|
| 273 |
response_ids = [r.id for r in db.query(FormResponseModel.id).filter(FormResponseModel.form_id == form_id).all()]
|
| 274 |
+
|
| 275 |
if response_ids:
|
| 276 |
+
# 2a. Delete form uploads (linked to responses)
|
| 277 |
+
db.query(FormUpload).filter(FormUpload.form_response_id.in_(response_ids)).delete(synchronize_session=False)
|
| 278 |
+
|
| 279 |
+
# 2b. Delete response answers (linked to responses)
|
| 280 |
db.query(ResponseAnswer).filter(ResponseAnswer.form_response_id.in_(response_ids)).delete(synchronize_session=False)
|
| 281 |
|
| 282 |
# 3. Delete form responses
|