修复contest announcement的一些问题

This commit is contained in:
zema1
2017-11-06 19:05:21 +08:00
parent cec27407e1
commit 37d6dd84ee
12 changed files with 76 additions and 18 deletions

View File

@@ -6,7 +6,8 @@ from ..models import Contest, ContestAnnouncement
from ..serializers import (ContestAnnouncementSerializer, ContestAdminSerializer,
CreateConetestSeriaizer,
CreateContestAnnouncementSerializer,
EditConetestSeriaizer)
EditConetestSeriaizer,
EditContestAnnouncementSerializer)
class ContestAPI(APIView):
@@ -83,6 +84,23 @@ class ContestAnnouncementAPI(APIView):
announcement = ContestAnnouncement.objects.create(**data)
return self.success(ContestAnnouncementSerializer(announcement).data)
@validate_serializer(EditContestAnnouncementSerializer)
def put(self, request):
"""
update contest_announcement
"""
data = request.data
try:
contest_announcement = ContestAnnouncement.objects.get(id=data.pop("id"))
if request.user.is_admin() and contest_announcement.created_by != request.user:
return self.error("Contest announcement does not exist")
except ContestAnnouncement.DoesNotExist:
return self.error("Contest announcement does not exist")
for k, v in data.items():
setattr(contest_announcement, k, v)
contest_announcement.save()
return self.success()
def delete(self, request):
"""
Delete one contest_announcement.