Add informations and image to help page.

This commit is contained in:
Gregory Trullemans 2024-04-14 13:01:08 +02:00
parent e7e70070d7
commit d1d1a5a695
21 changed files with 74 additions and 49 deletions

View File

@ -79,10 +79,10 @@
<li><a href="#skill_learningline_title">Ligne dapprentissage</a></li>
</ul>
</li>
<li><a href="#routine_title">Routines</a>
<li><a href="#combination_title">Combinaisons</a>
<ul>
<li><a href="#routine_details_title">Détails dune série</a></li>
<li><a href="#routine_level_title">Niveau dune série</a></li>
<li><a href="#routine_details_title">Détails dune combinaison</a></li>
<li><a href="#routine_level_title">Niveau dune combinaison</a></li>
</ul>
</li>
<li><a href="#event_title">Events</a>
@ -155,7 +155,7 @@
<li><a href="{% url 'home' %}">Dashboard</a> : la page daccueil </li>
<li><a href="{% url 'gymnast_list' %}">Gymnasts</a> : la liste des gymnaste </li>
<li><a href="{% url 'skill_list' %}">Skills</a> : la liste des figures</li>
<li><a href="{% url 'combination_listing' %}">Routines</a> : la liste des séries</li>
<li><a href="{% url 'combination_listing' %}">Combinaisons</a> : la liste des combinaisons</li>
<li><a href="{% url 'event_list' %}">Events</a> : la liste des évènements</li>
<li><a href="{% url 'place_list' %}">Places</a> : la liste des lieux</li>
<li><a href="{% url 'report_listing' %}">Reports</a> : la liste des rapports</li>
@ -679,8 +679,11 @@
<p><u>Statistique de chrono</u></p>
<p>(Fonctionnalité en cours de développement)</p>
<p>Sur le graphique des temps dans le profil dun gymnaste, il y a un bouton en bas à gauche permettant dobtenir des statistiques sur les chronos.</p>
<p class="text-center"><img src="{% static "img/help/chrono_chart.png" %}" alt="" style="width: 25vw;"></p>
<p>En cliquant sur ce bouton, vous arriver sur la page de statistiques :</p>
<p class="text-center"><img src="{% static "img/help/chrono_statistics.png" %}" alt="" style="width: 50vw;"></p>
<p>Sur cette page, en haut, vous pouvez choisir plusieurs options :
<ul>
<li>Le type de série</li>
@ -695,11 +698,11 @@
<br />
<p id="gym_programmes"><b>Programmes</b></p>
<p>(à venir)</p>
<p>(Description à venir)</p>
<br />
<h4 class="mt-2 mb-0" id="gym_physiology">État physique et psychologique</h4>
<p>Afin que les entraîneurs puissent adapter au mieux la charge d'entraînement, il est essentiel de suivre de manière approfondie les élèves, tant sur le plan physique (taille, poids, sommeil, stress, fatigue et douleurs musculaires) que sur le plan psychologique (état d'esprit) tout au long de leur carrière. Cet onglet permet justement ce suivi.</p>
<p>Afin que les entraîneurs puissent adapter au mieux la charge d'entraînement, il est essentiel de suivre de manière approfondie les élèves, tant sur le plan physique (taille, poids, sommeil, fatigue et douleurs musculaires) que sur le plan psychologique (état d'esprit, stress) tout au long de leur carrière. Cet onglet permet justement ce suivi.</p>
<p class="text-center"><img src="{% static "img/help/gymnast_physiology.png" %}" alt="" style="width: 50vw;"></p>
@ -710,13 +713,13 @@
<p><b id="gym_height_weight">Taille et poids</b></p>
<p>Ce cadre affiche la courbe de la taille et du poids du gymnaste pour les deux derniers mois ou pour les 5 derniers enregistrement. En bas à droite du cadre se trouve deux boutons : le premier permet daccéder à la liste de tous les tailles et poids encodés pour le gymnaste, le second permet dajouter un encodage.</p>
<p>L'encodage de ces informations devrait être régulier, surtout pendant les phases de croissance ou lorsqu'un objectif de poids est fixé pour le gymnaste.</p>
<p class="text-center"><img src="{% static "img/help/height-weight_listing.png" %}" alt="" style="width: 50vw;"></p>
<br />
<p><u>Ajouter taille et poids</u></p>
<p>Pour enregistrer un <a href="{% url 'heightweight_create' %}">nouveau taille/poids</a> il faut encoder la date, la taille (height) et son poids (weight). Il est également possible dencoder la taille aux hanches pour pouvoir distinguer la prise de taille (jambe et/ou buste) lors de la phase de croissance.</p>
<p>Lencodage de ces informations devrait être récurrente lors de la phase de croissance ou lorsquun objectif est fixé sur le poids du gymnaste.</p>
<p class="text-center"><img src="{% static "img/help/height-weight_create.png" %}" alt="" style="width: 25vw;"></p>
<p class="text-danger">L'encodage de ces informations devrait être régulier, surtout pendant les phases de croissance ou lorsqu'un objectif de poids est fixé pour le gymnaste.</p>
<br />
<p><b id="gym_well_being">Bien être</b></p>
@ -731,11 +734,14 @@
</p>
<p>Ce cadre affiche les courbes des 5 facteurs. En bas à droite du cadre se trouve deux boutons : le premier permet daccéder à la liste des scores du gymnaste (cf. image ci-dessous); le second permet dajouter un score.</p>
<p class="text-center"><img src="{% static "img/help/wellbeing_listing.png" %}" alt="" style="width: 50vw;"></p>
<br />
<p><u>Ajouter un score de bien être</u></p>
<p>Pour enregistrer un <a href="{% url 'wellbeing_create' %}">nouveau score de bien être</a>, il est nécessaire d'encoder la date ainsi que les cinq valeurs vue précédemment : l'état d'esprit (Mind State), le sommeil (Sleep), le niveau de stress (Stress), la fatigue (Fatigue) et les douleurs musculaires (Muscle Soreness).</p>
<p class="text-center"><img src="{% static "img/help/wellbeing_create.png" %}" alt="" style="width: 25vw;"></p>
<p>Il est également possible de sélectionner un événement, tel qu'un stage ou une compétition, pour suivre l'état d'un gymnaste à des moments spécifiques.</p>
<p>Les gymnastes sont encouragés à ajouter une <i><u>explication détaillée</u></i> (quoi, pourquoi, comment, …) lorsque le score est inférieur à la moitier pour l'état d'esprit et le sommeil ou supérieur à la moitier pour le stress, la fatigue et les douleurs musculaires, afin d'aider à identifier les causes internes ou externes qui pourraient influencer ces valeurs.</p>
@ -752,6 +758,8 @@
</ul>
</p>
<p class="text-center"><img src="{% static "img/help/gymnast_welbeing_details.png" %}" alt="" style="width: 25vw;"></p>
<p>Ensuite ces données sont reporté sur une graphique de type « radar ». En dessous du graphique les scores encodés sont affichés sans transformation.</p>
<br />
@ -920,13 +928,13 @@
<div class="card mb-0">
<div class="card-body text-justify row">
<div class="col-md-6">
<h2 class="mb-0" id="routine_title">Routines</h2>
<h2 class="mb-0" id="combination_title">Combinaisons</h2>
</div>
<div class="col-md-6 ml-auto pl-0 text-right">
<a href="#top"><i class="far fa-long-arrow-alt-up"></i> Top</a>
</div>
<div class="col-12">
<p>En cliquant sur <a href="{% url 'routine_listing' %}">Routines</a>, vous arrivez sur la liste des séries connues de lapplication.</p>
<p>En cliquant sur <a href="{% url 'combination_listing' %}">Combinaison</a>, vous arrivez sur la liste des séries connues de lapplication.</p>
<p>Le tableau des séries contient les informations suivantes :
<ul>
@ -941,11 +949,23 @@
</ul>
</p>
<h3 class="mt-4 mb-0" id="routine_details_title">Détails dune série</h3>
<p>Dans les détails dune série vous trouvez, évidemment, la liste de figure composant cette série.<br />
En dessous, vous pouvez aussi le niveau, le rang, lâge de réalisation idéale pour les filles et pour les garçons. Attention, comme pour les figures, cet âge est idéalisé et nest valable que pour les Division 1.</p>
<p class="text-center"><img src="{% static "img/help/combination_listing.png" %}" alt="" style="width: 50vw;"></p>
<h3 class="mt-4 mb-0" id="routine_level_title">Niveau dune série</h3>
<p>Il existe 4 types de combinaison :
<ul>
<li>les combinaisons : tout ensemble de plus d'une figure (lisaison par "&") (cette catégorie générique englobe toutes les autres).</li>
<li>les éducatifs : enchainements courts (3 sauts max) en vue d'apprendre une figure précise (lisaison par "-").</li>
<li>les séries : ce sont des combinaisons particulière, les saut doivent être enchaînés (liaison par "-"), peu importe leur nombre.
<li>les séries de compétition : ce sont des enchaînements particuliers avec 10 sauts (pas plus, pas moins) composés uniquement de figures autorisées en compétition.</li>
</ul>
</p>
<h3 class="mt-4 mb-0" id="routine_details_title">Détails dune combinaison</h3>
<p>Dans les détails dune combinaison vous trouvez, évidemment, la liste de figure composant cette série.</p>
<p class="text-center"><img src="{% static "img/help/combination_details.png" %}" alt="" style="width: 25vw;"></p>
<p>En dessous, vous pouvez aussi le niveau, le rang, lâge de réalisation idéale pour les filles et pour les garçons. Attention, comme pour les figures, cet âge est idéalisé et nest valable que pour les Division 1. Les notions de "<i>routine</i>" et "<i>competition</i>" sont égalelement affichés.</p>
<h4 class="mt-4 mb-0" id="routine_level_title">Niveau dune combinaison</h3>
<p>Les séries, à linstar des figures, ont également un niveau. Par défaut le niveau d'une série est le niveau de la figure de niveau maximum contenue dans la série.</p>
</div>
</div>
@ -965,6 +985,7 @@
</div>
<div class="col-12">
<p>En cliquant sur <a href="{% url 'event_list' %}">Events</a>, vous arrivez sur la liste des évènements.</p>
<p class="text-center"><img src="{% static "img/help/event_listing.png" %}" alt="" style="width: 50vw;"></p>
<p>Le tableau des évènement contient les informations suivantes :
<ul>
<li>le nom de lévènement</li>
@ -977,6 +998,7 @@
<h3 class="mt-4 mb-0" id="calendar_view_title">Vue Calendrier</h3>
<p>En cliquant sur le sous-titre « Calendar » vous obtenez une vue calendrier des évènements :</p>
<p class="text-center"><img src="{% static "img/help/event_calendar.png" %}" alt="" style="width: 50vw;"></p>
</div>
</div>
</div>
@ -1002,9 +1024,11 @@
<li>la ville.</li>
</ul>
</p>
<p class="text-center"><img src="{% static "img/help/place_listing.png" %}" alt="" style="width: 50vw;"></p>
<h3 class="mt-4 mb-0" id="location_details_title">Détails dun lieu</h3>
<p>En cliquant sur le nom dun lieu, vous arrivez sur la fiche de détail dun lieu.</p>
<p class="text-center"><img src="{% static "img/help/place_details.png" %}" alt="" style="width: 25vw;"></p>
</div>
</div>
</div>

