From fbc70c03af36d901a27ba6426bf436e297892e65 Mon Sep 17 00:00:00 2001 From: Andrew Dunstan Date: Wed, 13 Oct 2010 18:46:04 +0000 Subject: [PATCH] use upgraded personalities consistently on all pages --- cgi-bin/show_history.pl | 15 ++++++++++++++- cgi-bin/show_log.pl | 13 +++++++++++++ cgi-bin/show_members.pl | 4 +++- templates/members.tt | 12 ++++++++++-- 4 files changed, 40 insertions(+), 4 deletions(-) diff --git a/cgi-bin/show_history.pl b/cgi-bin/show_history.pl index f1fa13c..902fdb5 100755 --- a/cgi-bin/show_history.pl +++ b/cgi-bin/show_history.pl @@ -28,6 +28,13 @@ my $branch = $query->param('br'); $branch =~ s/[^a-zA-Z0-9_ -]//g; my $hm = $query->param('hm'); $hm =~ s/[^a-zA-Z0-9_ -]//g; $hm = '240' unless $hm =~ /^\d+$/; +my $latest_personality = $db->selectrow_arrayref(q{ + select os_version, compiler_version + from personality + where name = ? + order by effective_date desc limit 1 + }, undef, $member); + # we don't really need to do this join, since we only want # one row from buildsystems. but it means we only have to run one # query. If it gets heavy we'll split it up and run two @@ -56,8 +63,14 @@ $sth->execute($member,$branch); while (my $row = $sth->fetchrow_hashref) { $row->{owner_email} =~ s/\@/ [ a t ] /; - push(@$statrows,$row); + if ($latest_personality) + { + $row->{os_version} = $latest_personality->[0]; + $row->{compiler_version} = $latest_personality->[1]; + } + push(@$statrows,$row); } + $sth->finish; $db->disconnect; diff --git a/cgi-bin/show_log.pl b/cgi-bin/show_log.pl index b462cc7..663fc26 100755 --- a/cgi-bin/show_log.pl +++ b/cgi-bin/show_log.pl @@ -79,7 +79,20 @@ if ($system && $logdate) $sth=$db->prepare($statement); $sth->execute($system); $info_row=$sth->fetchrow_hashref; + + my $latest_personality = $db->selectrow_arrayref(q{ + select os_version, compiler_version + from personality + where effective_date < ? + and name = ? + order by effective_date desc limit 1 + }, undef, $logdate, $system); # $sysinfo = join(" ",@$row); + if ($latest_personality) + { + $info_row->{os_version} = $latest_personality->[0]; + $info_row->{compiler_version} = $latest_personality->[1]; + } $sth->finish; $db->disconnect; } diff --git a/cgi-bin/show_members.pl b/cgi-bin/show_members.pl index 58039d5..5d4a0c9 100755 --- a/cgi-bin/show_members.pl +++ b/cgi-bin/show_members.pl @@ -60,13 +60,15 @@ while (my $row = $sth->fetchrow_hashref) $row->{branches} =~ s/^\{(.*)\}$/$1/; my $personalities = $row->{personalities}; $personalities =~ s/^\{(.*)\}$/$1/; - my @personalities = split($personalities,','); + my @personalities = split(',',$personalities); $row->{personalities} = []; foreach my $personality (@personalities) { $personality =~ s/^"(.*)"$/$1/; $personality =~ s/\\(.)/$1/g; + my ($compiler_version, $os_version, $effective_date) = split(/\t/,$personality); + $effective_date =~ s/ .*//; push(@{$row->{personalities}}, {compiler_version => $compiler_version, os_version => $os_version, effective_date => $effective_date }); diff --git a/templates/members.tt b/templates/members.tt index 18bb907..cb18311 100644 --- a/templates/members.tt +++ b/templates/members.tt @@ -28,8 +28,16 @@ [% alt = ! alt %] [% row.name %]
[% row.owner_email %] - [% row.operating_system %]
[% row.os_version %] - [% row.compiler %]
[% row.compiler_version %] + [% row.operating_system %]
[% row.os_version %] + [% FOREACH personality IN row.personalities %] +
w.e.f. [% personality.effective_date %]: [% personality.os_version %] + [% END %] + + [% row.compiler %]
[% row.compiler_version %] + [% FOREACH personality IN row.personalities %] +
w.e.f. [% personality.effective_date %]: [% personality.compiler_version %] + [% END %] + [% row.arch %] [% IF ! row.branches ; ' ' ; END -%]