2015-10-16 12:43:34 +00:00
|
|
|
from account.decorators import super_admin_required
|
2017-01-24 12:53:22 +00:00
|
|
|
from utils.api import APIView, validate_serializer
|
2016-11-19 04:32:23 +00:00
|
|
|
|
2015-08-04 09:38:04 +00:00
|
|
|
from .models import Announcement
|
2017-01-23 08:48:04 +00:00
|
|
|
from .serializers import (AnnouncementSerializer, CreateAnnouncementSerializer,
|
2015-08-06 11:07:46 +00:00
|
|
|
EditAnnouncementSerializer)
|
2015-08-04 09:38:04 +00:00
|
|
|
|
|
|
|
|
2016-11-19 04:37:27 +00:00
|
|
|
class AnnouncementAdminAPI(APIView):
|
2016-12-03 12:22:14 +00:00
|
|
|
@validate_serializer(CreateAnnouncementSerializer)
|
2015-10-16 12:43:34 +00:00
|
|
|
@super_admin_required
|
2015-08-04 09:38:04 +00:00
|
|
|
def post(self, request):
|
|
|
|
"""
|
2016-08-02 14:02:51 +00:00
|
|
|
publish announcement
|
2015-08-04 09:38:04 +00:00
|
|
|
"""
|
2016-12-03 12:22:14 +00:00
|
|
|
data = request.data
|
|
|
|
announcement = Announcement.objects.create(title=data["title"],
|
|
|
|
content=data["content"],
|
2017-01-25 01:36:33 +00:00
|
|
|
created_by=request.user,
|
|
|
|
visible=data["visible"])
|
2016-12-03 12:22:14 +00:00
|
|
|
return self.success(AnnouncementSerializer(announcement).data)
|
2015-08-06 08:28:59 +00:00
|
|
|
|
2016-12-03 12:22:14 +00:00
|
|
|
@validate_serializer(EditAnnouncementSerializer)
|
2015-10-16 12:43:34 +00:00
|
|
|
@super_admin_required
|
2015-08-06 11:07:46 +00:00
|
|
|
def put(self, request):
|
|
|
|
"""
|
2016-08-02 14:02:51 +00:00
|
|
|
edit announcement
|
2015-08-06 11:07:46 +00:00
|
|
|
"""
|
2016-12-03 12:22:14 +00:00
|
|
|
data = request.data
|
|
|
|
try:
|
|
|
|
announcement = Announcement.objects.get(id=data["id"])
|
|
|
|
except Announcement.DoesNotExist:
|
2017-04-18 18:03:48 +00:00
|
|
|
return self.error("Announcement does not exist")
|
2015-10-16 12:43:34 +00:00
|
|
|
|
2016-12-03 12:22:14 +00:00
|
|
|
announcement.title = data["title"]
|
|
|
|
announcement.content = data["content"]
|
|
|
|
announcement.visible = data["visible"]
|
|
|
|
announcement.save()
|
2015-08-18 08:03:49 +00:00
|
|
|
|
2016-12-03 12:22:14 +00:00
|
|
|
return self.success(AnnouncementSerializer(announcement).data)
|
2015-08-06 11:07:46 +00:00
|
|
|
|
2015-10-16 12:43:34 +00:00
|
|
|
@super_admin_required
|
2015-08-06 08:28:59 +00:00
|
|
|
def get(self, request):
|
|
|
|
"""
|
2016-08-02 14:02:51 +00:00
|
|
|
get announcement list / get one announcement
|
2015-08-06 08:28:59 +00:00
|
|
|
"""
|
2017-01-26 05:45:39 +00:00
|
|
|
announcement_id = request.GET.get("id")
|
2016-08-02 12:50:44 +00:00
|
|
|
if announcement_id:
|
|
|
|
try:
|
|
|
|
announcement = Announcement.objects.get(id=announcement_id)
|
2016-10-29 18:17:35 +00:00
|
|
|
return self.success(AnnouncementSerializer(announcement).data)
|
2016-08-02 12:50:44 +00:00
|
|
|
except Announcement.DoesNotExist:
|
2017-04-18 18:03:48 +00:00
|
|
|
return self.error("Announcement does not exist")
|
2015-10-16 12:43:34 +00:00
|
|
|
announcement = Announcement.objects.all().order_by("-create_time")
|
2016-10-30 15:29:47 +00:00
|
|
|
if request.GET.get("visible") == "true":
|
|
|
|
announcement = announcement.filter(visible=True)
|
2016-11-19 04:32:23 +00:00
|
|
|
return self.success(self.paginate_data(request, announcement, AnnouncementSerializer))
|
2016-12-03 12:22:14 +00:00
|
|
|
|
|
|
|
@super_admin_required
|
|
|
|
def delete(self, request):
|
2017-01-24 12:53:22 +00:00
|
|
|
if request.GET.get("id"):
|
|
|
|
Announcement.objects.filter(id=request.GET["id"]).delete()
|
2016-12-03 12:22:14 +00:00
|
|
|
return self.success()
|