dotLRN Catalog Documentation
Miguel Marin (miguelmarin@viaro.net)
Viaro Networks (www.viaro.net)


CONTENTS:

1.Design
    1.1.  Data Model (Content Type and Attribute table)
    1.2.  Content Folder
    1.3.  Roles
    1.4.  Relations
    1.5.  Privileges
    1.6.  Category Tree
2. Users Manual
    2.1. Manage Category Tree
    2.2. Create New Course or New Course Version
    2.3. Associate to dotLRN class or community
    2.4. Delete one course
    2.5. Changing between course versions
    2.6. Grant/Revoke permissions
           2.6.1. Grant/Revoke permissions over dotlrn-catalog package.
           2.6.2. Grant/Revoke permissions over one course.
    2.7. Watch Course Details (Information)
    2.8. Simple Users

REQUIRES:
  • acs-content-repository    5.1.5d3
  • acs-subsite                         5.1.4
  • assessment                        0.10d5
  • categories                           1.0d7
  • dotlrn                                    2.1.0b4

              Not Final Version Numbers Yet


1. DESIGN:

The dotLRN-Catalog package make use of various packages like acs-content-repository, categories, assessment dotLRN. It makes use of acs-content-repositoy API to create the data-table and store the data in the database. It is designed to provide proffesors 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.

Back to top


1.1 Data Model:

The basic table that has all the information about dotlrn-catalog courses is:

DOTLRN_CATALOG TABLE
Column
Type
Modifiers
  course_id   integer   not null
  course_key   character varying(50)  
  course_name   character varying (200)  
  course_info   text  
  assessment_id   integer  

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"

Back to top


1.2 Content Folder:


To store the the courses in the Conten 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"


Back to top


1.3 Roles:

Three new roles were created to use them when createing 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 ( );

Back to top


1.4 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 dotrln 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

Back to top


1.5 Privileges:

Two privileges are managed in this package at differents levels, one is the privilige that a user has over dotlr-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, acces 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 acces 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.

Back to top


1.6 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"


Back to top


2. USERS MANUAL:

Here are some simple statments 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 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

Back to top


2.1. 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:


Once you click un the link you will redirect to a page were you can add/remove categories and subcategories to the already created tree (dotlrn_catalog_tree).




Back to top


2.2. 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 assesment is associated then no user can enroll to
one course.

The Categories select box is to select to wich 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.


When creating a new course version the new information will be shown in all the site, you can change between all version



Also you can categorize your course latter if you didn't categorize it in the
first place by making click in the course name ( redierects you to Course
description) and then by making click on the Categorize button.

Back to top


2.3. Associate to dotLRN class or community:

Each course can be associted 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 classess or communities that he/she will become a member of. You can associte one course by making click in the associte link in Your Course List or in the course description page.





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.



If you already have associations to dotLRN then a watch link will appear.


Back to top


2.4. 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:




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.

Back to top


2.5. 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 image indicates that this is the version that is shown in all the pages of dotlrn-catalog. The button makes another revision of the list "live".

Back to top


2.6. 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 recieved "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.

Back to top


2.6.1. 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 privile over dotrln-catalo package will appear. And a search form to search for users to grant/revoke privileges.



Back to top


2.6.2. 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.



Back to top


2.7. Watch Course Details (Information):

You can watch all the course information at the Course Description page by making click on the course name:




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:

Back to top


2.7. 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:




Back to top