Archived
1
0
Fork 0

Integrate final grade into grade.xml

This commit is contained in:
Mercier Pierre-Olivier 2013-09-21 16:16:34 +02:00
parent f4ce8c79e0
commit 8ecbd779d0
2 changed files with 10 additions and 13 deletions

View file

@ -161,16 +161,11 @@ sub computeXML ($;$)
my $doc = XML::LibXML::Document->new('1.0'); my $doc = XML::LibXML::Document->new('1.0');
my $root = $doc->createElement("grading"); my $root = $doc->createElement("grading");
my $final = $doc->createElement("grade");
for my $grade (@{ $self->{tree} }) { for my $grade (@{ $self->{tree} }) {
my $tmp = $grade->compute($self->{operators}, $self->{ids}, $doc, $final); my $tmp = $grade->compute($self->{operators}, $self->{ids}, $doc, $root);
} }
$final->addChild( $doc->createAttribute("value", $self->compute()) );
$final->addChild( $doc->createAttribute("name", "Note finale") );
$root->appendChild( $final );
$root->addChild( $doc->createAttribute("max", $self->{max}) ); $root->addChild( $doc->createAttribute("max", $self->{max}) );
$doc->setDocumentElement( $root ); $doc->setDocumentElement( $root );

View file

@ -3,6 +3,7 @@
use v5.10.1; use v5.10.1;
use strict; use strict;
use warnings; use warnings;
use Carp;
use Pod::Usage; use Pod::Usage;
use lib "../../"; use lib "../../";
@ -76,13 +77,14 @@ sub grades_generate
} }
else else
{ {
opendir(my $dh, "$basedir/$year/$project_id/traces/") or croak "can't opendir $some_dir: $!"; opendir(my $dh, "$basedir/$year/$project_id/traces/") or croak "can't opendir $basedir/$year/$project_id/traces/: $!";
for my $dir (grep { ( ! /^\./ ) && -d "$basedir/$year/$project_id/traces/$_" } readdir($dh)) for my $dir (grep { ( ! /^\./ ) && -d "$basedir/$year/$project_id/traces/$_" } readdir($dh))
{ {
opendir(my $dhm, "$basedir/$year/$project_id/traces/$dir") or croak "can't opendir $some_dir: $!"; opendir(my $dhm, "$basedir/$year/$project_id/traces/$dir") or croak "can't opendir $basedir/$year/$project_id/traces/$dir: $!";
for my $login (grep { ( ! /^\./ ) && -f "$basedir/$year/$project_id/traces/$dir/$_" } readdir($dhm)) for my $login (grep { ( ! /^\./ ) && -f "$basedir/$year/$project_id/traces/$dir/$_" } readdir($dhm))
{ {
$login = s/\.xml$//;
if (! grep { /^\Q$login\E$/ } @logins) { if (! grep { /^\Q$login\E$/ } @logins) {
push @logins, $login; push @logins, $login;
} }
@ -105,13 +107,13 @@ sub grades_generate
return "Invalid grading.xml received!"; return "Invalid grading.xml received!";
} }
my $grading = Grading->new($grading); $grading = Grading->new($grading);
opendir(my $dh, "$basedir/$year/$project_id/traces/") or croak "can't opendir $some_dir: $!"; opendir(my $dh, "$basedir/$year/$project_id/traces/") or croak "can't opendir $basedir/$year/$project_id/traces/: $!";
@trace_dirs = grep { ( ! /^\./ ) && -d "$basedir/$year/$project_id/traces/$_" } readdir($dh); my @trace_dirs = grep { ( ! /^\./ ) && -d "$basedir/$year/$project_id/traces/$_" } readdir($dh);
closedir $dh; closedir $dh;
for my $login (@login) for my $login (@logins)
{ {
for my $dir (@trace_dirs) for my $dir (@trace_dirs)
{ {
@ -128,7 +130,7 @@ sub grades_generate
open my $xmlgrade, ">", "$basedir/$year/$project_id/grades/$login.xml" or croak "grades/$login.xml"; open my $xmlgrade, ">", "$basedir/$year/$project_id/grades/$login.xml" or croak "grades/$login.xml";
binmode $xmlgrade; binmode $xmlgrade;
print $xmlgrade $grade->computeXML($login); print $xmlgrade $grading->computeXML($login);
close $xmlgrade; close $xmlgrade;
} }