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