This commit is contained in:
starschen
2015-07-21 09:32:48 +08:00
commit 7d22fdf57f
40 changed files with 20163 additions and 0 deletions

83
templates/admin/base.html Normal file
View 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>

View 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 &raquo;</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 &raquo;</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>
另用级差统计级差分数从2A共计13个级差。弃权级差为6。例如01号与02号对阵01号选手打到A02号选手打到10,则01号级差为13-10=302号则为-3。
</li>
<li>
将对阵过的所有对手的大分之和记为“小分”。例如01队三轮对手分别是02、03、04所得“大分”分别为2、2、002队在这三轮比赛中得“大分”分别为0、2、003队分别得0、2、204队分别得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 &raquo;</a>
</p>
</div>
</div>
<hr>
<footer>
<p>&copy; 中国矿业大学 2015</p>
</footer>
</div>
{%endblock%}

54
templates/ballot.html Normal file
View 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
View 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 %}