let print_student_list_html (hpr : string -> unit) (gl:student list) =
let colsp = (if !do_assign_resp then 3 else 2) in
let paddl = get_all_project_addresses () in
hpr "<center>\n<table width='90%%' frame='hsides' \nrules='groups' border='3' summary='Groupes' style='font-size:xx-small;'>\n<colgroup align=\"left\" span='3'/>\n";
if (not(!nologin_mode)) then hpr "<colgroup align='center' span='1'/>\n";
if (not(!nogrades_mode)) then begin
List.iter (fun _ ->
hpr (Printf.sprintf "<colgroup align='center' span='%d'/>\n" colsp);
) paddl;
end;
List.iter (fun gnum ->
print_header_html_in_table hpr gl paddl gnum;
print_student_list_html_in_table hpr gl paddl gnum;
print_mean_html_in_table hpr gl paddl gnum) !num_groups;
hpr "</table>\n</center>\n"