From d64b99eed3d559ad0fa7349e9c6ec2f64c4ffb0d Mon Sep 17 00:00:00 2001 From: hohoTT <609029365@qq.com> Date: Fri, 7 Aug 2015 20:25:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E7=94=A8visible?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E5=85=AC=E5=91=8A=E7=9A=84=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=EF=BC=8C=E5=B9=B6=E5=A2=9E=E5=8A=A0=E4=BA=86=E7=9B=B8=E5=BA=94?= =?UTF-8?q?=E7=9A=84=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- announcement/tests.py | 19 +++++++++++++++++++ announcement/views.py | 5 ++++- oj/urls.py | 4 +++- 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/announcement/tests.py b/announcement/tests.py index a7fd120..fb27fe5 100644 --- a/announcement/tests.py +++ b/announcement/tests.py @@ -62,6 +62,25 @@ class AnnouncementAPITest(APITestCase): def setUp(self): self.client = APIClient() self.url = reverse("announcement_list_api") + user = User.objects.create(username="test") + user.set_password("test") + user.save() def test_success_get_data(self): self.assertEqual(self.client.get(self.url).data["code"], 0) + + def test_keyword_announcement(self): + Announcement.objects.create(title="aa", + content="AA", + created_by=User.objects.get(username="test"), + visible=True) + + Announcement.objects.create(title="bb", + content="BB", + created_by=User.objects.get(username="test"), + visible=False) + + response = self.client.get(self.url + "?visible=true") + self.assertEqual(response.data["code"], 0) + for item in response.data["data"]: + self.assertEqual(item["visible"], True) diff --git a/announcement/views.py b/announcement/views.py index bc14889..a96b1f1 100644 --- a/announcement/views.py +++ b/announcement/views.py @@ -57,5 +57,8 @@ class AnnouncementAPIView(APIView): --- response_serializer: AnnouncementSerializer """ - announcement = Announcement.objects.all().order_by("last_update_time") + announcement = Announcement.objects.all().order_by("-last_update_time") + visible = request.GET.get("visible", None) + if visible: + announcement = announcement.filter(visible=(visible == "true")) return paginate(request, announcement, AnnouncementSerializer) diff --git a/oj/urls.py b/oj/urls.py index 97ecb02..a69c8ee 100644 --- a/oj/urls.py +++ b/oj/urls.py @@ -4,7 +4,7 @@ from django.contrib import admin from django.views.generic import TemplateView from account.views import UserLoginAPIView, UsernameCheckAPIView, UserRegisterAPIView, UserChangePasswordAPIView, \ - EmailCheckAPIView + EmailCheckAPIView, UserAPIView, UserAdminAPIView from announcement.views import AnnouncementAPIView, AnnouncementAdminAPIView from admin.views import AdminTemplateView @@ -21,9 +21,11 @@ urlpatterns = [ url(r'^api/username_check/$', UsernameCheckAPIView.as_view(), name="username_check_api"), url(r'^api/email_check/$', EmailCheckAPIView.as_view(), name="email_check_api"), url(r'^api/admin/announcement/$', AnnouncementAdminAPIView.as_view(), name="announcement_admin_api"), + url(r'^api/admin/user/$', UserAdminAPIView.as_view(), name="user_admin_api"), url(r'^problem/(?P\d+)/$', "problem.views.problem_page", name="problem_page"), url(r'^api/announcements/$', AnnouncementAPIView.as_view(), name="announcement_list_api"), + url(r'^api/users/$', UserAPIView.as_view(), name="user_list_api"), url(r'^admin/contest/$', TemplateView.as_view(template_name="admin/contest/add_contest.html"), name="add_contest_page"), url(r'^problems/$', TemplateView.as_view(template_name="oj/problem/problem_list.html"), name="problem_list_page"),