更新announcement后端
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
# coding=utf-8
|
# coding=utf-8
|
||||||
|
from __future__ import unicode_literals
|
||||||
import StringIO
|
import StringIO
|
||||||
import codecs
|
import codecs
|
||||||
import os
|
import os
|
||||||
|
|||||||
@@ -7,17 +7,12 @@ from utils.models import RichTextField
|
|||||||
|
|
||||||
|
|
||||||
class Announcement(models.Model):
|
class Announcement(models.Model):
|
||||||
# 标题
|
|
||||||
title = models.CharField(max_length=50)
|
title = models.CharField(max_length=50)
|
||||||
# 公告的内容 HTML 格式
|
# HTML
|
||||||
content = RichTextField()
|
content = RichTextField()
|
||||||
# 创建时间
|
|
||||||
create_time = models.DateTimeField(auto_now_add=True)
|
create_time = models.DateTimeField(auto_now_add=True)
|
||||||
# 这个公告是谁创建的
|
|
||||||
created_by = models.ForeignKey(User)
|
created_by = models.ForeignKey(User)
|
||||||
# 最后更新时间
|
|
||||||
last_update_time = models.DateTimeField(auto_now=True)
|
last_update_time = models.DateTimeField(auto_now=True)
|
||||||
# 是否可见 false的话相当于删除
|
|
||||||
visible = models.BooleanField(default=True)
|
visible = models.BooleanField(default=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
# coding=utf-8
|
# coding=utf-8
|
||||||
|
from __future__ import unicode_literals
|
||||||
from rest_framework.views import APIView
|
from rest_framework.views import APIView
|
||||||
|
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
@@ -14,12 +15,12 @@ from .serializers import (CreateAnnouncementSerializer, AnnouncementSerializer,
|
|||||||
|
|
||||||
def announcement_page(request, announcement_id):
|
def announcement_page(request, announcement_id):
|
||||||
"""
|
"""
|
||||||
公告的详情页面
|
announcement detail page
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
announcement = Announcement.objects.get(id=announcement_id, visible=True)
|
announcement = Announcement.objects.get(id=announcement_id, visible=True)
|
||||||
except Announcement.DoesNotExist:
|
except Announcement.DoesNotExist:
|
||||||
return error_page(request, u"公告不存在")
|
return error_page(request, _("Announcement does not exist"))
|
||||||
return render(request, "oj/announcement/announcement.html", {"announcement": announcement})
|
return render(request, "oj/announcement/announcement.html", {"announcement": announcement})
|
||||||
|
|
||||||
|
|
||||||
@@ -27,25 +28,22 @@ class AnnouncementAdminAPIView(APIView):
|
|||||||
@super_admin_required
|
@super_admin_required
|
||||||
def post(self, request):
|
def post(self, request):
|
||||||
"""
|
"""
|
||||||
公告发布json api接口
|
publish announcement
|
||||||
---
|
|
||||||
request_serializer: CreateAnnouncementSerializer
|
|
||||||
"""
|
"""
|
||||||
serializer = CreateAnnouncementSerializer(data=request.data)
|
serializer = CreateAnnouncementSerializer(data=request.data)
|
||||||
if serializer.is_valid():
|
if serializer.is_valid():
|
||||||
data = serializer.data
|
data = serializer.data
|
||||||
Announcement.objects.create(title=data["title"], content=data["content"], created_by=request.user)
|
announcement = Announcement.objects.create(title=data["title"],
|
||||||
return success_response(u"公告发布成功!")
|
content=data["content"],
|
||||||
|
created_by=request.user)
|
||||||
|
return success_response(AnnouncementSerializer(announcement).data)
|
||||||
else:
|
else:
|
||||||
return serializer_invalid_response(serializer)
|
return serializer_invalid_response(serializer)
|
||||||
|
|
||||||
@super_admin_required
|
@super_admin_required
|
||||||
def put(self, request):
|
def put(self, request):
|
||||||
"""
|
"""
|
||||||
公告编辑json api接口
|
edit announcement
|
||||||
---
|
|
||||||
request_serializer: EditAnnouncementSerializer
|
|
||||||
response_serializer: AnnouncementSerializer
|
|
||||||
"""
|
"""
|
||||||
serializer = EditAnnouncementSerializer(data=request.data)
|
serializer = EditAnnouncementSerializer(data=request.data)
|
||||||
if serializer.is_valid():
|
if serializer.is_valid():
|
||||||
@@ -53,7 +51,7 @@ class AnnouncementAdminAPIView(APIView):
|
|||||||
try:
|
try:
|
||||||
announcement = Announcement.objects.get(id=data["id"])
|
announcement = Announcement.objects.get(id=data["id"])
|
||||||
except Announcement.DoesNotExist:
|
except Announcement.DoesNotExist:
|
||||||
return error_response(u"公告不存在")
|
return error_response(_("Announcement does not exist"))
|
||||||
|
|
||||||
announcement.title = data["title"]
|
announcement.title = data["title"]
|
||||||
announcement.content = data["content"]
|
announcement.content = data["content"]
|
||||||
@@ -67,9 +65,7 @@ class AnnouncementAdminAPIView(APIView):
|
|||||||
@super_admin_required
|
@super_admin_required
|
||||||
def get(self, request):
|
def get(self, request):
|
||||||
"""
|
"""
|
||||||
公告分页json api接口
|
get announcement list / get one announcement
|
||||||
---
|
|
||||||
response_serializer: AnnouncementSerializer
|
|
||||||
"""
|
"""
|
||||||
announcement_id = request.GET.get("announcement_id")
|
announcement_id = request.GET.get("announcement_id")
|
||||||
if announcement_id:
|
if announcement_id:
|
||||||
|
|||||||
Reference in New Issue
Block a user