add message and comment

This commit is contained in:
2024-06-29 21:33:22 +08:00
parent 148761c8a2
commit 88a322b248
28 changed files with 431 additions and 144 deletions

View File

@@ -1,14 +1,8 @@
from account.decorators import super_admin_required, login_required
from account.models import User
from submission.models import Submission
from utils.api import APIView
from announcement.models import Announcement, Message
from announcement.models import Announcement
from announcement.serializers import (AnnouncementSerializer,
AnnouncementListSerializer,
CreateMessageSerializer,
MessageSerializer)
from utils.api.api import validate_serializer
AnnouncementListSerializer)
class AnnouncementAPI(APIView):
@@ -23,30 +17,3 @@ class AnnouncementAPI(APIView):
announcements = Announcement.objects.filter(visible=True)
return self.success(self.paginate_data(request, announcements, AnnouncementListSerializer))
class MessageAPI(APIView):
@login_required
def get(self, request):
messages = Message.objects.select_related("recipient","sender", "submission").filter(recipient=request.user)
return self.success(self.paginate_data(request, messages, MessageSerializer))
@validate_serializer(CreateMessageSerializer)
@super_admin_required
def post(self, request):
data = request.data
if data["recipient"] == request.user.id:
return self.error("Can not send a message to youself")
try:
recipient = User.objects.get(id=data["recipient"], is_disabled=False)
except User.DoesNotExist:
return self.error("User does not exist")
try:
submission = Submission.objects.get(id=data["submission"])
except Submission.DoesNotExist:
return self.error("Submission does not exist")
Message.objects.create(submission=submission,
message=data["message"],
sender=request.user,
recipient=recipient)
return self.success()