init
This commit is contained in:
83
templates/admin/base.html
Normal file
83
templates/admin/base.html
Normal file
@@ -0,0 +1,83 @@
|
||||
{% import 'admin/layout.html' as layout with context -%}
|
||||
{% import 'admin/static.html' as admin_static with context %}
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>{% block title %}{% if admin_view.category %}{{ admin_view.category }} - {% endif %}{{ admin_view.name }} - {{ admin_view.admin.name }}{% endblock %}</title>
|
||||
{% block head_meta %}
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
{% endblock %}
|
||||
{% block head_css %}
|
||||
<link href="{{ admin_static.url(filename='bootstrap/bootstrap3/css/bootstrap.min.css') }}" rel="stylesheet">
|
||||
<link href="{{ admin_static.url(filename='bootstrap/bootstrap3/css/bootstrap-theme.min.css') }}" rel="stylesheet">
|
||||
<link href="{{ admin_static.url(filename='admin/css/bootstrap3/admin.css') }}" rel="stylesheet">
|
||||
<style>
|
||||
body {
|
||||
padding-top: 4px;
|
||||
}
|
||||
</style>
|
||||
{% endblock %}
|
||||
{% block head %}
|
||||
{% endblock %}
|
||||
{% block head_tail %}
|
||||
{% endblock %}
|
||||
</head>
|
||||
<body>
|
||||
{% block page_body %}
|
||||
<div class="container-fluid">
|
||||
<nav class="navbar navbar-default" role="navigation">
|
||||
<!-- Brand and toggle get grouped for better mobile display -->
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#admin-navbar-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
{% block brand %}
|
||||
<a class="navbar-brand" href="#">{{ admin_view.admin.name }}</a>
|
||||
{% endblock %}
|
||||
</div>
|
||||
<!-- navbar content -->
|
||||
<div class="collapse navbar-collapse" id="admin-navbar-collapse">
|
||||
{% block main_menu %}
|
||||
<ul class="nav navbar-nav">
|
||||
{{ layout.menu() }}
|
||||
</ul>
|
||||
{% endblock %}
|
||||
|
||||
{% block menu_links %}
|
||||
<ul class="nav navbar-right">
|
||||
{{ layout.menu_links() }}
|
||||
</ul>
|
||||
{% endblock %}
|
||||
{% block access_control %}
|
||||
{% endblock %}
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
{% block messages %}
|
||||
{{ layout.messages() }}
|
||||
{% endblock %}
|
||||
|
||||
{% set render_ctx = h.resolve_ctx() %}
|
||||
|
||||
{% block body %}{% endblock %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block tail_js %}
|
||||
<script src="{{ admin_static.url(filename='vendor/jquery-2.1.1.min.js') }}" type="text/javascript"></script>
|
||||
<script src="{{ admin_static.url(filename='bootstrap/bootstrap3/js/bootstrap.min.js') }}" type="text/javascript"></script>
|
||||
<script src="{{ admin_static.url(filename='vendor/moment-2.8.4.min.js') }}" type="text/javascript"></script>
|
||||
<script src="{{ admin_static.url(filename='vendor/select2/select2.min.js') }}" type="text/javascript"></script>
|
||||
{% endblock %}
|
||||
|
||||
{% block tail %}
|
||||
{% endblock %}
|
||||
</body>
|
||||
</html>
|
||||
66
templates/admin/index.html
Normal file
66
templates/admin/index.html
Normal file
@@ -0,0 +1,66 @@
|
||||
{% extends 'admin/master.html' %}
|
||||
{% block body %}
|
||||
<!-- Main jumbotron for a primary marketing message or call to action -->
|
||||
<div class="jumbotron">
|
||||
<div class="container">
|
||||
<h1>简介</h1>
|
||||
<p>
|
||||
掼蛋比赛的管理与组织软件是基于web平台设计的。对于徐州市牌协过去掼蛋比赛都要人工抽签评分,参赛单位人员较多,经常出现细节错误的问题,提出用软件实现对阵抽签,每轮得分录入以及每轮排名,直至最后决出冠军。在此过程中可自动生成所需表单。软件的特点是界面操作简单,易学易用,实用性强,应用范围针对性强,提升工作效率。
|
||||
</p>
|
||||
<p>
|
||||
<a class="btn btn-primary btn-lg" href="#" role="button">Learn more »</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<!-- Example row of columns -->
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h2>抽签原则</h2>
|
||||
<p>
|
||||
抽签按照两种规则供用户选择,随机抽签或是顺序抽签。
|
||||
<ol>
|
||||
<li>首次即第一轮抽签根据基本信息抽签并生成桌号(比赛位置);</li>
|
||||
<li>第二轮为方便操作,按相邻两桌,赢者对赢者,输者对输者对阵;</li>
|
||||
<li>从第三轮开始,大分(见评分规则)相同者对阵,如大分相同者为奇数对时,级差最后一名和大分低一级中级差最高的对阵;</li>
|
||||
<li>对阵过的选手不再对阵(最后一轮除外)。</li>
|
||||
<li>抽签回避原则:隶属于同一公司的队伍不能对阵(除争前三名)如队伍编号01A与01B不能在比赛中相遇 。</li>
|
||||
</ol>
|
||||
</p>
|
||||
<p>
|
||||
<a class="btn btn-default" href="#" role="button">View details »</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<h2>评分规则</h2>
|
||||
<p>
|
||||
评分规则如下(此次均采用赛号说明):
|
||||
<ol>
|
||||
<li>
|
||||
采用积分制。胜2分,负0分,弃权-1分。每轮比赛得分相加的和称为“大分”。例如赛号为02的队伍第一轮胜2分,第二轮胜2分,第三轮负0分,则三轮比赛后02队大分为2+2+0=4分。
|
||||
</li>
|
||||
<li>
|
||||
另用级差统计级差分数,从2~A共计13个级差。弃权级差为6。例如01号与02号对阵,01号选手打到A,02号选手打到10,则01号级差为13-10=3,02号则为-3。
|
||||
</li>
|
||||
<li>
|
||||
将对阵过的所有对手的大分之和记为“小分”。例如01队三轮对手分别是02、03、04,所得“大分”分别为2、2、0,02队在这三轮比赛中得“大分”分别为0、2、0,03队分别得0、2、2,04队分别得2、2、2,则A的“大分”为2+2+0=4,“小分”为0+2+0+0+2+2+2+2+2=12。
|
||||
</li>
|
||||
<li>弃权只计入大分,不计入小分。</li>
|
||||
<li>评分标准先比较大分,再比较小分,最后比较级差。</li>
|
||||
<li>团体分算法:0X类算一个团体分。</li>
|
||||
</ol>
|
||||
</p>
|
||||
<p>
|
||||
<a class="btn btn-default" href="#" role="button">View details »</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
|
||||
<footer>
|
||||
<p>© 中国矿业大学 2015</p>
|
||||
</footer>
|
||||
</div>
|
||||
{%endblock%}
|
||||
54
templates/ballot.html
Normal file
54
templates/ballot.html
Normal file
@@ -0,0 +1,54 @@
|
||||
{% extends 'admin/master.html' %}
|
||||
|
||||
{% block body %}
|
||||
<div class="row">
|
||||
<div class="col-md-2">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">抽签方式</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<form method="POST">
|
||||
{% for field in form %}
|
||||
<div class="form-group">
|
||||
<label for="{{ field.id }}">{{ field.label.text }}</label>
|
||||
{{field(class_="form-control")}}
|
||||
</div>
|
||||
{% endfor %}
|
||||
<button type="submit" class="btn btn-success btn-block">抽签</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-10">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">抽签结果</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
{%if round%}<h5>已赛轮次:{{round - 1}}</h5 >{%endif%}
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>轮次</th>
|
||||
<th>桌号</th>
|
||||
<th>红方</th>
|
||||
<th>蓝方</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{%for result in ballot_results%}
|
||||
<tr>
|
||||
<td>{{round}}</td>
|
||||
<td>{{result['desk_no']}}</td>
|
||||
<td>{{result['red']}}</td>
|
||||
<td>{{result['blue']}}</td>
|
||||
</tr>
|
||||
{%endfor%}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
94
templates/rank.html
Normal file
94
templates/rank.html
Normal file
@@ -0,0 +1,94 @@
|
||||
{% extends 'admin/master.html' %}
|
||||
{% block head_css %}
|
||||
{{ super() }}
|
||||
<link rel="stylesheet" href="/static/css/jquery.dataTables.css">
|
||||
<link rel="stylesheet" href="/static/css/dataTables.tableTools.css">
|
||||
{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
<div class="row">
|
||||
<div class="col-md-2">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">排名方式</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<form method="POST">
|
||||
{% for field in form %}
|
||||
<div class="form-group">
|
||||
<label for="{{ field.id }}">{{ field.label.text }}</label>
|
||||
{{field(class_="form-control")}}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</form>
|
||||
<button type="submit" class="btn btn-success btn-block" onclick="rank()">查看排名</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-10">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">排名结果</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<table id="example" class="display" cellspacing="0" width="100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>排名</th>
|
||||
<th>队伍/单位</th>
|
||||
<th>总大分</th>
|
||||
<th>总小分</th>
|
||||
<th>总级差</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block tail_js %}
|
||||
{{ super() }}
|
||||
<script src="/static/js/jquery.dataTables.js"></script>
|
||||
<script src="/static/js/dataTables.tableTools.js"></script>
|
||||
<script>
|
||||
function createDataTable(url){
|
||||
$('#example').dataTable({
|
||||
"destroy": true,
|
||||
"dom": 'T<"clear">lfrtip',
|
||||
"tableTools": {
|
||||
"sSwfPath": "/static/swf/copy_csv_xls_pdf.swf"
|
||||
},
|
||||
"ajax": {
|
||||
"url": url,
|
||||
"dataSrc": ""
|
||||
},
|
||||
"columns": [
|
||||
{ "data": "rank" },
|
||||
{ "data": "rank_type" },
|
||||
{ "data": "total_score" },
|
||||
{ "data": "total_sscore" },
|
||||
{ "data": "total_diff" },
|
||||
]
|
||||
});
|
||||
};
|
||||
|
||||
function rank()
|
||||
{
|
||||
var game = $('#game').val();
|
||||
var rank_type = $('#rank_type').val();
|
||||
var url;
|
||||
if(rank_type == 'team')
|
||||
{
|
||||
url = "{{url_for('.team_rank_ajax')}}";
|
||||
}
|
||||
else
|
||||
{
|
||||
url = "{{url_for('.company_rank_ajax')}}";
|
||||
}
|
||||
url += "?game="+game;
|
||||
createDataTable(url);
|
||||
}
|
||||
</script>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user