Jarvis/jarvis/core/templates/dashboard/dashboard.html

265 lines
12 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{% extends "base.html" %}
{% load static %}
{% block page_title %}Dashboard{% endblock %}
{% block content %}
<div class="row">
<div class="col-md-3">
<div class="card">
<div class="card-header">
<h4><i class="fal fa-quote-left text-danger"></i> Quote of the day</h4>
</div>
<div class="card-body text-justify pt-0 pb-0">
{{ quote.to_markdown | safe }}
</div>
<div class="card-footer pt-0 text-right text-muted">
{% if quote.author %}
<i>{{ quote.author }}</i>
{% endif %}
</div>
</div>
</div>
<div class="col-md-6">
<div class="card">
<div class="card-header">
<h4 class=""><i class="text-primary fal fa-laugh-wink"></i> Hi {{ user.first_name }} !</h4>
</div>
<div class="card-body text-justify pt-0">
<p>Welcome to Jarvi v1.0.5 <span class="text-muted">(last update : 14 may 2024)</span>.</p>
<p>This application is designed to assist coaches in managing gymnasts' progress, evaluations, routines, scores, and more. While this tool isn't flawless, please feel free to submit improvement suggestions, bug reports, or any feedback by sending an <a href="mailto:gregory@flyingacrobaticstrampoline.be?subject=Jarvis remarks">email</a>.</p>
</div>
</div>
</div>
<div class="col-md-3">
<div class="card">
<div class="card-header">
<h4><i class="fal fa-chart-area text-warning"></i> Statistics</h4>
</div>
<div class="card-body pt-0">
Week {{ week_number }}
<div class="w-lg m-x-auto">
<div class="progress-container progress-primary">
<div class="progress">
<div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="60"
aria-valuemin="0" aria-valuemax="100" style="width: {{ percentage_week }}%;"></div>
</div>
</div>
{% if nb_active_gymnast or nb_event or nb_skill or nb_routine or nb_score or nb_club %}
<div class="row">
<div class="col-md-7">
<ul class="list-unstyled mb-0">
<li>{{ nb_active_gymnast }} active gymnasts</li>
<li>{{ nb_trainer }} active trainers</li>
{% if nb_event %}<li>{{ nb_event }} events</li>{% endif %}
{% if nb_score %}<li>{{ nb_score }} scores</li>{% endif %}
</ul>
</div>
<div class="col-md-5">
<ul class="list-unstyled mb-0">
{% if nb_skill %}<li>{{ nb_skill }} skills</li>{% endif %}
{% if nb_routine %}<li>{{ nb_routine }} routines</li>{% endif %}
{% if nb_club %}<li>{{ nb_club }} clubs</li>{% endif %}
</ul>
</div>
</div>
{% else %}
<br />
No statistics to display.
{% endif %}
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-3">
<div class="card">
<div class="card-header">
<h4><i class="fal fa-calendar-alt text-warning"></i> Next Events</h4>
</div>
<div class="card-body pt-0">
{% if event_list %}
<table class="table table-striped table-condensed mb-0" data-sort="table" id="event_table">
{% for event in event_list %}
<tr>
<td class="text-left"><a href="{% url 'event_details' event.id %}">{{ event.name }}</a></td>
<td>
{% if event.number_of_week_from_today < 0 %}
{{ event.number_of_week_from_today }}
{% else %}
<span class="text-{% if event.number_of_week_from_today > 12 %}success{% elif event.number_of_week_from_today > 9 %}info{% elif event.number_of_week_from_today > 6 %}warning{% else %}danger{% endif %}">
<b>{{ event.number_of_week_from_today }}</b>
</span>
{% endif %}
</td>
</tr>
{% endfor %}
</table>
{% else %}
No future event defined.
{% endif %}
</div>
</div>
</div>
<div class="col-md-3">
<div class="card">
{% if is_trainer %}
<div class="card-header">
<h4><i class="fal fa-exclamation-triangle text-danger"></i> Updated needed</h4>
</div>
<div class="card-body pt-0">
{% if waiting_update_gymnast %}
<table class="table table-striped table-condensed mb-0" data-sort="table" id="gymnast_table">
{% for gymnast in waiting_update_gymnast %}
<tr>
<td class="text-left">{% if gymnast.id in request.session.available_gymnast or request.user.is_superuser %}<a href="{% url 'gymnast_details' gymnast.id %}">{% endif %}{{ gymnast }}</a></td>
<td class="text-right">{{ gymnast.club.acronym }}</td>
</tr>
{% endfor %}
</table>
{% else %}
No update needed.
{% endif %}
</div>
{% else %}
<div class="card-header">
<h4><i class="fal fa-exclamation-triangle text-danger"></i> Your last profile update</h4>
</div>
<div class="card-body pt-0">
<ol class="list-unstyled mb-0">
<li>
<a href="{% url 'wellbeing_create_for_gymnast' gymnast.id %}">Wellbeing</a>:
{% if wellbeing_state %}
<span class="text-{{ wellbeing_state }}">
{% endif %}
{% if wellbeing_last_record_date %}
{{ wellbeing_last_record_date.0 |date:"j F Y" }}
{% else %}
Never
{% endif %}
{% if wellbeing_state %}
</span>
{% endif %}
</li>
<li>
<a href="{% url 'heightweight_create_for_gymnast' gymnast.id %}">Height/Weight</a>:
{% if height_weight_state %}
<span class="text-{{ height_weight_state }}">
{% endif %}
{% if height_weight_last_record_date %}
{{ height_weight_last_record_date.0 |date:"j F Y" }}
{% else %}
Never
{% endif %}
{% if wellbeing_state %}
</span>
{% endif %}
</li>
<li>
<a href="{% url 'intensity_create_for_gymnast' gymnast.id %}">Intensity</a>:
{% if intensity_state %}
<span class="text-{{ intensity_state }}">
{% endif %}
{% if intensities_last_record_date %}
{{ intensities_last_record_date.0 |date:"j F Y" }}
{% else %}
Never
{% endif %}
{% if wellbeing_state %}
</span>
{% endif %}
</li>
<!-- <li>{{ points_last_update }}</li> -->
<li>
<a href="{% url 'chrono_create_for_gymnast' gymnast.id %}">Chrono</a>:
{% if chrono_state %}
<span class="text-{{ chrono_state }}">
{% endif %}
{% if chrono_last_record_date %}
{{ chrono_last_record_date.0 |date:"j F Y" }}
{% else %}
Never
{% endif %}
{% if chrono_state %}
</span>
{% endif %}
</li>
<li>
<a href="#">Learned Skill</a>:
{% if known_skills_state %}
<span class="text-{{ known_skills_state }}">
{% endif %}
{% if known_skills_last_record_date %}
{{ known_skills_last_record_date.0 |date:"j F Y" }}
{% else %}
Never
{% endif %}
{% if known_skills_state %}
</span>
{% endif %}
</li>
</ol>
</div>
{% endif %}
</div>
</div>
<div class="col-md-3">
{% if is_trainer %}
<div class="card">
<div class="card-header">
<h4><i class="fal fa-highlighter text-success"></i> Last updated gymnasts</h4>
</div>
<div class="card-body pt-0">
{% if last_updated_gymnasts %}
<table class="table tablesorter table-striped table-condensed" data-sort="table" id="gymnast_table">
{% for gymnast in last_updated_gymnasts %}
<tr>
<td class="text-left">{% if gymnast.id in request.session.available_gymnast or request.user.is_superuser %}<a href="{% url 'gymnast_details' gymnast.id %}">{% endif %}{{ gymnast }}</a></td>
<td class="text-right">{{ gymnast.club.acronym }}</td>
</tr>
{% endfor %}
</table>
{% else %}
No update since your last visit.
{% endif %}
</div>
</div>
{% endif %}
</div>
<div class="col-md-3">
<div class="card">
<div class="card-header">
<h4><i class="fal fa-birthday-cake text-info"></i> Next birthday</h4>
</div>
<div class="card-body">
{% if birthday_list %}
<table class="table table-striped table-condensed mb-0" data-sort="table" id="gymnast_table">
{% for gymnast in birthday_list %}
<tr>
<td class="text-left">{% if gymnast.id in request.session.available_gymnast or request.user.is_superuser %}<a href="{% url 'gymnast_details' gymnast.id %}">{% endif %}{{ gymnast.first_name }}</a></td>
<td class="">{{ gymnast.birthdate | date:"j M"}}</td>
<td class="text-right">{{ gymnast.next_age }} years</td>
</tr>
{% endfor %}
</table>
{% else %}
<p class="text-muted">No next birtday (it's a bug).</p>
{% endif %}
</div>
</div>
</div>
</div>
{% endblock %}
{% block footerscript %}
{% endblock%}