[system] Repository:
ViewVC logotype

Revision 3688


Jump to revision: Previous Next
Author: sh002i
Date: Wed Oct 5 18:16:52 2005 UTC (7 years, 8 months ago)
Log Message:
Implemented status system as per bug #743.

The status system consists of a new hash in the course environment,
%statuses, that maps status names (like "Enrolled", "Drop", "Audit") to
(a) a list of allowed abbreviations for the status and (b) a list of
behaviors the system should have when dealing with users who have the
status.

I didn't want to have to mangle that hash-of-hashes-of-arrays myself in
many modules, but I also didn't want to devote an entire module
(Status.pm) to it. So, I'm trying a little experiment: I've added them
as methods to WeBWorK::CourseEnvironment. My thinkint is that since all
the data for these operations comes from the course environment, so why
not have them be course environment methods? Here they are:

    status_abbrev_to_name($status_abbrev)
        Given the abbreviation for a status, return the name. Returns undef
        if the abbreviation is not found.

    status_name_to_abbrevs($status_name)
        Returns the list of abbreviations for a given status. Returns an
        empty list if the status is not found.

    status_has_behavior($status_name, $behavior)
        Return true if $status_name lists $behavior.

    status_abbrev_has_behavior($status_abbrev, $behavior)
        Return true if the status abbreviated by $status_abbrev lists
        $behavior.

Since I removed the previous $siteDefaults{status} hash from
global.conf, I have already switched modules that formerly used that
hash over to using the new methods:

Authen.pm: use status_abbrev_has_behavior($status, "allow_course_access")
to determine if a user should be allowed to log in.

Feedback.pm: look up status abbreviation using status_abbrev_to_name()
and print the result for the status field in the email.

Instructor.pm: use status_abbrev_has_behavior($status, "include_in_assignment")
to determine if a user should be included in an assignment.

UserList.pm and UsersAssignedToSet.pm: use status_abbrev_to_name() to
get name of CSS class.

Changed paths:

Path Details
Directorytrunk/webwork-modperl/conf/global.conf.dist modified , text changed
Directorytrunk/webwork-modperl/lib/WeBWorK/Authen.pm modified , text changed
Directorytrunk/webwork-modperl/lib/WeBWorK/ContentGenerator/Feedback.pm modified , text changed
Directorytrunk/webwork-modperl/lib/WeBWorK/ContentGenerator/Instructor/UserList.pm modified , text changed
Directorytrunk/webwork-modperl/lib/WeBWorK/ContentGenerator/Instructor/UsersAssignedToSet.pm modified , text changed
Directorytrunk/webwork-modperl/lib/WeBWorK/ContentGenerator/Instructor.pm modified , text changed
Directorytrunk/webwork-modperl/lib/WeBWorK/CourseEnvironment.pm modified , text changed
Directorytrunk/webwork2/conf/global.conf.dist modified , text changed
Directorytrunk/webwork2/lib/WeBWorK/Authen.pm modified , text changed
Directorytrunk/webwork2/lib/WeBWorK/ContentGenerator/Feedback.pm modified , text changed
Directorytrunk/webwork2/lib/WeBWorK/ContentGenerator/Instructor/UserList.pm modified , text changed
Directorytrunk/webwork2/lib/WeBWorK/ContentGenerator/Instructor/UsersAssignedToSet.pm modified , text changed
Directorytrunk/webwork2/lib/WeBWorK/ContentGenerator/Instructor.pm modified , text changed
Directorytrunk/webwork2/lib/WeBWorK/CourseEnvironment.pm modified , text changed

aubreyja at gmail dot com
ViewVC Help
Powered by ViewVC 1.0.9