Merge branch 'dev' into sxw-dev

Conflicts:
	template/admin/announcement/announcement.html
This commit is contained in:
sxw
2015-08-08 11:31:20 +08:00
11 changed files with 122 additions and 146 deletions

View File

@@ -1,39 +0,0 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
import account.models
class Migration(migrations.Migration):
dependencies = [
]
operations = [
migrations.CreateModel(
name='User',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('password', models.CharField(max_length=128, verbose_name='password')),
('last_login', models.DateTimeField(null=True, verbose_name='last login', blank=True)),
('username', models.CharField(unique=True, max_length=30)),
('real_name', models.CharField(max_length=30, null=True, blank=True)),
('email', models.EmailField(max_length=254, null=True, blank=True)),
('create_time', models.DateTimeField(auto_now_add=True)),
('admin_type', models.IntegerField(default=0)),
],
options={
'db_table': 'user',
},
managers=[
('objects', account.models.UserManager()),
],
),
migrations.CreateModel(
name='AdminGroup',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
],
),
]

View File

@@ -1,26 +0,0 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
import account.models
class Migration(migrations.Migration):
dependencies = [
('account', '0001_initial'),
]
operations = [
migrations.AlterModelManagers(
name='user',
managers=[
(b'objects', account.models.UserManager()),
],
),
migrations.AddField(
model_name='user',
name='real_name',
field=models.CharField(max_length=30, null=True, blank=True),
),
]

View File

@@ -1,19 +0,0 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
class Migration(migrations.Migration):
dependencies = [
('account', '0002_auto_20150731_2310'),
]
operations = [
migrations.AddField(
model_name='user',
name='email',
field=models.EmailField(max_length=254, null=True, blank=True),
),
]

View File

@@ -1,23 +0,0 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
class Migration(migrations.Migration):
dependencies = [
('account', '0003_user_email'),
]
operations = [
migrations.RemoveField(
model_name='user',
name='admin_group',
),
migrations.AddField(
model_name='user',
name='admin_type',
field=models.IntegerField(default=0),
),
]

View File

@@ -19,7 +19,7 @@ class UserLoginAPIView(APIView):
---
request_serializer: UserLoginSerializer
"""
serializer = UserLoginSerializer(data=request.DATA)
serializer = UserLoginSerializer(data=request.data)
if serializer.is_valid():
data = serializer.data
user = auth.authenticate(username=data["username"], password=data["password"])
@@ -40,7 +40,7 @@ class UserRegisterAPIView(APIView):
---
request_serializer: UserRegisterSerializer
"""
serializer = UserRegisterSerializer(data=request.DATA)
serializer = UserRegisterSerializer(data=request.data)
if serializer.is_valid():
data = serializer.data
try:
@@ -68,7 +68,7 @@ class UserChangePasswordAPIView(APIView):
---
request_serializer: UserChangePasswordSerializer
"""
serializer = UserChangePasswordSerializer(data=request.DATA)
serializer = UserChangePasswordSerializer(data=request.data)
if serializer.is_valid():
data = serializer.data
user = auth.authenticate(username=data["username"], password=data["old_password"])
@@ -89,7 +89,7 @@ class UsernameCheckAPIView(APIView):
---
request_serializer: UsernameCheckSerializer
"""
serializer = UsernameCheckSerializer(data=request.DATA)
serializer = UsernameCheckSerializer(data=request.data)
if serializer.is_valid():
try:
User.objects.get(username=serializer.data["username"])
@@ -107,7 +107,7 @@ class EmailCheckAPIView(APIView):
---
request_serializer: EmailCheckSerializer
"""
serializer = EmailCheckSerializer(data=request.DATA)
serializer = EmailCheckSerializer(data=request.data)
if serializer.is_valid():
try:
User.objects.get(email=serializer.data["email"])
@@ -148,7 +148,7 @@ class UserAdminAPIView(APIView):
request_serializer: EditUserSerializer
response_serializer: UserSerializer
"""
serializer = EditUserSerializer(data=request.DATA)
serializer = EditUserSerializer(data=request.data)
if serializer.is_valid():
data = serializer.data
try:

View File

@@ -17,7 +17,7 @@ class AnnouncementAdminAPIView(APIView):
---
request_serializer: CreateAnnouncementSerializer
"""
serializer = CreateAnnouncementSerializer(data=request.DATA)
serializer = CreateAnnouncementSerializer(data=request.data)
if serializer.is_valid():
data = serializer.data
Announcement.objects.create(title=data["title"],
@@ -34,7 +34,7 @@ class AnnouncementAdminAPIView(APIView):
request_serializer: EditAnnouncementSerializer
response_serializer: AnnouncementSerializer
"""
serializer = EditAnnouncementSerializer(data=request.DATA)
serializer = EditAnnouncementSerializer(data=request.data)
if serializer.is_valid():
data = serializer.data
try:

