Update skill statistics
This commit is contained in:
parent
69cd14b440
commit
f8d75b4af2
|
@ -69,3 +69,23 @@ a.maillink {
|
|||
textarea.form-control {
|
||||
max-height: 200px !important;
|
||||
}
|
||||
|
||||
.text-unknown {
|
||||
color: #fd5d93 !important;
|
||||
}
|
||||
|
||||
.text-with-help {
|
||||
color: #ff9300 !important;
|
||||
}
|
||||
|
||||
.text-without-help {
|
||||
color: #E6E200 !important;
|
||||
}
|
||||
|
||||
.text-chained {
|
||||
color: #04CD89 !important;
|
||||
}
|
||||
|
||||
.text-masterised {
|
||||
color: #0CA3E0 !important;
|
||||
}
|
|
@ -95,16 +95,16 @@
|
|||
<a href="{% url 'plan_update' plan.id %}">
|
||||
<span class="tim-icons icon-pencil text-warning"></span>
|
||||
</a>
|
||||
<button type="button" rel="tooltip" class="btn btn-success btn-link btn-sm btn-icon checkUnknownSkill" data-gymnastid="{{ gymnast.id }}" data-skillid="{{ plan.educative.id }}" data-link="1">
|
||||
<button type="button" rel="tooltip" class="btn btn-success btn-link btn-sm btn-icon checkUnknownSkill text-with-help" data-gymnastid="{{ gymnast.id }}" data-skillid="{{ plan.educative.id }}" data-link="1">
|
||||
<i class="far fa-check"></i>
|
||||
</button>
|
||||
<button type="button" rel="tooltip" class="btn btn-success btn-link btn-sm btn-icon checkUnknownSkill" data-gymnastid="{{ gymnast.id }}" data-skillid="{{ plan.educative.id }}" data-link="2">
|
||||
<button type="button" rel="tooltip" class="btn btn-success btn-link btn-sm btn-icon checkUnknownSkill text-without-help" data-gymnastid="{{ gymnast.id }}" data-skillid="{{ plan.educative.id }}" data-link="2">
|
||||
<i class="far fa-check-double"></i>
|
||||
</button>
|
||||
<button type="button" rel="tooltip" class="btn btn-success btn-link btn-sm btn-icon checkUnknownSkill" data-gymnastid="{{ gymnast.id }}" data-skillid="{{ plan.educative.id }}" data-link="3">
|
||||
<button type="button" rel="tooltip" class="btn btn-success btn-link btn-sm btn-icon checkUnknownSkill text-chained" data-gymnastid="{{ gymnast.id }}" data-skillid="{{ plan.educative.id }}" data-link="3">
|
||||
<i class="far fa-link"></i>
|
||||
</button>
|
||||
<button type="button" rel="tooltip" class="btn btn-success btn-link btn-sm btn-icon checkUnknownSkill" data-gymnastid="{{ gymnast.id }}" data-skillid="{{ plan.educative.id }}" data-link="4">
|
||||
<button type="button" rel="tooltip" class="btn btn-success btn-link btn-sm btn-icon checkUnknownSkill text-masterised" data-gymnastid="{{ gymnast.id }}" data-skillid="{{ plan.educative.id }}" data-link="4">
|
||||
<i class="fal fa-thumbs-up"></i>
|
||||
</button>
|
||||
</td>
|
||||
|
|
|
@ -169,6 +169,13 @@ class LearnedSkill(Seasonisable):
|
|||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
updated_at = models.DateTimeField(auto_now=True)
|
||||
|
||||
def __str__(self):
|
||||
return "%s - %s - %s" % (
|
||||
self.gymnast,
|
||||
self.date,
|
||||
self.skill,
|
||||
)
|
||||
|
||||
|
||||
class Plan(Seasonisable, Markdownizable):
|
||||
"""
|
||||
|
|
|
@ -11,52 +11,20 @@ def generate_skill_doughnut(gymnast_id):
|
|||
withoutRécupère les différents nombres de skill du gymnaste (masterised, chained, without help,
|
||||
with help or no) à la dernière date connue et les renvoie pour en faire un graphique.
|
||||
"""
|
||||
# base_queryset = LearnedSkill.objects.filter(gymnast=gymnast_id).order_by("-date")
|
||||
skill_learned_by_phase = [0] * 5
|
||||
learned_skills = LearnedSkill.objects.filter(gymnast=gymnast_id).order_by('skill_id', '-date').distinct('skill_id')
|
||||
|
||||
# total = 0
|
||||
# skills_capacity = [0] * 5
|
||||
# checked_skills = set()
|
||||
# for learned_skill in base_queryset:
|
||||
# if learned_skill not in checked_skills:
|
||||
# checked_skills.add(learned_skill)
|
||||
# skills_capacity[learned_skill.learning_step] += 1
|
||||
# total += 1
|
||||
|
||||
skill_whith_help = (
|
||||
Skill.objects.filter(known_by__gymnast=gymnast_id, known_by__learning_step=1)
|
||||
.exclude(known_by__gymnast=gymnast_id, known_by__learning_step__gte=2)
|
||||
.distinct()
|
||||
.count()
|
||||
)
|
||||
|
||||
skill_without_help = (
|
||||
Skill.objects.filter(known_by__gymnast=gymnast_id, known_by__learning_step=2)
|
||||
.exclude(known_by__gymnast=gymnast_id, known_by__learning_step=3)
|
||||
.distinct()
|
||||
.count()
|
||||
)
|
||||
|
||||
skill_chained = (
|
||||
Skill.objects.filter(known_by__gymnast=gymnast_id, known_by__learning_step=3)
|
||||
.exclude(known_by__gymnast=gymnast_id, known_by__learning_step=4)
|
||||
.distinct()
|
||||
.count()
|
||||
)
|
||||
|
||||
skill_masterised = (
|
||||
Skill.objects.filter(known_by__gymnast=gymnast_id, known_by__learning_step__gte=4)
|
||||
.distinct()
|
||||
.count()
|
||||
)
|
||||
for learned_skill in learned_skills:
|
||||
skill_learned_by_phase[learned_skill.learning_step] += 1
|
||||
|
||||
nb_skill = Skill.objects.all().count()
|
||||
nb_unknown_skill = nb_skill - skill_whith_help - skill_without_help - skill_chained - skill_masterised
|
||||
nb_unknown_skill = nb_skill - learned_skill.count()
|
||||
|
||||
return {
|
||||
"nb_skill_whith_help": skill_whith_help,
|
||||
"nb_skill_without_help": skill_without_help,
|
||||
"nb_skill_chained": skill_chained,
|
||||
"nb_skill_masterised": skill_masterised,
|
||||
# "lost_skill": skills_capacity[0],
|
||||
"lost_skill": skill_learned_by_phase[0],
|
||||
"nb_skill_whith_help": skill_learned_by_phase[1],
|
||||
"nb_skill_without_help": skill_learned_by_phase[2],
|
||||
"nb_skill_chained": skill_learned_by_phase[3],
|
||||
"nb_skill_masterised": skill_learned_by_phase[4],
|
||||
"nb_unknown_skill": nb_unknown_skill,
|
||||
}
|
||||
|
|
|
@ -478,19 +478,19 @@ def gymnast_display_skill(request, gymnast_id):
|
|||
|
||||
skill_whith_help = (
|
||||
Skill.objects.filter(known_by__gymnast=gymnast_id, known_by__learning_step=1)
|
||||
.exclude(known_by__gymnast=gymnast.id, known_by__learning_step__gte=2)
|
||||
.exclude(known_by__gymnast=gymnast.id, known_by__learning_step__gt=1)
|
||||
.distinct()
|
||||
)
|
||||
|
||||
skill_without_help = (
|
||||
Skill.objects.filter(known_by__gymnast=gymnast_id, known_by__learning_step=2)
|
||||
.exclude(known_by__gymnast=gymnast.id, known_by__learning_step=3)
|
||||
.exclude(known_by__gymnast=gymnast.id, known_by__learning_step__gt=2)
|
||||
.distinct()
|
||||
)
|
||||
|
||||
skill_chained = (
|
||||
Skill.objects.filter(known_by__gymnast=gymnast_id, known_by__learning_step=3)
|
||||
.exclude(known_by__gymnast=gymnast.id, known_by__learning_step=4)
|
||||
.exclude(known_by__gymnast=gymnast.id, known_by__learning_step__gt=3)
|
||||
.distinct()
|
||||
)
|
||||
|
||||
|
|
Loading…
Reference in New Issue