mirror of
https://github.com/QingdaoU/OnlineJudge.git
synced 2024-09-21 00:13:18 +00:00
全局的announcement api
This commit is contained in:
parent
728373a5ff
commit
f0655ee305
@ -15,3 +15,4 @@ class Announcement(models.Model):
|
||||
|
||||
class Meta:
|
||||
db_table = "announcement"
|
||||
ordering = ('-create_time',)
|
||||
|
@ -1,6 +1,6 @@
|
||||
from django.conf.urls import url
|
||||
|
||||
from ..views import AnnouncementAdminAPI
|
||||
from ..views.admin import AnnouncementAdminAPI
|
||||
|
||||
urlpatterns = [
|
||||
url(r"^announcement/?$", AnnouncementAdminAPI.as_view(), name="announcement_admin_api"),
|
||||
|
7
announcement/urls/oj.py
Normal file
7
announcement/urls/oj.py
Normal file
@ -0,0 +1,7 @@
|
||||
from django.conf.urls import url
|
||||
|
||||
from ..views.oj import AnnouncementAPI
|
||||
|
||||
urlpatterns = [
|
||||
url(r"^announcement/?$", AnnouncementAPI.as_view(), name="announcement_admin_api"),
|
||||
]
|
0
announcement/views/__init__.py
Normal file
0
announcement/views/__init__.py
Normal file
@ -1,8 +1,8 @@
|
||||
from account.decorators import super_admin_required
|
||||
from utils.api import APIView, validate_serializer
|
||||
|
||||
from .models import Announcement
|
||||
from .serializers import (AnnouncementSerializer, CreateAnnouncementSerializer,
|
||||
from announcement.models import Announcement
|
||||
from announcement.serializers import (AnnouncementSerializer, CreateAnnouncementSerializer,
|
||||
EditAnnouncementSerializer)
|
||||
|
||||
|
10
announcement/views/oj.py
Normal file
10
announcement/views/oj.py
Normal file
@ -0,0 +1,10 @@
|
||||
from utils.api import APIView
|
||||
|
||||
from announcement.models import Announcement
|
||||
from announcement.serializers import AnnouncementSerializer
|
||||
|
||||
|
||||
class AnnouncementAPI(APIView):
|
||||
def get(self, request):
|
||||
announcements = Announcement.objects.filter(visible=True)
|
||||
return self.success(self.paginate_data(request, announcements, AnnouncementSerializer))
|
@ -110,10 +110,13 @@ class ContestAnnouncementAPI(APIView):
|
||||
except ContestAnnouncement.DoesNotExist:
|
||||
return self.error("Contest announcement does not exist")
|
||||
|
||||
contest_announcements = ContestAnnouncement.objects.all().order_by("-create_time")
|
||||
contest_id = request.GET.get("contest_id")
|
||||
if not contest_id:
|
||||
return self.error("Paramater error")
|
||||
contest_announcements = ContestAnnouncement.objects.filter(contest_id=contest_id)
|
||||
if request.user.is_admin():
|
||||
contest_announcements = contest_announcements.filter(created_by=request.user)
|
||||
keyword = request.GET.get("keyword")
|
||||
if keyword:
|
||||
contest_announcements = contest_announcements.filter(title__contains=keyword)
|
||||
return self.success(self.paginate_data(request, contest_announcements, ContestAnnouncementSerializer))
|
||||
return self.success(ContestAnnouncementSerializer(contest_announcements, many=True).data)
|
||||
|
@ -3,6 +3,7 @@ from django.conf.urls import include, url
|
||||
urlpatterns = [
|
||||
url(r"^api/", include("account.urls.oj")),
|
||||
url(r"^api/admin/", include("account.urls.admin")),
|
||||
url(r"^api/", include("announcement.urls.oj")),
|
||||
url(r"^api/admin/", include("announcement.urls.admin")),
|
||||
url(r"^api/", include("conf.urls.oj")),
|
||||
url(r"^api/admin/", include("conf.urls.admin")),
|
||||
|
Loading…
Reference in New Issue
Block a user