Showing 271 - 280 of 695 Postings (
summary)
Created by yesten dan, last modified by Gustaf Neumann 06 Nov 2016, at 09:55 AM
Before OpenACS 5.8.1, DotLRN installations required a different installer than its base system OpenACS. There was no way for an end-user to upgrade from an existing OpenACS installation to DotLRN without loosing data, or to make hybrid installations (maybe in the future to use e.g. as well components from Project Open, etc.).
Starting with OpenACS 5.8.1 (and DotLRN 2.8.0) one can upgrade from OpenACS to DotLRN via the standard OpenACS package manager. Therefore, one easy approach to install DotLRN 2.8.0 is to install first a minimal OpenACS system and upgrade in a second step:
- Install OpenACS 5.8.1. For details, check out openacs-system-install.
- On the running OpenACS system
- browse to YOUR_SYSTEM/acs-admin/
- Click on "Install Software"
- Click on "Install from Repository"
- select "dotLRN" and click on the button "Install..."
This will install dotLRN with the required core components. More packages can be installed a some later times if desired.
Install instructions for .LRN 2.5.0.
Packaged installations
For platforms like Linux/Ubuntu, Linux/Debian, FreeBSD or Windows, one can use the packaged solutions installing separate databases for DotLRN and OpenACS:
Created by Carl Robert Blesius, last modified by Gustaf Neumann 06 Nov 2016, at 09:54 AM
Index
Introduction
Installing .LRN: Using the VMWare Virtual Machine
Installing .LRN: Using the Tarball
Installing .LRN: Using CVS
Installing .LRN: Using Debian/Ubuntu Packages
Introduction
VMWare virtual machine: simple (for a testing and evalution). Tarball: medium to hard (for a production install without source control). CVS: hard but flexible (e.g. makes it easier to update your installation from the code repository between official releases). Debian/Ubuntu: simple to medium (fast and easy install for novices, easy infrastructure deployment for professional users).
Installing .LRN: Using the VMWare Virtual Machine
to be announced.
Installing .LRN: Using the Tarball
Before you start
Quickly read the OpenACS Installation Overview and if you still feel like you can progress start with the first part of the next section: Install a Unix-like system and supporting software
(skip the obvious portions if you are already running some unix like OS). Download the latest .LRN distribution from the .LRN repository (currently 2.4.1).
Move the tarball into your /tmp directory (replace dotlrn-2.4.1.tgz with the name of the tarball you downloaded, if you downloaded another version):
mv dotlrn-2.4.1.tgz /tmp/
untar it in that directory
cd /tmp
tar zxf dotlrn-2.4.1.tgz
Installation Process
Continue with the other sections of the installation document, but instead of downloading the OpenACS tarball mentioned in the docs (section "Unpack the OpenACS tarball" in the Install Linux and supporting software document), use the .LRN tarball you just downloaded above. This .LRN distribution includes all OpenACS packages needed to install and run .LRN. Throughout the documentation, use your unpacked .LRN tarball under /tmp/dotlrn-2.4.1 (or name of the directory you unpacked it to) instead of instead of the OpenACS tarball referred to in the documentation.
.LRN is automatically installed and configured as part of the installation process if you install using a standard .LRN distribution.
When installation is complete, restart AOLserver as described in the OpenACS installation instructions. You'll need to wait a few minutes while dotLRN configures itself. Reload your browser page. If installation was successful, you'll see a login page. Use the user name and password you entered for the system administrator. A page will come up that includes a link to sitewide administration. Visit the link, then click on the "users" link and then approve the system administrator's .LRN membership.
Explore .LRN
Go to .LRN Administration at http://yourserver/dotlrn/admin. Create a .LRN Community and a couple of users.
Here are some suggestions for things to check out in dotlrn:
Goto /dotlrn your "workspace". Click the "My Account" link at the top and try the "Customize this portal" link there. Goto the admin pages for a class or community and try the "Manage Membership" link. Create a new sugroup for a class or community. Edit or create new "Custom Portlets".
Installing .LRN: Using CVS
Setting up the Required Infrastructure
The OpenACS documentation page has extensive installation instructions describing how to install needed database and webserver. Follow the instructions up until the point where you are told to download OpenACS and then continue with this document instead.
Notes on using CVS
CVS commandlines are given in terms of anonymous users, if you have an account on openacs.org, use your login where appropriate. Don't forget to set the CVS_RSH variable in your shell envrioment to "ssh".
Checking out the code
Go to /var/lib/aolserver (create the directory if it is not already present). Checkout the code (this is a complete code checkout and might take a while):
cd /var/lib/aolserver
cvs -d anonymous@cvs.openacs.org:/cvsroot login
cvs -d anonymous@cvs.openacs.org:/cvsroot -r oacs-5-4 co openacs-4
mv openacs-4/packages/dotlrn/install.xml openacs-4
Proceed
You can then proceed with the normal OpenACS installation instructions.
Explore dotLRN
Go to dotLRN Administration at http://yourserver/dotlrn/admin. Make some dotLRN users, terms, departments, classes.
Here are some suggestions for things to check out in dotlrn:
Goto /dotlrn your "workspace". Click the "Control Panel" link at the top and try the "Customize this portal" link there. Goto the admin pages for a class or community and try the "Manage Membership" link. Create a new sugroup for a class or community. Edit or create new "Custom Portlets".
Enjoy!
Automated Installation
As an alternative to the manual CVS checkout and installation described here there are scripts that will automate the install for you. See the OpenACS installation documentation for more details.
Installing .LRN: Using Debian/Ubuntu Packages
Debian
Ubuntu
Created by Malte Sussdorff, last modified by Gustaf Neumann 26 Oct 2016, at 01:13 PM
To monitor your server with Nagios you can use the check_http command.
Use
check_http -h <yourip> -u /SYSTEM/dbtest -s "success"
To obtain the HTTP critical status if OpenACS can't return success, which can be either because the server isn't running or the database connection has failed.
Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 22 Oct 2016, at 09:34 AM
Package Specification Summary for Package: dotlrn
| Summary: |
A Course Management System |
| Description: |
Course Management |
| Maturity: |
Mature |
| This package depends on: |
acs-kernel acs-subsite acs-admin acs-mail-lite acs-lang attachments new-portal profile-provider user-profile |
| Packages that depend on dotlrn: |
attendance chat-portlet content-portlet courses dotlrn-admin dotlrn-ae dotlrn-application-track dotlrn-assessment dotlrn-attendance dotlrn-bboard dotlrn-beehive dotlrn-bm dotlrn-calendar dotlrn-cards dotlrn-catalog dotlrn-chat dotlrn-content dotlrn-curriculum dotlrn-datamanager dotlrn-dotlrn dotlrn-ecommerce dotlrn-edit-this-page dotlrn-eduwiki dotlrn-evaluation dotlrn-expense-tracking dotlrn-faq dotlrn-forums dotlrn-fs dotlrn-homework dotlrn-imsld dotlrn-jabber dotlrn-lamsint dotlrn-learning-content dotlrn-lorsm dotlrn-messages dotlrn-mmplayer dotlrn-news dotlrn-news-aggregator dotlrn-photo-album dotlrn-portlet dotlrn-quota dotlrn-recruiting dotlrn-research dotlrn-static dotlrn-survey dotlrn-syllabus dotlrn-tasks dotlrn-user-tracking dotlrn-weblogger dotlrn-wikipedia dotlrn-wps dotlrn-xowiki eduwiki eduwiki-portlet evaluation expenses ims-ent learning-content learning-content-portlet messages messages-portlet planner random-photo-portlet research-portlet static-portlet tasks-portlet theme-selva theme-zen xowiki-portlet |
| Package parameters: |
- ConvertBinPath
- path to the ImageMagick convert binary (default /usr/bin/convert, type string, scope instance)
- DefaultSiteTemplate
- The name of the default site template (default #new-portal.sloan_theme_name#, type string, scope instance)
- SelfRegistrationP
- Allow a user to join/leave communities or classes. (default 1, type number, scope instance)
- SelfRegistrationRedirectTo
- URL to redirect to if user is not allowed to join/leave a community or class instead of displaying the 'Not Allowed' page. (default /dotlrn, type string, scope instance)
- admin_layout_name
- The layout of the admin page (default #new-portal.simple_2column_layout_name#, type string, scope instance)
- admin_page_name
- The name of the admin page (default #dotlrn.admin_page_name#, type string, scope instance)
- auto_dotlrn_user_email_patterns
- Automatic dotLRN user email patterns (default , type string, scope instance)
- class_group_type_key
- Class Group Type (default dotlrn_class, type string, scope instance)
- class_instance_pages_csv
- cvs list of the page_name/layout to create (default #dotlrn.class_page_home_title#,#new-portal.simple_2column_layout_name#,#dotlrn.class_page_home_accesskey#;#dotlrn.class_page_calendar_title#,#new-portal.simple_1column_layout_name#,#dotlrn.class_page_calendar_accesskey#;#dotlrn.class_page_file_storage_title#,#new-portal.simple_1column_layout_name#,#dotlrn.class_page_file_storage_accesskey#, type string, scope instance)
- class_instance_portal_pretty_name
- the nice name for the class instance portal template (default #dotlrn.class_instance_portal_pretty_name#, type string, scope instance)
- class_instances_pretty_name
- used to display everywhere in the ui (default #dotlrn.class_instances_pretty_name#, type string, scope instance)
- class_instances_pretty_plural
- used everywhere in the ui (default #dotlrn.class_instances_pretty_plural#, type string, scope instance)
- classes_pretty_name
- used to display everywhere in the ui (default #dotlrn.classes_pretty_name#, type string, scope instance)
- classes_pretty_plural
- used everywhere in the ui (default #dotlrn.classes_pretty_plural#, type string, scope instance)
- club_group_type_key
- Class Group Type (default dotlrn_club, type string, scope instance)
- club_pages_csv
- same (default #dotlrn.club_page_home_title#,#new-portal.simple_2column_layout_name#,#dotlrn.club_page_home_accesskey#;#dotlrn.club_page_calendar_title#,#new-portal.simple_1column_layout_name#,#dotlrn.club_page_calendar_accesskey#;#dotlrn.club_page_file_storage_title#,#new-portal.simple_1column_layout_name#,#dotlrn.club_page_file_storage_accesskey#;#dotlrn.club_page_people_title#,#new-portal.simple_1column_layout_name#,#dotlrn.club_page_people_accesskey#, type string, scope instance)
- clubs_pretty_name
- used everywhere in the ui (default #dotlrn.clubs_pretty_name#, type string, scope instance)
- clubs_pretty_plural
- used everywhere in the ui (default #dotlrn.clubs_pretty_plural#, type string, scope instance)
- community_level_p
- Whether this is a Class Instance Level instantiation of the package (default , type number, scope instance)
- community_type_level_p
- Whether this is a Class Level instance of the package (default , type number, scope instance)
- default_class_instance_applets
- dotLRN applets to add by default to each new community (default dotlrn_dotlrn,dotlrn_fs,dotlrn_forums,dotlrn_calendar,dotlrn_faq,dotlrn_news,dotlrn_static,dotlrn_bm,dotlrn_syllabus,dotlrn_homework_applet, type string, scope instance)
- default_club_applets
- the applets to add when making a new club (default dotlrn_dotlrn,dotlrn_fs,dotlrn_forums,dotlrn_calendar,dotlrn_faq,dotlrn_news,dotlrn_static,dotlrn_bm, type string, scope instance)
- default_subcomm_applets
- The applets to add when making a new subgroup (default dotlrn_dotlrn,dotlrn_fs,dotlrn_forums,dotlrn_calendar,dotlrn_faq,dotlrn_news,dotlrn_static,dotlrn_bm, type string, scope instance)
- default_user_portal_applets
- a csv list of the applets to call when creating the user portal template (default dotlrn_dotlrn,dotlrn_calendar,dotlrn_forums,dotlrn_faq,dotlrn_fs,dotlrn_news, type string, scope instance)
- departments_pretty_name
- used everywhere in the ui (default #dotlrn.departments_pretty_name#, type string, scope instance)
- departments_pretty_plural
- used everywhere in the ui (default #dotlrn.departments_pretty_plural#, type string, scope instance)
- dotlrn_admin_pretty_name
- What is dotlrn administration displayed as? Some might want 'Site Wide Administration' and some might with 'dotLRN Administration' (default #dotlrn.dotlrn_admin_pretty_name#, type string, scope instance)
- dotlrn_level_p
- Whether this is the top-level instantiation of the DotLRN package (default , type number, scope instance)
- dotlrn_main_portlet_pretty_name
- The pretty name for the dotlrn main portlet (aka "My Groups") (default #dotlrn.dotlrn_main_portlet_pretty_name#, type string, scope instance)
- dotlrn_main_portlet_region
- The region of the user's workspace portal to put the dotlrn main portlet into. 1 is the leftmost. 2 is the next region to the left. etc. (default 2, type string, scope instance)
- group_type_key
- Class Group Type (default dotlrn_community, type string, scope instance)
- hide_personal_portal_p
- Some systems may wish to keep the personal portal hidden. Setting this value to 1 will cause dotlrn to exclude navigation to the personal portal from community portals, and disable the entire navbar on non-community portal pages. (default 0, type number, scope instance)
- non_member_layout_name
- The name of the not a member page (default #new-portal.simple_2column_layout_name#, type string, scope instance)
- non_member_page_name
- The name of the not a member page (default #dotlrn.non_member_page_name#, type string, scope instance)
- show_portrait_p
- Should we show and solicit user portraits? 1=Yes, 0=No (default 1, type number, scope instance)
- subcomm_pages_csv
- default page names and layouts for subcomms (default #dotlrn.subcomm_page_home_title#,#new-portal.simple_2column_layout_name#,#dotlrn.subcomm_page_home_accesskey#;#dotlrn.subcomm_page_info_title#,#new-portal.simple_1column_layout_name#,#dotlrn.subcomm_page_info_accesskey#;#dotlrn.subcomm_page_calendar_title#,#new-portal.simple_1column_layout_name#,#dotlrn.subcomm_page_calendar_accesskey#;#dotlrn.subcomm_page_file_storage_title#,#new-portal.simple_1column_layout_name#,#dotlrn.subcomm_page_file_storage_accesskey#, type string, scope instance)
- subcommunities_pretty_name
- what subcomms are called (default #dotlrn.subcommunities_pretty_name#, type string, scope instance)
- subcommunities_pretty_plural
- the plural (default #dotlrn.subcommunities_pretty_plural#, type string, scope instance)
- user_portal_pages_csv
- a csv list of the other pages to create on the user wsp by default (default #dotlrn.user_portal_page_home_title#,#new-portal.simple_2column_layout_name#,#dotlrn.user_portal_page_home_accesskey#;#dotlrn.user_portal_page_calendar_title#,#new-portal.simple_1column_layout_name#,#dotlrn.user_portal_page_calendar_accesskey#;#dotlrn.user_portal_page_file_storage_title#,#new-portal.simple_1column_layout_name#,#dotlrn.user_portal_page_file_storage_accesskey#, type string, scope instance)
- user_portal_pretty_name
- the pretty name for the user portal (default #dotlrn.user_portal_pretty_name#, type string, scope instance)
- .LRN Portal Types: AdminChangeSiteTemplate_p
- desc (default 1, type number, scope instance)
- .LRN Portal Types: CommDefaultSiteTemplate_p
- This is the site_template_id used by default when creating a community. If you want to change this parameter go to Dotlrn Admin and Click in Site Templates; then Choose wich is the Site Template for default when creating users. (default 0, type number, scope instance)
- .LRN Portal Types: DefaultMaster_p
- Default master for public pages ( user_id = 0 ) (default /packages/dotlrn/www/dotlrn-master, type string, scope instance)
- .LRN Portal Types: UserChangeSiteTemplate_p
- Indicates if all users are able to change their Site Template. A value of 0 indicates that users cannot change it. A value of 1 indicates that users can. (default 0, type number, scope instance)
- .LRN Portal Types: UserDefaultSiteTemplate_p
- This is the site_template_id used by default when creating a user. If you want to change this parameter go to Dotlrn Admin and Click in Site Templates; then Choose wich is the Site Template for default when creating users. (default 0, type number, scope instance)
- .LRN Portal Types: dotlrn_class_instance
- Defines which subtype of dotlrn portal type is going to be used by default when creating a new Class Portal. (default dotlrn_class_instance, type string, scope instance)
- .LRN Portal Types: dotlrn_club
- Defines which subtype of dotlrn portal type is going to be used by default when creating a new Subgruop portal. (default dotlrn_club, type string, scope instance)
- .LRN Portal Types: dotlrn_community
- Defines which subtype of dotlrn portal type is going to be used by default when creating a new Community portal. (default dotlrn_community, type string, scope instance)
- .LRN Portal Types: user
- Defines which subtype of dotlrn portal type is going to be used by default when creating a new User portal. (default user, type number, scope instance)
- Auto-Adding Users to .LRN: AutoAddAuthorities
- A comma-separated list of short-names of authorities for which users should be automatically added to .LRN, or '*' for all. In order for users to be auto-added, AutoAddUsersP needs to be set to 1, and this needs to be set to * or include the relevant authority short_names. Example: 'local,ldap'. (default *, type string, scope instance)
- Auto-Adding Users to .LRN: AutoAddUsersP
- Automatically add OpenACS users to .LRN. 1 = yes, 0 = no. In order for users to be auto-added, this needs to be set to 1, and AutoAddAuthorities needs to be set to * or include the relevant authority short_names. (default 0, type number, scope instance)
- Auto-Adding Users to .LRN: AutoUserAccessLevel
- The access level of auto-added users. 1 = Full access user, 0 = Limited access user (default 1, type number, scope instance)
- Auto-Adding Users to .LRN: AutoUserReadPrivateDataP
- Auto-added user's guest status. 1 = Not a guest , 0 = Guest. (default 1, type number, scope instance)
- Auto-Adding Users to .LRN: AutoUserType
- The user type for auto-approved users. (default student, type string, scope instance)
- Communities: DefaultCommunityJoinMailP
- If there is no welcome mail for new members in the database, should a default one be send? (default 0, type string, scope instance)
- Toolbar: dotlrn_toolbar_enabled_p
- Enable or disable the dotlrn toolbar (default 0, type number, scope instance)
- Toolbar: dotlrn_toolbar_show_info_p
- Show relevant information to developpers. (default 0, type number, scope instance)
|
Bug Tracker Summary for Package: dotlrn
Code Metrics Summary for Package: dotlrn
| # Tcl Procs |
0 |
| # Tcl Lines |
0 |
| # Tcl Blank Lines |
1 |
| # Tcl Comment Lines |
0 |
| # Automated Tests |
0 |
| # Stored Procedures |
PG: 0 ORA: 0 |
| # SQL Lines |
PG: 0 (blank 1 comments 0)
ORA: 0 (blank 1 comments 0) |
| # ADP pages |
0 |
| # ADP lines |
0 |
| # Include pages (dotlrn/lib/) |
0 |
| # Documentation pages |
0
|
| # Documentation lines |
0 |
| Browse Source |
Not installed |
| Github Repository: |
https://github.com/openacs/dotlrn/tree/oacs-5-10
|
See proposal for comprehensive email event handling
For details about dotlrn, see http://dotlrn.org/
Created by Rocael Hernández Rizzardini, last modified by Gustaf Neumann 22 Oct 2016, at 09:10 AM
API calls for adding javascript
template::add_event_listener
add event listener for a single ID or for a CSS class. When using this call, the provided JavaScript snipped will be added suitable for content security policies (by adding nonces).
Example:
template::add_event_listener \
-id edit-tags-control \
-script [subst {document.getElementById("edit_tags").style.display="block";}]
template::add_body_handler
Adds javascript code to an event handler in the body tag. Several javascript code blocks may be assigned to each handler by subsequent calls to template::add_body_handler.
template::add_event_listener
Add a script to the start of the body section of the document to be returned to the users client.
DEPRECATED:
There was no easy way to add onload event to openacs, unless you edit www/site-master.tcl, but now you can define within you own package what functions you want to be for onload javascript event. This tcl callback definition will work for any page.
ad_proc -public -callback subsite::header_onload -impl my_onload {} {
return the function to load when the page is served
} {
return {my_javascript_function();}
}
Or in case you want it for a single page, or for you custom template, use the template property to send it:
<property name="body(onload)">
my_javascript_function();
</property>
Alternatively, as the on_load property tag has been deprecated, you could in your .tcl file set a variable
set my_function_name "my_javascript_function();"
then in the .adp
<property name="body(onload)">
@my_function_name;noquote@
</property>
Created by Emmanuelle Raffenne, last modified by Benjamin Brink 22 Oct 2016, at 04:41 AM
Package Specification Summary for Package: dotlrn-portlet
| Summary: |
Portlet for the "new-portal" system for the DotLRN |
| Description: |
|
| Maturity: |
Mature |
| This package depends on: |
dotlrn new-portal |
| Packages that depend on dotlrn-portlet: |
dotlrn-dotlrn |
| Package parameters: |
- dotlrn_admin_portlet_force_region
- the portal region to put the dotlrn admin portlet in (default 1, type number, scope instance)
- dotlrn_members_staff_portlet_force_region
- the portal region to put the dotlrn members staff portlet (default 2, type number, scope instance)
- dotlrn_portlet_force_region
- the portal region to put the dotlrn portlet on (default 2, type number, scope instance)
- Group Administration: AllowChangeEnrollmentPolicy
- Does the community admin can change Enrollment Policy? (default 1, type number, scope instance)
- Group Administration: AllowCreateGuestUsersInCommunity
- Does the community admin can create Limited Guests? (default 1, type number, scope instance)
- Group Administration: AllowCreateLimitedUsersInCommunity
- Does the community admin can create Limited Users? (default 1, type number, scope instance)
- Group Administration: AllowCustomizePortalLayout
- Does the community admin can Customize Portal Layout? (default 1, type number, scope instance)
- Group Administration: AllowManageApplets
- Does the community admin can manage applets? (default 1, type number, scope instance)
- Group Administration: AllowManageMembership
- Does the community admin can Manage Membership? (default 1, type number, scope instance)
- Group Administration: AllowMembersDropGroups
- Does user can drop a Group? (default 1, type number, scope instance)
|
Bug Tracker Summary for Package: dotlrn-portlet
Code Metrics Summary for Package: dotlrn-portlet
| # Tcl Procs |
0 |
| # Tcl Lines |
0 |
| # Tcl Blank Lines |
1 |
| # Tcl Comment Lines |
0 |
| # Automated Tests |
0 |
| # Stored Procedures |
PG: 0 ORA: 0 |
| # SQL Lines |
PG: 0 (blank 1 comments 0)
ORA: 0 (blank 1 comments 0) |
| # ADP pages |
0 |
| # ADP lines |
0 |
| # Include pages (dotlrn-portlet/lib/) |
0 |
| # Documentation pages |
0
|
| # Documentation lines |
0 |
| Browse Source |
Not installed |
| Github Repository: |
https://github.com/openacs/dotlrn-portlet/tree/oacs-5-10
|
Created by Emmanuelle Raffenne, last modified by Benjamin Brink 22 Oct 2016, at 04:40 AM
Package Specification Summary for Package: dotlrn-dotlrn
| Summary: |
Helper routines for dotLRN applets |
| Description: |
|
| Maturity: |
Mature |
| This package depends on: |
dotlrn dotlrn-portlet |
| Packages that depend on dotlrn-dotlrn: |
None |
| Package parameters: |
None
|
Bug Tracker Summary for Package: dotlrn-dotlrn
There is no package with the name "dotlrn-dotlrn" known to bug-tracker.
Code Metrics Summary for Package: dotlrn-dotlrn
| # Tcl Procs |
0 |
| # Tcl Lines |
0 |
| # Tcl Blank Lines |
1 |
| # Tcl Comment Lines |
0 |
| # Automated Tests |
0 |
| # Stored Procedures |
PG: 0 ORA: 0 |
| # SQL Lines |
PG: 0 (blank 1 comments 0)
ORA: 0 (blank 1 comments 0) |
| # ADP pages |
0 |
| # ADP lines |
0 |
| # Include pages (dotlrn-dotlrn/lib/) |
0 |
| # Documentation pages |
0
|
| # Documentation lines |
0 |
| Browse Source |
Not installed |
| Github Repository: |
https://github.com/openacs/dotlrn-dotlrn/tree/oacs-5-10
|
Created by Gustaf Neumann, last modified by Benjamin Brink 22 Oct 2016, at 04:40 AM
Package Specification Summary for Package: dotlrn-datamanager
| Summary: |
|
| Description: |
|
| Maturity: |
New Submission or Maturity Unknown |
| This package depends on: |
dotlrn datamanager-portlet datamanager |
| Packages that depend on dotlrn-datamanager: |
None |
| Package parameters: |
None
|
Bug Tracker Summary for Package: dotlrn-datamanager
There is no package with the name "dotlrn-datamanager" known to bug-tracker.
Code Metrics Summary for Package: dotlrn-datamanager
| # Tcl Procs |
0 |
| # Tcl Lines |
0 |
| # Tcl Blank Lines |
1 |
| # Tcl Comment Lines |
0 |
| # Automated Tests |
0 |
| # Stored Procedures |
PG: 0 ORA: 0 |
| # SQL Lines |
PG: 0 (blank 1 comments 0)
ORA: 0 (blank 1 comments 0) |
| # ADP pages |
0 |
| # ADP lines |
0 |
| # Include pages (dotlrn-datamanager/lib/) |
0 |
| # Documentation pages |
0
|
| # Documentation lines |
0 |
| Browse Source |
Not installed |
| Github Repository: |
https://github.com/openacs/dotlrn-datamanager/tree/oacs-5-10
|
Created by Emmanuelle Raffenne, last modified by Benjamin Brink 22 Oct 2016, at 04:39 AM
Package Specification Summary for Package: dotlrn-catalog
Bug Tracker Summary for Package: dotlrn-catalog
There is no package with the name "dotlrn-catalog" known to bug-tracker.
Code Metrics Summary for Package: dotlrn-catalog
| # Tcl Procs |
0 |
| # Tcl Lines |
0 |
| # Tcl Blank Lines |
1 |
| # Tcl Comment Lines |
0 |
| # Automated Tests |
0 |
| # Stored Procedures |
PG: 0 ORA: 0 |
| # SQL Lines |
PG: 0 (blank 1 comments 0)
ORA: 0 (blank 1 comments 0) |
| # ADP pages |
0 |
| # ADP lines |
0 |
| # Include pages (dotlrn-catalog/lib/) |
0 |
| # Documentation pages |
0
|
| # Documentation lines |
0 |
| Browse Source |
Not installed |
| Github Repository: |
https://github.com/openacs/dotlrn-catalog/tree/oacs-5-10
|
Proposal To Extend dotLRN Course Catalog
Author: Nima Mazloumi
After talking to Carl and Dave I would like to propose the following extensions to dotlrn-catalog: Please forgive my poor englisch and feel free to contact me for further questions.
Extension technique
In order to keep dotlrn-catalog simple all new extensions should be realized as sub types of the object type dotlrn_catalog. Thus we don't introduce new attributes to the dotlrn_catalog table. Instead the new sub type shall provide it's own table and attributes.
In order to support several sub types dotlrn-catalog has to be modularized in a way that those fragments specific to a type so-to-speak infused in the right way. For this two concepts shall serve as a solution:
- usage of inclulets for adp pages and
- usage of so called extension points for the tcl code.
Includelets
Includelets are the standard way to include adp files within others. The characteristic in this case is that the adp file included is determined by the given sub type used. For this purpose dotlrn_catalog will contain a supfolder lib with serveral subfolders named exactly by the sub type name. Depending on the given type right system will select the right includelet and render the view.
Extension Points
In this case the tcl files have to be extended transparently depending of the given sub type. For this purpose we would like to suggest the usage of callbacks. Depending of the extension form (exclusive or composition) either the callback directly or an implementation for a given type is called to extend the behaviour of the package.
Behaviour at runtime
The default behaviour of dotlrn-catalog will be how it is right now. Administrators are able to create new course items, associate assessments to them and link them to dotlrn communities. The only difference will be how the pages are composed. With the above propsed solution the default installation will only know the object type dotlrn_catalog and therefore only include includlets for this type and also only call callback implementations for this type. This solution will not require any changes to the datamodel.
To achieve this solution forms, lists and type-specific fragments need to ge generated dynamically depending of the object type. You can see it partially implemented in the course-add-edit file in the current dotlrn-catalog package.
To achieve this dotlrn-catalog uses already now the new CR TCL API.
Activation of new types
This is done via a new package parameter called SupportedTypes which will contain the list of available types to the system. The default version of dotlrn-catalog will only know the type dotlrn_catalog. In order to use the other types as well more types must be entered to the list.
Thus at runtime OpenACS will check for the available types and make them available to the installation.
Suggested Extension to dotlrn-catalog
The Unversity of Mannheim has implemented a package called groups which has be used productively in Mannheim for almost one year and which is used by professors to organize the registration process for their courses.
Next to standard attributes like group name, start date, end date, description and the like, which is also available in dotlrn-catalog for courses the packages provides attributes like
- maximal members - to limit the size of the group depending on ressource restrictions like seats ...
- minimal members - to decide whether the course will take place at all or not
- registration begin - when the registration process will begin
- registration end - when the registration will end
- approval required leaving the group
- approval required for entering the group
- allow waiting list for students rejected
- white list, black list - number of choices the student has to make for courses interested to join or not (see below for explanation)
- can student change his choices during the registration period
Thus an administrator can create a new group type with the above characteristics and let the system take care of the registration process. For this purpose the administrator can select from different join policies. The default policy is the First-Come-First-Served which corresponds to the open policy. The second one is the requires approval which speaks for itself. The third and new policy is by preferences.
This policy allows students to choose from a list of 1 or more available parallel courses. The idea behind this is that often the same course is given during a semester on different days and hours during the week in order to keep the classes small. Since some of them are more appealing than others - maybe one is on monday morning or the other on friday evening - the preffered ones the to explode while other courses are visited sporadically. To solve this problem we don't let the students join direclty a course. Rather we allow the student to indicate which courses he can imagine to join and which not. This we call white and black list. Once the registration process is over. We let the system automatically distribute the students to the courses taking in mind the size restrictions of the course as well as the choices of the students.
In order to integrate this in dotlrn-catalog we propose the creation of a new sub type of dotrn_catalog called dotlrn_registration which contains the above parameters.
Thus the administrator will have the choice to create a new course based on dotlrn_catalog or dotlrn_registration. Depending of the type further actions or informations will be available to students. Students interested in a course of the type dotlrn_registration need to register during a given period. Depending of the join policy they can either join a course or request membership or have to make a choice.
Installations interested in using the new type have to add the type to the package parameter SupportedTypes.
Other features
The type dotlrn-registration will provide other features like:
- Activation of Notification for the various stages during the registration process.
- Support for waiting lists
- Automatic creation of subgroups once the students where distributed to their groups
- Possibility to choose from a list of applets that should be made available to the groups instead of simply installing the default applets defined for classes, communities and subgroups
Example
We have a course called "Introduction to Accounting". This course is offered every semester for undergraduate students. Usually around 800 students attend this lecture. Due to the number of students the lecture is accompanied by up to 8 seminars - all with the same content but usually on different times in order to allow students to be more flexible. Still some seminars are more apealing than others. This could be because of the time, the location, the tutor...Since the sizes of the seminars are rstricted by teh number of seats available students have indicate which seminar the prefer compared to the others. Depending on the configuration set by the course administrator the students have submit a ranking or simply tell which seminar they prefer most and which less. Any number in between is configurable. Once the registration process is over the system recommends a distribution which can be double checked by the course administrator. Finally the distribution is confirmed and 8 subgroups in dotlrn are created and the memberships assigned. If the course administrator wishes all accepted students are notified. He can also notifcy the rejected students or add them to a waiting list.
In order to allow the above scenario it takes the professor 2-3 minutes to define it and further 5 minutes to trigger the distribution. The algorithm to optimize the above problem is takes for a situation of 1000 students and 1000 seats (1 mio elements matrix) around 4 min on a 1-CPU 3.1 Ghz Intel Box.
We have also implemented the distribtion types first-come-first-served as well as random.
Current Packages and Possible Steps
after taking a close look at dotlrn-ecommerce (DE) and dotlrn-catalog (DC) I would like to suggest some changes since there are a lot of catalog specific stuff hidden in DE. This is especially:
- DC should be extended with sections but make sections optional.
dotlrn_ecommerce_section table:
section_id,course_id,community_id,section_name,date_time_start,date_time_end,daily_p,
weekly_p,max_participants,waiting_list_p,notify_waiting_number,show_participants_p,
show_sessions_p,description (a)
product_id,account_code_revenue,account_code_expense,member_price_number,non_member_price,show_price_p (b)
age,qualified_age_low,qualified_age_high (c)
As you can see (a) apply to courses as well. We in Mannheim for instance have several courses
that are split into sections. Thus why not remove those from dotlrn_ecommerce_section to a new
dotlrn_course_section table that should be moved to DC.
dotlrn_ecommerce_section would inherit from dotlrn_course_section and only add attributes under (b) and would stay in DE.
Regarding the attributes (c) I believe that they should be handled in a third table part of DE since in future
there might be many more parameters like age, that could play a role. After talking with Carl I think we can
solve this through the new admin defined filters that are associated to a course/section and an applicant. Thus if
the parameter age matters, the admin defines that filter and the associated rule. Anyway. I just think there is
room for improvement here.
max_participants is used twice once here and once in ecommerce. Why is that?
dotlrn_ecommerce_section is not a acs object at all. Why is that? It could also be a CR item, no?
- As I proposed in the wiki I would suggest the definition of several course types an admin can choose from, if
those types are available. Why should the UI offer ecommerce specific stuff, or assessment specific code or sections
if a course admin only wants to have his course listed in the catalog where a second course admin in the same institution
wants to offer a commercial course and a third a course with several sections and registration process.
Right now we have the policy "eat or die" either use DC or DE. But what we really need is an adjusting UI depending
on the course type. Looking at DE the UI is too overwhelming to a course admin who only wants to use the sections part
or in future the filters.
- There are new status types in DE which better should go into a third package I would like to call dotlrn-registration.
This package could deal with the whole registration process like type of join policies available, type of status possible,
filters, assessment, registration_start_date, registration_end_date, automated registration depending on student choices...
- The current categories filters in the course catalog overview is not very usable. We would like to offer a second include that generates a tree that can be expanded.
- Also after installing DE for some reason there where dependencies to wp-slim and evaluation which should be.
Conclusion
<<>>As a conclusion. I would like to recommend several packages that focus on a specific type:
- dotlrn-catalog --> courses and optionally sections
- dotlrn-registration --> adding registration process, communities (optional), membership status, filters, assessment (optional)
- dotlrn-ecommerce
Several wizards shall be offered to the admin to go through the whole course administration process.
The site admin should have the choice to activate permitted features. The course admin should have the choice to choose from them.
The UI should adapt to the given type.
Open Questions
One question I have is: seperation into several packages is better but we need one package that plays the role of facade. One that knows the extensions and that includes the bits and pieces depending to the selected course type. Any idea how we could solve this?
Created by Emmanuelle Raffenne, last modified by Benjamin Brink 22 Oct 2016, at 04:37 AM
Package Specification Summary for Package: dotlrn-admin
| Summary: |
.LRN-wide admin pages. Initially created as a singleton with automount at /dotlrn/dotlrn-admin. These can be changed if and when .LRN supports multiple instances. |
| Description: |
Contains pages and scripts for configuring .LRN --- managing users, departments, terms, classes and so on. |
| Maturity: |
New Submission or Maturity Unknown |
| This package depends on: |
dotlrn |
| Packages that depend on dotlrn-admin: |
None |
| Package parameters: |
None
|
Bug Tracker Summary for Package: dotlrn-admin
There is no package with the name "dotlrn-admin" known to bug-tracker.
Code Metrics Summary for Package: dotlrn-admin
| # Tcl Procs |
0 |
| # Tcl Lines |
0 |
| # Tcl Blank Lines |
1 |
| # Tcl Comment Lines |
0 |
| # Automated Tests |
0 |
| # Stored Procedures |
PG: 0 ORA: 0 |
| # SQL Lines |
PG: 0 (blank 1 comments 0)
ORA: 0 (blank 1 comments 0) |
| # ADP pages |
0 |
| # ADP lines |
0 |
| # Include pages (dotlrn-admin/lib/) |
0 |
| # Documentation pages |
0
|
| # Documentation lines |
0 |
| Browse Source |
Not installed |
| Github Repository: |
https://github.com/openacs/dotlrn-admin/tree/oacs-5-10
|