function compute_moyenne() { var notes = $(".tf_field_note input") .map(function () { return parseFloat($(this).val()); }) .get(); // les coefs sont donnes (ECTS en BUT) let coefs = $("form.tf_ext_edit_ue_validations").data("ue_coefs"); // ou saisis (formations classiques) if (coefs == "undefined") { coefs = $(".tf_field_coef input") .map(function () { return parseFloat($(this).val()); }) .get(); } var N = notes.length; var dp = 0; var sum_coefs = 0; for (var i = 0; i < N; i++) { if (!(isNaN(notes[i]) || isNaN(coefs[i]))) { dp += notes[i] * coefs[i]; sum_coefs += coefs[i]; } } let moy = dp / sum_coefs; if (isNaN(moy)) { moy = "-"; } if (typeof moy == "number") { moy = moy.toFixed(2); } return moy; } // Callback select menu (UE code) function enable_disable_fields_cb() { enable_disable_fields(this); } function enable_disable_fields(select_elt) { // input fields controled by this menu var input_fields = $(select_elt) .parent() .parent() .find("input:not(.ext_coef_disabled)"); var disabled = false; if ($(select_elt).val() === "None") { disabled = true; } input_fields.each(function () { if (disabled) { let cur_value = $(this).val(); $(this).data("saved-value", cur_value); $(this).val(""); } else { let saved_value = $(this).data("saved-value"); if (typeof saved_value == "undefined") { saved_value = ""; } if (saved_value) { $(this).val(saved_value); } } }); input_fields.prop("disabled", disabled); } function setup_text_fields() { $(".ueext_valid_select").each(function () { enable_disable_fields(this); }); } $().ready(function () { $(".tf_ext_edit_ue_validations").change(function () { $(".ext_sem_moy_val")[0].innerHTML = compute_moyenne(); }); $("form.tf_ext_edit_ue_validations input").blur(function () { $(".ext_sem_moy_val")[0].innerHTML = compute_moyenne(); }); $(".ueext_valid_select").change(enable_disable_fields_cb); setup_text_fields(); });