version 1.37, 2009/08/18 20:08:38
|
version 1.43, 2011/10/14 17:13:25
|
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, $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 |
=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() |
Line 636 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 646 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; |
} |
} |