diff --git a/group/tests.py b/group/tests.py index 0d56d3b2..208720df 100644 --- a/group/tests.py +++ b/group/tests.py @@ -244,7 +244,7 @@ class JoinGroupRequestAdminAPITest(APITestCase): self.assertEqual(JoinGroupRequest.objects.get(id=self.request.id).status, True) def test_join_group_successfully(self): - data = {"request_id": self.request.id, "status": True} + data = {"request_id": self.request.id, "status": True, "": True} response = self.client.put(self.url, data=data) self.assertEqual(response.data, {"code": 0, "data": u"加入成功"}) UserGroupRelation.objects.get(group=self.group, user=self.user1) @@ -261,15 +261,15 @@ class GroupListPageTest(TestCase): def setUp(self): self.client = Client() self.url = reverse('group_list_page') - self.url = reverse('problem_list_page', kwargs={"page": 1}) + self.url_with_argument = reverse('group_page', kwargs={"page": 1}) self.user = User.objects.create(username="test", admin_type=SUPER_ADMIN) self.user.set_password("testaa") self.user.save() self.group = Group.objects.create(name="group1", - description="description1", - # 0是公开 1是需要申请后加入 2是不允许任何人加入 - join_group_setting = 1, - admin=User.objects.get(username="test")) + description="description1", + # 0是公开 1是需要申请后加入 2是不允许任何人加入 + join_group_setting=1, + admin=User.objects.get(username="test")) def get_group_list_page_successful(self): self.client.login(username="test", password="testaa") @@ -278,6 +278,29 @@ class GroupListPageTest(TestCase): def get_group_list_page_successful_with_keyword(self): self.client.login(username="test", password="testaa") - response = self.client.get(self.url+"?keyword=gro") + response = self.client.get(self.url + "?keyword=gro") self.assertEqual(response.status_coed, 200) + def get_group_list_page_successful_with_page_argument(self): + self.client.login(username="test", password="testaa") + response = self.client.get(self.url_with_argument + "?keyword=gro") + self.assertEqual(response.status_coed, 200) + + +class GroupPageTest(TestCase): + def setUp(self): + self.client = Client() + self.user = User.objects.create(username="test", admin_type=SUPER_ADMIN) + self.user.set_password("testaa") + self.user.save() + self.group = Group.objects.create(name="group1", + description="description1", + # 0是公开 1是需要申请后加入 2是不允许任何人加入 + join_group_setting=1, + admin=User.objects.get(username="test")) + self.url = reverse('group_page', kwargs={"group_id": self.group.id}) + + def get_group_list_page_successful(self): + self.client.login(username="test", password="testaa") + response = self.client.get(self.url) + self.assertEqual(response.status_coed, 200) diff --git a/oj/urls.py b/oj/urls.py index a0f8b670..648c849d 100644 --- a/oj/urls.py +++ b/oj/urls.py @@ -105,5 +105,6 @@ urlpatterns = [ url(r'^groups/$', "group.views.group_list_page", name="group_list_page"), url(r'^groups/(?P\d+)/$', "group.views.group_list_page", name="group_list_page"), url(r'^group/(?P\d+)/$', "group.views.group_page", name="group_page"), - + url(r'^group/(?P\d+)/applications/$', "group.views.application_list_page", name="group_application_page"), + url(r'^group/application/(?P\d+)/$', "group.views.application_page", name="group_application") ] diff --git a/static/src/js/app/oj/group/group.js b/static/src/js/app/oj/group/group.js index e69de29b..918b6612 100644 --- a/static/src/js/app/oj/group/group.js +++ b/static/src/js/app/oj/group/group.js @@ -0,0 +1,25 @@ +require(["jquery", "csrfToken", "bsAlert"], function ($, csrfTokenHeader, bsAlert) { + $("#sendApplication").click(function (){ + var message = $("#applyMessage").val(); + console.log(message); + var groupId = window.location.pathname.split("/")[2]; + console.log(groupId); + data = {group_id: groupId,message:message} + $.ajax({ + url: "/api/group_join/", + method: "post", + dataType: "json", + beforeSend: csrfTokenHeader, + data: JSON.stringify(data), + contentType: "application/json", + success: function (data) { + if (data.code) { + bsAlert(data.data); + } + else { + bsAlert("申请已提交!"); + } + } + }) + }) +}) diff --git a/template/src/oj/group/group.html b/template/src/oj/group/group.html new file mode 100644 index 00000000..1686a4cb --- /dev/null +++ b/template/src/oj/group/group.html @@ -0,0 +1,40 @@ +{% extends 'oj_base.html' %} + +{% block body %} +
+ +

{{ group.name }}

+ +

发布时间 : {{ group.create_time }}   + 创建者 : {{ group.admin }} +

+ +
+
+ + +

{{ group.description|safe }}

+
+
+
+
+ {% if group.join_group_setting %} +
+ + + +
+ {% endif %} +
+ +
+
+
+{% endblock %} +{% block js_block %} + +{% endblock %} \ No newline at end of file diff --git a/template/src/oj/group/my_application.html b/template/src/oj/group/my_application.html new file mode 100644 index 00000000..71ba5cb9 --- /dev/null +++ b/template/src/oj/group/my_application.html @@ -0,0 +1,26 @@ +{% extends 'oj_base.html' %} + +{% block body %} + +
+ + +

{{ application.message|safe }}

+ + {% if application.status %} + {% if application.accepted %} +

管理员接受了你的请求

+ {% else %} +

管理员拒绝了你的请求

+ {% endif %} + {% else %} +

待审核

+ {% endif %} +
+{% endblock %} \ No newline at end of file diff --git a/template/src/oj/group/my_application_list.html b/template/src/oj/group/my_application_list.html new file mode 100644 index 00000000..f2b276c6 --- /dev/null +++ b/template/src/oj/group/my_application_list.html @@ -0,0 +1,44 @@ +{% extends 'oj_base.html' %} + +{% block body %} + +
+ + {% if applications %} + + + + + + + + + + {% for item in applications %} + + + + {% if item.status %} + {% if item.accepted %} + + {% else %} + + {% endif %} + {% else %} + + {% endif %} + + {% endfor %} + + +
#提交时间结果
{{ forloop.counter }}{{ item.create_time }}通过拒绝未处理
+ {% else %} +

你还没有申请该小组

+ {% endif %} +
+{% endblock %} \ No newline at end of file