Diff for /loncom/enrollment/localenroll.pm between versions 1.33 and 1.43

version 1.33, 2009/02/20 13:59:20 version 1.43, 2011/10/14 17:13:25
Line 41  described at http://www.lon-capa.org. Line 41  described at http://www.lon-capa.org.
   
 =over  =over
   
 =back  
   
 =cut  =cut
   
 package localenroll;  package localenroll;
Line 235  sub get_sections { Line 233  sub get_sections {
  The course section or crosslisted course will only be added to the list of   The course section or crosslisted course will only be added to the list of
  affiliates if 'ok' is returned.   affiliates if 'ok' is returned.
   
  new_course takes three arguments -   new_course takes three required arguments -
  (a) the institutional courseID (in the MSU case this is a concatenation of    (a) the institutional courseID (in the MSU case this is a concatenation of 
  semester code, department code, course number, and section number   semester code, department code, course number, and section number
  e.g., fs03nop590001).   e.g., fs03nop590001).
Line 244  sub get_sections { Line 242  sub get_sections {
  username:domain   username:domain
  (c) the LON-CAPA domain that contains the course   (c) the LON-CAPA domain that contains the course
   
    new_course also takes a fourth (optional) argument -
    (d) the course co-owners, as a comma-separated list of username:domain for
    any co-owners. 
   
 =cut  =cut
   
 sub new_course  {  sub new_course  {
     my ($course_id,$owner,$dom) = @_;      my ($course_id,$owner,$dom,$coowners) = @_;
     my $outcome = 'ok';      my $outcome = 'ok';
     return $outcome;      return $outcome;
 }  }
Line 281  sub validate_courseID { Line 283  sub validate_courseID {
   
 =pod  =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.
   
   validate_instcode takes three 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.
   
   An array is returned containing (a) the result of the check for a valid 
   instcode, and (b) an (optional) course description.   
   A valid instcode is confirmed by returning 'valid'.
   If no course description is available, '' should be set as
   the value of the second item in the returned array.
   
   =cut
   
   sub validate_instcode {
       my ($dom,$instcode,$owner) = @_;
       my $outcome = '';
       my $description = '';
       return ($outcome,$description);
   }
   
   =pod
   
   =item validate_crsreq()
   
   This is used to check whether a course request should be processed
   automatically, or held in a queue pending administrative action at
   the institution.
   
   Course requests will trigger this check if the process type has been set 
   to 'validate' for the course type (official, unofficial or community) and
   the requestor's affiliation.  Whether "validate" is an available option
   in the Domain Configuration menu is controlled by auto_courserequest_checks(). 
   One scenario is where the request is for an official course, in which case
   a check could be made that the requestor is listed as instructor of 
   record for the course in the institution's course schedule/database.
   
   Other scenarios are possible, and the routine can be customized according
   to whatever rules a domain wishes to implement to run validations against
   given the data passed in to the routine.
   
   validate_crsreq takes six arguments -
    (a) the LON-CAPA domain that will contain the course.
    (b) the username:domain for the course owner.
    (c) the course type (official, unofficial or community)
    (d) a comma-separated list of institutional affiliations of 
        the course owner.
    (e) the institutional code (in the MSU case this is a concatenation of
    semester code, department code, and course number, e.g., fs03nop590.
    (f) a comma-separated list of institutional sections included in
        the course request (only applicable to official courses).
   
   A valid courserequest is confirmed by returning 'process'.
   The following can be returned: process, rejected, pending, approval or error (with error condition - no :), followed by a : and then an optional message. 
   
   (a) process  - the requestor is the recorded instructor - create the course
   (b) rejected - 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 in a 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).
   
   =cut
   
   sub validate_crsreq {
       my ($dom,$owner,$crstype,$inststatuslist,$instcode,$instseclist) = @_;
       my $outcome = 'approval';
       return $outcome;
   }
   
   =pod 
   
   =item crsreq_checks()
   
   This is used to determine whether the "validate" option should appear in the
   possible choices for course request processing in the Domain Configuration 
   menu for Course Requests. Ultimately it is called by domainprefs.pm (via: 
   lonnet -> lond -> localenroll.pm) The domain configuration menu includes 
   a table where columns are course type (official, unofficial or community) 
   and rows are institutional affiliations (e.g., Faculty, Staff, Student etc.).
   
   crsreq_checks() takes three arguments: $dom, $reqtypes, $validations.
   $dom - the domain for which validation options are needed.
   $reqtypes - ref to an ARRAY of course types (i.e., official, unofficial and community.
   $validations - ref to a hash of a hash which will determine whether "validate"
   will be one of the possible choices for each course type (outer hash key),
   and institutional type (inner hash key).
   
   For example to allow validate to be a choice for official classes for Faculty,
   req_checks would include:
   
   $validations{'official'}{'Faculty'} = 1;
   
   This routine is closely tied to validate_crsreq(). "Validate" should not be
   a possible choice in the domain configuration menu for a particular course
   type/institutional affiliation, unless a corresponding validation code has
   been implemented in validate_crsreq().
   
   For example at MSU, official courses requested by Faculty will be validated
   against the official schedule of classes to check that the requestor is one
   of the instructors of record for the course.  In this case validate_crsreq()
   includes a call to validate_instcode().
   
   =cut
   
   sub crsreq_checks {
       my ($dom,$reqtypes,$validations) = @_;
       if ((ref($reqtypes) eq 'ARRAY') && (ref($validations) eq 'HASH')) {
           my (%usertypes,@order);
           if (&inst_usertypes($dom,\%usertypes,\@order) eq 'ok') {
               foreach my $type (@{$reqtypes}) {
                   foreach my $inst_type (@order) {
                       $validations->{$type}{$inst_type} = 0;
                   }
               }
           }
       }
       return 'ok';
   }
   
   =pod
   
 =item create_password()  =item create_password()
   
  This is called when the authentication method set for the automated    This is called when the authentication method set for the automated 
Line 381  sub instcode_format () { Line 519  sub instcode_format () {
     return $outcome;      return $outcome;
 }  }
   
   =pod
   
   =item possible_instcodes()
   
   Gather acceptable values for institutional categories to use in course creation request form for official courses.
   
    requires five 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).
    reference to array which will contain order of component parts used 
              in institutional code ($code_order).
   
    e.g., 
    @{$codetitles} = ('Year','Semester',"Department','Number');
   
    %{$$cat_titles{'Semester'}} = (
                      fs => 'Fall',
                      ss => 'Spring',
                      us => 'Summer');
   
    @{$$cat_order{'Semester'}} = ('ss','us','fs');
    @{$code_order} = ('Semester','Year','Department','Number');
   
    returns 1 parameter: 'ok' if no processing errors.
   
   =cut
   
   sub possible_instcodes {
       my ($dom,$codetitles,$cat_titles,$cat_order,$code_order) = @_;
       @{$codetitles} = ();
       %{$$cat_titles{'Semester'}} = ();
       @{$$cat_order{'Semester'}} = ('ss','us','fs');
       @{$code_order} = ();
       return 'ok';
   }
   
   
 =pod  =pod
   
Line 401  sub instcode_format () { Line 579  sub instcode_format () {
      existing photo, photo was found to be missing from institution's       existing photo, photo was found to be missing from institution's
      data store, photo used is same as before, or photo was        data store, photo used is same as before, or photo was 
      deleted from storage on LON-CAPA server housing student's       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);   (e) $action: the type of action needed. (e.g., update, delete);
  (f) $students: a reference to a hash with the keys set to student    (f) $students: a reference to a hash with the keys set to student 
Line 557  sub instcode_defaults { Line 735  sub instcode_defaults {
                 keys will be unique IDs (student or faculty/staff ID)                  keys will be unique IDs (student or faculty/staff ID)
                 values will be either: scalar (username) or an array                   values will be either: scalar (username) or an array 
                 if a single ID matches multiple usernames.                  if a single ID matches multiple usernames.
    (d) $lc_users - reference to hash containing LON-CAPA usernames in 
                    in domain $dom, as keys. Needed if institutional
                    data source only allows query by username.
  returns 1 parameter - 'ok' if no processing error, or other value    returns 1 parameter - 'ok' if no processing error, or other value 
                        if an error occurred.                         if an error occurred.
  side effects - populates the $instusers and $instids refs to hashes.   side effects - populates the $instusers and $instids refs to hashes.
Line 567  sub instcode_defaults { Line 748  sub instcode_defaults {
 =cut  =cut
   
 sub allusers_info {  sub allusers_info {
     my ($dom,$instusers,$instids) = @_;      my ($dom,$instusers,$instids,$lc_users) = @_;
     my $outcome = 'ok';      my $outcome = 'ok';
     return $outcome;       return $outcome; 
 }  }

Removed from v.1.33  
changed lines
  Added in v.1.43


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>