[LON-CAPA-cvs] cvs: loncom /interface londropadd.pm
matthew
lon-capa-cvs@mail.lon-capa.org
Mon, 06 May 2002 17:48:57 -0000
matthew Mon May 6 13:48:57 2002 EDT
Modified files:
/loncom/interface londropadd.pm
Log:
Added csv classlist option.
Index: loncom/interface/londropadd.pm
diff -u loncom/interface/londropadd.pm:1.40 loncom/interface/londropadd.pm:1.41
--- loncom/interface/londropadd.pm:1.40 Fri May 3 16:38:13 2002
+++ loncom/interface/londropadd.pm Mon May 6 13:48:57 2002
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to drop and add students in courses
#
-# $Id: londropadd.pm,v 1.40 2002/05/03 20:38:13 matthew Exp $
+# $Id: londropadd.pm,v 1.41 2002/05/06 17:48:57 matthew Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -156,7 +156,8 @@
<p><input type=submit name="enroll" value="Enroll Student"></p>
<hr />
<h3>Classlist</h3>
-<p><input type=submit name="view" value="View Class List"></p>
+<p><input type=submit name="view" value="View Class List">
+<input type=submit name="viewcsv" value="Comma Separated Class List"></p>
<hr />
<h3>Drop students</h3>
<p><input type=submit name="drop" value="Selection List"></p>
@@ -735,20 +736,45 @@
$r->print("There are no students currently enrolled.\n");
} else {
# Print out the available choices
- &show_class_list($r,%currentlist);
+ &show_class_list($r,'view',%currentlist);
+ }
+}
+
+# ============================================== view classlist
+sub menu_phase_two_viewcsv {
+ my $r=shift;
+ my $cid=$ENV{'request.course.id'};
+ my ($error,%currentlist)=&get_current_classlist
+ ($ENV{'course.'.$cid.'.domain'},$ENV{'course.'.$cid.'.num'});
+ if (defined($error)) {
+ if ($error =~ /^No such file or directory/) {
+ $r->print("There are no students currently enrolled.\n");
+ } else {
+ $r->print("<pre>ERROR:$error</pre>");
+ }
+ } elsif (!defined(%currentlist)) {
+ $r->print("There are no students currently enrolled.\n");
+ } else {
+ &show_class_list($r,'csv',%currentlist);
}
}
# =================================================== Show student list to drop
sub show_class_list {
- my ($r,%currentlist)=@_;
+ my ($r,$mode,%currentlist)=@_;
my $cid=$ENV{'request.course.id'};
- $r->print(<<END);
+ if ($mode eq 'view') {
+ $r->print(<<END);
<p>
<table border=2>
<tr><th>username</th><th>domain</th><th>ID</th>
<th>student name</th><th>generation</th><th>section</th></tr>
END
+ } elsif ($mode eq 'csv') {
+ $r->print(<<END);
+username,domain,ID,last name,first name,middle name,generation,section
+END
+ }
foreach (sort keys %currentlist) {
my ($sname,$sdom)=split(/\:/,$_);
my %reply=&Apache::lonnet::idrget($sdom,$sname);
@@ -759,11 +785,14 @@
$sdom, $sname);
my ($tmp) = keys(%info);
if ($tmp =~ /^(con_lost|error|no_such_host)/i) {
- $r->print('<tr><td colspan="6"><font color="red">'.
- 'Internal error: unable to get environment '.
- 'for '.$sname.' in domain '.$sdom.'</font></td></tr>');
+ $r->print( ($mode eq 'view' ?
+ '<tr><td colspan="6"><font color="red">' :'').
+ 'Internal error: unable to get environment '.
+ 'for '.$sname.' in domain '.$sdom.
+ ( $mode eq 'view' ?'</font></td></tr>' :''));
} else {
- $r->print(<<"END");
+ if ($mode eq 'view') {
+ $r->print(<<"END");
<tr>
<td>$sname</td>
<td>$sdom</td>
@@ -773,9 +802,19 @@
<td>$ssec</td>
</tr>
END
+ } elsif ($mode eq 'csv') {
+ $r->print($sname.','.
+ $sdom.','.
+ $reply{$sname}.','.
+ $info{'lastname'}.','.
+ $info{'firstname'}.','.
+ $info{'middlename'}.','.
+ $info{'generation'}.','.
+ $ssec."\n");
+ }
}
}
- $r->print('</table><br>');
+ $r->print('</table><br>') if ($mode eq 'view');
}
# =================================================== Show student list to drop
@@ -1050,9 +1089,9 @@
if (($ENV{'request.course.fn'}) &&
(&Apache::lonnet::allowed('cst',$ENV{'request.course.id'}))) {
# Start page
- $r->content_type('text/html');
+ $r->content_type('text/html') if (! exists($ENV{'form.viewcsv'}));
$r->send_http_header;
- $r->print(&header());
+ $r->print(&header()) if (! exists($ENV{'form.viewcsv'}));
# Phase one, initial screen
unless ($ENV{'form.phase'}) {
&menu_phase_one($r);
@@ -1075,6 +1114,8 @@
&menu_phase_two_drop($r);
} elsif ($ENV{'form.view'}) {
&menu_phase_two_view($r);
+ } elsif ($ENV{'form.viewcsv'}) {
+ &menu_phase_two_viewcsv($r);
}
}
# Phase three
@@ -1092,7 +1133,7 @@
&enroll_single_student($r);
}
# End
- $r->print('</form></body></html>');
+ $r->print('</form></body></html>') if (! exists($ENV{'form.viewcsv'}));
} else {
# Not in a course, or not allowed to modify parms
$ENV{'user.error.msg'}=