Diff for /loncom/enrollment/localenroll.pm between versions 1.39 and 1.47

version 1.39, 2009/09/13 03:14:12 version 1.47, 2014/04/30 17:17:25
Line 123  sub run() { Line 123  sub run() {
   <middlename>D</middlename>    <middlename>D</middlename>
   <startdate></startdate>    <startdate></startdate>
   <studentID>A12345678</studentID>    <studentID>A12345678</studentID>
     <credits></credits>
     <inststatus></inststatus>
  </student>   </student>
     
  with the following at the top of the file   with the following at the top of the file
Line 147  sub run() { Line 149  sub run() {
  If dates are to included in the XML file, they should be in the format   If dates are to included in the XML file, they should be in the format
  YYYY:MM:DD:HH:MM:SS (: separators required).   YYYY:MM:DD:HH:MM:SS (: separators required).
   
    The <credits> tag need only be used if the credits earned by the students will 
    be different from the default for the course. The course default is set when the
    course is created and can be modifed by a Domain Coordinator via "View or
    modify a course  or community" on the DC's Main Menu screen.
   
    A value for <inststatus> should be the institutional status used for students,
    and should be one of the types defined in inst_usertypes(). If no status
    types are defined for the domain this tag can be omitted. If Autoupdate.pl
    is enabled in your domain, updates to the institutional status set here
    will be updated by Autoupdate.pl, should changes occur.
   
  If there were 10 students in fs03nop590001, 5 students in fs03nop59o601,    If there were 10 students in fs03nop590001, 5 students in fs03nop59o601, 
  8 students in fs03nop590602, and 2 students in fs03ost580002,   8 students in fs03nop590602, and 2 students in fs03ost580002,
  then $$reply{'43551dedcd43febmsul1'} = 25   then $$reply{'43551dedcd43febmsul1'} = 25
Line 233  sub get_sections { Line 246  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 255  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 297  validate_instcode takes three arguments Line 314  validate_instcode takes three arguments
  (c) an optional institutional username for the course owner.   (c) an optional institutional username for the course owner.
   
 An array is returned containing (a) the result of the check for a valid   An array is returned containing (a) the result of the check for a valid 
 instcode, and (b) an (optional) course description.     instcode, (b) an (optional) course description, and (c) the default credits
   earned by students when completing this course. If no institutional credits
   value is available, the default credits for the course can be set via the
   course request form, or via XML in a batch file, of via the web form used
   by the Domain Coordinator to create new courses one at a time.
   
 A valid instcode is confirmed by returning 'valid'.  A valid instcode is confirmed by returning 'valid'.
   
 If no course description is available, '' should be set as  If no course description is available, '' should be set as
 the value of the second item in the returned array.  the value of the second item in the returned array.
   
Line 308  sub validate_instcode { Line 331  sub validate_instcode {
     my ($dom,$instcode,$owner) = @_;      my ($dom,$instcode,$owner) = @_;
     my $outcome = '';      my $outcome = '';
     my $description = '';      my $description = '';
     return ($outcome,$description);      my $credits = '';
       return ($outcome,$description,$credits);
 }  }
   
 =pod  =pod
Line 338  validate_crsreq takes six arguments - Line 362  validate_crsreq takes six arguments -
  (d) a comma-separated list of institutional affiliations of    (d) a comma-separated list of institutional affiliations of 
      the course owner.       the course owner.
  (e) the institutional code (in the MSU case this is a concatenation of   (e) 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).
  (f) a comma-separated list of institutional sections included in   (f) a comma-separated list of institutional sections included in
      the course request (only applicable to official courses).       the course request (only applicable to official courses).
    (g) an optional reference to a hash of custom form data.
        The custom form data will come from crsreq_updates().
   
 A valid courserequest is confirmed by returning 'process'.  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.   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  (a) process  - the requestor is the recorded instructor - create the course
 (b) reject - the requestor should never be requesting this course, reject the  (b) rejected - the requestor should never be requesting this course, reject the
     request permanently      request permanently
 (c) pending - the requestor is not the recorded instructor, but could  (c) pending - the requestor is not the recorded instructor, but could
     become so after administrative action at the institution. Put the      become so after administrative action at the institution. Put the
     request in a queue and check localenroll:validate_instcode()      request in a queue and, if an official course, check 
     periodically until the status changes to "valid".      localenroll:validate_instcode() periodically until the status changes to 
       "valid".
 (d) approval - the request will be held pending review by a Domain Coordinator.  (d) approval - the request will be held pending review by a Domain Coordinator.
 (e) error (followed by the error condition).  (e) error (followed by the error condition).
   
 =cut  =cut
   
 sub validate_crsreq {  sub validate_crsreq {
     my ($dom,$owner,$crstype,$inststatuslist,$instcode,$instseclist) = @_;      my ($dom,$owner,$crstype,$inststatuslist,$instcode,$instseclist,$custominfo) = @_;
     my $outcome = 'approval';      my $outcome = 'approval';
     return $outcome;      return $outcome;
 }  }
Line 374  lonnet -> lond -> localenroll.pm) The do Line 402  lonnet -> lond -> localenroll.pm) The do
 a table where columns are course type (official, unofficial or community)   a table where columns are course type (official, unofficial or community) 
 and rows are institutional affiliations (e.g., Faculty, Staff, Student etc.).  and rows are institutional affiliations (e.g., Faculty, Staff, Student etc.).
   
 crsreq_checks() takes three arguments: $dom, $reqtyes, $validations.  crsreq_checks() takes three arguments: $dom, $reqtypes, $validations.
 $dom - the domain for which validation options are needed.  $dom - the domain for which validation options are needed.
 $reqtypes - ref to an ARRAY of course types (i.e., official, unofficial and community.  $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"  $validations - ref to a hash of a hash which will determine whether "validate"
Line 413  sub crsreq_checks { Line 441  sub crsreq_checks {
     return 'ok';      return 'ok';
 }  }
   
   sub crsreq_updates {
       my ($cdom,$cnum,$crstype,$action,$ownername,$ownerdomain,$fullname,$title,
           $code,$accessstart,$accessend,$incoming,$outgoing) = @_;
       unless (ref($outgoing) eq 'HASH') {
           return 'fail';
       }
       my %extrainfo;
       if (ref($incoming) eq 'HASH') {
           %extrainfo = %{$incoming};
       }
       if ($action eq 'review') {
           $outgoing->{'reviewweb'} = '';
       } elsif ($action eq 'prevalidate') {
           $outgoing->{'formitems'} = {}; # key=>value, where key is form element name
                                          #             and value is multiple, if there
                                          #             are multiple form elements with
                                          #             the same name.
       } elsif ($action eq 'process') {
           $outgoing->{'formitems'} = {}; # key=>value, where key is form element name
                                          #             and value is multiple, if there
                                          #             are multiple form elements with
                                          #             the same name.
       } elsif ($action eq 'created') {
           $outgoing->{'createdweb'} = '';
           $outgoing->{'createdmsg'} = [{
                                        mt => '',
                                        args => [],
                                       }];
       } elsif ($action eq 'queued') {
           $outgoing->{'queuedmsg'} = [{
                                        mt   => '',
                                        args => [],
                                       }];
           $outgoing->{'queuedweb'} = '';
       }
       return 'ok'
   }
   
 =pod  =pod
   
 =item create_password()  =item create_password()
Line 521  sub instcode_format () { Line 587  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 536  Gather acceptable values for institution Line 606  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()
Line 728  sub instcode_defaults { Line 797  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 738  sub instcode_defaults { Line 810  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.39  
changed lines
  Added in v.1.47


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