dotlrn-Catalog Documentation DESIGN The dotLRN-Catalog package make use of various packages like acs-content-repository, categories, assessment dotLRN. It makes use of acs-content-repository API to create the data-table and store the data in the database. It is designed to provide professors a way to create courses that can have different versions (revisions) and than can be associated to dotLRN classes and communities, categorized in different categories, and also associate one assessment that will provide a way to the users to register to the system, enroll to different dotlrn classes, make member of communities, etc.
Data Model: The basic table that has all the information about dotlrn-catalog courses is: image showing dotlrn_catalog table I Indexes: "dotlrn_catalog_pkey" primary key, btree (course_id) Foreign-key constraints: "$1" FOREIGN KEY (course_id) REFERENCES cr_revisions(revision_id) The new content_type and attribute table are created with the after-install apm-callback-proc as follows: content::type::new -content_type "dotlrn_catalog" \ -pretty_name "DotLRN Catalog" \ -pretty_plural "DotLRN Catalog" \ -table_name "dotlrn_catalog" \ -id_column "course_id" # now set up the attributes that by default we need for the course content::type::attribute::new -content_type "dotlrn_catalog" \ -attribute_name "course_key" \ -datatype "string" \ -pretty_name "Course Key" \ -pretty_plural "Course Key" \ -sort_order 1 \ -column_spec "varchar(50)" content::type::attribute::new -content_type "dotlrn_catalog" \ -attribute_name "course_name" \ -datatype "string" \ -pretty_name "Course Name" \ -sort_order 2 \ -column_spec "varchar(200)" content::type::attribute::new -content_type "dotlrn_catalog" \ -attribute_name "course_info" \ -datatype "text" \ -pretty_name "Course Information" \ -sort_order 3 \ -column_spec "text" content::type::attribute::new -content_type "dotlrn_catalog" \ -attribute_name "assessment_id" \ -datatype "integer" \ -pretty_name "Assessment ID" \ -sort_order 4 \ -column_spec "integer"
Content Folder To store the the courses in the Content Repository, a content-folder with name and label "DotLRN Catalog" was created. Also the previously created content_type is registered to the folder, by calling to the same after-install apm-callback-proc as follows: set folder_id [content::folder::new -name "DotLRN Catalog" -label "DotLRN Catalog"] content::folder::register_content_type -folder_id $folder_id -content_type "dotlrn_catalog"
Roles Three new roles were created to use them when creating the relations. The first one is for the dotlrn-catalog course and it's called d_catalog_role, the second one is for the dotlrn class and it's called dotlrn-class_role and the last one is for the dotlrn communities and it's called dotlrn_com_role. This roles are the first thing that the package create on installation and their creation code is: Oracle: begin acs_rel_type.create_role('d_catalog_role', 'DotLRN Course Catalog Role', 'DotLRN Course Catalog Role'); acs_rel_type.create_role('dotlrn_class_role', 'dotLRN Class Role', 'dotLRN Class Role'); acs_rel_type.create_role('dotlrn_com_role', 'dotLRN Community Role', 'dotLRN Community Role'); commit; end; / show errors Postgres: create function inline_0 ( ) returns integer as ' begin PERFORM acs_rel_type__create_role(''d_catalog_role'', ''DotLRN Catalog Role'', ''DotLRN Catalog Role''); PERFORM acs_rel_type__create_role(''dotlrn_class_role'', ''dotLRN Class Role'', ''dotLRN Class Role''); PERFORM acs_rel_type__create_role(''dotlrn_com_role'', ''dotLRN Community Role'', ''dotLRN Community Role''); return 0; end;' language 'plpgsql'; select inline_0 ( ); drop function inline_0 ( );
Relations Two new relations were created to associate dotlrn classes and communities to dotlrn-catalog courses. On associates the dotlrn_catalog type with dotlrn_class_instance type for dotlrn classes, and the other one associates the dotlrn_catalog type with dotlrn_club for the communities. Here is were the previous created roles take place: # To associate one course to dotlrn class rel_types::new -role_one d_catalog_role \ -role_two dotlrn_class_role dotlrn_catalog_class_rel \ "DotLRN Catalog Class" "DotLRN Catalog Class" \ dotlrn_catalog 0 1 dotlrn_class_instance 0 1 # To associate one course to dotlrn community rel_types::new -role_one d_catalog_role -role_two dotlrn_com_role \ dotlrn_catalog_dotcom_rel "DotLRN Catalog Community" \ "DotLRN Catalog Community" dotlrn_catalog 0 1 dotlrn_club 0 1
Privileges Two privileges are managed in this package at different levels, one is the privilege that a user has over dotlrn-catalog package (admin, create, none), and the other one the privilege that the user has over one dotlrn-catalog course (admin,none). Depending of what privilege the users has, access to some pages and the display of information will be different. For example if you you have admin or create privilege over dotlrn-catalog package then you can access to every page under the "dotlrn-catalog/dt-catalog/" url, if you are admin all courses will be shown there but if you only have create privilege the only your courses will be show. When you create one course then the admin privilege will be granted to you over that course (item_id). There are two ways to grant permission to other users at the same two levels described before. The admin of dotlrn-catalog package can grant/revoke other users the create privilege over the package, and, any user can grant admin privilege over one of his courses to any other user in the system.
Category Tree The package installation also mounts an instance of itself under the dotlrn-catalog url, here another amp-callback-proc is called (after-mount) to create the category tree that will allow to categorize each course in different ways. The category tree is created as follows: # To categorize courses set tree_id [category_tree::add -name "dotlrn-course-catalog"] category_tree::map -tree_id $tree_id -object_id $package_id -assign_single_p "t"
USERS MANUAL Here are some simple statements to interact with the dotlrn-catalog package. For sections 2.1 to 2.6 the user requires to have create or admin privileges under the dotlrn-catalog, package. If you can see the Admin link in the top right corner of the page then you have privileges on the dotlrn-package. If you can't see it then you may be interested in Simple Users Section
Manage Category Tree Once you click to admin link then you will be redirected to your course list page, where if you are dotlrn-catalog admin or site-wide-admin then the link Manage Category Tree will appear: image showing dotlrn_catalog table Once you click on the link you will redirect to a page were you can add/remove categories and subcategories to the already created tree (dotlrn_catalog_tree). image shows link in context of page image shows example of a category edit button for a specific category image showing ordering interface in context of two categories, 1 nested in the other
Create New Course or New Course Version To create a new course click on the New Course link and you will be redirect to a page were a form to create a new course is presented: The Course Key field is a unique identifier that will identify the course. When creating a new course revision then this validation will not be checked. The Course Name is the name of the course. The Course Information is for describe the course, html is fine here. The Assessment ID select box is to associate the assessment that the users will have to answer (Enroll button) to perform an specific action. Here only the assessment that the user has created or has received permissions on will be shown. If no assessment is associated then no user can enroll to one course. The Categories select box is to select to which category the course will be shown in the index page. To create a new course version click on the icon on the left of Course Key information and change the fields you want. image shows an example of a 'new course' page. To create a new course version click on the icon on the left of Course Key information and change the fields you want. image showing a course in context with 'course key' When creating a new course version the new information will be shown in all the site, you can change between all version. image shows 'versions' link in context of a course Also you can categorize your course latter if you didn't categorize it in the first place by making click in the course name ( redirects you to Course description) and then by making click on the Categorize button. image showing the 'categorize' button as it would appear in-line with a course
Associate to dotLRN class or community Each course can be associated to one or various dotlrn classes or communities. These associations will be displayed in the course description page to give the information to the user about the classes or communities that he/she will become a member of. You can associate one course by making click in the associate link in Your Course List or in the course description page. image shows a course list with one course image shows a message 'no associations' with a link to associate To associate classes or communities to the course select check boxes to associate one or various at the same time. Associate classes and communities individually. image shows an example list of associated classes and communities, and links to associate more If you already have associations to dotLRN then a watch link will appear. image shows example course image shows First Course with new associations
Delete one course To delete one course you can click in trash icon on the right if you are in your course list or the delete button if you are in the Course Description page: image show one course from a list, with trash can on the right You will be redirected to a Delete Confirmation page were some information of the course (number of versions and associations) will be displayed and two buttons (OK, Cancel). If you OK then the course will be deleted including all associations and versions. image shows an example confirmation message window
Changing between Course Versions To change between course versions you can click on the Course Key link on each course. You will be redirected to a page were all the versions of one course are listed with some information. The "Live" image indicates that this is the version that is shown in all the pages of dotlrn-catalog. The "Go live" button makes another revision of the list "live". image shows course revisions with indication to which one is live
Grant/Revoke Permissions One user can have two privileges on dotlrn-catalog package one at package level (Admin, Create, None) and the other one at course level (Admin, None). The users that holds the "Create" privilege on dotlrn-catalog package can create courses, revisions, delete, associate on his own courses or the courses that he has received "admin" privilege. The user that creates once course has admin privilege on that course and can grant the same privilege over that course to other users. The users that does not hold any privilege at all, then can only see what courses are available and can try to enroll to them. Grant/Revoke Permissions over dotlrn-catalog package Only the users that have admin privilege on dotlrn-catalog package can will see the "Grant Permission link" and can grant Create privilege to other users on the system. Giving Create privilege to other users allows him to create, edit, delete courses in dotlrn-catalog package. You will be redirected to a page were all the users that have create privilege over dotrln-catalo package will appear. And a search form to search for users to grant/revoke privileges. image shows links: New course, Manage category tree, and arrow points to Grant permissions image shows a search/select window Grant/Revoke Permissions over one course You can grant your admin privilege on one course by making click on the Manage permission link on the permission column on your course list or by making click on the Manage Permission button on one course details page. Giving the admin privilege to a users allows he/she make all the things you can do with your course, you can also revoke his/her permission in the same way. image shows First Course in the course list image shows search/edit permissions window with test user's permission status 'not allowed'
Watch Course Details (Information) You can watch all the course information at the Course Description page by making click on the course name: image shows First Course in course list format with Course Name as link image shows course information window with example details, including links to Manage permissions, Delete, Categorize The buttons bar will only appear if you are inside dt-admin, if you come form index page then the enroll button will appear if one assessment is associated to the course: image shows previous First Course details window without links to manage permissions, delete, or categorize
Simple Users Will only see the available courses and can watch information about each course by making click on the course name at index page. If one assessment is associated to the course then they will be able to answer it and be part of one of the courses and communities also related to dotlrn-catalog Course: image shows DotLRN Catalog Index with First Course listed image shows example Course information and dotLRN Associations for First Course
AUTHORS Viaro Networks (www.viaro.net) Rocael Hernandez -- roc@viaro.net Design Vivian Aguilar -- vivian@viaro.net Design Miguel Marin -- miguelmarin@viaro.net Development and Documentation