Diff for /loncom/enrollment/localenroll.pm between versions 1.37 and 1.41

version 1.37, 2009/08/18 20:08:38 version 1.41, 2011/01/11 22:17:39
Line 233  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 242  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 290  If the username of the course owner is p Line 294  If the username of the course owner is p
 test is used, namely that the requestor is listed as instructor of  test is used, namely that the requestor is listed as instructor of
 record for the course in the institution's course schedule/database.  record for the course in the institution's course schedule/database.
   
 A valid instcode is confirmed by returning 'valid'.  validate_instcode takes three arguments -
 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   (a) the LON-CAPA domain that will contain the course
  (b) the institutional code (in the MSU case this is a concatenation of   (b) the institutional code (in the MSU case this is a concatenation of
  semester code, department code, and course number, e.g., fs03nop590.   semester code, department code, and course number, e.g., fs03nop590.
  (c) an optional institutional username for the course owner.   (c) an optional institutional username for the course owner.
  (d) an optional comma-separated list of institutional affiliations of   
      the course owner.  An array is returned containing (a) the result of the check for a valid 
  (e) an optional comma-separated list of institutional sections included in  instcode, and (b) an (optional) course description.   
      the course request  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  =cut
   
 sub validate_instcode {  sub validate_instcode {
     my ($dom,$instcode,$owner,$inststatuslist,$instseclist) = @_;      my ($dom,$instcode,$owner) = @_;
     my $outcome = '';      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;      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, $reqtyes, $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  =pod
   
 =item create_password()  =item create_password()
Line 429  sub instcode_format () { Line 525  sub instcode_format () {
   
 Gather acceptable values for institutional categories to use in course creation request form for official courses.  Gather acceptable values for institutional categories to use in course creation request form for official courses.
   
  requires four arguments:   requires five arguments:
   
  domain ($dom)   domain ($dom)
  reference to array of titles ($codetitles)   reference to array of titles ($codetitles)
  reference to hash of abbreviations used in categories ($cat_titles).   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 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.,    e.g., 
  @{$codetitles} = ("Year","Semester","Department","Number");   @{$codetitles} = ('Year','Semester',"Department','Number');
   
  %{$$cat_titles{'Semester'}} = (   %{$$cat_titles{'Semester'}} = (
                    fs => 'Fall',                     fs => 'Fall',
Line 444  Gather acceptable values for institution Line 544  Gather acceptable values for institution
                    us => 'Summer');                     us => 'Summer');
   
  @{$$cat_order{'Semester'}} = ('ss','us','fs');   @{$$cat_order{'Semester'}} = ('ss','us','fs');
    @{$code_order} = ('Semester','Year','Department','Number');
   
  returns 1 parameter: 'ok' if no processing errors.   returns 1 parameter: 'ok' if no processing errors.
   
 =cut  =cut
   
 sub possible_instcodes {  sub possible_instcodes {
     my ($dom,$codetitles,$cat_titles,$cat_order) = @_;      my ($dom,$codetitles,$cat_titles,$cat_order,$code_order) = @_;
     @{$codetitles} = ();      @{$codetitles} = ();
     %{$$cat_titles{'Semester'}} = ();      %{$$cat_titles{'Semester'}} = ();
     @{$$cat_order{'Semester'}} = ('ss','us','fs');      @{$$cat_order{'Semester'}} = ('ss','us','fs');
     ($$cat_titles{'Department'},$$cat_order{'Department'}) = &get_all_depts($dom);      @{$code_order} = ();
     ($$cat_titles{'Year'},$$cat_order{'Year'}) = &get_possible_years($dom);  
     return 'ok';      return 'ok';
 }  }
   
   
   
 =pod  =pod
   
 =item institutional_photos()  =item institutional_photos()

Removed from v.1.37  
changed lines
  Added in v.1.41


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