[LON-CAPA-cvs] cvs: loncom /interface lonprintout.pm
sakharuk
lon-capa-cvs@mail.lon-capa.org
Mon, 27 Jan 2003 16:01:13 -0000
sakharuk Mon Jan 27 11:01:13 2003 EDT
Modified files:
/loncom/interface lonprintout.pm
Log:
Bug 1167 is fixed. The list of problems from the primary sequence now has titles and full URLs (counting from the /res/ which is standard) for the adv users (not student) and only titles for the students. Unfortunately, I could not use $ENV{'user.adv'} to figure out eather user is adv. On my mashine even student is adv user (probably it has to be fixed - I'll try to figure out what is wrong here).
Index: loncom/interface/lonprintout.pm
diff -u loncom/interface/lonprintout.pm:1.105 loncom/interface/lonprintout.pm:1.106
--- loncom/interface/lonprintout.pm:1.105 Thu Jan 23 15:19:38 2003
+++ loncom/interface/lonprintout.pm Mon Jan 27 11:01:13 2003
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Printout
#
-# $Id: lonprintout.pm,v 1.105 2003/01/23 20:19:38 sakharuk Exp $
+# $Id: lonprintout.pm,v 1.106 2003/01/27 16:01:13 sakharuk Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -159,11 +159,18 @@
if ($sequence[0]=~/^uploaded/) {$primary_sequence = '/'.$sequence[0];}
else {$primary_sequence = '/res/'.$sequence[0];}
my @master_seq = &coming_from_hash($primary_sequence,$sequence[0]);
+ my @titles_master_seq = &titles_coming_from_hash($primary_sequence,$sequence[0]);
+ foreach my $entity (@titles_master_seq) {$entity=~/^(.*)&&/; $entity=$1}
my @master_seq_view = @master_seq;
- @master_seq = @master_seq;
- for (my $i=0;$i<=$#master_seq_view;$i++) {
- $master_seq_view[$i]=~/\/([^\/]+)$/;
- $master_seq_view[$i]=$1;
+ if (not $ENV{'request.role'}=~/^st\./) {
+ for (my $i=0;$i<=$#master_seq_view;$i++) {
+ $master_seq_view[$i]=~/___\d+___(.+)$/;
+ $master_seq_view[$i]='/'.$1;
+ }
+ } else {
+ for (my $i=0;$i<=$#master_seq_view;$i++) {
+ $master_seq_view[$i]=' ';
+ }
}
$r->print(<<ENDMENUOUT1);
<input type="hidden" name="url" value="$ENV{'form.url'}">
@@ -192,18 +199,19 @@
}
</script>
<input type=button onClick="checkall()" value="Check All">
-<input type=button onClick="uncheckall()" value="Uncheck">
+<input type=button onClick="uncheckall()" value="Uncheck">
+<input type="submit" value="Submit">
<p>
ENDMENUOUT1
my $inc=0;
for (my $i=0;$i<=$#master_seq_view;$i++) {
- if ($key_to==1 && $master_seq_view[$i]=~/\.(problem|exam|quiz|assess|survey|form|library)$/) {
- $r->print('<br /><input type=checkbox name="whatfile'.$inc.'" value="'.$master_seq[$i].'"> '."\n".
- $master_seq_view[$i]);
+ if ($key_to==1 && $master_seq[$i]=~/\.(problem|exam|quiz|assess|survey|form|library)$/) {
+ $r->print('<br /><input type=checkbox name="whatfile'.$inc.'" value="'.$master_seq[$i].'"> '."\n".'<b>'.
+ $titles_master_seq[$i].'</b> <small>'.$master_seq_view[$i].'</small>');
$inc++;
- } elsif ($key_to==0 && $master_seq_view[$i]=~/\.(problem|exam|quiz|assess|survey|form|library|xml|htm|html|page)$/) {
- $r->print('<br /><input type=checkbox name="whatfile'.$inc.'" value="'.$master_seq[$i].'"> '.
- $master_seq_view[$i]);
+ } elsif ($key_to==0 && $master_seq[$i]=~/\.(problem|exam|quiz|assess|survey|form|library|xml|htm|html|page)$/) {
+ $r->print('<br /><input type=checkbox name="whatfile'.$inc.'" value="'.$master_seq[$i].'"> '."\n".'<b>'.
+ $titles_master_seq[$i].'</b> <small>'.$master_seq_view[$i].'</small>');
$inc++;
}
}
@@ -797,6 +805,69 @@
return @resourcelist;
}
+
+sub titles_coming_from_hash {
+
+ my ($mainsequence,$symb) = @_;
+ my @resourcelist = ();
+ my $mapid = $hash{'map_pc_'.$mainsequence};
+ my $mapstart = $hash{'map_start_'.$mainsequence};
+ my $mapfinish = $hash{'map_finish_'.$mainsequence};
+ my ($presymb);
+ if ($symb) {
+ ($presymb)=split(/___/,$symb);
+ } else {
+ $presymb=$mainsequence;
+ $presymb=~s|^/res/||;
+ }
+ $presymb = $presymb.'___';
+ my $current_resource = $mapstart;
+ while ($current_resource ne $mapfinish) {
+ if (not $hash{'src_'.$current_resource}=~/\.sequence$/) {
+ my $rid = $hash{'ids_'.$hash{'src_'.$current_resource}};
+ if ($rid=~/,/) {
+ my @rid = split /,/, $rid;
+ foreach my $rid_element (@rid) {
+ if ($rid_element =~ m/^$mapid\.(\d*)/) {
+ $rid = $1;
+ last;
+ }
+ }
+ } else {
+ $rid =~ m/^$mapid\.(\d*)/;
+ $rid = $1;
+ }
+ $hash{'src_'.$current_resource} =~ m/\/res\/(.*)$/;
+ $symb = $presymb.$rid.'___'.$1;
+ push @resourcelist,$hash{'title_'.$current_resource}.'&&'.$symb;
+ } else {
+ push @resourcelist,&titles_coming_from_hash($hash{'src_'.$current_resource});
+ }
+ $current_resource = $hash{'goesto_'.$hash{'to_'.$current_resource}};
+ }
+ #needs if final resource in the map (type="finish") contains something
+ if (not $hash{'src_'.$current_resource}=~/\.sequence$/) {
+ my $rid = $hash{'ids_'.$hash{'src_'.$current_resource}};
+ if ($rid=~/,/) {
+ my @rid = split /,/, $rid;
+ foreach my $rid_element (@rid) {
+ if ($rid_element =~ m/^$mapid\.(\d*)/) {
+ $rid = $1;
+ last;
+ }
+ }
+ } else {
+ $rid =~ m/^$mapid\.(\d*)/;
+ $rid = $1;
+ }
+ $hash{'src_'.$current_resource} =~ m/\/res\/(.*)$/;
+ $symb = $presymb.$rid.'___'.$1;
+ push @resourcelist,$hash{'title_'.$current_resource}.'&&'.$symb;
+ } else {
+ push @resourcelist,&titles_coming_from_hash($hash{'src_'.$current_resource});
+ }
+ return @resourcelist;
+}
sub latex_header_footer_remove {
my $text = shift;