feat(websocket): frontend websocket

This commit is contained in:
2026-05-25 13:01:22 +02:00
parent b64161b371
commit d7bdb85fb0
9 changed files with 343 additions and 76 deletions
+6 -10
View File
@@ -1,4 +1,3 @@
import json
from django.db.models.signals import post_save
from django.dispatch import receiver
from asgiref.sync import async_to_sync
@@ -17,15 +16,14 @@ def broadcast_submission_update(sender, instance, created, **kwargs):
return
user_group_name = f"submissions_user_{instance.user.id}"
schema = SubmissionOut.model_validate(instance)
submission_data = schema.model_dump(mode="json")
submission_data = SubmissionOut.from_orm(instance).dict()
async_to_sync(channel_layer.group_send)(
user_group_name,
{
"type": "submission.updated",
"submission": submission_data,
}
},
)
@@ -36,15 +34,14 @@ def broadcast_submission_file_update(sender, instance, created, **kwargs):
return
user_group_name = f"submissions_user_{submission.user.id}"
schema = SubmissionFileOut.model_validate(instance)
file_data = schema.model_dump(mode="json")
file_data = SubmissionFileOut.from_orm(instance).dict()
async_to_sync(channel_layer.group_send)(
user_group_name,
{
"type": "submission.file.updated",
"file": file_data,
}
},
)
@@ -55,13 +52,12 @@ def broadcast_image_crop_update(sender, instance, created, **kwargs):
return
user_group_name = f"submissions_user_{submission.user.id}"
schema = ImageCropOut.model_validate(instance)
crop_data = schema.model_dump(mode="json")
crop_data = ImageCropOut.from_orm(instance).dict()
async_to_sync(channel_layer.group_send)(
user_group_name,
{
"type": "submission.crop.updated",
"crop": crop_data,
}
},
)