Bug fix
This commit is contained in:
parent
44b00d94cf
commit
b90ea23e2d
|
@ -696,11 +696,15 @@ def report_choice(request, gymnast_id):
|
|||
|
||||
@login_required
|
||||
@require_http_methods(["GET"])
|
||||
def generate_report(request, gymnast_id):
|
||||
def generate_report(request, gymnast_id, season=None, week_number=None):
|
||||
gymnast = get_object_or_404(Gymnast, pk=gymnast_id)
|
||||
today = pendulum.now().date()
|
||||
season, week_number = from_date_to_week_number(today)
|
||||
# season = Season()
|
||||
|
||||
if season is None:
|
||||
date_begin = pendulum.now().date()
|
||||
season, week_number = from_date_to_week_number(date_begin)
|
||||
else:
|
||||
date_begin, _ = from_week_number_to_date(season, week_number)
|
||||
date_begin = date_begin.date()
|
||||
|
||||
#
|
||||
# PHYSIOLOGICAL INFORMATIONS
|
||||
|
@ -769,33 +773,117 @@ def generate_report(request, gymnast_id):
|
|||
.order_by("-total")
|
||||
.first()
|
||||
)
|
||||
best_point_routine_3 = (
|
||||
Point.objects.filter(gymnast=gymnast)
|
||||
.filter(routine_type=3)
|
||||
.order_by("-total")
|
||||
.first()
|
||||
)
|
||||
best_point_routine_4 = (
|
||||
Point.objects.filter(gymnast=gymnast)
|
||||
.filter(routine_type=4)
|
||||
.order_by("-total")
|
||||
.first()
|
||||
)
|
||||
best_point_routine_5 = (
|
||||
Point.objects.filter(gymnast=gymnast)
|
||||
.filter(routine_type=5)
|
||||
.order_by("-total")
|
||||
.first()
|
||||
)
|
||||
|
||||
#
|
||||
# ROUTINES
|
||||
#
|
||||
routine_1 = (
|
||||
gymnast.has_routine.filter(routine_type=1)
|
||||
.filter(date_begin__lte=today)
|
||||
.filter(Q(date_end__gte=today) | Q(date_end__isnull=True))
|
||||
.filter(date_begin__lte=date_begin)
|
||||
.filter(Q(date_end__gte=date_begin) | Q(date_end__isnull=True))
|
||||
.first()
|
||||
)
|
||||
routine_1_done_stat = (
|
||||
gymnast.number_of_routine_done.filter(routine_type=1)
|
||||
.filter(season=season)
|
||||
.filter(week_number=week_number)
|
||||
.aggregate(
|
||||
total_try=Sum("number_of_try"), total_succeeded=Sum("number_of_successes")
|
||||
)
|
||||
)
|
||||
|
||||
routine_2 = (
|
||||
gymnast.has_routine.filter(routine_type=2)
|
||||
.filter(date_begin__lte=today)
|
||||
.filter(Q(date_end__gte=today) | Q(date_end__isnull=True))
|
||||
.filter(date_begin__lte=date_begin)
|
||||
.filter(Q(date_end__gte=date_begin) | Q(date_end__isnull=True))
|
||||
.first()
|
||||
)
|
||||
# print(routine_2)
|
||||
routine_2_done_stat = (
|
||||
gymnast.number_of_routine_done.filter(routine_type=2)
|
||||
.filter(season=season)
|
||||
.filter(week_number=week_number)
|
||||
.aggregate(
|
||||
total_try=Sum("number_of_try"), total_succeeded=Sum("number_of_successes")
|
||||
)
|
||||
)
|
||||
|
||||
routine_3 = (
|
||||
gymnast.has_routine.filter(routine_type=3)
|
||||
.filter(date_begin__lte=date_begin)
|
||||
.filter(Q(date_end__gte=date_begin) | Q(date_end__isnull=True))
|
||||
.first()
|
||||
)
|
||||
routine_3_done_stat = (
|
||||
gymnast.number_of_routine_done.filter(routine_type=3)
|
||||
.filter(season=season)
|
||||
.filter(week_number=week_number)
|
||||
.aggregate(
|
||||
total_try=Sum("number_of_try"), total_succeeded=Sum("number_of_successes")
|
||||
)
|
||||
)
|
||||
|
||||
routine_4 = (
|
||||
gymnast.has_routine.filter(routine_type=4)
|
||||
.filter(date_begin__lte=date_begin)
|
||||
.filter(Q(date_end__gte=date_begin) | Q(date_end__isnull=True))
|
||||
.first()
|
||||
)
|
||||
routine_4_done_stat = (
|
||||
gymnast.number_of_routine_done.filter(routine_type=4)
|
||||
.filter(season=season)
|
||||
.filter(week_number=week_number)
|
||||
.aggregate(
|
||||
total_try=Sum("number_of_try"), total_succeeded=Sum("number_of_successes")
|
||||
)
|
||||
)
|
||||
|
||||
routine_5 = (
|
||||
gymnast.has_routine.filter(routine_type=5)
|
||||
.filter(date_begin__lte=date_begin)
|
||||
.filter(Q(date_end__gte=date_begin) | Q(date_end__isnull=True))
|
||||
.first()
|
||||
)
|
||||
routine_5_done_stat = (
|
||||
gymnast.number_of_routine_done.filter(routine_type=5)
|
||||
.filter(season=season)
|
||||
.filter(week_number=week_number)
|
||||
.aggregate(
|
||||
total_try=Sum("number_of_try"), total_succeeded=Sum("number_of_successes")
|
||||
)
|
||||
)
|
||||
|
||||
#
|
||||
# LAST LEARNED SKILLS
|
||||
#
|
||||
learned_skills = (
|
||||
LearnedSkill.objects.filter(gymnast=gymnast.id)
|
||||
.annotate(skill_notation=F("skill__notation"))
|
||||
.order_by("skill_notation", "-date")
|
||||
.distinct("skill_notation")[:6]
|
||||
)
|
||||
# TODO: il faudrait que ce soit classer d'abord par DATE et pas par skill.
|
||||
#
|
||||
# learned_skills = (
|
||||
# LearnedSkill.objects.filter(gymnast=gymnast.id)
|
||||
# .annotate(skill_notation=F("skill__notation"))
|
||||
# .order_by("skill_notation", "-date")
|
||||
# .distinct("skill_notation")[:6]
|
||||
# )
|
||||
learned_skills = LearnedSkill.objects.filter(gymnast=gymnast.id).order_by("-date")[
|
||||
:6
|
||||
]
|
||||
|
||||
#
|
||||
# PLANNED SKILLS
|
||||
|
@ -811,15 +899,15 @@ def generate_report(request, gymnast_id):
|
|||
# NEXT EVENTS
|
||||
#
|
||||
next_event_list = Event.objects.filter(
|
||||
gymnasts=gymnast.id, date_begin__gte=today
|
||||
gymnasts=gymnast.id, date_begin__gte=date_begin
|
||||
).order_by("date_begin")[:5]
|
||||
|
||||
#
|
||||
# NOTES
|
||||
#
|
||||
begin_of_the_week = today
|
||||
if today.weekday() != 0:
|
||||
begin_of_the_week -= timedelta(today.weekday())
|
||||
begin_of_the_week = date_begin
|
||||
if date_begin.weekday() != 0:
|
||||
begin_of_the_week -= timedelta(date_begin.weekday())
|
||||
|
||||
notes = (
|
||||
gymnast.remarks.filter(date__gte=begin_of_the_week)
|
||||
|
@ -838,7 +926,7 @@ def generate_report(request, gymnast_id):
|
|||
"HEAD_COACH_EMAIL": settings.HEAD_COACH_EMAIL,
|
||||
"week_number": week_number,
|
||||
"gymnast": gymnast,
|
||||
"today": today,
|
||||
"today": date_begin,
|
||||
"season": season,
|
||||
"last_mindstate": last_mindstate,
|
||||
"mindstate_analyse": mindstate_analyse,
|
||||
|
@ -850,8 +938,19 @@ def generate_report(request, gymnast_id):
|
|||
"best_tof_routine_2": best_tof_routine_2,
|
||||
"best_point_routine_1": best_point_routine_1,
|
||||
"best_point_routine_2": best_point_routine_2,
|
||||
"best_point_routine_3": best_point_routine_3,
|
||||
"best_point_routine_4": best_point_routine_4,
|
||||
"best_point_routine_5": best_point_routine_5,
|
||||
"routine_1": routine_1,
|
||||
"routine_2": routine_2,
|
||||
"routine_3": routine_3,
|
||||
"routine_4": routine_4,
|
||||
"routine_5": routine_5,
|
||||
"routine_1_done_stat": routine_1_done_stat,
|
||||
"routine_2_done_stat": routine_2_done_stat,
|
||||
"routine_3_done_stat": routine_3_done_stat,
|
||||
"routine_4_done_stat": routine_4_done_stat,
|
||||
"routine_5_done_stat": routine_5_done_stat,
|
||||
"LEARNING_STEP_CHOICES": LEARNING_STEP_CHOICES,
|
||||
"learned_skills": learned_skills,
|
||||
"plan_list": plan_list,
|
||||
|
@ -864,10 +963,18 @@ def generate_report(request, gymnast_id):
|
|||
response = HttpResponse(content_type="application/pdf")
|
||||
response[
|
||||
"Content-Disposition"
|
||||
] = "inline; filename={lastname}-{firstname}-report.pdf".format(
|
||||
] = "attachment; filename={lastname}-{firstname}-report.pdf".format(
|
||||
lastname=gymnast.last_name,
|
||||
firstname=gymnast.first_name,
|
||||
)
|
||||
# response["Content-Disposition"] = (
|
||||
# # inline;
|
||||
# 'attachment; filename="report_'
|
||||
# + gymnast.first_name
|
||||
# + "_"
|
||||
# + gymnast.last_name
|
||||
# + '.pdf"'
|
||||
# )
|
||||
|
||||
html = render_to_string("people/gymnasts/report.html", context)
|
||||
|
||||
|
|
Loading…
Reference in New Issue