View File

@ -3,9 +3,9 @@
{% block datacontent %}
<div class="card mb-0">
<div class="card-header">
<h4 class=""> Club Listing</h4>
<h4 class="">Club Listing</h4>
</div>
<div class="card-body pb-0">
<div class="card-body pb-0 pt-0">
<div class="table-responsive pb-0">
{% if club_list %}
<table class="table tablesorter table-striped table-condensed" data-sort="table" id="club_table">

View File

@ -3,28 +3,26 @@
{% block datacontent %}
<div class="card mb-0">
<div class="card-header">
<div class="row">
<div class="col-2">
<h4 class=""> Places Listing</h4>
</div>
<div class="col-1 ml-auto">
<div class="text-right">
{% if request.user|has_group:"trainer" %}
<a href="{% url 'place_create' %}">
<button type="submit" value="add" class="btn btn-icon btn-warning ">
<i class="fas fa-plus"></i>
</button>
</a>
{% endif %}
</div>
<div class="card-header row">
<div class="col-10">
<h4 class=""> Places Listing</h4>
</div>
<div class="col-1 ml-auto">
<div class="text-right">
{% if request.user|has_group:"trainer" %}
<a href="{% url 'place_create' %}">
<button type="submit" value="add" class="btn btn-icon btn-warning ">
<i class="fas fa-plus"></i>
</button>
</a>
{% endif %}
</div>
</div>
</div>
<div class="card-body">
<div class="card-body pt-0">
<div class="table-responsive pb-0">
{% if place_list %}
<table class="table tablesorter table-striped" data-sort="table" id="place_table">
<table class="table tablesorter table-condensed table-striped" data-sort="table" id="place_table">
<thead>
<tr>
{% if request.user|has_group:"trainer" %}
@ -33,7 +31,7 @@
<th class="header text-left" style="width: 27%">Name</th>
<th class="header text-left" style="width: 35%">Address</th>
<th class="header text-center" style="width: 10%">Zip</th>
<th class="header text-left" style="width: 15%">City</th>
<th class="header text-center" style="width: 15%">City</th>
</tr>
</thead>
<tbody>
@ -48,8 +46,8 @@
{% endif %}
<td class="text-left"><a href="{% url 'place_details' place.id %}">{{ place.name }}</a></td>
<td class="text-left">{{ place.address }}</td>
<td class="text-left">{{ place.postal}}</td>
<td class="text-left">{{ place.city }}</td>
<td class="text-right">{{ place.postal}}</td>
<td class="text-right">{{ place.city }}</td>
</tr>
{% endfor %}
</tbody>

