');
$r->rflush();
@@ -516,23 +671,58 @@ sub search_courses {
$filter->{'combownerfilter'} = $filter->{'ownerfilter'}.':'.
$filter->{'ownerdomfilter'};
}
- foreach my $item ('descriptfilter','instcodefilter','coursefilter',
- 'combownerfilter') {
+ foreach my $item ('descriptfilter','coursefilter','combownerfilter') {
if (!$filter->{$item}) {
$filter->{$item}='.';
}
}
- if ($type eq '') { $type = '.'; }
my $timefilter =
($filter->{'sincefilter'}==-1?1:time-$filter->{'sincefilter'});
+ my ($instcodefilter,$regexpok);
+ if ($numtitles) {
+ if ($env{'form.official'}) {
+ $instcodefilter =
+ &Apache::courseclassifier::instcode_search_str($filter->{'domainfilter'},
+ $numtitles);
+ $regexpok = 1;
+ }
+ } else {
+ $instcodefilter = $filter->{'instcodefilter'};
+ }
+ if ($instcodefilter eq '') { $instcodefilter = '.'; }
+ if ($type eq '') { $type = '.'; }
%courses =
&Apache::lonnet::courseiddump($filter->{'domainfilter'},
$filter->{'descriptfilter'},
$timefilter,
- $filter->{'instcodefilter'},
+ $instcodefilter,
$filter->{'combownerfilter'},
$filter->{'coursefilter'},
- undef,undef,$type);
+ undef,undef,$type,$regexpok);
+ if (($filter->{'personfilter'} ne '') && ($filter->{'persondomfilter'} ne '')) {
+ my %rolehash = &Apache::lonnet::get_my_roles($filter->{'personfilter'},
+ $filter->{'persondomfilter'},
+ 'userroles',undef,
+ ['cc','in','ad','ep','ta','cr'],
+ $filter->{'domainfilter'});
+ foreach my $role (keys(%rolehash)) {
+ my ($cnum,$cdom,$courserole) = split(':',$role);
+ my $cid = $cdom.'_'.$cnum;
+ if (exists($courses{$cid})) {
+ if (ref($courses{$cid}) eq 'HASH') {
+ if (ref($courses{$cid}{roles}) eq 'ARRAY') {
+ if (!grep(/^\Q$courserole\E$/,@{$courses{$cid}{roles}})) {
+ push (@{$courses{$cid}{roles}},$courserole);
+ }
+ } else {
+ $courses{$cid}{roles} = [$courserole];
+ }
+ $showcourses{$cid} = $courses{$cid};
+ }
+ }
+ }
+ %courses = %showcourses;
+ }
} else {
$r->print(' ');
my %coursehash = &Apache::loncommon::findallcourses();
@@ -563,7 +753,7 @@ sub gochoose_javascript {
total => 'coursetotal',
list => 'courselist',
},
- 'Non-standard Course' => {
+ 'Community' => {
name => 'grouppick',
total => 'grouptotal',
list => 'grouplist',
@@ -680,7 +870,7 @@ Course Activity - how recently was cours
Course Domain - the domain of the course
=item *
-Course Type - Course or Non-standard Course
+Course Type - Course or Community
=item *
Course Institutional Code - the institutional identifier assigned to the course
@@ -692,7 +882,7 @@ Course Owner's Username - the username o
Course Owner's Domain - the domain of the owner of the course
=item *
-Course Description - text which appears in the Course Description (or title), as set in the Course Parameters.
+Course Title - text which appears in the Course Title, as set in the Course Parameters.
=item *
Course ID - the internal course number (course ID part after initial 'domain_') used by LON-CAPA (this criterion is only displayed to Domain Coordinators selecting a course in the same domain as their DC role).
@@ -733,7 +923,7 @@ Following selection, and/or submission,
X
B:
-Input: 1 - $type - the course type - Course or Non-standard Course
+Input: 1 - $type - the course type - Course or Community
Output: 1 - $output - javascript wrapped in EscriptEE/scriptE tags
@@ -744,9 +934,9 @@ javascript code for reporting selected s
=item *
X
-B:
+B:
-Input: 5 - request object, course type, multiple (0 or 1), form action; hash of courses.
+Input: 7 - request object, course type, multiple (0 or 1), form action, whether to show roles (for course personnel filter), hash of courses.
Output: 0
@@ -765,10 +955,10 @@ Side Effects: None
=item *
X
-B:
+B:
-Input: 6 - anonymous array of search criteria; course type; $roleelement ; $multelement ; anonymous hash of criteria and their values; form action.
+Input: 7 - anonymous array of search criteria; course type; $roleelement ; $multelement ; anonymous hash of criteria and their values; form action; ref to scalar (count of number of elements in institutional codes -- e.g., 4 for year, semester, department, and number); caller context (e.g., set to 'modifycourse' when routine is called from lonmodifycourse.pm).
Output: 1 - $output - HTML for display of search criteria, and hidden form elements.
@@ -776,10 +966,10 @@ Side Effects: None
=item *
X
-B:
+B:
-Input: 5 - request object, course type, search scope: only courses in which user has active role (1), or any course (0); anonymous hash of criteria and their values.
+Input: 5 - request object, course type, search scope: only courses in which user has active role (1), or any course (0); anonymous hash of criteria and their values; for institutional codes - number of categories).
Output: 1 - %courses - hash of courses satisfying search criteria, keys = course IDs, values are corresponding colon-separated escaped description, institutional code, owner and type.