Merge branch 'dev' into new-arch

* dev: (27 commits)
  统一get参数格式
  修改一些错误
  这个是刚才api地方的,忘了add上了
  修改较多,涉及到小组管理员对比赛的管理,小组管理员可以看到他管理的小组的其他管理员创建的比赛,但看不到别人的题目,但是可以从前台看到比赛的题目,可以在比赛开始前测试题目
  修改小组列表模板,适应数据库的修改
  添加提升小组管理员的api,调整小组管理权限的认证方式
  修改后台小组管理功能添加设为管理员按钮,方便添加多管理员
  修改group的models添加小组管理员的多对多字段,把原来的管理员字段重命名为创建者
  修改学校判断和自动统一队形的方法
  统一格式
  注释掉了用户主页里还没有后端配套的submission部分,添加学校显示,修复了settings里codeforces用户名无法编辑的问题,原来是html里边拼错了
  统一userprofile字段的处理方式,都判断是否为none,修复typo
  修改settings中语言为新版本的'zh-hans'
  针对添加学号字段对页面的一些修改,注册是学校为青岛大学则显示学号字段,在user settings页面显示学号,并提供修改
  在UserProfile中添加学号字段
  吧if 。。。or...改成 if in
  修改错误
  验证小组邀请赛密码
  contest list 添加小组邀请赛和私有小组赛
  添加小组邀请赛
  ...
This commit is contained in:
virusdefender
2015-12-09 20:49:27 +08:00
32 changed files with 352 additions and 83 deletions

View File

@@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9 on 2015-12-08 06:22
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('account', '0014_auto_20151110_1037'),
]
operations = [
migrations.AddField(
model_name='userprofile',
name='student_id',
field=models.CharField(blank=True, max_length=15, null=True),
),
]

View File

@@ -70,6 +70,7 @@ class UserProfile(models.Model):
problems_status = JSONField(default={})
phone_number = models.CharField(max_length=15, blank=True, null=True)
school = models.CharField(max_length=200, blank=True, null=True)
student_id = models.CharField(max_length=15, blank=True, null=True)
class Meta:
db_table = "user_profile"

View File

@@ -25,6 +25,7 @@ class UserRegisterSerializer(serializers.Serializer):
password = serializers.CharField(max_length=30, min_length=6)
email = serializers.EmailField(max_length=254)
captcha = serializers.CharField(max_length=4, min_length=4)
student_id = serializers.CharField(max_length=15, required=False, default=None)
class UserChangePasswordSerializer(serializers.Serializer):
@@ -74,6 +75,7 @@ class EditUserProfileSerializer(serializers.Serializer):
codeforces_username = serializers.CharField(max_length=30, required=False, allow_blank=True, default='')
school = serializers.CharField(max_length=200, required=False, allow_blank=True, default='')
phone_number = serializers.CharField(max_length=15, required=False, allow_blank=True, default='')
student_id = serializers.CharField(max_length=15, required=False, default="")
class UserProfileSerializer(serializers.ModelSerializer):
@@ -81,4 +83,4 @@ class UserProfileSerializer(serializers.ModelSerializer):
class Meta:
model = UserProfile
fields = ["avatar", "blog", "mood", "hduoj_username", "bestcoder_username", "codeforces_username",
"rank", "accepted_number", "submissions_number", "problems_status", "phone_number", "school"]
"rank", "accepted_number", "submissions_number", "problems_status", "phone_number", "school", "student_id"]

View File

@@ -97,7 +97,7 @@ class UserRegisterAPIView(APIView):
email=data["email"])
user.set_password(data["password"])
user.save()
UserProfile.objects.create(user=user, school=data["school"])
UserProfile.objects.create(user=user, school=data["school"], student_id=data["student_id"])
return success_response(u"注册成功!")
else:
return serializer_invalid_response(serializer)
@@ -262,6 +262,7 @@ class UserProfileAPIView(APIView):
user_profile.codeforces_username = data["codeforces_username"]
user_profile.blog = data["blog"]
user_profile.school = data["school"]
user_profile.student_id = data["student_id"]
user_profile.phone_number = data["phone_number"]
user_profile.save()
return success_response(u"修改成功")