let print_student_html_in_table (hpr : string -> unit)
(paddl:paddress list) (color:string) (stu:student) =
hpr (Printf.sprintf "<tr bgcolor='%s'><td colspan='2'>\n<a href='student.html?login=%s'>%s</a></td><td>%s</td>\n"
color stu.login stu.name stu.pren);
if (not(!nologin_mode)) then hpr (Printf.sprintf "<td>%s</td>\n" stu.login);
if (not(!nogrades_mode)) then begin
List.iter (fun padd -> try
let t = H.get_assoc stu.teams padd in
if (t.r == Zero) then begin
let grad = student_grade stu t.proj in
if (grad >= 0.) then
hpr (Printf.sprintf "<td colspan='%d'/>\n<td align='center'><font color='#999999'>%.1f</font></td>\n"
(if !do_assign_resp then 2 else 1) grad)
else
hpr (Printf.sprintf "<td colspan='%d'/>\n"
(if !do_assign_resp then 3 else 2))
end else begin
if (!do_assign_resp) then
hpr (Printf.sprintf "<td bgcolor='%s'>%s</td>"
(num_to_color t.n) (resp_to_full_string t.r));
if (!export_type = HtmlJscpt) then
hpr (Printf.sprintf "<td align='center'>\n<a href=\"team.html?projnum=%s&groupnum=%d&teamnum=%d\">%d</a></td>"
(pa_to_string t.proj) stu.group t.n t.n)
else
hpr (Printf.sprintf "<td align='center'>%d</td>" t.n);
let grad = student_grade stu t.proj in
if ( grad >= 0.) then begin
if ( List.length padd = 1) then
hpr (Printf.sprintf "<td align='center'>%.1f</td>\n" grad)
else
hpr (Printf.sprintf "<td align='center'>%s</td>\n"
(color_string_html (-1) (Printf.sprintf "%.1f" grad)))
end else hpr "<td/>\n";
end;
with _ -> begin
let grad = student_grade stu padd in
if (!do_assign_resp) then
hpr "<td/><td/>" else hpr "<td/>";
if ( grad >= 0.) then
hpr (Printf.sprintf "<td align='center'>%.1f</td>\n" grad)
else hpr "<td/>\n";
end;) paddl;
let mean = student_mean stu in
let smin = if (mean >= 0.) then (Printf.sprintf "%.1f" mean) else "" in
hpr (Printf.sprintf "<td align='center'>%s</td>" smin);
end;
hpr "</tr>\n"