Attendance/templates/group_teach.html

250 lines
No EOL
16 KiB
HTML
Vendored
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Attendance 點名系統 2.0</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-F3w7mX95PdgyTmZZMECAngseQB83DfGTowi0iMjiWaeVhAn4FJkqJByhZMI3AhiU" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" integrity="sha512-1ycn6IcaQQ40/MKBW2W4Rhis/DbILU74C1vSrLJxCq57o941Ym01SwNsOMqvEBFlcgUa6xLiPY/NS5R+E6ztJQ==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<link rel="stylesheet" href="/static/allpages.css">
<link rel="shortcut icon" type="image/x-icon" href="/static/favicon.ico" />
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-H6D61RSBHR"></script>
<script src="/static/gtag.js"></script>
</head>
<body>
<div class="showTime"><span id="showTime"></span></div>
<div class="container">
<h1 class="margin-top">Group Class View | 分組課頁面</h1>
<h2>[{{currDate}}]</h2>
<a href="/logout"><button class="btn btn-primary margin-top logout">Logout 登出</button></a>
<a href="/select"><button class="btn btn-primary margin-top logout">Choose Subuser 選擇其他帳號</button></a>
<select name="date" id="date" class="form-select logout" onchange="chgDate();">
{% for date in range(dates|length) %}
{% if dates[date][0] == currDate %}
{% if date-2 >= 0 %}<option value="{{dates[date-2][0]}}">{{dates[date-2][0]}}</option>{% endif %}
{% if date-1 >= 0 %}<option value="{{dates[date-1][0]}}">{{dates[date-1][0]}}</option>{% endif %}
<option value="{{dates[date][0]}}" selected="selected">{{dates[date][0]}} ★</option>
{% for i in range(1,5) %}
{% if date+i < dates|length %}<option value="{{dates[date+i][0]}}">{{dates[date+i][0]}}</option>{%endif%}
{% endfor %}
{% endif %}
{% endfor %}
</select>
{% for c in data %}
{% for p in data[c] %}
{% if p == 'cdata' %}
{% continue %}
{% endif %}
<h3 class="nmb margin-top">Period {{p}}: {{data[c]['cdata']['name']}}</h3>
<form action="/manage/group_teach_publish" id="attendanceData^{{p}}" method="post">
<input type="hidden" name="date" value="{{currDate}}">
<input type="hidden" name="period" value="{{p}}">
<input type="hidden" class="signatureData" name="signatureData" value="">
<input type="hidden" name="category" value="{{data[c]['cdata']['category']}}">
<input type="hidden" name="class_id" value="{{data[c]['cdata']['class_id']}}">
<input type="hidden" name="submissionType" class="submissionType" value="">
<div class="col" style="margin-top: 5px;">
<div class="row title sticky-top" style="background-color: white">
<div class="col">Grade 年級</div>
<div class="col">Number 座號</div>
<div class="col">Name 姓名</div>
<div class="col">English Name 英文名</div>
<div class="col">Period {{p}} | 第 {{p}} 節</div>
</div>
{% set need_fill = namespace(found=false) %}
{% set need_ds = namespace(found=false) %}
{% if data[c] != None %}
{% for grade in data[c][p] %}
{% for student in data[c][p][grade] %}
<div class="row">
<div class="col">{{grade}}</div>
<div class="col">{{ student }}</div>
<div class="col">{{ data[c][p][grade][student]['name'] }}</div>
<div class="col">{{ data[c][p][grade][student]['ename'] }}</div>
{% if data[c][p][grade][student]['status'] == 'L' %}
<div class="col">
<p class="highlightAbs n-3">𝜑 <span style="color:black">{{data[c][p][grade][student]['note']}}</span></p>
</div>
{% elif data[c][p][grade][student]['status'] == 'K' %}
<div class="col">
<p class="highlightAbs n-2"><span style="color:black">{{data[c][p][grade][student]['note']}}</span></p>
</div>
{% elif data[c][p][grade][student]['status'] == 'G' %}
<div class="col">
<p class="highlightAbs n-2"><span style="color:black">{{data[c][p][grade][student]['note']}}</span></p>
</div>
{% elif data[c][p][grade][student]['status'] == 'S' %}
<div class="col">
<p class="highlightAbs n-2"><span style="color:black">{{data[c][p][grade][student]['note']}}</span></p>
</div>
{% elif data[c][p][grade][student]['status'] == 'F' %}
<div class="col">
<p class="highlightAbs n-2"><span style="color:black">{{data[c][p][grade][student]['note']}}</span></p>
</div>
{% elif data[c][p][grade][student]['status'] == 'P' %}
<div class="col">
<p class="highlightAbs n-2"><span style="color:black">{{data[c][p][grade][student]['note']}}</span></p>
</div>
{% elif data[c][p][grade][student]['status'] == 'O' %}
<div class="col">
<p class="highlightAbs n-2"><span style="color:black">{{data[c][p][grade][student]['note']}}</span></p>
</div>
{% elif data[c][p][grade][student]['status'] == '--' %}
<div class="col">
<p class="highlightAbs">--</p>
</div>
{% elif data[c][p][grade][student]['status'] == 'present' %}
<div class="col">
<p class="highlightAbs n-1">V</p>
</div>
{% else %}
<div id="input^{{p}}^{{grade}}^{{student}}" class="col">
{% set need_fill.found = true %}
<input type="checkbox" class="tobeform {{grade}}^{{student}} late"
id="late^{{p}}^{{grade}}^{{student}}"
name="2^{{grade}}^{{student}}"
onchange="unCheckAbs('{{p}}^{{grade}}^{{student}}')">
<input type="checkbox" class="tobeform {{grade}}^{{student}} absent"
id="absent^{{p}}^{{grade}}^{{student}}"
name="1^{{grade}}^{{student}}"
onchange="unCheckLate('{{p}}^{{grade}}^{{student}}')">
</div>
{% endif %}
{% if data[c][p][grade][student]['needDS'] == True %}
{% set need_ds.found = true %}
{% endif %}
</div>
{% endfor %}
{% endfor %}
{% endif %}
{% if need_fill.found %}
<button class="btn btn-primary margin-bottom viewSignatureBtn" type="button"
onclick="viewSignature('{{p}}')">
↑ Confirm 確認 (Period {{p}}) ↑</button>
{% elif need_ds.found %}
<button class="btn btn-warning margin-bottom viewSignatureBtn" type="button"
onclick="signDS('{{p}}')">
↑ Confirm DS 定心專案 (Period {{p}}) ↑</button>
{% else %}
<button class="btn btn-primary margin-bottom viewSignatureBtn" type="button"
onclick="viewSignature('{{p}}')" disabled="disabled">
Already Submitted</button>
{% endif %}
<div id="sign-{{p}}" class="signDiv modal fade" id="staticBackdrop" data-bs-backdrop="static"
data-bs-keyboard="false" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered modal-xl">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="staticBackdropLabel">Please Sign Below 請在下方簽名</h5>
</div>
<div class="modal-body">
<div class="alert alert-warning margin-top" id="allPresentWarning-{{p}}" role="alert"
hidden="hidden">
<h4 class="alert-heading">請確認是否全班全到Please check if everyone is present!</h4>
</div>
<div class="forSign"><canvas id="signature_pad^{{p}}"></canvas></div>
<h3 class="margin-top">Notes 備註欄</h3>
<input type="textarea" class="form-control" name="notes" id="subjectNotes^{{p}}"
placeholder="Enter Notes 請輸入備註" style="width: 80%; margin-left: 10%;" row="3">
<style>
#indds div {
padding-left: 0;
}
#indds button {
margin-top: 0;
}
</style>
</div>
<div class="modal-footer">
<button class="btn btn-secondary" type="button" onclick="signaturePad.clear()">Clear
Signature 清除簽名</button>
<button type="button" class="btn btn-danger" onclick="location.reload();">Cancel
取消</button>
<button type="button" class="btn btn-primary submitButton" onclick="submitForm()">Submit
提交</button>
</div>
</div>
</div>
</div>
<div id="ds-{{p}}" class="signDiv modal fade" id="staticBackdrop" data-bs-backdrop="static"
data-bs-keyboard="false" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true">
<div class="modal-dialog modal-xl">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="staticBackdropLabel">定心專案 DS</h5>
</div>
<div class="modal-body">
<div class="ds">
{% for i in range(dsboard|length) %}
<div class="row dsboard" style="width: 40%; margin-left: 30%;">
<div class="col col-4">
<span>{{dsboard[i]}}</span>
</div>
{% for j in range(6) %}
<div class="col">
<input class="form-check-input" type="radio" name="ds{{i+1}}" id="ds{{i+1}}{{j}}" value="{{j}}" {%if j==5%}checked{%endif%}>
<label class="form-check-label" for="ds{{i+1}}{{j}}">{{j}}</label>
</div>
{% endfor %}
</div>
{% endfor %}
<div id="indds" class="row margin-top" style="width: 90%; margin-left: 5%">
<div class="col-2">
<select class="form-select" name="dsnumbers" id="dsnumbersel">
<option value="">選擇號碼</option>
{% for grade in data[c][p] %}
{% for i in data[c][p][grade] %}
{% if data[c][p][grade][i]['needDS'] == True %}
<option value="{{grade}}-{{i}}-{{data[c][p][grade][i]['name']}}-{{data[c][p][grade][i]['ename']}}">{{grade}}-{{i}}-{{data[c][p][grade][i]['name']}}-{{data[c][p][grade][i]['ename']}}</option>
{% endif %}
{% endfor %}
{% endfor %}
</select>
</div>
<div class="col-4">
<select name="dsoffense" id="dsoffensesel" class="form-select">
<option value="">選擇違規事由</option>
{% for i in dsoffenses %}
<option value="{{i}}-{{dsoffenses[i]}}">{{i}}-{{dsoffenses[i]}}</option>
{% endfor %}
</select>
</div>
<div class="col-5">
<input type="text" class="form-control" name="dsoffenseother" id="dsoffenseother" placeholder="Other">
</div>
<div class="col noborder"><button type="button" class="btn btn-secondary nomargin-top" onclick="addDS()"><i class="fas fa-plus"></i></button></div>
</div>
<div id="inddsview" class="margin-top" style="width: 90%; margin-left: 5%;"><div class="col"></div></div>
</div>
<h3 class="margin-top">Notes 備註欄</h3>
<input type="textarea" class="form-control" name="notes" id="dsNotesEnter"
placeholder="Enter Notes 請輸入備註" style="width: 80%; margin-left: 10%;" row="3">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-danger" onclick="location.reload();">Cancel 取消</button>
<button type="button" class="btn btn-primary" onclick="submitDSForm()">Submit 提交</button>
</div>
</div>
</div>
</div>
</div>
</form>
{% endfor %}
{% endfor %}
</div>
<script src=" https://cdn.jsdelivr.net/npm/signature_pad@2.3.2/dist/signature_pad.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"
integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p"
crossorigin="anonymous"></script>
{% include 'footer.html' %}
<script src="/static/pagejs/group_teach.js"></script>
<script src="/static/time.js"></script>
</body>
</html>