version 1.240.2.6, 2009/12/25 00:26:16
|
version 1.240.2.15, 2010/08/09 23:39:59
|
Line 139 use Apache::lonlocal;
|
Line 139 use Apache::lonlocal;
|
use Apache::lonpageflip(); |
use Apache::lonpageflip(); |
use Apache::lonnavdisplay(); |
use Apache::lonnavdisplay(); |
use Apache::lonmainmenu(); |
use Apache::lonmainmenu(); |
|
use Apache::loncoursequeueadmin; |
use GDBM_File; |
use GDBM_File; |
use LONCAPA qw(:DEFAULT :match); |
use LONCAPA qw(:DEFAULT :match); |
use HTML::Entities; |
use HTML::Entities; |
Line 454 ENDENTERKEY
|
Line 455 ENDENTERKEY
|
&Apache::lonnet::appenv({'request.role.adv'=>$tadv}); |
&Apache::lonnet::appenv({'request.role.adv'=>$tadv}); |
my ($furl,$ferr)= |
my ($furl,$ferr)= |
&Apache::lonuserstate::readmap($cdom.'/'.$cnum); |
&Apache::lonuserstate::readmap($cdom.'/'.$cnum); |
|
if ($custommenu) { |
|
unless (($ferr) || ($env{'form.switchrole'})) { |
|
&Apache::lonnet::put('nohist_crslastlogin',{$env{'user.name'}.':'.$env{'user.domain'}.':'.$csec.':'.$role => $now}, |
|
$cdom,$cnum); |
|
} |
|
} |
if (($env{'form.orgurl'}) && |
if (($env{'form.orgurl'}) && |
($env{'form.orgurl'}!~/^\/adm\/flip/)) { |
($env{'form.orgurl'}!~/^\/adm\/flip/)) { |
my $dest=$env{'form.orgurl'}; |
my $dest=$env{'form.orgurl'}; |
Line 722 ENDHEADER
|
Line 729 ENDHEADER
|
|
|
$refresh = $now; |
$refresh = $now; |
&Apache::lonnet::appenv({'user.refresh.time' => $refresh}); |
&Apache::lonnet::appenv({'user.refresh.time' => $refresh}); |
|
if (!$countactive && !$countfuture) { |
|
if (&Apache::loncommon::new_roles_update()) { |
|
($countactive,$countfuture,$inrole,$possiblerole) = |
|
&gather_roles($then,$refresh,$now,$reinit,$nochoose,\%roletext,\%sortrole, |
|
\%roleclass,\%futureroles,\%timezones); |
|
} |
|
} |
if ($custommenu) { |
if ($custommenu) { |
if ($env{'form.destinationurl'} eq '/adm/gci_info') { |
if ($env{'form.destinationurl'} eq '/adm/gci_info') { |
$r->print(&gci_info_page()). |
$r->print(&gci_info_page()). |
&Apache::loncommon::end_page(); |
&Apache::loncommon::end_page(); |
return OK; |
return OK; |
} |
} |
my %courses = &Apache::loncommon::existing_gcitest_courses(); |
my %courses = &Apache::loncommon::existing_gcitest_courses('cc'); |
$env{'browser.interface'}='faketextual'; |
$env{'browser.interface'}='faketextual'; |
$env{'environment.remote'}='off'; |
$env{'environment.remote'}='off'; |
my $numcourses = keys(%courses); |
my $numcourses = keys(%courses); |
my $switcher; |
my $switcher; |
if ($numcourses > 0) { |
if ($numcourses > 0) { |
$switcher = &Apache::lonmainmenu::gcitest_switcher(%courses); |
$switcher = &Apache::lonmainmenu::gcitest_switcher('cc',%courses); |
my $current; |
my $current; |
if ($env{'request.course.id'}) { |
if ($env{'request.course.id'}) { |
$current = 'cc./'.$env{'course.'.$env{'request.course.id'}.'.domain'}. |
$current = 'cc./'.$env{'course.'.$env{'request.course.id'}.'.domain'}. |
Line 765 ENDSCRIPT
|
Line 779 ENDSCRIPT
|
.'</p>'); |
.'</p>'); |
} else { |
} else { |
if ($countactive > 0) { |
if ($countactive > 0) { |
&queued_selfenrollment($r); |
$r->print(&Apache::loncoursequeueadmin::queued_selfenrollment()); |
my $domdesc = &Apache::lonnet::domain($env{'user.domain'},'description'); |
my $domdesc = &Apache::lonnet::domain($env{'user.domain'},'description'); |
my $esc_dom = &HTML::Entities::encode($env{'user.domain'},'"<>&'); |
my $esc_dom = &HTML::Entities::encode($env{'user.domain'},'"<>&'); |
$r->print( |
unless ($env{'user.domain'} eq 'gcitest') { |
'<p>' |
$r->print( |
.&mt('[_1]Visit the [_2]Course/Community Catalog[_3]' |
'<p>' |
.' to view all [_4] LON-CAPA courses and communities.' |
.&mt('[_1]Visit the [_2]Course/Community Catalog[_3]' |
,'<b>' |
.' to view all [_4] LON-CAPA courses and communities.' |
,'<a href="/adm/coursecatalog?showdom='.$esc_dom.'">' |
,'<b>' |
,'</a></b>',$domdesc) |
,'<a href="/adm/coursecatalog?showdom='.$esc_dom.'">' |
.'<br />' |
,'</a></b>',$domdesc) |
.&mt('If a course or community is [_1]not[_2] in your list of current courses and communities below,' |
.'<br />' |
|
.&mt('If a course or community is [_1]not[_2] in your list of current courses and communities below,' |
.' you may be able to enroll if self-enrollment is permitted.' |
.' you may be able to enroll if self-enrollment is permitted.' |
,'<b>','</b>') |
,'<b>','</b>') |
.'</p>' |
.'</p>' |
); |
); |
|
} |
} |
} |
} |
} |
|
|
Line 791 ENDSCRIPT
|
Line 807 ENDSCRIPT
|
} else { |
} else { |
$r->print('<h2>'.&mt('Currently no active roles, courses or communities').'</h2>'); |
$r->print('<h2>'.&mt('Currently no active roles, courses or communities').'</h2>'); |
} |
} |
&findcourse_advice($r); |
unless ($env{'user.domain'} eq 'gcitest') { |
&requestcourse_advice($r); |
&findcourse_advice($r); |
|
&requestcourse_advice($r); |
|
} |
$r->print('</form>'); |
$r->print('</form>'); |
if ($countfuture) { |
if ($countfuture) { |
$r->print(&mt('The following [quant,_1,role,roles] will become active in the future:',$countfuture)); |
$r->print(&mt('The following [quant,_1,role,roles] will become active in the future:',$countfuture)); |
Line 1067 sub gather_roles {
|
Line 1085 sub gather_roles {
|
} elsif ($trest) { |
} elsif ($trest) { |
my $tcourseid=$tdom.'_'.$trest; |
my $tcourseid=$tdom.'_'.$trest; |
$ttype = &Apache::loncommon::course_type($tcourseid); |
$ttype = &Apache::loncommon::course_type($tcourseid); |
$trole = &Apache::lonnet::plaintext($role,$ttype); |
$trole = &Apache::lonnet::plaintext($role,$ttype,$tcourseid); |
if ($env{'course.'.$tcourseid.'.description'}) { |
if ($env{'course.'.$tcourseid.'.description'}) { |
$twhere=$env{'course.'.$tcourseid.'.description'}; |
$twhere=$env{'course.'.$tcourseid.'.description'}; |
$sortkey=$role."\0".$tdom."\0".$twhere."\0".$envkey; |
$sortkey=$role."\0".$tdom."\0".$twhere."\0".$envkey; |
Line 1086 sub gather_roles {
|
Line 1104 sub gather_roles {
|
&Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$trest,$tdom). |
&Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$trest,$tdom). |
'</span>'; |
'</span>'; |
$ttype = $newhash{'type'}; |
$ttype = $newhash{'type'}; |
$trole = &Apache::lonnet::plaintext($role,$ttype); |
$trole = &Apache::lonnet::plaintext($role,$ttype,$tcourseid); |
} else { |
} else { |
$twhere=&mt('Currently not available'); |
$twhere=&mt('Currently not available'); |
$env{'course.'.$tcourseid.'.description'}=$twhere; |
$env{'course.'.$tcourseid.'.description'}=$twhere; |
Line 1266 sub findcourse_advice {
|
Line 1284 sub findcourse_advice {
|
} |
} |
$r->print('<h3>'.&mt('Self-Enrollment').'</h3>'. |
$r->print('<h3>'.&mt('Self-Enrollment').'</h3>'. |
'<p>'.&mt('The [_1]Course/Community Catalog[_2] provides information about all [_3] classes for which LON-CAPA courses have been created, as well as any communities in the domain.','<a href="/adm/coursecatalog?showdom='.$esc_dom.'">','</a>',$domdesc).'<br />'); |
'<p>'.&mt('The [_1]Course/Community Catalog[_2] provides information about all [_3] classes for which LON-CAPA courses have been created, as well as any communities in the domain.','<a href="/adm/coursecatalog?showdom='.$esc_dom.'">','</a>',$domdesc).'<br />'); |
$r->print(&mt('You can search for courses and communities which permit self-enrollment, if you would like to enroll in one.').'</p>'); |
$r->print(&mt('You can search for courses and communities which permit self-enrollment, if you would like to enroll in one.').'</p>'. |
&queued_selfenrollment($r); |
&Apache::loncoursequeueadmin::queued_selfenrollment()); |
return; |
return; |
} |
} |
|
|
Line 1324 sub requestcourse_advice {
|
Line 1342 sub requestcourse_advice {
|
return; |
return; |
} |
} |
|
|
sub queued_selfenrollment { |
|
my ($r) = @_; |
|
my %selfenrollrequests = &Apache::lonnet::dump('selfenrollrequests'); |
|
my %reqs_by_date; |
|
foreach my $item (keys(%selfenrollrequests)) { |
|
if (ref($selfenrollrequests{$item}) eq 'HASH') { |
|
if ($selfenrollrequests{$item}{'status'} eq 'request') { |
|
if ($selfenrollrequests{$item}{'timestamp'}) { |
|
push(@{$reqs_by_date{$selfenrollrequests{$item}{'timestamp'}}},$item); |
|
} |
|
} |
|
} |
|
} |
|
if (keys(%reqs_by_date)) { |
|
my $rolename = &Apache::lonnet::plaintext('st'); |
|
$r->print('<b>'.&mt('Enrollment requests pending Course Coordinator approval').'</b><br />'. |
|
&Apache::loncommon::start_data_table(). |
|
&Apache::loncommon::start_data_table_header_row(). |
|
'<th>'.&mt('Date requested').'</th><th>'.&mt('Course title').'</th>'. |
|
'<th>'.&mt('User role').'</th><th>'.&mt('Section').'</th>'. |
|
&Apache::loncommon::end_data_table_header_row()); |
|
my @sorted = sort { $a <=> $b } (keys(%reqs_by_date)); |
|
foreach my $item (@sorted) { |
|
if (ref($reqs_by_date{$item}) eq 'ARRAY') { |
|
foreach my $crs (@{$reqs_by_date{$item}}) { |
|
my %courseinfo = &Apache::lonnet::coursedescription($crs); |
|
my $usec = $selfenrollrequests{$crs}{'section'}; |
|
if ($usec eq '') { |
|
$usec = &mt('No section'); |
|
} |
|
$r->print(&Apache::loncommon::start_data_table_row(). |
|
'<td>'.&Apache::lonlocal::locallocaltime($item).'</td>'. |
|
'<td>'.$courseinfo{'description'}.'</td>'. |
|
'<td>'.$rolename.'</td><td>'.$usec.'</td>'. |
|
&Apache::loncommon::end_data_table_row()); |
|
} |
|
} |
|
} |
|
$r->print(&Apache::loncommon::end_data_table()); |
|
} |
|
return; |
|
} |
|
|
|
sub privileges_info { |
sub privileges_info { |
my ($which) = @_; |
my ($which) = @_; |
my $output; |
my $output; |
Line 1707 sub display_cc_role {
|
Line 1682 sub display_cc_role {
|
$twhere=&mt('Currently not available'); |
$twhere=&mt('Currently not available'); |
$env{'course.'.$tcourseid.'.description'}=$twhere; |
$env{'course.'.$tcourseid.'.description'}=$twhere; |
} |
} |
my $trole = &Apache::lonnet::plaintext($ccrole,$ttype); |
my $trole = &Apache::lonnet::plaintext($ccrole,$ttype,$tcourseid); |
$twhere.="<br />".&mt('Domain').":".$1; |
$twhere.="<br />".&mt('Domain').":".$1; |
($roletext,$roletext_end) = &build_roletext($trolecode,$1,$2,'is',$tryagain,$advanced,'',$tbg,$trole,$twhere,'','','',1,''); |
($roletext,$roletext_end) = &build_roletext($trolecode,$1,$2,'is',$tryagain,$advanced,'',$tbg,$trole,$twhere,'','','',1,''); |
} |
} |