Accept Merge Request #309 完善小组比赛的功能 : (dev-group -> dev)

Merge Request: 完善小组比赛的功能
Created By: @virusdefender
Accepted By: @virusdefender
URL: https://coding.net/u/virusdefender/p/qduoj/git/merge/309
This commit is contained in:
virusdefender
2015-12-09 20:47:58 +08:00
33 changed files with 353 additions and 84 deletions

View File

@@ -103,14 +103,7 @@ require(["jquery", "avalon", "csrfToken", "bsAlert", "bootstrap"], function ($,
}
});
vm.$watch("showGroupDetailPage", function (groupId) {
vm.groupId = groupId;
vm.template_url = "template/group/group_detail.html";
});
vm.$watch("showGroupListPage", function () {
vm.template_url = "template/group/group.html";
});
avalon.scan();

View File

@@ -22,6 +22,10 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert", "csrfToken", "date
selectedGroups.push(vm.allGroups[i].id);
}
}
if (vm.password) {
ajaxData.password = vm.password;
ajaxData.contest_type = 3;
}
ajaxData.groups = selectedGroups;
}
else {

View File

@@ -23,6 +23,10 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert", "csrfToken", "date
selectedGroups.push(vm.allGroups[i].id);
}
}
if (vm.password) {
ajaxData.password = vm.password;
ajaxData.contest_type = 3;
}
ajaxData.groups = selectedGroups;
}
else {
@@ -131,7 +135,7 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert", "csrfToken", "date
vm.startTime = contest.start_time.substring(0, 16).replace("T", " ");
vm.endTime = contest.end_time.substring(0, 16).replace("T", " ");
vm.password = contest.password;
if (contest.contest_type == 0) { //contest_type == 0, 小组内比赛
if (contest.contest_type == 0 || contest.contest_type == 3) { //contest_type == 0, 小组内比赛
vm.isGlobal = false;
for (var i = 0; i < vm.allGroups.length; i++) {
vm.allGroups[i].isSelected = false;

View File

@@ -1,7 +1,30 @@
require(["jquery", "avalon", "csrfToken", "bsAlert"], function ($, avalon, csrfTokenHeader, bsAlert) {
require(["jquery", "avalon", "csrfToken", "bsAlert", "validator"], function ($, avalon, csrfTokenHeader, bsAlert) {
avalon.ready(function () {
//avalon.vmodels.group = null;
$('#add-group-form').validator().on('submit', function (e) {
if (!e.isDefaultPrevented()) {
var name = vm.name;
var description = vm.description;
var join_group_setting = vm.group_type;
$.ajax({
beforeSend: csrfTokenHeader,
url: "/api/admin/group/",
method: "post",
data: {name: name, description: description, join_group_setting: join_group_setting},
dataType: "json",
success: function (data) {
if (!data.code) {
getPageData(1);
bsAlert("添加成功");
}
else {
bsAlert(data.data);
}
}
});
return false;
}
})
if (avalon.vmodels.group) {
var vm = avalon.vmodels.group;
}
@@ -16,7 +39,9 @@ require(["jquery", "avalon", "csrfToken", "bsAlert"], function ($, avalon, csrfT
page: 1, // 当前页数
totalPage: 1, // 总页数
keyword: "",
name: "",
description: "",
group_type: 0,
getNext: function () {
if (!vm.nextPage)
return;
@@ -42,8 +67,10 @@ require(["jquery", "avalon", "csrfToken", "bsAlert"], function ($, avalon, csrfT
getGroupSettingString: function (setting) {
return {0: "允许任何人加入", 1: "提交请求后管理员审核", 2: "不允许任何人加入"}[setting]
},
showGroupDetailPage: function (groupId) {
vm.$fire("up!showGroupDetailPage", groupId);
avalon.vmodels.admin.groupId = groupId;
avalon.vmodels.admin.template_url = "template/group/group_detail.html";
}
});
}

View File

@@ -1,6 +1,5 @@
require(["jquery", "avalon", "csrfToken", "bsAlert", "validator"], function ($, avalon, csrfTokenHeader, bsAlert) {
// avalon:定义模式 group_list
avalon.ready(function () {
@@ -53,7 +52,20 @@ require(["jquery", "avalon", "csrfToken", "bsAlert", "validator"], function ($,
})
},
showGroupListPage: function () {
avalon.vmodels.admin.template_url = "template/group/group.html";
vm.$fire("up!showGroupListPage");
},
promotAsAdmin: function (relation) {
$.ajax({
beforeSend: csrfTokenHeader,
url: "/api/admin/group/promot_as_admin/",
method: "post",
data: JSON.stringify({group_id: relation.group, user_id: relation.user.id}),
contentType: "application/json;charset=UTF-8",
success: function (data) {
bsAlert(data.data);
}
})
}
});
}

View File

@@ -1,16 +1,18 @@
require(["jquery", "bsAlert", "csrfToken", "validator"], function ($, bsAlert, csrfTokenHeader) {
$("#stu_id").hide();
$('form').validator().on('submit', function (e) {
if (!e.isDefaultPrevented()) {
var username = $("#username").val();
var realName = $("#real_name").val();
var school = $('#school').val();
var student_id = $('#student_id').val();
var password = $("#password").val();
var email = $("#email").val();
var captcha = $("#captcha").val();
$.ajax({
beforeSend: csrfTokenHeader,
url: "/api/register/",
data: {username: username, school: school, real_name: realName, password: password, email: email, captcha:captcha},
data: {username: username, school: school, student_id: student_id, real_name: realName, password: password, email: email, captcha: captcha},
dataType: "json",
method: "post",
success: function (data) {
@@ -29,6 +31,14 @@ require(["jquery", "bsAlert", "csrfToken", "validator"], function ($, bsAlert, c
return false;
}
});
$("#school").blur(function () {
var school = $("#school").val().trim(school).toLowerCase();
if (school == "青岛大学" || school == "qdu" || school == "青大") {
$("#stu_id").show();
$("#school").val("青岛大学");
}
});
function refresh_captcha() {
$("#captcha-img")[0].src = "/captcha/?" + Math.random();
$("#captcha")[0].value = "";

View File

@@ -8,7 +8,7 @@ require(["jquery", "bsAlert", "csrfToken", "validator"], function ($, bsAlert, c
var blog = $("#blog").val();
var mood = $("#mood").val();
var school = $("#school").val();
var student_id = $("#student_id").val();
$.ajax({
beforeSend: csrfTokenHeader,
url: "/api/account/userprofile/",
@@ -19,7 +19,8 @@ require(["jquery", "bsAlert", "csrfToken", "validator"], function ($, bsAlert, c
codeforces_username: codeforces_username,
blog: blog,
mood: mood,
school: school
school: school,
student_id: student_id
},
dataType: "json",
method: "put",

View File

@@ -3,9 +3,10 @@ require(["jquery", "csrfToken", "bsAlert"], function ($, csrfTokenHeader, bsAler
var message;
if ($("#applyMessage").length) {
message = $("#applyMessage").val();
if (!message)
if (!message) {
bsAlert("提交失败,请填写申请信息!");
return false;
}
}
var groupId = window.location.pathname.split("/")[2];