View File

@ -331,6 +331,9 @@ class Routine(Educative):
# is_routine = False
is_competitive = True
print(self.is_competitive)
print(self.is_routine)
for skill_link in self.skill_links.all():
skill = skill_link.skill

View File

@ -14,30 +14,30 @@
{{ hidden }}
{% endfor %}
<div class="form-group row {% if form.long_label.errors %}has-error has-feedback{% endif %}">
<label for="id_long_label" class="col-4 col-sm-2 col-md-2 col-lg-2 col-xl-2 col-form-label">Long label <span class="text-danger"><b>*</b></span></label>
<div class="col-8 col-sm-10 col-md-10 col-lg-10 col-xl-10">
<label for="id_long_label" class="col-4 col-sm-3 col-md-3 col-lg-3 col-xl-3 col-form-label">Long label <span class="text-danger"><b>*</b></span></label>
<div class="col-8 col-sm-9 col-md-9 col-lg-9 col-xl-9">
{{ form.long_label }}&nbsp;{% if form.long_label.errors %}
{% for error in form.long_label.errors %}{{ error }}{% endfor %}</span>{% endif %}
</div>
</div>
<div class="form-group row {% if form.short_label.errors %}has-error has-feedback{% endif %}">
<label for="id_short_label" class="col-4 col-sm-2 col-md-2 col-lg-2 col-xl-2 col-form-label">Short label <span class="text-danger"><b>*</b></span></label>
<div class="col-8 col-sm-10 col-md-10 col-lg-10 col-xl-10">
<label for="id_short_label" class="col-4 col-sm-3 col-md-3 col-lg-3 col-xl-3 col-form-label">Short label <span class="text-danger"><b>*</b></span></label>
<div class="col-8 col-sm-9 col-md-9 col-lg-9 col-xl-9">
{{ form.short_label }}&nbsp;{% if form.short_label.errors %}<span class="btn btn-sm btn-danger-outline">{% for error in form.short_label.errors %}{{ error }}{% endfor %}</span>{% endif %}
</div>
</div>
<div class="form-group row {% if form.is_routine.errors %}has-error has-feedback{% endif %}">
<label for="id_is_routine" class="col-4 col-sm-2 col-md-2 col-lg-2 col-xl-2 col-form-label">Is routine ? <span class="text-danger"><b>*</b></span></label>
<div class="col-8 col-sm-10 col-md-10 col-lg-10 col-xl-10">
<label for="id_is_routine" class="col-4 col-sm-3 col-md-3 col-lg-3 col-xl-3 col-form-label">Is routine ? <span class="text-danger"><b>*</b></span></label>
<div class="col-8 col-sm-9 col-md-9 col-lg-9 col-xl-9">
{{ form.is_routine }}&nbsp;{% if form.is_routine.errors %}<span class="btn btn-sm btn-danger-outline">{% for error in form.is_routine.errors %}{{ error }}{% endfor %}</span>{% endif %}
</div>
</div>
<div class="form-group row {% if form.is_competitive.errors %}has-error has-feedback{% endif %}">
<label for="id_is_competitive" class="col-4 col-sm-2 col-md-2 col-lg-2 col-xl-2 col-form-label">Is Competitive ? <span class="text-danger"><b>*</b></span></label>
<div class="col-8 col-sm-10 col-md-10 col-lg-10 col-xl-10">
<label for="id_is_competitive" class="col-4 col-sm-3 col-md-3 col-lg-3 col-xl-3 col-form-label">Is Competitive ? <span class="text-danger"><b>*</b></span></label>
<div class="col-8 col-sm-9 col-md-9 col-lg-9 col-xl-9">
{{ form.is_competitive }}&nbsp;{% if form.is_competitive.errors %}<span class="btn btn-sm btn-danger-outline">{% for error in form.is_competitive.errors %}{{ error }}{% endfor %}</span>{% endif %}
</div>
</div>

View File

@ -35,8 +35,8 @@
</div>
<div class="row mt-2">
<div class="col-6 text-center">Routine : <a href="#">{% if routine.is_routine %}Yes{% else %}No{% endif %}</a></div>
<div class="col-6 text-center">Competition : <a href="#">{% if routine.is_competitive %}Yes{% else %}No{% endif %}</a></div>
<div class="col-6 text-center">Routine : <a href="#">{% if combination.is_routine %}Yes{% else %}No{% endif %}</a></div>
<div class="col-6 text-center">Competition : <a href="#">{% if combination.is_competitive %}Yes{% else %}No{% endif %}</a></div>
</div>
{% else %}

View File

@ -21,7 +21,7 @@
</div>
</div>
</div>
<div class="card-body">
<div class="card-body pt-0">
<div class="table-responsive">
{% if routine_list %}
<table class="table tablesorter table-striped" data-sort="table" id="routine_table">

View File

@ -22,7 +22,7 @@
</div>
</div>
</div>
<div class="card-body">
<div class="card-body pt-0">
<div class="table-responsive pb-0">
{% if event_list %}
<table class="table tablesorter table-striped" data-sort="table" id="event_table">

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 255 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 289 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 353 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 869 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 357 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 762 KiB