forked from ScoDoc/DocScoDoc
82 lines
2.3 KiB
JavaScript
82 lines
2.3 KiB
JavaScript
|
|
|
|
|
|
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();
|
|
});
|