Minor update

This commit is contained in:
Gregory Trullemans 2023-06-20 08:29:19 +02:00
parent 6aa2ad02f7
commit 38a1c291cc
3 changed files with 104 additions and 63 deletions

View File

@ -6,61 +6,85 @@
<div class="card mb-0">
<div class="card-header">
<h3 class="mb-0"><a href="{% url 'gymnast_details' gymnast.id %}">{{ gymnast }}</a></h3>
</div>
<div class="card-body">
<form class="form-horizontal" id="form" name="form">
<div class="form-group row">
<label for="select_season" class="col-7 col-sm-4 col-md-5 col-lg-5 col-xl-5 col-form-label">Generate week report for</label>
<div class="col-7 col-sm-4 col-md-2 col-lg-2 col-xl-2">
<select id="select_season" class="selectpicker">
{% for season in season_list %}
<option value="{{ season }}" {% if selected_season|stringformat:"s" == season %}selected{% endif %}>{{ season }}</option>
{% endfor %}
</select>
</div>
<label id="week_management" for="select_week_number" class="col-md-1 col-form-label">week</label>
<div class="col-4 col-sm-4 col-md-2 col-lg-2 col-xl-2">
<select id="select_week_number" class="selectpicker">
<option value="">---</option>
{% for week_number in week_number_list %}
<option value="{{ week_number }}">{{ week_number }}</option>
{% endfor %}
</select>
</div>
<div class="col-5 col-sm-5 col-md-2 col-lg-2 col-xl-2">
<span id="span_button_generate">
<a href="" id="pdf_link">
<button type="button" class="btn btn-icon btn-warning mt-0">
<i class="far fa-download"></i>
</button>
</a>
</span>
</div>
</div>
<div class="card-body">
<form class="form-horizontal" id="form" name="form">
<div class="form-group row">
<label for="select_season_for_week" class="col-7 col-sm-4 col-md-5 col-lg-5 col-xl-5 col-form-label">Week report for</label>
<div class="col-7 col-sm-4 col-md-2 col-lg-2 col-xl-2">
<select id="select_season_for_week" class="selectpicker">
{% for season in season_list %}
<option value="{{ season }}" {% if selected_season|stringformat:"s" == season %}selected{% endif %}>{{ season }}</option>
{% endfor %}
</select>
</div>
<div class="form-group row">
<label for="" class="col-7 col-sm-5 col-md-6 col-lg-6 col-xl-6 col-form-label">
Generate timeline
<a href="{% url 'gymnast_timeline_export' gymnast.id %}">
<label id="week_management" for="select_week_number" class="col-md-1 col-form-label">week</label>
<div class="col-4 col-sm-4 col-md-2 col-lg-2 col-xl-2">
<select id="select_week_number" class="selectpicker">
<option value="">---</option>
{% for week_number in week_number_list %}
<option value="{{ week_number }}">{{ week_number }}</option>
{% endfor %}
</select>
</div>
<div class="col-5 col-sm-5 col-md-2 col-lg-2 col-xl-2">
<span id="span_button_generate">
<a href="" id="week_pdf_link">
<button type="button" class="btn btn-icon btn-warning mt-0">
<i class="far fa-download"></i>
</button>
</a>
</label>
</span>
</div>
</form>
</div>
</div>
<div class="form-group row">
<label for="select_season" class="col-7 col-sm-4 col-md-5 col-lg-5 col-xl-5 col-form-label">Month report for</label>
<div class="col-5 col-sm-5 col-md-2 col-lg-2 col-xl-2">
(under construction)
</div>
</div>
<div class="form-group row">
<label for="select_season" class="col-7 col-sm-4 col-md-5 col-lg-5 col-xl-5 col-form-label">Season report for</label>
<div class="col-7 col-sm-4 col-md-2 col-lg-2 col-xl-2">
<select id="select_season" class="selectpicker">
<option value="">----</option>
{% for season in season_list %}
<option value="{{ season }}">{{ season }}</option>
{% endfor %}
</select>
</div>
<div class="col-5 col-sm-5 col-md-2 col-lg-2 col-xl-2">
<span id="span_button_generate">
<a href="" id="season_pdf_link">
<button type="button" class="btn btn-icon btn-warning mt-0">
<i class="far fa-download"></i>
</button>
</a>
</span>
</div>
</div>
<div class="form-group row">
<label for="" class="col-7 col-sm-4 col-md-5 col-lg-5 col-xl-5 col-form-label">Generate timeline</label>
<div class="col-5 col-sm-5 col-md-2 col-lg-2 col-xl-2">
<a href="{% url 'gymnast_timeline_export' gymnast.id %}">
<button type="button" class="btn btn-icon btn-warning mt-0">
<i class="far fa-download"></i>
</button>
</a>
</div>
</div>
</form>
</div>
</div>
{% endblock %}
{% block footerscript %}
<script type="text/javascript">
$('#span_button_generate').hide();
$('#select_season').change(function(){
$('#select_season_for_week').change(function(){
var tmp_url = "{% url 'get_distinct_week_number_for_season_and_gymnast' gymnast.id '_season_label_' %}";
var season_label = $(this).children("option:selected").val();
target_url = tmp_url.replace('_season_label_', season_label);
@ -83,14 +107,21 @@
$('#select_week_number').change(function(){
if ($('#select_week_number').val() != "") {
var tmp_url = "{% url 'gymnast_report_export_for_week_number' gymnast.id '_season_label_' 9999 %}";
var season_label = $('#select_season').children("option:selected").val();
var season_label = $('#select_season_for_week').children("option:selected").val();
var week_number = $('#select_week_number').children("option:selected").val();
target_url = tmp_url.replace('_season_label_', season_label).replace('9999', week_number);
$('#pdf_link').attr('href', target_url);
$('#week_pdf_link').attr('href', target_url);
$('#span_button_generate').show();
} else
$('#span_button_generate').hide();
});
$('#select_season').change(function(){
var tmp_url = "{% url 'gymnast_report_export_for_season' gymnast.id '_season_label_' %}";
var season_label = $('#select_season').children("option:selected").val();
target_url = tmp_url.replace('_season_label_', season_label);
$('#season_pdf_link').attr('href', target_url);
});
</script>
{% endblock %}

View File

@ -4,19 +4,17 @@
<div class="col-md-12">
<div class="card">
<div class="card-header">
<h3>Documents</h3>
<h4>Documents</h4>
</div>
<div class="card-body">
<h4>Reports</h4>
<ul>
<li><a href="{% url 'report_choice' gymnast_id %}">Weekly</a></li>
<li>monthly (under construction)</li>
<li>seasonly (under construction)</li>
</ul>
<h4>Career</h4>
<h5>Periodical</h5>
<p><a href="{% url 'report_choice' gymnast.id %}">Report</a></p>
<br />
<h5>Career</h5>
<p>(Under construction)</p>
<h4>Evaluation</h4>
<p><a href="{% url 'gymnast_report_evaluation' gymnast_id %}">Report</a></p>
<br />
<h5>Evaluation</h5>
<p><a href="{% url 'gymnast_report_evaluation' gymnast.id %}">Report</a></p>
</div>
</div>
</div>

View File

@ -180,9 +180,21 @@ def gymnast_report_list(request, gymnast_id):
Args:
gymnast_id (int) identifiant du gymnast
"""
gymnast = get_object_or_404(Gymnast, pk=gymnast_id)
today = pendulum.now().date()
season, week_number = from_date_to_week_number(today)
season_list = __get_distinct_followup_season_for_gymnast(gymnast_id)
week_number_list = sorted(
__get_distinct_week_number_for_season_and_gymnast(gymnast_id, season)
)
context = {
"gymnast_id": gymnast_id,
"gymnast": gymnast,
"season": season,
"season_list": season_list,
"week_number": week_number,
"week_number_list": week_number_list,
}
return render(request, "gymnasts/tabs/tab_documents.html", context)
@ -1101,7 +1113,7 @@ def generate_report_for_period(
.first()
)
# ROUTINES
routine_1 = (
q1r1 = (
gymnast.has_routine.filter(routine_type=1)
.filter(date_begin__lte=date_begin)
.filter(Q(date_end__gte=date_begin) | Q(date_end__isnull=True))
@ -1113,7 +1125,7 @@ def generate_report_for_period(
total_try=Sum("number_of_try"), total_succeeded=Sum("number_of_successes")
)
routine_2 = (
q1r2 = (
gymnast.has_routine.filter(routine_type=2)
.filter(date_begin__lte=date_begin)
.filter(Q(date_end__gte=date_begin) | Q(date_end__isnull=True))
@ -1125,7 +1137,7 @@ def generate_report_for_period(
total_try=Sum("number_of_try"), total_succeeded=Sum("number_of_successes")
)
routine_3 = (
q2r1 = (
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))
@ -1137,7 +1149,7 @@ def generate_report_for_period(
total_try=Sum("number_of_try"), total_succeeded=Sum("number_of_successes")
)
routine_4 = (
sfinal = (
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))
@ -1149,7 +1161,7 @@ def generate_report_for_period(
total_try=Sum("number_of_try"), total_succeeded=Sum("number_of_successes")
)
routine_5 = (
final = (
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))
@ -1233,11 +1245,11 @@ def generate_report_for_period(
"best_point_q2r1": best_point_routine_3,
"best_point_sf": best_point_routine_4,
"best_point_f": best_point_routine_5,
"q1r1": routine_1,
"q1r2": routine_2,
"q2r1": routine_3,
"sfinal": routine_4,
"final": routine_5,
"q1r1": q1r1,
"q1r2": q1r2,
"q2r1": q2r1,
"sfinal": sfinal,
"final": final,
"q1r1_done_stat": routine_1_done_stat,
"q1r2_done_stat": routine_2_done_stat,
"q2r1_done_stat": routine_3_done_stat,