Archived
1
0

Fix API::Projects::get_groups

This commit is contained in:
Mercier Pierre-Olivier 2013-11-23 03:09:53 +01:00
parent ce15c69841
commit 37dde8ce57
3 changed files with 20 additions and 19 deletions

View File

@ -249,8 +249,7 @@ sub new ($$)
my $class = shift;
my $self = {
parsed => shift,
inStd => 0,
inResult => 0,
savValue => 0,
lastGroup => {},
values => ""
};
@ -264,14 +263,10 @@ sub start_element
{
my ($self, $element) = @_;
if ($element->{Name} eq "result") {
$self->{parsed}{result} = $self->{values};
$self->{inResult} = 0;
$self->{values} = "";
}
elsif ($element->{Name} eq "student")
if ($element->{Name} eq "student")
{
$self->{inStd} = 1;
$self->{values} = "";
$self->{savValue} = 1;
push @{ $self->{lastGroup}{stds} }, {
id => $element->{Attributes}{"{}id"}{Value},
chief => $element->{Attributes}{"{}chief"}{Value},
@ -283,13 +278,18 @@ sub start_element
$self->{lastGroup}{id} = $element->{Attributes}{"{}id"}{Value};
$self->{lastGroup}{stds} = [];
}
elsif ($element->{Name} eq "result")
{
$self->{values} = "";
$self->{savValue} = 1;
}
}
sub characters
{
my ($self, $characters) = @_;
if ($self->{inStd}) {
if ($self->{savValue}) {
$self->{values} .= $characters->{Data};
}
}
@ -298,13 +298,16 @@ sub end_element
{
my ($self, $element) = @_;
if ($element->{Name} eq "group")
if ($element->{Name} eq "result")
{
$self->{parsed}{result} = $self->{values};
$self->{savValue} = 0;
}
elsif ($element->{Name} eq "group")
{
push @{ $self->{parsed}{groups} }, $self->{lastGroup};
$self->{lastGroup} = {};
$self->{inStd} = 0;
$self->{values} = "";
$self->{savValue} = 0;
}
elsif ($element->{Name} eq "student")
{

View File

@ -90,10 +90,9 @@ sub get_groups($;$)
my $res = API::Base::get('ProjectGroupHandler', $url);
#TODO: uncomment-me
#if ($res->{result} ne '0') {
# croak "Erreur durant la récupération : " . $res->{message};
#}
if ($res->{result} ne '0') {
croak "Erreur durant la récupération : " . $res->{message};
}
return $res;
}

View File

@ -11,7 +11,6 @@ my $projid = $ARGV[0];
my $year = $ARGV[1] // LDAP::get_year;
my $res = API::Projects::get_groups($projid, $year);
my $tag = "rendu-1";
map {
my $chief;