{% with messages = get_flashed_messages(with_categories=true) %}
{% for cat, msg in messages %}
{{ msg }}
{% endfor %}
{% endwith %}
π Generate Report
{% if role in ('principal','admin') and rtype in ('weekly','monthly') and not cls %}
β οΈ For Weekly/Monthly report It is necessary to select a class and section..
{% endif %}
{% set pivot_needs_class = role in ('principal','admin') and rtype in ('weekly','monthly') and not cls %}
{% if pivot_needs_class %}
β οΈ For the Weekly/Monthly report Please select Class first..
{% elif summary_mode and rows %}
Class: {{ cls }} | Section: {{ section }}
{{ rtype|title }} Report ({{ start_str }} β {{ end_str }})
π
{{ date_label }}
| Date |
T |
P |
A |
L |
H |
{% for r in rows %}
| {{ r["date"] }} |
{{ r["T"] }} |
{{ r["P"] }} |
{{ r["A"] }} |
{{ r["L"] }} |
{{ r["H"] }} |
{% endfor %}
π Shortcut used in Report file:
P = Present
L = Late
A = Absent
H = Half-Day
SW = Special Work
SX = Work Exit
EX = Early Exit
{% elif rows %}
| # |
Roll |
Name |
Class |
Sec |
Date |
Time In |
Time Out |
Status |
Remark |
{% for i, row in enumerate(rows, 1) %}
{% set st = (row["status"] or "Absent") %}
{% set _ds = ((row["roll_no"]|string if row["roll_no"] else "") ~ " " ~ (row["name"] or "") ~ " " ~ (row["class"]|string if row["class"] else "") ~ " " ~ (row["section"] or "") ~ " " ~ (row["date"] or "") ~ " " ~ st ~ " " ~ (row["remark"] or ""))|lower %}
| {{ i }} |
{{ row["roll_no"] or 'β' }} |
{{ row["name"] }} |
{{ row["class"] }} |
{{ row["section"] or 'β' }} |
{{ row["date"] }} |
{{ row["time_in"] or 'β' }} |
{{ row["time_out"] or 'β' }} |
{{ st }}
|
{{ row["remark"] or '' }} |
{% endfor %}
π Shortcut used in Report file:
P = Present
L = Late
A = Absent
H = Half-Day
SW = Special Work
SX = Work Exit
EX = Early Exit
{% elif request.args %}
π No records found for the selected filter.
{% endif %}
{% endblock %}