Name | CourseOffering | |
---|---|---|
Usage | CourseOfferingService | |
CourseRegistrationInfo | Type | Complex |
ShortName | Name | Type | Description | Required? | Read only? | Cardinality | XML Attribute? | Implementation Notes |
---|---|---|---|---|---|---|---|---|
id | Unique Id | String | The system assigned unique id to identify this Course Offering. Could be implemented as as sequence number or as a UUID. Attempts to set this value on creates should result in a ReadOnlyException being thrown An Id:
|
Required on updates | Read only | One | No | maps to a lui id with the type of Course Offering |
typeKey | Type Key | String | Unique identifier for the type of this course offering. | Required | Read only on updates | One | No | must be the lui type for a course offering |
stateKey | State Key | String | Unique identifier for the state of this course offering. i.e. draft, submitted, approved, offered, canceled, etc |
Required | One | No | maps to the states that are defined in the kuali.course.offering.process with an initial state of draft | |
descr | Description | RichText | A description of this Course Offering. This starts out the same as the canonical description from the catalog but then, depending on the configuration, it may be overwritten, changed, or expanded upon. |
One | No | initially this is copied from the canonical course description and then updated and stored in the Lui description. | ||
termKey | Term Key | String | Academic term of course offering | Required | Read only on updates | One | No | set during the #createCourseOfferingFromCanonical and then maps to the aptKey on the Lui |
courseId | Course Id | String | A unique identifier assigned to all approved courses that exist in the catalog This is not updatable once initialized. |
Required | Read only on updates | One | No | this maps the the version dependent id as the offering must point to one and only one version of the course. Maps to cluId in Lui. |
formatIds | Format Ids | StringList | Identifiers for formats from the canonical course that will be offered as part of the course offering This is not updatable once initialized. |
Required | Read only on updates | Many | No | this maps to the version dependent id of the format as this must point to one and only one version of the course. Maps to cluRelationIds in Lui |
courseOfferingCode | Course Offering Code | String | Identifies the number of a course as reflected in the course catalog. This typically must be unique across all courses offered during that term. If the user wants to create two separate offerings for the same course they must modify this code to make it unique. For example: An on-line offering of the course might have an "O" appended to it to distinguish it from the face to face offering, i.e. ENG101 and ENG101O Initially copied from the course catalog but then, depending on the configuration it may be updatable. Often this field is configured so that it is not not directly updatable but rather is calculated from it's two constituent parts, the subject area and the course number suffix. For example: Subject Area = "ENG" and Suffix = "101" then code = "ENG101" |
One | No | initialially this is copied from the course catalog code but then is subsequently stored in the lui as lui.officialIdentifier.code | ||
subjectArea | Subject Area | String | Identifies the department and/subject code of the course as reflected in the course catalog. Initially copied from the course catalog but then, depending on the configuration it may be updatable. In most configurations this should not be updatable. Often used in the calculation of the courseCode |
One | No | initially copied from the canonical course but then stored in the Lui as lui.officialIdentifier.division | ||
courseNumberSuffix | Course Number Suffix | String | A suffix of the course number as reflected in the college catalog. This is the "number" portion of the course code. Initially copied from the course catalog but then, depending on the configuration it may be updatable. This field is often configured to be updatable but the updates typically simply append something like an "O" for on-line to it to differentiate multiple course offerings for the same course. Often used in the calculation of the courseCode. |
One | No | initially copied from the canonical course but then stored in the Lui as lui.officialIdentifier.suffixCode | ||
courseTitle | Course Title | String | Name of the course used in the college catalog. Initially copied from the course catalog but then, depending on the configuration it may be updatable. For regular courses this is not generally allowed to be updated on the offering, but for special topics courses this is often overridden to capture the particular topic being taught offered this term. Note: the configuration of the validation for titles is typically restricted to exclude line breaks. This may have to be loosened as some schools may want the particular topic to appear on a 2nd line. For example: SPECIAL TOPICS: AN EXPLORATION OF DEEP SPACE ARTIFACTS |
One | No | initially copied from the canonical course but then stored in the Lui as lui.officialIdentifier.longName | ||
isHonorsOffering | Is Honors Offering | Boolean | Indicates that the entire course offering is an Honors Course ??? Is this an enrollment restriction rule or a flag or both? |
One | No | store in a generic lui luCodes type of field? | ||
maximumEnrollment | Maximum Enrollment | Integer | Total maximum number of "seats" or enrollment slots that can be filled for the offering. Calculated based on sum of all the maximum seats of primary activity type offerings. |
One | No | maps to Lui.maximumEnrollment | ||
minimumEnrollment | Minimum Enrollment | Integer | Total minimum number of seats that must be filled for the offering not to be canceled. Calculated based on sum of all the minimum seats of primary activity type offerings |
One | No | maps to Lui.minimumEnrollment | ||
jointOfferingIds | Joint Offering Ids | StringList | The unique identifier of the other course offerings with which this offering is joint-listed |
Read only I think? | Many | No | Canonical might suggest offerings that can be jointly offered. This is stored as a luiluirelation of joint type | |
gradingOptionIds | Grading Option Ids | StringList | The options/scales that indicate the allowable grades that can be awarded. Typically the values here are constrained by the values on the canonical course. If the value is set here then the Clu must have a grading option set on the canonical activity. For example: an id might point to Pass/Fail or Letter Graded option. |
Many | No | these are actually ids to ResultValuesGroup. Lui.resultOptionIds returns a list of resultOptions. Filter options with grading type and those should give the resultValueGroupIds | ||
creditOptions | Credit Options | ResultValuesGroup | Type of credit of course offering. This field is initially copied from the canonical course but then, depending on configuration, it may be updated. TODO: figure out which of the credit options will be copied down because the canonical has more than one! Often it is just a fixed single value but a ResultValuesGroup could contain a range (with increments) or even a discrete list of possible credit values. |
One | No | Lui.resultOptionIds returns a list of resultOptions. Filter option with credit type and that should give the resultValueGroup | ||
gradeRosterLevelTypeKey | Grade Roster Level Key | String | Key indicating the level at which grade rosters should be generated - activity, format or course. TODO: define these types. TODO: add a service method to get the list of types that can be put in this field. |
One | No | this should be a constrained the a list types generated from the roster types from the generic type system. | ||
instructors | Instructors | OfferingInstructorList | Instructors for this course offering TODO: find out if the canonical instructors should be copied down |
Many | No | These are derived from Lui Person relations with instructor type | ||
unitsDeployment | Units Deployment | StringList | Organization(s) that is responsible for administering the course delivery - and all associated logistics - of the course Initially copied from the canonical course then, depending on the configuration, updated This is typically an academic department but could be for example the extended studies office that is responsible for delivering the course even though it's content is managed by an academic department. |
Many | No | initalized from canonical course units deployment but then stored in lui.unitsDeployment | ||
unitsContentOwner | Units Content Owner | StringList | Organization(s) that is responsible for the academic content of the course as approved in its canonical form. This is the organization that has oversight of the curriculum. This is typically an academic department. |
Read only on updates | Many | No | this is never updatable so it should just be grabbed from the canonical course and then stored in lui.unitsContentOwner | |
hasFinalExam | Has Final Exam | Boolean | Indicates whether a final exam is to be given Initially copied from the canonical course and then, depending on configuration, updated. |
One | No | If set to true, create a lui of type final exam and a lui lui relation to the course offering | ||
hasWaitlist | Has Waitlist | Boolean | Indicates whether a RegistrationGroup has a waitlist TODO: figure out how to store this TODO: make sure we are consistent on how we spell Waitlist, should be spelled Waitlist, or Wait List or Wait-List (as the merriam-webster has it) |
One | No | not sure how to store this, it depends on how we end up implementing waitlists. | ||
waitlistTypeKey | Waitlist Type Key | String | Indicates the type of waitlist as it relates to processing students on and off The three types predefined in kuali are Automatic, Semi-Automatic and Manual TODO: Right not Waitlist types are not tied to any Waitlist object so we need to define an "other key" to get the list of valid values from the type service. TODO: Decide if we need a separate getHasWaitList, perhaps no value in this field means no waitlist. TODO: Cross validate with hasWaitlist |
One | No | TODO: decide if this this should be stored on the Lui or on a waitlist object? | ||
waitlistMaximum | Waitlist Maximum | Integer | Maximum number of students to be allowed on the wait list | One | No | TODO: decide if this this should be stored on the Lui or on a waitlist object? | ||
isWaitlistCheckinRequired | Is Waitlist Checkin Required | Boolean | Indicates if the waitlist requires checkin | One | No | TODO: decide if this this should be stored on the Lui or on a waitlist object? | ||
waitlistCheckinFrequency | Waitlist Checkin Frequency | TimeAmount | Frequency for the waitlist checkin | One | No | TODO: decide if this this should be stored on the Lui or on a waitlist object? | ||
fundingSource | Funding Source | String | The primary source of funding for the offering. | One | No | fyi "funding source" is an enumeration values are state support, self-support, contract funding | ||
fees | Fees | FeeList | Fees associated with the course offering. Initially copied from the course catalog but then, depending on the configuration it may be updatable. |
Many | No | initially copied from canonical CourseFeeInfo but subsequently stored on the lui | ||
revenues | Revenues | RevenueInfoList | Organization(s) that receives the revenue from fees associated with the course offering Initially copied from the course catalog but then, depending on the configuration it may be updatable. |
Many | No | initially copied from cannonical CourseRevenueInfo but then subsequently stored on the Lui | ||
expenditure | Expenditure | ExpenditureInfo | Organization(s) that incurs the cost associated with the course offering Initially copied from the course catalog but then, depending on the configuration it may be updatable. |
One | No | initially copied from cannonical CourseRevenueInfo but then subsequently stored on the Lui | ||
isFinancialAidEligible | Is Financial Aid Eligible | Boolean | Flag indicating whether a course is eligible for Financial Aid. Derived from course catalog (canonical) TODO: find a place to store this on the canonical course because it does not currently exist there TODO: Decide if this is really a rule or a CluSet or what? |
One | No | TODO: decide where to store | ||
registrationOrderTypeKey | Registration Order Type Key | String | Specifies whether the selection of RegistrationGroup that students register for will be done as a block (all activities together) or in a sequential order of activities The two types that have been predefined are "All" and "Sequenced": All: When a student registers for this course she gets registered for all sections identified by the reg. group Sequenced: When a student registers for this course she must register first for the primary section identified and then any secondary sections TODO: We have NOT fully figured out how to do sequences in course registration |
One | No | |||
name | Name | String | A display name for this entity. | One | No | |||
attributes | Dynamic Attributes | AttributeList | List of dynamic attributes, each holding a key-value pair that can be configured to hold additional information for an implementing institution. Note: the key may be repeated more than once to simulate a list of values. |
Many | No | |||
meta | Create/Update meta info | Meta | Create and last update info for the structure. This is optional and treated as read only since the data is set by the internals of the service during maintenance operations. Contains audit trail information about the creation and last update of this object Also contains the version ind used for optimistic locking. Attempts to set or update should result in a ReadOnlyException being thrown. |
Required on updates | Read only | One | No |