diff --git a/group/serializers.py b/group/serializers.py index 27490d87..377d56d6 100644 --- a/group/serializers.py +++ b/group/serializers.py @@ -17,6 +17,7 @@ class EditGroupSerializer(serializers.Serializer): name = serializers.CharField(max_length=20) description = serializers.CharField(max_length=300) join_group_setting = serializers.IntegerField() + visible = serializers.BooleanField() class CreateJoinGroupRequestSerializer(serializers.Serializer): diff --git a/group/views.py b/group/views.py index 29f0a49c..5c2797b1 100644 --- a/group/views.py +++ b/group/views.py @@ -25,7 +25,7 @@ class GroupAPIViewBase(object): 管理员可以查询所有的小组,其他用户查询自己创建的自傲组 """ if request.user.admin_type == SUPER_ADMIN: - group = Group.objects.get(id=group_id, visible=True) + group = Group.objects.get(id=group_id) else: group = Group.objects.get(id=group_id, visible=True, admin=request.user) return group @@ -36,7 +36,7 @@ class GroupAPIViewBase(object): 如果是管理员,就返回他创建的全部小组 """ if request.user.admin_type == SUPER_ADMIN: - groups = Group.objects.filter(visible=True) + groups = Group.objects.filter() else: groups = Group.objects.filter(admin=request.user, visible=True) return groups @@ -83,6 +83,7 @@ class GroupAdminAPIView(APIView, GroupAPIViewBase): group.name = data["name"] group.description = data["description"] group.join_group_setting = data["join_group_setting"] + group.visible = data["visible"] group.save() except IntegrityError: return error_response(u"小组名已经存在") @@ -298,7 +299,12 @@ def group_page(request, group_id): group = Group.objects.get(id=group_id, visible=True) except Group.DoesNotExist: return error_page(request, u"小组不存在") - return render(request, "oj/group/group.html", {"group": group}) + joined = True + try: + UserGroupRelation.objects.get(user=request.user, group=group) + except UserGroupRelation.DoesNotExist: + joined = False + return render(request, "oj/group/group.html", {"group": group, "joined": joined}) @login_required diff --git a/static/src/js/app/admin/group/groupDetail.js b/static/src/js/app/admin/group/groupDetail.js index 9edc2355..6df05afa 100644 --- a/static/src/js/app/admin/group/groupDetail.js +++ b/static/src/js/app/admin/group/groupDetail.js @@ -18,7 +18,7 @@ require(["jquery", "avalon", "csrfToken", "bsAlert", "validator"], function ($, name: "", description: "", checkedSetting: "0", - + visible: true, getNext: function () { if (!vm.nextPage) return; @@ -103,6 +103,7 @@ require(["jquery", "avalon", "csrfToken", "bsAlert", "validator"], function ($, vm.name = data.data.name; vm.description = data.data.description; vm.checkedSetting = data.data.join_group_setting.toString(); + vm.visible = data.data.visible; } else { bsAlert(data.data); @@ -123,7 +124,7 @@ require(["jquery", "avalon", "csrfToken", "bsAlert", "validator"], function ($, url: "/api/admin/group/", method: "put", data: {group_id: group_id, name: name, description: description, - join_group_setting: join_group_setting}, + join_group_setting: join_group_setting, visible:vm.visible}, dataType: "json", success: function (data) { if (!data.code) { diff --git a/template/src/admin/group/group_detail.html b/template/src/admin/group/group_detail.html index cb1be1fe..71e54b5c 100644 --- a/template/src/admin/group/group_detail.html +++ b/template/src/admin/group/group_detail.html @@ -49,18 +49,24 @@
-{{ user.userprofile.mood }}
{% endif %} - {% if user.userprofile.school %} -{{ user.userprofile.school }}
- {% endif %} ++ {{ user.userprofile.school }} +
+ {% endif %} {% if user.userprofile.blog %} -+
{% endif %} diff --git a/template/src/oj/group/group.html b/template/src/oj/group/group.html index 3d9fa23c..bbf6c32b 100644 --- a/template/src/oj/group/group.html +++ b/template/src/oj/group/group.html @@ -15,7 +15,7 @@发布时间 : {{ group.create_time }} - 创建者 : {{ group.admin }} + 创建者 : {{ group.created_by }}
{{ group.description|safe }}