Arslan1997 commited on
Commit
3d6de09
·
1 Parent(s): fdfba16

added latest models

Browse files
Files changed (1) hide show
  1. 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. Delete response answers (linked to responses)
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