diff --git a/account/migrations/0001_initial.py b/account/migrations/0001_initial.py deleted file mode 100644 index 03d5584..0000000 --- a/account/migrations/0001_initial.py +++ /dev/null @@ -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)), - ], - ), - ] diff --git a/account/migrations/0002_auto_20150731_2310.py b/account/migrations/0002_auto_20150731_2310.py deleted file mode 100644 index 73f1b6a..0000000 --- a/account/migrations/0002_auto_20150731_2310.py +++ /dev/null @@ -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), - ), - ] diff --git a/account/migrations/0003_user_email.py b/account/migrations/0003_user_email.py deleted file mode 100644 index 780afc3..0000000 --- a/account/migrations/0003_user_email.py +++ /dev/null @@ -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), - ), - ] diff --git a/account/migrations/0004_auto_20150806_1645.py b/account/migrations/0004_auto_20150806_1645.py deleted file mode 100644 index d3d2225..0000000 --- a/account/migrations/0004_auto_20150806_1645.py +++ /dev/null @@ -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), - ), - ] diff --git a/account/migrations/__init__.py b/account/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/account/views.py b/account/views.py index ec29f97..e128782 100644 --- a/account/views.py +++ b/account/views.py @@ -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: diff --git a/announcement/views.py b/announcement/views.py index a96b1f1..654d91a 100644 --- a/announcement/views.py +++ b/announcement/views.py @@ -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: diff --git a/static/src/js/app/admin/admin.js b/static/src/js/app/admin/admin.js index 4145a45..9c17e41 100644 --- a/static/src/js/app/admin/admin.js +++ b/static/src/js/app/admin/admin.js @@ -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"); + } + }; + }); }); \ No newline at end of file diff --git a/static/src/js/app/admin/monitor/monitor.js b/static/src/js/app/admin/monitor/monitor.js new file mode 100644 index 0000000..66a4574 --- /dev/null +++ b/static/src/js/app/admin/monitor/monitor.js @@ -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); + +}); \ No newline at end of file diff --git a/static/src/js/config.js b/static/src/js/config.js index 67bb9b6..2f730b4 100644 --- a/static/src/js/config.js +++ b/static/src/js/config.js @@ -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", diff --git a/template/admin/monitor/monitor.html b/template/admin/monitor/monitor.html new file mode 100644 index 0000000..07a4ba1 --- /dev/null +++ b/template/admin/monitor/monitor.html @@ -0,0 +1,21 @@ +