--- loncom/enrollment/localenroll.pm 2008/11/25 13:16:26 1.32 +++ loncom/enrollment/localenroll.pm 2009/08/18 20:08:38 1.37 @@ -1,6 +1,6 @@ # functions to glue school database system into Lon-CAPA for # automated enrollment -# $Id: localenroll.pm,v 1.32 2008/11/25 13:16:26 jms Exp $ +# $Id: localenroll.pm,v 1.37 2009/08/18 20:08:38 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -41,8 +41,6 @@ described at http://www.lon-capa.org. =over -=back - =cut package localenroll; @@ -281,6 +279,50 @@ sub validate_courseID { =pod +=item validate_instcode() + +This is called when a request is being made for an official course. +A check is made that the institutional code for which a course is +is being requested is valid according to the institutional +schedule of official classes. + +If the username of the course owner is provided, a more restrictive +test is used, namely that the requestor is listed as instructor of +record for the course in the institution's course schedule/database. + +A valid instcode is confirmed by returning 'valid'. +In the case of a check for the instructor of record, the following can +be returned: +(a) valid - the requestor is the recorded instructor - create the course +(b) reject - the requestor should never be requesting this course, reject the + request permanently +(c) pending - the requestor is not the recorded instructor, but could + become so after administrative action at the institution. Put the + request ina queue and check localenroll:validate_instcode() + periodically until the status changes to "valid". +(d) approval - the request will be held pending review by a Domain Coordinator. +(e) error (followed by the error condition); + +validate_instcode takes five arguments - + (a) the LON-CAPA domain that will contain the course + (b) the institutional code (in the MSU case this is a concatenation of + semester code, department code, and course number, e.g., fs03nop590. + (c) an optional institutional username for the course owner. + (d) an optional comma-separated list of institutional affiliations of + the course owner. + (e) an optional comma-separated list of institutional sections included in + the course request + +=cut + +sub validate_instcode { + my ($dom,$instcode,$owner,$inststatuslist,$instseclist) = @_; + my $outcome = ''; + return $outcome; +} + +=pod + =item create_password() This is called when the authentication method set for the automated @@ -348,7 +390,7 @@ sub create_password { fs03nop590 would be split as follows @{$codetitles} = ("year","semester","department","number") - $$codes{{'year'} = '2003' + $$codes{'year'} = '2003' $$codes{'semester'} = 'Fall' $$codes{'department'} = 'nop' $$codes{'number'} = '590' @@ -368,7 +410,10 @@ sub create_password { e.g., @{$$cat_order{'Semester'}} = ('ss','us','fs'); returns 1 parameter: 'ok' if no processing errors. - + + Detailed help: + http://yourloncapaserver/adm/help/Institutional_Integration_Course_Codes.hlp + =cut @@ -378,6 +423,43 @@ sub instcode_format () { return $outcome; } +=pod + +=item possible_instcodes() + +Gather acceptable values for institutional categories to use in course creation request form for official courses. + + requires four arguments: + domain ($dom) + reference to array of titles ($codetitles) + reference to hash of abbreviations used in categories ($cat_titles). + reference to hash of arrays specifying sort order used in category titles ($cat_order). + + e.g., + @{$codetitles} = ("Year","Semester","Department","Number"); + + %{$$cat_titles{'Semester'}} = ( + fs => 'Fall', + ss => 'Spring', + us => 'Summer'); + + @{$$cat_order{'Semester'}} = ('ss','us','fs'); + + returns 1 parameter: 'ok' if no processing errors. + +=cut + +sub possible_instcodes { + my ($dom,$codetitles,$cat_titles,$cat_order) = @_; + @{$codetitles} = (); + %{$$cat_titles{'Semester'}} = (); + @{$$cat_order{'Semester'}} = ('ss','us','fs'); + ($$cat_titles{'Department'},$$cat_order{'Department'}) = &get_all_depts($dom); + ($$cat_titles{'Year'},$$cat_order{'Year'}) = &get_possible_years($dom); + return 'ok'; +} + + =pod @@ -398,7 +480,7 @@ sub instcode_format () { existing photo, photo was found to be missing from institution's data store, photo used is same as before, or photo was deleted from storage on LON-CAPA server housing student's - information, no student ID was available. + information, no student/employee ID was available. (e) $action: the type of action needed. (e.g., update, delete); (f) $students: a reference to a hash with the keys set to student @@ -525,6 +607,9 @@ sub check_section { @{$code_order} = ('Semester','Year','Department','Number'); + Detailed help: + http://yourloncapaserver/adm/help/Institutional_Integration_Course_Codes.hlp + =cut sub instcode_defaults {