Here is a graphical overview of the subsystem in the Assessment
package
that organizes Items into Sections and whole Assessments:
The primary key assessment_id is a revision_id inherited from cr_revisions. Note, the CR provides two main types of entities -- cr_items and cr_revisions. The latter are where sequential versions of the former go, while cr_items is where the "current" version of an entity can be stored, where unchanging elements of an entity are kept, or where data can be cached. This is particularly useful if the system needs a single "live" version, but it isn't appropriate in situations where all versions potentially are equally-important siblings. In the case of the Assessment package, it seems likely that in some applications, users would indeed want to designate a single "live" version, while in many others, they wouldn't. However, a given revision can be chosen many easy ways other than looking at cr_items, while being forced to create and maintain appropriate state in cr_items when an application doesn't want it would be a major complication. Thus, using the cr_revisions part of the CR alone seems to be the most useful approach here. This decision pertains to all entities using the CR, but it is particularly important with Assessments since they are the key to all the rest of the entity hierarchies.
Attributes of Assessments will include those previously included in Surveys plus some others:
Permissions / Scope: Control of reuse previously was through a shareable_p boolean. As with Items and Sections, we instead will use the acs permission system:
Permissions / Scope: Control of reuse previously was through a shareable_p boolean. As with Items and Assessments, we instead will use the acs permission system:
This entity is directly analogous in purpose and design to as_item_display_types.