View File

@@ -1,42 +1,47 @@
define("admin", ["jquery", "avalon"], function($, avalon){
function li_active(selector){
$(selector).attr("class", "list-group-item active");
}
define("admin", ["jquery", "avalon"], function ($, avalon) {
function li_inactive(selector){
$(".list-group-item").attr("class", "list-group-item");
}
avalon.ready(function () {
function show_template(url){
$("#loading-gif").show();
vm.template_url = url;
}
var vm = avalon.define({
$id: "admin",
template_url: "template/index/index.html",
hide_loading: function(){
$("#loading-gif").hide();
function li_active(selector) {
$(selector).attr("class", "list-group-item active");
}
});
var hash = window.location.hash.substring(1);
function li_inactive(selector) {
$(".list-group-item").attr("class", "list-group-item");
}
if(hash){
li_active("#li-" + hash.replace("/", "-"));
show_template("template/" + hash + ".html");
}else {
li_active("#li-index-index");
}
function show_template(url) {
$("#loading-gif").show();
vm.template_url = url;
}
window.onhashchange = function() {
var hash = window.location.hash.substring(1);
if(hash){
li_inactive(".list-group-item");
li_active("#li-" + hash.replace("/", "-"));
show_template("template/" + hash + ".html");
if (!hash) {
hash = "index/index";
}
};
var vm = avalon.define({
$id: "admin",
template_url: "template/" + hash + ".html",
hide_loading: function () {
$("#loading-gif").hide();
}
});
avalon.scan();
li_active("#li-" + hash.replace("/", "-"));
window.onhashchange = function () {
var hash = window.location.hash.substring(1);
if (hash) {
li_inactive(".list-group-item");
li_active("#li-" + hash.replace("/", "-"));
show_template("template/" + hash + ".html");
}
};
});
});

View File

@@ -0,0 +1,56 @@
require(["jquery", "chart"], function ($, Chart) {
var data = {
labels: ["January", "February", "March", "April", "May", "June", "July",
"January", "February", "March", "April", "January", "February", "March", "April"],
datasets: [
{
label: "11111111",
fillColor: "rgba(220,220,220,0.2)",
strokeColor: "rgba(220,220,220,1)",
pointColor: "rgba(220,220,220,1)",
pointStrokeColor: "#fff",
pointHighlightFill: "#fff",
pointHighlightStroke: "rgba(220,220,220,1)",
data: [10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]
},
{
label: "2222222",
fillColor: "rgba(151,187,205,0.2)",
strokeColor: "rgba(151,187,205,1)",
pointColor: "rgba(151,187,205,1)",
pointStrokeColor: "#fff",
pointHighlightFill: "#fff",
pointHighlightStroke: "rgba(151,187,205,1)",
data: [3, 7, 8, 9, 1, 4, 10, 10, 9, 8, 7, 10, 10, 10, 10]
}
]
};
Chart.defaults.global.responsive = true;
var myLineChart = new Chart($("#myChart").get(0).getContext("2d")).Line(data);
var data1 = [
{
value: 300,
color:"#F7464A",
highlight: "#FF5A5E",
label: "Red"
},
{
value: 50,
color: "#46BFBD",
highlight: "#5AD3D1",
label: "Green"
},
{
value: 100,
color: "#FDB45C",
highlight: "#FFC870",
label: "Yellow"
}
];
new Chart($("#c1").get(0).getContext("2d")).Pie(data1);
new Chart($("#c2").get(0).getContext("2d")).Pie(data1);
});

View File

@@ -16,6 +16,7 @@ var require = {
contest: "app/admin/contest/contest",
csrf: "utils/csrf",
admin: "app/admin/admin",
chart: "lib/chart/Chart",
//formValidation 不要在代码中单独使用而是使用和修改utils/validation
base: "lib/formValidation/base",

View File

@@ -0,0 +1,21 @@
<div ms-controller="monitor" class="col-lg-9">
<h1>服务器监控</h1>
<div>
<h3>判题实例数量</h3>
<div>
<canvas id="myChart" style="min-width:100%;max-height: 300px;"></canvas>
<div style="text-align: center;">判题实例数量变化</div>
</div>
<div style="width: 50%;float: left;">
<canvas id="c1" width="250" height="125"></canvas>
<div style="text-align: center;">内存</div>
</div>
<div style="width: 50%;float: left;">
<canvas id="c2" width="250" height="125"></canvas>
<div style="text-align: center"> cpu</div>
</div>
</div>
<script src="/static/js/app/admin/monitor/monitor.js"></script>
</div>