Home
The Toolkit for Online Communities
18055 Community Members, 1 member online, 2323 visitors today
Log In Register
OpenACS Home : xowiki : Weblog
Search · Index
Previous Month March 2015
Sun Mon Tue Wed Thu Fri Sat
1 2 (1) 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 1 2 3 4

Popular tags

ad_form , ADP , ajax , aolserver , asynchronous , bgdelivery , bugtracker , COMET , cvs , debian , emacs , fedora , FreeBSD , hstore , includelets , install , installation , installers , javascript , libthread , linux , monitoring , munin , NaviServer , nginx , nx , OmniOS , oracle , osx , patches

No registered users in community xowiki
in last 30 minutes

Contributors

OpenACS.org

Weblog

Showing 1 - 822 of 822 Postings (summary)

News

Created by Emmanuelle Raffenne, last modified by Guest 09:31 PM, Saturday

#

Windows-OpenACS

Created by OpenACS community, last modified by Maurizio Martignano 24 Feb 2015, at 07:54 PM

OpenACS and .LRN can be installed as native Win64 applications for Windows 8, Windows 8.1, Windows Server 2012 and Windows Server 2012 R2 using the Windows-OpenACS distribution.

The current release is Windows-OpenACS version 2.5 (released February 2015).

For more details, http://www.spazioit.com/pages_en/sol_inf_en/windows-openacs_en/ .

Monitoring Naviserver

Created by Gustaf Neumann, last modified by Gustaf Neumann 17 Feb 2015, at 11:11 AM

Munin  is a popular web-based tool to monitor several website. Munin provides a simple plugin mechanism for adding new kinds of sources, such as e.g. the NaviServer plugins  for monitoring NaviServer.

The monitoring information collected by munin can be placed at different web servers, one finds usually information about apache and friends. In general older versions of munin (before 2.0) supported only static pages, whereas newer version support as well dynamic information (with additional features such as zooming).

For static munin pages, it is the easiest to place in OpenACS sites the output directory either under the main www directory, or under the subsite admin directory (packages/acs-subsite/www/admin/).

For the cgi-setup, one has to make sure to load nscgi in the statup files of NaviServer and to point the urls to the appropriate directories. The sample setup below uses the directories of munin as provided by a standard munin setup on an Ubuntu system.

ns_section ns/server/${server}/modules
   ns_param   nscgi        nscgi.so

ns_section "ns/server/${server}/module/nscgi"
   ns_param map  "GET /munin-cgi/munin-cgi-graph /var/www/cgi-bin/munin-cgi-graph"
   ns_param map  "GET /munin-cgi/static /etc/munin/static/"
   ns_param map  "GET /munin-cgi /var/www/cgi-bin/munin-cgi-html"

Wiki

Created by gustaf neumann, last modified by Gustaf Neumann 17 Feb 2015, at 10:52 AM

Welcome to the OpenACS Wiki!

This is the OpenACS Wiki system, built with the xowiki package. This wiki contains user documentation, how-tos, and tips and tricks related to OpenACS. It also serves as a collaboration area for OpenACS contributors.

Quick Links:

OpenACS Handbook: openacs-handbook
OpenACS Packages
: packages

Recent Wiki Page Edits:

Non-Core Packages

News (2 days ago)
Spreadsheet (3 months ago)
Q-Forms (3 months ago)
XoWiki (5 months ago)
XOTcl Core (5 months ago)
Categories (6 months ago)

Subsystems Documentation

HOME

Wiki (2 weeks ago)

ecommerce-g2

Accounts Finance (3 months ago)

Deprecated / Unmaintained Packages

payflowpro (6 months ago)

Coding Standards

Web Forms (6 months ago)
ADP Files (6 months ago)
Tcl pages (6 months ago)
Coding Standards - Index (6 months ago)
General Rules (6 months ago)

Cookbook

Refactoring Recipes (6 months ago)

OpenACS Projects

Official test servers (6 months ago)
OpenACS TODO List (6 months ago)

Package Documentation

Aliases at CVS (6 months ago)

Core Packages

ACS Developer Support (6 months ago)


Install OpenACS with NaviServer from Scratch

Created by Gustaf Neumann, last modified by Gustaf Neumann 11 Feb 2015, at 03:55 PM

This page describes how to install OpenACS with NaviServer on Unix-like systems (e.g. Linux, Mac OS X, Solaris, OmniOS) by compiling all but PostgreSQL from scratch, guided by script that collects the components from various sources, compiles it, etc.

The installation is done in two steps:

  • install-ns.sh : Install NaviServer and its components for a PostgreSQL installation from scratch by obtaining the relevant sources and compiling it. The script assumes PostgreSQL to be installed (or obtainable via package managers), but installs all other components by obtaining it from the source repositories and compiling it from scratch (e.g. Tcl, tcllib, tDOM, libthread, nsf/XOTcl 2).

  • install-oacs.sh : Install OpenACS from CVS/git. This script configures a (pre-installed) PostgreSQL installation for
    OpenACS, adds hstore, installs OpenACS core, basic OpenACS packages, xowiki, xowf and optionally dotlrn from CVS/git and generates a config file and startup files (for Ubuntu and Fedora Core). The script assumes a pre-existing NaviServer installation, installed e.g. via install-ns.sh

If you open the links above, use save-as in the browser to save the files. Alternatively, download the files as .zip file or clone the repository via GitHub .

   cd /usr/local/src
   git clone https://github.com/gustafn/install-ns
   cd install-ns
The scripts work under a typical Linux installation (e.g. Ubuntu, Fedora Core) as well as on Mac OS X or on OmniOS. The scripts are tested with PostgreSQL 9.1, 9.2 and 9.3 on Ubuntu 12.04, 13.04, 14.04 and Fedora Core 18.

On a a fresh Ubuntu installation, you should be able to download the two scripts from this page and install OpenACS with NaviServer in the following steps:

   sudo bash

   bash install-ns.sh
   bash install-ns.sh build

   bash install-oacs.sh
   bash install-oacs.sh build

After running both scripts in the default configuration you will see e.g. on Ubuntu 14.04

Congratulations, you have installed OpenACS with NaviServer on your machine.
You might start the server manually with
    sudo /usr/local/ns/bin/nsd -t /usr/local/ns/config-oacs-5-8.tcl -u nsadmin -g nsadmin
or you can manage your installation with upstart (Ubuntu/Debian). In this case, you might use the following commands
    initctl status oacs-5-8
    initctl start oacs-5-8
    initctl stop oacs-5-8
To use OpenACS, point your browser to http://localhost:8000/ The configuration file is /usr/local/ns/config-oacs-5-8.tcl and might be tailored to your needs. The generated startup file is in /etc/init/oacs-5-8.conf. The access.log and error.log of this instance are in /var/www/oacs-5-8/log

On Fedora, the startup commands for systemd are

    systemctl status oacs-5-8
    systemctl start oacs-5-8
    systemctl stop oacs-5-8

The generated startup file for RedHat/Fedora is in /lib/systemd/system/oacs-5-8.service

OpenACS compatibility matrix

Created by Joel Aufrecht, last modified by Gustaf Neumann 13 Jan 2015, at 09:23 AM

OpenACS requires, at a minimum, an operating system, database, and web server to work. Many additional programs, such as a build environment, Mail Transport Agent, and source control system, are also needed for a fully effective installation.

Table 2.2. Version Compatibility Matrix

OpenACS Version 3.2.5 4.5 4.6 4.6.1 4.6.2 4.6.3 5.0 5.1 5.2 (core)
5.3 (core)
5.4 (core)
5.5 (core)
5.6 (core)
5.7 (core)
5.8 (core)
AOLserver 3 Yes No
3.3+ad13 Maybe Yes No
3.3oacs1 Maybe Yes No
3.4.4 No
3.4.4oacs1 Maybe Yes No
3.5.5 Maybe Yes No
4.0 Maybe Yes No
4.5 No Yes
NaviServer 4.99.4 - No Maybe Yes
Tcl 8.4 Yes No
8.5.4 - Maybe Yes
PostgreSQL 7.0 Yes No
7.2 Maybe Yes No
7.3.2 - 7.3.x No Yes No
7.4 No Yes No
8.0 No Maybe Yes Maybe
8.1 No Yes Maybe
8.2 No tar: no, CVS: Yes Yes Maybe
8.3 No Yes Maybe
8.4 No Yes
9.0 - 9.4 No Yes
Oracle 8.1.6 Maybe Yes Maybe
8.1.7 Maybe Yes Maybe
9i No Yes Maybe
10g No Yes Maybe
11g No Maybe

The value in the cells correspond to the last version of that release, and not necessarily to all minor releases. Empty cells denote an unknown status.

Spreadsheet

Created by Benjamin Brink, last modified by Gustaf Neumann 14 Nov 2014, at 07:58 PM

For the latest updates to this readme file, see: http://openacs.org/xowiki/spreadsheet

Package specification Summary for package spreadsheet

Summary: Spreadsheet package for collaboratively building and managing spreadsheets.
Description: Spreadsheet package provides users with some spreadsheet-like functionality, such as ability to perform basic queries on package tables for generating customized reports. Smallest spreadsheet can be 1 by 1.
Maturity: New Submission or Maturity Unknown
This package depends on: None
Packages that depend on spreadsheet: accounts-finance


Bug Tracker Summary for package spreadsheet

There is no package with the name "spreadsheet" known to bug-tracker.



Code Metrics Summary for package spreadsheet

# Tcl Procs 42
# Tcl Lines 3060
# Automated Tests 0
# Stored Procedures PG: 0 ORA: 0
# SQL Lines PG: 0 ORA: 0
# ADP pages 3
# ADP lines 34
# Include pages (spreadsheet/lib/) 1
# Documentation pages 2
# Documentation lines 68
Source Not installed
 

The lastest version of the code is available at the development site: http://github.com/tekbasse/spreadsheet

introduction

Spreadsheet provides procedures for building and using tables and spreadsheets in OpenACS. It is an OpenACS package that allows convenient building and interpreting of web-based sheets via tcl in a web page.

Standard spreadsheets are not yet supported.

license

Copyright (c) 2013 Benjamin Brink po box 20, Marylhurst, OR 97036-0020 usa email: kappa@dekka.com

Spreadsheet is open source and published under the GNU General Public License, consistent with the OpenACS system:http://www.gnu.org/licenses/gpl.html A local copy is available at spreadsheet/LICENSE.html

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

features

Integrates well with Q-Forms or any web-based form processing.

Tables can be represented as text, where each line is a row, and each cell is separated by a common or specified delimiter.

Can manipulate Tcl list of lists for easy generation of reports.

There are procedures for importing, rotating, and exporting tables in various formats.


Q-Forms

Created by Benjamin Brink, last modified by Gustaf Neumann 14 Nov 2014, at 07:57 PM

For the latest updates to this readme file, see: http://openacs.org/xowiki/q-forms

Package specification Summary for package q-forms

Summary: Provides code for building forms dynamically in tcl
Description: Provides qf_* form bulding and interpreting procedures, especially designed for building forms dynamically.
Maturity: Immature
This package depends on: None
Packages that depend on q-forms: accounts-finance


Bug Tracker Summary for package q-forms

There is no package with the name "q-forms" known to bug-tracker.



Code Metrics Summary for package q-forms

# Tcl Procs 36
# Tcl Lines 2453
# Automated Tests 0
# Stored Procedures PG: 0 ORA: 0
# SQL Lines PG: 0 ORA: 0
# ADP pages 0
# ADP lines 0
# Include pages (q-forms/lib/) 0
# Documentation pages 2
# Documentation lines 80
Source Not installed
 

The latests version of the code is available at the development site: http://github.com/tekbasse/q-forms

introduction

Q-Forms provides procedures for building forms dynamically in OpenACS. It is an OpenACS service package that allows convenient building and interpreting of web-based forms via tcl in a web page.

(jiml) isn't there already a form builder? via tcl, and integrated well with templating system. Does q-forms use the existing form builder? If not, then we have two incompatible versions of this functionality.

jiml, current form building techniques can be "tricky"[1], whereas Q-Forms has an intuitive interface. You say "Incompatible"? Use one or the other form building process. With Q-wiki, there are now at least four different wiki-like packages for OpenACS. They work with each other within the templating system. Why would form building resources be expected to share package resources? (tekbasse)

Q-Forms procedures begin with qf_* and parallel form html tags with many automatic defaults that remove the tedious nature of building forms via html or an alternate form building context, such as OpenACS form builder, ad_form or acs-templating.

(jiml) could someone provide an example showing how ad_form or the original template::form and friends are unsuitable? 

A lot of people use these things including myself. I read the existing documentation, and then understood how to do it.

^ Good for you, jiml. You don't have to use Q-Forms. (tekbasse)

In particular, ad_form offers easy-to-build forms which provide create and edit functionality as it has parameters that accept sql queries which create, access and store as well as provide conversion where necessary to acs_objects whose type match the form. ( Really easy? see: http://openacs.org/wiki/ad_form -tekbasse) But I digress:

What's wrong with the existing implementation and what has you wanting to take the extreme action of adding an incompatible replacement? How can I support you in creating something that -is- compatible? (jiml)

jiml, Once you learned how to create a form in html, how much time did you spend trying to create a form with ad_form or formbuilder?  If it's more than 10 minutes, Q-Forms would be faster and has more flexibility without having to learn more to tweak a special context.

The simplicity of form creation in the context of basic tcl programming techniques makes the learning curve for Q-Forms very low compared to ad_form and formbuilder. (tekbasse)

jiml, you ask "..what has you wanting to take the extreme action of adding an incompatible replacement? " I am writing web apps that regularly include spreadsheets, tables, and other kinds of data which require any form building API to be flexible while retaining a minimum amount of overhead and meeting requirements expected of ecommerce transactions. Can you show me in ad_form API how to pass a table with a flexible size and that allows data to include negative and decimal numbers (or user_names starting with a dash..) and also dates/time values and where each cell format can be customized?  ;-)  -tekbasse

license

Copyright (c) 2013 Benjamin Brink po box 20, Marylhurst, OR 97036-0020 usa email: kappa@dekka.com

Q-Forms is open source and published under the GNU General Public License, consistent with the OpenACS system:http://www.gnu.org/licenses/gpl.html A local copy is available at q-forms/LICENSE.html

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

features

Low learning-curve. Uses tcl context. Procedures match tags. List friendly.

Built in API defaults. Takes less keystrokes to build a form than typing manually.

Can built multiple forms concurently using Tcl file terminology.

No limitations to building dynamic forms with specialized inputs.

Form values are retrieved as an array named by the programmer.

Form values are automatically quoted, a requirement of secure input handling.

Multiple values of same key can be combined as a list (instead of producing a form post error).

html can be inserted in any form at any point during the build.

No UI javascript is used. Technologies with limited UI or cpu power can use it.

Integrates with acs-templating features.

Accounts Finance

Created by OpenACS community, last modified by Gustaf Neumann 14 Nov 2014, at 07:39 PM

Package specification Summary for package accounts-finance

Summary: Finance package provides limited set of tools for long-term debts, fixed assets, forecasting.
Description: Finance package provides some tools for long-term debts, fixed assets, capital, stock holding, dividends, forecasting and reporting. Integrates with general-ledger etc.
Maturity: Immature
This package depends on: acs-datetime q-forms spreadsheet
Packages that depend on accounts-finance: None

Bug Tracker Summary for package accounts-finance

There is no package with the name "accounts-finance" known to bug-tracker.

Code Metrics Summary for package accounts-finance

# Tcl Procs 84
# Tcl Lines 9574
# Automated Tests 7
# Stored Procedures PG: 0 ORA: 0
# SQL Lines PG: 0 ORA: 0
# ADP pages 5
# ADP lines 303
# Include pages (accounts-finance/lib/) 7
# Documentation pages 20
# Documentation lines 739
Source Not installed

Status

pre-release

Introduction

Part of the ecommerce-g2 project

Feature requests

add requests here

XoWiki

Created by Gustaf Neumann, last modified by Antonio Pisano 27 Sep 2014, at 12:20 PM

XoWiki is a wiki implementation for OpenACS  implemented based on xotcl-core. Instead of trying to implement the full set of wiki markup commands in systems like MediaWiki, XoWiki is based on a rich text editor and focuses more on integration with OpenACS (e.g. categories, general comments, adp-includes, ad-substitution of template variables). XoWiki combines aspects of wikis (ease of page-creation) with aspects of a content management system (revisions, reusable content, multiple languages, page templates).

XoWiki provides functionalities of enterprise wiki systems (such as combining structured with unstructured information, providing security policies, etc.). XoWiki is reused in several other packages such as XoWiki Content flow, S5 or  the Learning Content Tool.

Documentation:


Package specification Summary for package xowiki

Summary: A xotcl-based enterprise wiki system with multiple object types
Description: <pre> XoWiki is a Wiki implementation for OpenACS in XOTcl. Instead of trying to implement the full set of Wiki markup commands of systems like MediaWiki, XoWiki is based on a rich text editor and focuses more on integration with OpenACS (e.g categories, general comments, ADP-includes). XoWiki combines aspects of wikis (ease of page-creation) with aspects of a content management system (revisions, re-usable items, multiple languages). Furthermore, XoWiki allows to define different types of links such one could define book-structures (where a navigation structure could be built on the fly) or glossaries with different kind of word relationships (like synonyms, etc.). XoWiki supports pages in multiple languages and is localized. Some features: - cross language links - inclusion of ADP pages - nesting of Wiki-pages - large set of includeable content (includelets) - search - tags - categories - RSS - weblog - podcasts - notifications - web 2.0 gadgets (digg, delicious, my yahoo) - audio embedding - different appearances (template_file) - book-structures - prototype pages - import/export - virtual presence - analysis of collaboration networks - forms - named/unnamed pages - various security policies </pre>
Maturity: Mature
This package depends on: acs-datetime acs-kernel acs-subsite categories file-storage general-comments xotcl-core
Packages that depend on xowiki: content-portlet eduwiki learning-content learning-content-portlet pages s5 xolirc xowf xowiki-includelet xowiki-portlet

Error in includelet '{{adp /www/templates/bug-tracker {package_key xowiki}}}' of page en:xowiki:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key xowiki}}}' of page en:xowiki:
Nesting of includelets is to deep


XOTcl Core

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2014, at 10:43 AM

What is xotcl-core

xotcl-core is an OpenACS package, which provides base functionality for OpenACS applications using XOTcl. The xotcl-core package is used by several other OpenACS packages such as the XOTcl request monitor, XoWiki, XoWiki Content Flow, S5 or the Learning Content Tool.

Install xotcl-core

First, get xotcl-core from the OpenACS repository:

cd /tmp
cvs -d:pserver:anonymous@cvs.openacs.org:/cvsroot co openacs-4/packages/xotcl-core

Move xotcl-core to the directory, where your OpenACS packages are stored. We assume, this directory is /usr/local/openacs-4/packages

mv /tmp/openacs-4/packages/xotcl-core /usr/local/openacs-4/packages
 Next, go to acs-admin/apm (http://YOURSERVER/acs-admin/apm/), choose "install-packages" and install XOTcl Core. Finally, restart the server.
svc -t /service/${yourservice}

Now you can browse  http://YOURSERVER/xotcl

Functionality of xotcl-core

xotcl-core defines several classes for

  • library dependencies
  • package management
  • debugging
  • security and policy management
  • HTTP client and server functionality
  • Object Relational Database Interface
  • ical formatting
  • cluster management
  • chat handlers

and several utilities.

Tutorial xotcl-core

 See http://alice.wu-wien.ac.at:8000/s5-xotcl-core-tutorial/slides 


Code metrics and Package Description

Error in includelet '{{adp /www/templates/info-file {package_key xotcl-core}}}' of page en:xotcl-core:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key xotcl-core}}}' of page en:xotcl-core:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key xotcl-core}}}' of page en:xotcl-core:
Nesting of includelets is to deep
nbsp;

The OpenACS package xotcl-core requires in versions of OpenACS before 5.3 the following patches for the documentation procs and the bootstrap installer:

cd /tmp
wget http://media.wu-wien.ac.at/download/acs-api-documentation-procs.patch
wget http://media.wu-wien.ac.at/download/acs-bootstrap-installer.patch
To apply these patches, go to the directory, where the OpenACS packages are stored. We assume, this directory is /usr/local/openacs-4/packages. 

cd /usr/local/openacs-4/packages
 patch -p 0 < /tmp/acs-api-documentation-procs.patch
 patch -p 0 < /tmp/acs-bootstrap-installer.patch
Both patches do not harm in case XOTcl is not installed. Now reload these packages or restart the aolserver.

Installing OpenACS on FreeBSD with ports

Created by Gustaf Neumann, last modified by Gustaf Neumann 04 Sep 2014, at 07:47 PM

NEW:  For the impatient users there is a quick-and-dirty install guide for FreeBSD

OpenACS and .LRN are included in the current FreeBSD ports tree.
The ports are tested with FreeBSD production version 6.2-RELEASE, old stable 5.5-RELEASE and the development branch 7-CURRENT.

Installation requirements:

  1. FreeBSD operating system with root access rights.
  2. Installed and updated FreeBSD Ports Collection (for updating see Appendix A below)
    (alternative: installing from packages, see Appendix B)

To install OpenACS or .LRN from the FreeBSD ports tree, follow the instructions below.

1. Installing and configuring PostgreSQL

NOTICE: If you have a PostgreSQL server installed and running, skip to Section 2.

If you desire to use a local PostgreSQL server (most users do), install the server first.
We recommend using PostgreSQL version 8.2 from the databases/postgresql82-server port

# cd /usr/ports/databases/postgresql82-server # make install clean

NOTICE: As an alternative, you may install PostgreSQL server from a binary package. See Appendix B below

The plperl language is required for OpenACS/.LRN. This can be installed from the ports with the following commands:

# cd /usr/ports/databases/p5-postgresql-plperl # make install clean

To install the OpenACS/.LRN database, your PostgreSQL server must be running.
You need to enable it in your /etc/rc.conf (or /etc/rc.conf.local) by adding the following line:

postgresql_enable="YES"

After installing the PostgreSQL server, you have to initialize your data store:

# /usr/local/etc/rc.d/postgresql initdb

To start the PostgreSQL server, issue the following command:

# /usr/local/etc/rc.d/postgresql start

You can check if the server is up and running with:

# /usr/local/etc/rc.d/postgresql status

2. Installing OpenACS / .LRN

2.1 Installing the OpenACS or .LRN port 

OpenACS can be installed directly from the FreeBSD ports tree, www/openacs:

# cd /usr/ports/www/openacs
# make install clean

.LRN installation, www/openacs-dotlrn:

# cd /usr/ports/www/openacs-dotlrn
# make install clean

NOTICE: If you want to make changes to the default configuration, the AOLserver configuration files for OpenACS/.LRN files are located at:
/usr/local/openacs/etc/openacs-config.tcl
/usr/local/dotlrn/etc/dotlrn-config.tcl

NOTICE: If you installed both OpenACS and .LRN ports, you have to change the default port of one of the installations. See the configuration files in the previous notice.

2.2 Creating the OpenACS/.LRN database 

For this step, you require an installed and running PostgreSQL server (see Section 1) and installed OpenACS/.LRN (see Section 2.1)

First we need to adjust the PostgreSQL configuration (this applies for server versions 8.1.x and higher):

# /usr/local/share/doc/openacs/adjust_pgsql_conf.sh

or if .LRN was installed: 

# /usr/local/share/doc/dotlrn/adjust_pgsql_conf.sh

NOTICE: You can adjust the configuration manually (standard location: /usr/local/pgsql/data/postgresql.conf)
Please see en:How_to_install_in_Postgres_8.x.

The PostgreSQL server needs to be restarted after changing the configuration:

# /usr/local/etc/rc.d/postgresql restart

Next, we can create a default OpenACS database by running the following script:

# /usr/local/share/doc/openacs/create_sampledb.sh

To create a default .LRN database, run the following script:

# /usr/local/share/doc/dotlrn/create_sampledb.sh


2.3 Starting OpenACS/.LRN and finalizing installation 

To make use of the automatic startup script OpenACS/.LRN has to be enabled in /etc/rc.conf (or /etc/rc.conf.local):

openacs_enable="YES" 

or for .LRN:

dotlrn_enable="YES"

To start OpenACS, use the following command:

# /usr/local/etc/rc.d/openacs start

To start .LRN, use the following command:

# /usr/local/etc/rc.d/dotlrn start

Now you can login to your OpenACS/.LRN system and finalize the installation.
The default port is 8000. URL:

http://<your-ip>:<port>

After filling your e-mail address, password and other important information OpenACS/.LRN gets installed, but the server stops.
You have to start it again (see above).

 A. Updating the FreeBSD ports tree

To get the latest versions of the OpenACS, .LRN and other FreeBSD ports, it is recommended to update the FreeBSD ports tree on a regular basis. The easiest way to to perform this task is using the portsnap(8) command.

For documentation, refer to the following FreeBSD Handbook chapters:
Using the Ports Collection
Using Portsnap


B. Installing from binary packages

PostgreSQL, OpenACS, .LRN and all dependent ports may be installed from binary packages, too.
This installation can be performed from a submenu of FreeBSD's sysinstall(8) command: Configure/Packages

OpenACS and .LRN are located in subcategory www, PostgreSQL is in subcategory databases.


C. Contact information and bug reporting

Please send bug reports and feature suggestions to the port maintainer of OpenACS/.LRN FreeBSD ports:
Martin Matuska
<mm_at_FreeBSD_dot_org>

Installing OpenACS on FreeBSD

Created by OpenACS community, last modified by Gustaf Neumann 04 Sep 2014, at 07:33 PM

OpenACS and .LRN are available via FreeBSD ports. See en:openacs-system-install-freebsd-ports.

The following notes are useful if you decide to follow the OpenACS manual installation process using FreeBSD. These notes include points where a manual FreeBSD install differes from the slow, manual en:openacs-system-install.

The following information is pulled from: http://openacs.org/forums/message-view?message_id=312823 and http://openacs.org/forums/message-view?message_id=136910 and http://openacs.org/forums/message-view?message_id=312823

The OpenACS Reference Platform uses shell scripts written for bash, which is the standard Linux shell. If you are using a different shell, you will need to substitute your shell's conventions for setting environment variables when appropriate, and install bash to work with the scripts. Substitute fetch when the instructions suggest you use wget to download software.

Note that on most linux distributions, GNU Make is simply named make and there is no gmake, whereas on BSD distributions, make and gmake are different --use gmake.

Change the period separating user.group in chown commands to use a colon ":" instead. For example,

chown -R $OPENACS_SERVICE_NAME.$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME

becomes:

chown -R $OPENACS_SERVICE_NAME:$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME

Should you decide to install OpenACS from source using general en:openacs-system-install instructions, refer to these notes for changes:

Installing tdom

FreeBSD can use the standard tdom from ports when installing manually, without going the extra step of installing tdom within the aolserver src tree.

Installing en:postgresql

Creating postgres user

To set defaults for new users or special service users you may create, edit the file /etc/share/skel/dot.profile instead of /etc/profile

To create the user, we need to add more parameters to match what is expected from creating a user in linux.

[root src]# mkdir -p /usr/local/pgsql
[root src]# pw groupadd -n web
[root src]# pw useradd -n postgres -g web -d /usr/local/pgsql -s /bin/bash
[root src]# chown -R postgres:web /usr/local/pgsql /usr/local/src/postgresql-7.4.7
[root src]# chmod -R 750 /usr/local/pgsql
[root src]#
mkdir -p /usr/local/pgsql
pw groupadd -n web
pw useradd -n postgres -g web -d /usr/local/pgsql -s /bin/bash
chown -R postgres:web /usr/local/pgsql /usr/local/src/postgresql-7.4.7
chmod -R 750 /usr/local/pgsql

Set PostgreSQL to start on boot

[root ~]# cp /tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/postgresql.txt /usr/local/etc/rc.d/postgresql.sh
[root ~]# chown root:wheel /usr/local/etc/rc.d/postgresql.sh
[root ~]# chmod 755 /usr/local/etc/rc.d/postgresql.sh
[root ~]# 
cp /tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/postgresql.txt /usr/local/etc/rc.d/postgresql.sh
chown root:wheel /usr/local/etc/rc.d/postgresql.sh
chmod 755 /usr/local/etc/rc.d/postgresql.sh

Test the script

[root ~]# /usr/local/etc/rc.d/postgresql.sh stop
Stopping PostgreSQL: ok
[root ~]# 

If PostgreSQL successfully stopped, then turn it back on because we'll use it later.

[root root]# /usr/local/etc/rc.d/postgresql.sh start
Starting PostgreSQL: ok
[root root]#
/usr/local/etc/rc.d/postgresql.sh start

PostgreSQL performance tuning

See man syctl, man 5 sysctl and man 5 loader.conf.

Installing Libthreads 2.6.5

cd /usr/local/src/aolserver/
fetch http://mesh.dl.sourceforge.net/sourceforge/tcl/thread2.6.5.tar.gz
tar xzpf thread2.6.5.tar.gz
cd thread2.6.5/unix
less ../README
../configure --help
../configure --enable-threads --prefix=/usr/local/aolserver --exec-prefix=/usr/local/aolserver --with-aolserver=/usr/local/aolserver --with-tcl=/usr/local/lib/tcl8.4-threads
gmake
gmake install

Creating users

We need to add more parameters to have user environments match the linux ones expected by the en:openacs-reference-platform.

Create users this way:

[root root]# mkdir -p /home/$OPENACS_SERVICE_NAME
[root root]# pw useradd -n $OPENACS_SERVICE_NAME -g web -d /home/$OPENACS_SERVICE_NAME -s /bin/bash
[root root]#
mkdir -p /home/$OPENACS_SERVICE_NAME
pw useradd -n $OPENACS_SERVICE_NAME -g web -d /home/$OPENACS_SERVICE_NAME -s /bin/bash

payflowpro

Created by Robert Taylor, last modified by Gustaf Neumann 01 Sep 2014, at 03:52 PM

Package:

Description:

Release Info:

Test #1:

Test #2:

Test #3:

Web Forms

Created by Rocael Hernández Rizzardini, last modified by Gustaf Neumann 27 Aug 2014, at 11:08 AM

Use ad_form to create HTML forms. If you work on a page that does not, convert it to use ad_form.

You can grep the toolkit under /packages and see many examples. 

Ad_form can handle many of your possible interactions with the system, such as normal tasks as add and edit data, validate entry form data, etc.

Aditional information here:

http://rubick.com:8002/openacs/ad_form

Use the following in the tcl part of a page to limit access to page requests via post.. to reduce vulnerability to url hack and insertion attacks from web:

if { [ad_conn method] ne "POST" } {
  ad_script_abort
 }

Grouping elements into sections using ad_form

The {-section} list allows to group the subsequent elements (until the next section declaration) into a section. {-section} accepts 4 properties:

{-section
	section_id
	{legendtext $legendstring}
	{legend {name value name value ... name value}}
	{fieldset {name value name value ... name value}}
}

where:

  • section_id: a string to identify the section (mandatory)
  • legendtext (optional) a string for the legend of the fieldset (section)
  • legend (optional) a list of name value pairs attributes for the LEGEND tag
  • fieldset (optional) a list of name value pairs attributes for the FIELDSET tag

Example

ad_form \
	-name "your_zen_level" \
	-method post -html {enctype multipart/form-data class margin-form} \
	-fieldset {{title "T1" class "C1"} "This really works!!"} \
 	-form {
 
     # Start section 1
     {-section "sec1" {legendtext "Section Title I"} {legend {class myClass id myId}}}
    {zen_comment:text(comment)\
                 {label "template::widget::comment"}\
                 {value "Please enter your comments."}\
                 {html {rows 7 cols 50}}}
    {zen_file:text(file),optional\
                 {label "template::widget::file"}}

    # Start section2
    {-section "sec2" {legendtext "Section Title II"} {fieldset {class myclass}}}
    {zen_multiselect:text(multiselect)\
                 {label "template::widget::multiselect"}\
                 {options {"mark" "emma" "avni" "carl" "don"}}}

    # Unset the section. subsequent elements will not be in any section.
    {-section ""}
    {zen_text:text(text),optional,nospell\
                 {label "template::widget::text"}\
                 {help_text {"Your identification tag number"}}}
    {zen_textarea:text(textarea),optional,nospell\
                 {label "template::widget::textarea"}\
                 {help_text {"Please describe your desired state of being"}}\
                 {html {rows 7 cols 50}}}
}

 

Refactoring Recipes

Created by Michael Aram, last modified by Benjamin Brink 24 Aug 2014, at 11:09 PM

The intention of this page is to collect small refactoring snippets that one can/should apply to an existing OpenACS installation in order to improve and modernize its code base. Most of the recipes have already been applied to the official core packages.

Modernize Tcl

  1. Refactor foreach {var1.. varN} $list {break} to lassign

    See http://wiki.tcl.tk/1530

    Deprecated code example
    foreach {dog cat} $animalslist break
    Recommended code example
    lassign $animalslist dog cat
    Command line for finding/replacing code
    todo
  2. Refactor multiple lindex operations to lassign

    Deprecated code example
    set dog [lindex $animalslist 0]
    set cat [lindex $animalslist 1]
    Recommended code example
    lassign $animalslist dog cat
    Command line for finding/replacing code
    todo
  3. Brace expr expressions

    Deprecated code example
    [expr $money - 1]
    Recommended code example
    [expr {$money - 1}]
    Command line for finding/replacing code
    todo
  4. Replace string equal with eq in expressions

    Deprecated code example
    if {[string equal "" $dog]} {error "I want a dog!"}
    Recommended code example
    if {$dog eq ""} {error "I want a dog!"}
    Command line for finding/replacing code
    todo
  5. Replace lsearch with in or ni in expressions

    Deprecated code example
    if {[lsearch -exact $animalslist $dog] != -1 } {error "I dont want a dog!"}
    Recommended code example
    if {$dog in $animalslist} {error "I dont want a dog!"}
    Command line for finding/replacing code
    todo
  6. Replace eval with {*} if possible

    Deprecated code example
    eval mycommand $args
    Recommended code example
    mycommand {*}$args
    Command line for finding/replacing code
    todo

Best Practices

  1. Use bind variables in SQL statements

    Deprecated code example
    db_string check "SELECT * FROM animals WHERE color = $color;"
    Recommended code example
    db_string check "SELECT * FROM animals WHERE color = :color;"
    Command line for finding/replacing code
    todo
  2. Use util::http instead of util_http*, ns_httpget, ::http, ::xo::HttpRequest

Substitute Deprecated Procedures

  1. Replace empty_string_p with eq ""

    Deprecated code example
    if {[empty_string_p $dog]} {error "I want a dog!"}
    if {![empty_string_p $cat]} {error "I dont want a cat!"}
    Recommended code example
    if {$dog eq ""} {error "I want a dog!"}
    if {$cat ne ""} {error "I dont want a cat!"}
    Command line for finding/replacing code
    todo
    Rationale
    Byte-compiled comparisons are faster.
  2. Replace exists_and_not_null with info exists and ne

    Deprecated code example
    if {[exists_and_not_null cat]} {error "I dont want a cat!"}
    Recommended code example
    if {[info exists cat] && $cat ne "" } {error "I dont want a cat!"}
    Command line for finding/replacing code
    todo
    Rationale
    Byte-compiled comparisons are faster.
  3. Replace ad_parameter with parameter::get

    Deprecated code example
    ad_parameter -package_id 123 SystemURL ""
    Recommended code example
    parameter::get -package_id 123 SystemURL -default ""
    Command line for finding/replacing code
    todo
  4. Replace ad_require_permission with permission::require_permission

    Deprecated code example
    ad_require_permission $oid "read"
    Recommended code example
    permission::require_permission -object_id $oid -privilege "read"
    Command line for finding/replacing code
    todo
  5. Replace util_unlist with lassign

    Deprecated code example
    util_unlist $animalslist dog cat
    Recommended code example
    lassign $animalslist dog cat
    Command line for finding/replacing code
    todo

Official test servers

Created by Rocael Hernández Rizzardini, last modified by Michael Aram 21 Aug 2014, at 02:17 PM

Test servers are available at http://openacs.innova.uned.es

There's 4 servers: 2 for OpenACS HEAD (pg 8.1 and oracle9i) and 2 for dotLRN HEAD (pg 8.1 and oracle9i). Login info is on the homepage. CVS committers who might need ssh access, please contact Marcos.

We need to set up:

  1. Install spellcheck tools. 
  2. A way to easily do a CVS update and re-run the test cases? probably shell access will be needed. Instructions need to be set on this sense.
  3. Daily reports (by packages? to subscribers)
  4. Probably will be better if everything re-installs each night (not weekly)?

We'll use Innova server (Thanks Innova team!) as our official test server, although if someone else wants to provide / configure another test server, thats is very welcomed!

Aliases at CVS

Created by Rocael Hernández Rizzardini, last modified by Gustaf Neumann 12 Aug 2014, at 07:01 PM

Useful aliases for cvs.openacs.org:

  • acs-core *
  • dotlrn-all *
  • dotlrn-extras *
  • contrib
  • project-manager-all
  • xotcl-all
  • dotngo
  • dotwrk

 * These aliases are controlled by OCT and .LRN honchos groups, the packages that belong to these aliases are the ones that are maintained by both groups. They are not to be changed unless approved by OCT and / or .LRN technical comittee.

Below the packages details for each alias:


##################################################################
# OpenACS Core
##################################################################

acs-core -a openacs-4/packages/acs-admin
openacs-4/packages/acs-api-browser
openacs-4/packages/acs-authentication
openacs-4/packages/acs-automated-testing
openacs-4/packages/acs-bootstrap-installer
openacs-4/packages/acs-content-repository
openacs-4/packages/acs-core-docs
openacs-4/packages/acs-developer-support
openacs-4/packages/acs-kernel
openacs-4/packages/acs-lang
openacs-4/packages/acs-mail-lite
openacs-4/packages/acs-messaging
openacs-4/packages/acs-reference
openacs-4/packages/acs-service-contract
openacs-4/packages/acs-subsite
openacs-4/packages/acs-tcl
openacs-4/packages/acs-templating
openacs-4/packages/ref-timezones
openacs-4/packages/acs-translations
openacs-4/packages/intermedia-driver
openacs-4/packages/openacs-default-theme
openacs-4/packages/notifications
openacs-4/packages/search
openacs-4/packages/tsearch2-driver
openacs-4/ChangeLog
openacs-4/license.txt
openacs-4/readme.txt
openacs-4/bin
openacs-4/content-repository-content-files
openacs-4/database-backup
openacs-4/etc
openacs-4/log
openacs-4/tcl
openacs-4/www

##################################################################
# .LRN aliases
##################################################################

dotlrn-all -a acs-datetime acs-events
attachments bulk-mail calendar faq file-storage
forums general-comments news lars-blogger
weblogger-portlet rss-support trackback oacs-dav
xml-rpc categories dotlrn dotlrn-syllabus new-portal
profile-provider user-profile bm-portlet dotlrn-bm
calendar-portlet dotlrn-calendar dotlrn-portlet
dotlrn-dotlrn faq-portlet dotlrn-faq forums-portlet
dotlrn-forums fs-portlet dotlrn-fs news-portlet
dotlrn-news static-portlet dotlrn-static
dotlrn-homework dotlrn-weblogger evaluation
evaluation-portlet dotlrn-evaluation assessment
assessment-portlet dotlrn-assessment theme-selva
theme-zen dotlrn-random-photo random-photo-portlet
views

dotlrn-extras -a lors lorsm lorsm-portlet dotlrn-lorsm
photo-album photo-album-portlet dotlrn-photo-album
survey-portlet dotlrn-survey survey chat
dotlrn-chat chat-portlet xotcl-core imsld
imsld-portlet dotlrn-imsld

##################################################################
# Project Manager aliases
##################################################################

project-manager-all -a calendar acs-events acs-datetime
acs-mail-lite categories logger
project-manager general-comments
organizations


##################################################################
# xoTCL Stuff + required
##################################################################

xotcl-all -a xotcl-core xotcl-request-monitor xowiki categories
acs-events acs-datetime file-storage oacs-dav
rss-support general-comments




ACS Developer Support

Created by Nick Carroll, last modified by Gustaf Neumann 12 Aug 2014, at 06:57 PM

Error in includelet '{{adp /www/templates/info-file {package_key acs-developer-support}}}' of page en:acs-developer-support:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/bug-tracker {package_key acs-developer-support}}}' of page en:acs-developer-support:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/metrics {package_key acs-developer-support}}}' of page en:acs-developer-support:
Nesting of includelets is to deep

OpenACS TODO List

Created by Dave Bauer, last modified by Gustaf Neumann 11 Aug 2014, at 09:26 PM

Release Status

See openacs-release-status

Development is taking place on oacs-5-8.

OpenACS Version 5.8 Agenda

  • PostgreSQL 9.2+:
    • Get rid of nonstandard backslash escapes in function definitions
    • Change quote syntax in sql files (single quotes around the functions) to recommended PostgreSQL quoting using (recommended since pg8.0, jan 2005). li>Drop aliases in favor of named function arguments (recommended since pg8.0)
    • Fix wrong function_args, add missing function_args, align default semantics with the defaults in pg (providing "null" as default means the argument is optional)
    • Make OpenACS loadable without any tweaks in the pg config files
  • Use recursive queries for e.g. permission lookup to avoid performance problems in pg 8.4 and newer)
  • ADP: Use byte-compiled function wherever possible in compiled adp-code, support "@var;literal@" when neither quotes nor localization is needed in compiled adp-code
  • Improve support of NaviServer
  • Switch to Tcl 8.5 (TIP #143)
  • Improve scalability: Reduce mutex-stress on util-memoize cache and for cache maintenance in general
  • Code cleanup:
    • Get rid of calls to deprecated code (e.g. ad_tables, ad_parameter, ... in acs-core and main packages)
    • Improve awareness of usage of deprecated code (complain to error.log)
    • Use Tcl 8.5 idioms
    • cleanup of various http-client approaches and introduce a common implementation util::http::get and util::http::post; get rid of other usages, mark these as deprecated
    • page-contracts: Perform checking of all ids in acs-core and main packages to improve error messages and to improve security
  • OpenACS 5.8.1 should be released with main packages

OpenACS Version 5.7 Agenda

  • Support for object management in core 
  • Postgresql 9.0
  • TinyMCE update (fix for random JS injection issue, affecting Safari)
  • Fix for "remember me" issue
  • WCAG2-AA

OpenACS Version 5.6 Agenda

  • global parameters
  • package "embeds" 
  • fix search by package_id
  • core works on Postgresql 8.4

OpenACS Version 5.5 Agenda

  • DONE: Postgresql 8.3 support: especially regarding tsearch2
  • DONE: acs-authentication:
    • fix upgrade, add conditional logic into site wide tcl library so that you can login to perform the rest of the upgrade
  • DONE: tinymce:
    • upgrade to 3.1.1 + language packs
    • HTML Strict cleanup
    • create appropriate parameters for its config in acs-templating
  • acs-mail-lite:
    • DONE: cleanup duplicated procs (bounce)
    • review the parsing of bouncing messages (case user_id 0)
    • DONE: rollout support
  • Documentation improvements as discussed at the Guatemala conference:
    • Make current openacs.org/test-doc source for static files included in the release and provide ease means to achieve this for the release manager
      • DONE (CVS HEAD): Provide in XoWiki an alternative table of contents by nested UL/LI (without JavaScript) for static output
      • DONE (CVS HEAD): Provide in XoWiki a prototype page similar to "book" without edit-buttons etc., using the new table of contents
    • Update openacs.org/test-doc where necessary (incomplete list):
      • DONE: Fix the page ordering for the higher chapters (the original document  had no 3rd. level numbering)
      • update pages in /test-doc which are more recent in openacs/xowiki
      • bump version numbers of OpenACS, where appropriate (some places talk about openacs-5-0, others about openacs-5-1, oacs-5-2-3rc1 or 5-3) 
      • some version numbers of the required components are quite a mess. e.g. some parts say that Postgres 7.3 is required,  some examples talks about postgres 7.4.7 and 8.2.4 in the same listing.
      • also the dotlrn version numbers are old dotrln-2.0
      • Tcl version numbers should be 8.4.19
      • The install section for XOTcl is missing in II.3.4
      • remove ChangeLog from documentation
      • find some other prominent place for the ChangeLog
      • Fix indenting in examples  (e.g. in Rocael's robust web    development framework)
      • overthink Win2000 guidelines.  There are the native compiled packages from Maurizio, including everything from postgres, xotcl ....
    • It is desired to find a single person responsible for overworking the documentation, however, funding is unclear.

OpenACS Version 5.4 Agenda

  • DONE: HTML Strict (openacs core)
  • DONE: finish template::head (daveb)
  • DONE: test acs-mail-lite (complex send)
  • DONE: test notifications (complex send)
  • DONE: new XinHA release, get rid of RTE & HTMLarea, test on Safari
  • DONE: Form builder: add the ID attribute  to the form tag
  • DONE: acs-lang - keepLocalTranslationP to be removed
  • DONE search and intermedia-driver: move intermedia specific stuff to its package
  • DONE: acs-mail-lite - patch for mime::qp_encode bug

Future

  • Split Xinha and TinyMCE into seperate packages see: http://openacs.org/forums/message-view?message_id=2750958
  • Usability ("my account" page)
  • XHTML ?
  • Testing and documentation for recording automated tests using the firefox plugin and the upload feature for it new in automated testing. Probably needs some polishing and should be talked to with Quest who are getting into this.
  • Parameter Scope Patch http://openacs.org/bugtracker/openacs/patch?patch%5fnumber=845 
  • Remove obsolete master template stuff (default and site master template in openacs-4/www, acs-subsite's group-master, and related CSS and images).  Probably in the version which follows 5.5 (probably 5.6).  Also remove the compat master stuff at the same time.

Things to merge into this page

Old 5.0 Roadmap  discussion 

Roadmap discussion 1 

 [Ideas for Boston 2006 Future of OpenACS discussion]

My previous attempt at collaborative roadmap 

A .LRN Roadmap 

Another .LRN Roadmap discussion 


What's on this page?

This page should include work that is planned on and has someone comitted to working on it.

Categories

Created by Torben Brosten, last modified by Gustaf Neumann 09 Aug 2014, at 09:50 PM

Error in includelet '{{adp /www/templates/info-file {package_key categories}}}' of page en:categories:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/bug-tracker {package_key categories}}}' of page en:categories:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/metrics {package_key categories}}}' of page en:categories:
Nesting of includelets is to deep

Feature requests

AN ABBREVIATION/REFERENCE KEY PER CATEGORY AND CATEGORY TREE. In ecommerce package, each bulk upload of associating categories with products requires working with the databases' index for 3 columns, which is not consistent accross sites. This gets laborious to work with after a while. Allowing categories to optionally explicitly define unique references would help with bulk uploading products, building online catalogs etc. and integrating with the [en:ref-unspsc]] package, which is/has a standardized referencing system. (This request from OpenACS.org Bug 1130)

CATEGORY ACTIVE/INACTIVE. Ecommerce needs to have categories include an attribute for each category that identifies if a category is active (in use) or not. That way, large category reference systems, such as http://www.unspsc.org/ can be imported without concern about overloading the shopping basket with categories that contain no products. (This request from OpenACS.org Bug 1130).

CATEGORY LIST/TREE MAP. Each category tree needs to have a list equivalent for speedy referencing, for cases when there might be many thousands of items in a category tree. (This request from OpenACS.org Bug 1130).

ADP Files

Created by Rocael Hernández Rizzardini, last modified by Gustaf Neumann 09 Aug 2014, at 09:20 PM

  • Avoid putting in Tcl code on ADP pages if possible

    Although AOLserver/NaviServer ADP supports this try to make use of OpenACS Templating or http://your.openacs/doc/acs-templating/. 

  • Pass the "context" and "doc(title)" to the site master template
    Example:
    <property name="doc(title)">@title@</property>
    <property name="context">@context@</property>

Tcl pages

Created by Rocael Hernández Rizzardini, last modified by Gustaf Neumann 09 Aug 2014, at 09:16 PM

  • Avoid putting in HTML in Tcl scripts

    Try to make use of OpenACS Templating or http://your.openacs/doc/acs-templating/. If you can't avoid it try to isolate the HTML into a proc so editing the layout will be easier.

  • Do not use "==" in comparing strings

    Using "if { $string == "foo" }" tries to make a numeric comparison first. Instead make use of "if { "foo" eq $string }" or if you need the negation "if {"foo" ne $string }".

  • Delete the queries from your Tcl files ??

    Since we are now using the query dispatcher it is encourage to make use of .xql files. If you use .xql files kindly delete the sql from the .tcl to avoid confusion. And place a "SQL" place holder on it. (ex. db_1row stmtname "SQL") to make it more readable.

  • Read the Tcl Style guide

    This is the Tcl styleguide (PDF), try to apply relevant guidelines. In particular chapter 4,5 and 7.

Coding Standards - Index

Created by Rocael Hernández Rizzardini, last modified by Gustaf Neumann 09 Aug 2014, at 09:14 PM

A coding style is always important to maintain quality of the code and in this case, the OpenACS project. Here you'll find a set of links that will guide through our most common standards.

The definitive guide on coding standards can be found at http://openacs.org/doc/style-guide.html

Many stuff has been gathered from many post or guides other openacs community members have done, such as:

General Rules

Created by Rocael Hernández Rizzardini, last modified by Gustaf Neumann 09 Aug 2014, at 09:10 PM

  • Use 4 space indentation 
  • Your lines must not exceed the 80 characters limit (never use a single line that has more than 80 chars) 
  • Source files should be coded in UTF-8 using Unix-style newlines

This general rules are applicable to Tcl & SQL. If you are using EMacs you usually are on the safe side with regards to Tcl, as the tcl-mode indents just as we want it. ADP pages are formated correctly if you change into html-mode.

There is an OpenACS mode for emacs which has features to help meet formatting standards.

One can add the following stanza to the end of a .tcl file, when using emacs, to avoid, that spaces are changed again into tabs.

#
# Local variables:
#    mode: tcl
#    tcl-indent-level: 4
#    indent-tabs-mode: nil
# End:

Security Considerations

Allowing user input to include images, see patch in this discussion thread: http://openacs.org/forums/message-view?message_id=182057

OpenACS Release Status

Created by Dave Bauer, last modified by Gustaf Neumann 23 Jul 2014, at 03:31 PM

Current Stable Release

5.8.0 Released 2013-08-30 

Download OpenACS 5.8.0 

Previous Releases

5.7.0 Released 2013-07-17 

Download OpenACS 5.7.0 

5.6.0 Released 2010-09-22 

Download OpenACS 5.6.0 

5.5.0 Released 2009-06-22 

Download OpenACS 5.5.0 

5.4.3 Released  2008-11-26 (No more releases on the 5.4 branch)

Download OpenACS 5.4.3 

5.4.2 Released  2008-06-08

Download OpenACS 5.4.2 

5.4.1 Released  2008-04-07

Download OpenACS 5.4.1 

5.4.0 Released  2008-02-07

Download OpenACS 5.4.0 

5.3.2 Released  2007-07-18 (No more releases on the 5.3 branch)

Download OpenACS 5.3.2 

Next Bugfix Release 

undecided

Next Major Release

undecided

TODO list for next release

GETable resources, that should be POSTable resources

Created by Michael Aram, last modified by Gustaf Neumann 04 Feb 2014, at 11:35 AM

TODO: These OpenACS-URLs are available via GET requests, but as the associated actions are either not safe or not idempotent (or both), they should be made available only via POST instead...

This is more of a problem nowadays as it was earlier, as current browsers (like Chrome or Safari) tend to fetch resources even before the user hits enter in the address bar (i.e. one cannot easily prevent that an unwanted action is taken while entering a similar URL).

In particular the actual (Jan 2014) versions of Safari on Mac OS X 10.9.1 automatically pre-fetches URLs for an url path, when sub-pages were visited in the past, and a user clicks in the url bar (as soon as it shows possible completions). One can e.g. shut down "automatically" the OpenACS server by on /acs-admin/, since Safari might "prefetch" /acs-admin/server-restart.

This page is only a TODO list, that should become a bug report later...

  • /acs-admin/users/become
  • /acs-admin/server-restart

Try Openacs

Created by OpenACS community, last modified by Gustaf Neumann 09 Jan 2014, at 12:59 PM

To try OpenACS, you might lease a hosted system with OpenACS installed on it: For many Linux platforms (e.g. Ubuntu, Debian, Fedora), one can use the generic installer that compiles all base components (using Naviserver) and creates users/groups as needed; which works with Postgres 9.2+

You might want to install OpenACS with one of these automated installers:

Generic installation scripts

The following script installs aolserver and the contained modules from sources. It assumes, that postgres is already installed:

  1. Install AOLserver: http://openacs.org/storage/view/aolserver/install.tgz 
  2. Install OpenACS: en:openacs-subsystem-install



OpenACS/dotLRN Windows Installer Instructions

Created by Byron Linares, last modified by Gustaf Neumann 12 Nov 2013, at 11:22 AM

NOTE: Currently (05/2009), the best option to get OpenACS 5.5.* running on Windows is to use the native windows installation Win32-OpenACS by Spazio IT (Maurizio Martignano).


This page describes the installation of:

  • OpenACS 5.2.3
  • DotLRN 2.2.0
Included Software
  • AOLServer 4.0.beta10_2003
  • PostgresSQL 7.4.3
  • OpenACS 5.2.3
  • DotLrn 2.2.0
  • Cygwin
Installer Download :

The installer is available in openacs community page.
Available versions:

  • OpenACS/dotLRN installer
  • OpenACS 5.2.0 installer


Installation Instructions:

Run the "OpenACS/DotLRN Installer" called setup.exe, read the license document before continuing, the installer will ask for some information, this will be used to make the automatic installation.

There are to ways to install the components; manually or automatic

Components

  • dotLRN Manual and openACS Manual:
  • In this modality the entered personal data in the installer will be omitted and will be necessary to retake the installation from a browser window and enter the necessary data to continue the creation of the data modeling.
  • dotLRN Automatic and openACS Automatic
  • In this modality the installer its in charge of all the work, when finishing creating the data model the following step would be to reinitiate the service and continue with the use of the platform.
  • Source Code:
  • The installer will put in the installation folder the source code of the same one.


Select what you want to install and click next. After the installer places all the files, a browser window will be opened and the installation have to be continued from here, if the automatic mode has been selected wait to the installation finishes. When the installation finishes restart the server and type in a web browser "http://localhost"

 Access Icons:

  • OpenACS on the web: access to http://localhost/
  • Start Server: Bach file to initiate the server (aolserver, postgresql, cygwim)
  • Stop Server: Bach file to stop the server (aolserver, postgresql, cygwin)
  • Unistall OpenACS: Uninstall all
Diagnostics

  • Check if CygWin: Please execute the file server/cygwin/cygwin.bat.  You should get a black screen with some green text saying: "yourusername@yourcomputer" and the "$".
  • Check PostgreSQL: in the cygwin window typy psql -l , You should get the names of all data base.
  • Check AOLServer: ps -alW | grep nsd , You should get some thing like this
  • 2312 0 0 2312 ? 0 07:52:20 C:\OpenACS\nsd4\bin\nsd.exe

Full guide

developed at the Galileo University (www.galileo.edu) by Byron Haroldo Linares Roman bhlr@galileo.edu as part of the E-LANE project (www.e-lane.org)

related forum threads

OpenACS/dotLRN installer for MSWindows

Installing OpenACS

Created by OpenACS community, last modified by Maurizio Martignano 10 Nov 2013, at 08:53 AM

Installing OpenACS 

There are many ways to get OpenACS working for you quickly and/or easily. See Try OpenACS for demonstrations, automated installations and hosting solutions.

Manually installing OpenACS:

These are the steps involved in setting up OpenACS. Before beginning, read about ways of getting help (en:docs-admin-help) during installation. Also, read the documentation completely before beginning, to minimize the chance of any surprises during installation.

  1. Prerequisites to installing OpenACS
  2. OpenACS reference platform
  3. Install a *nix based operating system
  4. Get the code
  5. Install Oracle
  6. Install PostgreSQL
  7. Install Tcl
  8. Install AOLserver
  9. Install OpenACS distribution

These pages contain notes where installing OpenACS on a specific OS different from the *nix standard installation instructions (above).  These notes also refer to helper scripts and automated installers that can really simplify installation:

Workshop Announcement

Created by Gustaf Neumann, last modified by Guest 03 Nov 2013, at 05:17 PM

@event@

Abstract: @_text@
@detail_link@

Talk Announcement

Created by Gustaf Neumann, last modified by Guest 03 Nov 2013, at 05:17 PM

@event@

Abstract: @_text@
@detail_link@

News Item

Created by , last modified by Guest 03 Nov 2013, at 05:17 PM

@image_url@ @_text@
@detail_link@

Recently Changed Pages

Created by Gustaf Neumann, last modified by Gustaf Neumann 10 Oct 2013, at 08:34 PM

Error in includelet '{{categories-recent -title {By Categories} }}' of page en:recently-changed:
Nesting of includelets is to deep
Error in includelet '{{recent -title {All Pages} -max_entries 30 }}' of page en:recently-changed:
Nesting of includelets is to deep

.LRN

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 05 Oct 2013, at 01:10 PM

.LRN Project

.LRN Home Page - The Official .LRN Home Page

.LRN bug tracker - Use the Open ACS bug tracker to report and check status on bugs for all sections of .LRN. If you need to report a bug and you are not sure what code is causing it, use the "2-dotLRN General" category. Otherwise select the package. Note that all the dotLRN packages are at the bottom of the list.

Get Involved! - how to participate in the community

.LRN Versions

Last stable release: 2.5.0

Next release: see .LRN 2.5 Release Management 

Download from .LRN download page

.LRN Installation

To install .LRN follow the instructions at .LRN_Installation

.LRN Governance

This .LRN Governance page is a proposal based on a meeting by Carl Blesius, Carlos Kloos, Roceal Hernandez and Caroline Meeks.  

Useful Resources

Site Specific Documentation

Official test servers

Page Information

  • Last modified: 2013-10-05 13:10:30.274062+02

Available OpenACS Packages

Created by Gustaf Neumann, last modified by Gustaf Neumann 05 Oct 2013, at 12:58 PM

Error in includelet '{{categories -name {Category Tree} -category_ids {388314|388315|388316|388317|4092118|4092124} -style list -decoration plain -no_tree_name 1}}' of page en:packages:
Nesting of includelets is to deep

::xo::db Object Relational Database Interface

Created by Gustaf Neumann, last modified by Gustaf Neumann 05 Oct 2013, at 12:54 PM

The database abstraction layer of xotcl-core interfaces between the OpenACS object model used in the relational Database and XOTcl objects. The database abstraction layer works for PostgreSQL and Oracle in exact the same way.

The functionality of the database abstraction layer provides separate classes for operation on generic ACS obejcts and on objects stored in the OpenACS content repository. The generic lookup queries and instantiate methods are provided throught the following classes

  • ::xo::db::Class (for ordinary ACS Objects)
  • ::xo::db::CrClass (for content repository objects)

Generic operations on ACS Object IDs:

  • ::xo::db::Class get_object_type -id
  • ::xo::db::Class get_instance_from_db -id
  • ::xo::db::Class exists_in_db -id
  • ::xo::db::Class delete -id

Generic operations on ACS Object Types:

  • ::xo::db::Class get_table_name -object_type
  • ::xo::db::Class object_type_exists_in_db -object_type
  • ::xo::db::Class get_class_from_db -object_type
  • ::xo::db::Class drop_type -object_type -drop_table -cascade_p
  • ::xo::db::Class delete_all_acs_objects -object_type

Generic operations on items of the content repository:

  • ::xo::db::CrClass get_object_type -item_id -revision_id
  • ::xo::db::CrClass get_instance_from_db -item_id -revision_id
  • ::xo::db::CrClass lookup -item_id -revision_id
  • ::xo::db::CrClass delete -item_id

Methods on classes for ACS Object Types

  • <classname> new_persistent_object -package_id -creation_user -creation_ip ...
  • <classname> object_types -subtypes_first
  • <classname> create_object_type
  • <classname> drop_object_type -cascade
  • <classname> instance_select_query ...
  • <classname> get_instances_from_db ...

Methods on content repository classes

  • <classname> new_persistent_object -package_id -creation_user -creation_ip ...
  • <classname> create_object_type
  • <classname> drop_object_type
  • <classname> get_instance_from_db -item_id -revision_id
  • <classname> instance_select_query ...
  • <classname> get_instances_from_db ...
  • <classname> folder_type_unregister_all -include_subtypes -folderid register|unregister
  • <classname> folder_type_unregister_all -include_subtypes

Methods on instances of ordinary classes

  • <object> save -package_id -modifying_user
  • <object> save_new -package_id -creation_user -creation_ip
  • <object> delete

Methods on instances of content repository classes

  • <object> save -modifying_user -live_p
  • <object> save_new -package_id -creation_user -creation_ip -live_p
  • <object> set_live_revision -revision_id -publish_status
  • <object> delete

The following links provide a detailed description of these classes in the version as they are installed on openacs.org: ::xo::db::Class  and ::xo::db::CrClass 

The xotcl-core Database Abstraction Layer by Examples 

The remainder of this page provides a short tutorial into the basic functionality of the interface. A more detailed description can be found in the xotcl-core tutorial 

############################################################
#
# 1) Create new ACS Objects, destroy it in memory, 
#    load it from the database, delete it in the database.
#
.. Create a plain new ACS object just for demo purposes. .. The ACS object is created with a new object id. >> set o [::xo::db::Object new_persistent_object] =  ::7845 .. Show the contents of object ::7845 by serializing it: >> ::7845 serialize =  ::xo::db::Object create ::7845 -noinit \     -set object_title {Object 7845} \     -set object_id 7845 .. In the next steps, we (a) get the object_id of the newly .. created ACS object, (b) destroy the XOTcl object (the ACS .. object is still in the database, (c) we recreate the .. XOTcl object from the database, and (d) delete it in the .. database. .. Step (a) >> set o_id [::7845 object_id] =  7845 # # Delete object from memory: <object> destroy # Check, if an XOTcl object exists: ::xotcl::Object isobject <obj> # >> ::xotcl::Object isobject ::7845 =  1 .. Step (b) >> ::7845 destroy >> ::xotcl::Object isobject ::7845 =  0 # # Load an object from the database: ::xo::db::Class get_instance_from_db -id <id> # .. Step (c) >> set o [::xo::db::Class get_instance_from_db -id 7845] =  ::7845 >> ::xotcl::Object isobject ::7845 =  1 .. Now, we have recreated the same object as before: >> ::7845 serialize =  ::xo::db::Object create ::7845 -noinit \     -set object_title {Object 7845} \     -set object_id 7845 # # Check, if an ACS object exists in the database: ::xo::db::Class exists_in_db -id <id> # Delete object from memory and database: <object> delete # >> ::xo::db::Class exists_in_db -id 7845 =  1 .. Step (d) >> ::7845 delete .. Now, we have deleted the ACS Object and the XOTcl object: >> ::xo::db::Class exists_in_db -id 7845 =  0 >> ::xotcl::Object isobject ::7845 =  0 ############################################################ # # 2) Create new ACS Object Types, ACS Attributes and #    SQL Tables from XOTcl Classes with slot definitions. # .. We want to create a new ACS Object type and .. an XOTcl class named ::demo::Person. .. Does the ACS Object type ::demo::Person exist in the database? >> ::xo::db::Class object_type_exists_in_db -object_type ::demo::Person =  0 .. The ACS Object Type should not exist (statement should return 0) .. We create a new XOTcl Class '::demo::Person'. .. By defining this class, the database layer takes care .. of creating the ACS Object Type and the necessary table via SQL. .. The persistent attributes (stored in the database) are defined .. as slots of type ::xo::db::Attribute. >> ::xo::db::Class create ::demo::Person  \   -superclass ::xo::db::Object  \   -slots {       ::xo::db::Attribute create name -column_name pname       ::xo::db::Attribute create age -default 0 -datatype integer       ::xo::db::Attribute create projects -default {} -multivalued true     } =  ::demo::Person .. If the ACS Object Type and the ACS Attributes would be .. already defined in the database, the class definition above .. would be a no-op operation. .. Now, the ACS Object Type exists in the database >> ::xo::db::Class object_type_exists_in_db -object_type ::demo::Person =  1 .. The XOTcl class definition created automatically the .. following table for storing instances: CREATE TABLE demo_person (     age  integer DEFAULT '0' ,     pname  text ,     projects  text DEFAULT '' ,     person_id  integer REFERENCES acs_objects(object_id) ON DELETE CASCADE     CONSTRAINT demo_person_person_id_pk PRIMARY KEY ) .. SQL attribute slot names: >> ::demo::Person array names db_slot =  name age projects person_id .. The XOTcl class definition created as well a 'save' and .. an 'insert' method: .. Created 'save' method: ::demo::Person instproc save {}  {       db_transaction {     next     my instvar object_id name age projects     db_dml dbqd..update_demo_person {update demo_person       set pname = :name,age = :age,projects = :projects           where person_id = :object_id     }       }     } .. Created 'insert' method: ::demo::Person instproc insert {}  {       set __table_name [[self class] table_name]       set __id [[self class] id_column]       my set $__id [my set object_id]       my log "ID insert in $__table_name, id = $__id = [my set $__id]"       next       foreach {__slot_name __slot} [[self class] array get db_slot] {     my instvar $__slot_name     if {[info exists $__slot_name]} {       lappend __vars $__slot_name       lappend __atts [$__slot column_name]     }       }       db_dml dbqd..insert_$__table_name "insert into $__table_name         ([join $__atts ,]) values (:[join $__vars ,:])"     } .. The 'insert' method is typically called via .. '<classname> new', which takes care about db_transaction (see below) # # Create a new instance of ::demo::Person with name 'Gustaf' # # The method 'new_persistent_object' of a database class (instance of ::xo::db::Class) # creates an ACS Object with a fresh id in the database and # creates as well an XOTcl object in memory >> set p [::demo::Person new_persistent_object -name Gustaf -age 105] =  ::7846 ::7846 created .. check, if object ::7846 exists in memory >> ::xotcl::Object isobject ::7846 =  1 .. check, if object ::7846 exists in the database >> ::xo::db::Class exists_in_db -id 7846 =  1 .. Every persistent XOTcl object has an object_id. >> ::7846 exists object_id =  1 .. Show the contents of object ::7846 (using serialize) >> ::7846 serialize =  ::demo::Person create ::7846 -noinit \     -set object_title {Person 7846} \     -set name Gustaf \     -set age 105 \     -set projects {} \     -set person_id 7846 \     -set object_id 7846 .. modify some attributes of the XOTcl object >> ::7846 incr age =  106 .. show modified contents of ::7846 ::demo::Person create ::7846 -noinit \     -set object_title {Person 7846} \     -set name Gustaf \     -set age 106 \     -set projects {} \     -set person_id 7846 \     -set object_id 7846 .. save the modified object data in the database >> ::7846 save >> set person_id [$p person_id] =  7846 .. deleting xotcl object ::7846 in memory >> $p destroy .. check, if object ::7846 exists in memory >> ::xotcl::Object isobject ::7846 =  0 .. check, if object ::7846 exists in the database >> ::xo::db::Class exists_in_db -id 7846 =  1 .. fetch person again from database: >> set p [::xo::db::Class get_instance_from_db -id 7846] =  ::7846 .. check, if object ::7846 exists in memory >> ::xotcl::Object isobject ::7846 =  1 ::demo::Person create ::7846 -noinit \     -set object_title {Person 7846} \     -set name Gustaf \     -set age 106 \     -set projects {} \     -set object_id 7846 \     -set person_id 7846 .. The object ::7846 was fetched from the database using the .. automatically created query: SELECT demo_person.pname AS name,demo_person.age,   demo_person.projects,demo_person.person_id,   acs_objects.title AS object_title,acs_objects.object_id FROM demo_person,acs_objects WHERE person_id = 7846 and object_id = person_id .. In order to delete an object from the database, .. the method 'delete' can be used. 'delete' deletes the .. ACS object in the database as well the XOTcl object in memory. >> set p_id [::7846 object_id] =  7846 >> ::xo::db::Class exists_in_db -id 7846 =  1 >> ::7846 delete >> ::xo::db::Class exists_in_db -id 7846 =  0 .. Instead of using 'new_persistent_object' to create .. new acs_objects, one can use the method 'new' in .. combination with 'save_new'. While the method 'new' creates .. an XOTcl object in memory, the method 'save_new' can be used .. to create a new ACS object (with a new object_id) an to .. save this object persistently in the database. >> set p [::demo::Person new -name Gustaf -age 105] =  ::xotcl::__#A >> ::xotcl::__#A exists object_id =  0 >> ::xotcl::__#A save_new =  7847 >> ::xotcl::__#A exists object_id =  1 .. Now, we create a subclass of ::demo::Person called ::demo::Employee .. which has a few more attributes. Again, we define an XOTcl class .. ::demo::Employee which creates the ACS Object Type, the ACS .. attributes and the table, if necessary. >> ::xo::db::Class create ::demo::Employee  \   -superclass ::demo::Person  \   -table_name demo_employee \   -id_column employee_id  \   -slots {       ::xo::db::Attribute create salary -datatype integer       ::xo::db::Attribute create dept_nr -datatype integer -default "0"     } =  ::demo::Employee .. The XOTcl class definition created automatically the .. following table for storing instances: CREATE TABLE demo_employee (     dept_nr  integer DEFAULT '0' ,     salary  integer ,     employee_id  integer REFERENCES demo_person(person_id) ON DELETE CASCADE     CONSTRAINT demo_employee_employee_id_pk PRIMARY KEY ) .. Create a first new employee: >> set p1 [::demo::Employee new_persistent_object -name Neophytos -age 25] =  ::7848 .. show contents of ::7848 ::demo::Employee create ::7848 -noinit \     -set employee_id 7848 \     -set object_title {Employee 7848} \     -set dept_nr 0 \     -set name Neophytos \     -set age 25 \     -set projects {} \     -set person_id 7848 \     -set object_id 7848 .. Create a second new employee: >> set p2 [::demo::Employee new_persistent_object -name Lore -age 35 -salary 100000] =  ::7849 .. show contents of ::7849 ::demo::Employee create ::7849 -noinit \     -set employee_id 7849 \     -set object_title {Employee 7849} \     -set salary 100000 \     -set dept_nr 0 \     -set name Lore \     -set age 35 \     -set projects {} \     -set person_id 7849 \     -set object_id 7849 .. Create a third new employee: >> set p3 [::demo::Employee new_persistent_object -name Nora -age 7 -salary 100] =  ::7850 .. show contents of ::7850 ::demo::Employee create ::7850 -noinit \     -set employee_id 7850 \     -set object_title {Employee 7850} \     -set salary 100 \     -set dept_nr 0 \     -set name Nora \     -set age 7 \     -set projects {} \     -set person_id 7850 \     -set object_id 7850 # # Delete object from memory: <object> destroy # >> ::xotcl::Object isobject ::7848 =  1 >> set p1_id [$p1 object_id] =  7848 >> ::xo::db::Class exists_in_db -id 7848 =  1 >> $p1 destroy >> ::xotcl::Object isobject ::7848 =  0 >> ::xo::db::Class exists_in_db -id 7848 =  1 # # Delete object from memory and database: <object> delete # >> ::xotcl::Object isobject ::7849 =  1 >> set p2_id [$p2 object_id] =  7849 >> ::xo::db::Class exists_in_db -id 7849 =  1 >> $p2 delete >> ::xotcl::Object isobject ::7849 =  0 >> ::xo::db::Class exists_in_db -id 7849 =  0 .. Fetch employee with id 7848 again from the database: >> set p [::xo::db::Class get_instance_from_db -id 7848] =  ::7848 .. show contents of ::7848 ::demo::Employee create ::7848 -noinit \     -set object_title {Employee 7848} \     -set salary {} \     -set employee_id 7848 \     -set dept_nr 0 \     -set name Neophytos \     -set age 25 \     -set projects {} \     -set object_id 7848 \     -set person_id 7848 .. The object ::7848 was fetched from the database using the .. automatically created query: SELECT demo_employee.employee_id,demo_employee.salary,   demo_employee.dept_nr,   demo_person.pname AS name,demo_person.age,   demo_person.projects,demo_person.person_id,   acs_objects.title AS object_title,acs_objects.object_id FROM demo_employee,demo_person,acs_objects WHERE employee_id = 7848 and person_id = employee_id   and object_id = employee_id >> ::7848 destroy .. Query the instances from the database .. Instances are queried by default based on the following, .. automatically generated SQL Query: >> ::demo::Employee instance_select_query =  SELECT demo_employee.employee_id,demo_employee.salary,     demo_employee.dept_nr,     demo_person.pname AS name,demo_person.age,     demo_person.projects, demo_person.person_id,     acs_objects.title AS object_title,acs_objects.object_id   FROM demo_employee,demo_person,acs_objects    WHERE person_id = employee_id and object_id = employee_id  .. Query the object using this query into a set of objects. >> set s [::demo::Employee get_instances_from_db] =  ::xotcl::__#H .. The result is an OrderedComposite. Children can be accessed .. via the 'children' method: >> llength [$s children] =  2 .. serialize all children ::xotcl::Object create ::xotcl::__#I -noinit \     -set __parent ::xotcl::__#H \     -set object_title {Employee 7848} \     -set dept_nr 0 \     -set salary {} \     -set employee_id 7848 \     -set age 25 \     -set name Neophytos \     -set projects {} \     -set object_id 7848 \     -set person_id 7848 ::xotcl::Object create ::xotcl::__#J -noinit \     -set __parent ::xotcl::__#H \     -set object_title {Employee 7850} \     -set dept_nr 0 \     -set salary 100 \     -set employee_id 7850 \     -set age 7 \     -set name Nora \     -set projects {} \     -set object_id 7850 \     -set person_id 7850 .. The instance_select_query can be configured in many ways. .. Here we use the '-count true' option to return just the number .. of solutions: >> ::demo::Employee instance_select_query -count true =  SELECT count(*)   FROM demo_employee,demo_person,acs_objects    WHERE person_id = employee_id and object_id = employee_id  >> db_string cnt [::demo::Employee instance_select_query -count true] =  2 .. The same queries for ::demo::Person instead of ::demo::Employee. .. Note, that we get the person data of employees as well, since .. employees are as well persons (i.e. a specialization of person): >> ::demo::Person instance_select_query =  SELECT demo_person.pname AS name,demo_person.age,     demo_person.projects,demo_person.person_id,     acs_objects.title AS object_title,acs_objects.object_id   FROM demo_person,acs_objects    WHERE object_id = person_id  >> set s [::demo::Person get_instances_from_db] =  ::xotcl::__#M >> llength [$s children] =  3 ::xotcl::Object create ::xotcl::__#N -noinit \     -set __parent ::xotcl::__#M \     -set object_title {Person 7847} \     -set age 105 \     -set name Gustaf \     -set projects {} \     -set object_id 7847 \     -set person_id 7847 ::xotcl::Object create ::xotcl::__#O -noinit \     -set __parent ::xotcl::__#M \     -set object_title {Employee 7848} \     -set age 25 \     -set name Neophytos \     -set projects {} \     -set object_id 7848 \     -set person_id 7848 ::xotcl::Object create ::xotcl::__#P -noinit \     -set __parent ::xotcl::__#M \     -set object_title {Employee 7850} \     -set age 7 \     -set name Nora \     -set projects {} \     -set object_id 7850 \     -set person_id 7850 TODO: explain more options for instance_select_query and get_instances_from_db ############################################################ # # 3) Create XOTcl classes from existing ACS Object Types #    and ACS Attributes based on the definitions in the #    database >> set c [::xo::db::Class get_class_from_db -object_type party] =  ::xo::db::party .. XOTcl class ::xo::db::party created (superclass ::xo::db::Object) .. SQL attributes: >> ::xo::db::party array names db_slot =  email party_id url >> set c [::xo::db::Class get_class_from_db -object_type person] =  ::xo::db::person .. XOTcl class ::xo::db::person created (superclass ::xo::db::party) .. SQL attributes: >> ::xo::db::person array names db_slot =  last_name first_names person_id >> set c [::xo::db::Class get_class_from_db -object_type user] =  ::xo::db::user .. XOTcl class ::xo::db::user created (superclass ::xo::db::person) .. SQL attributes: >> ::xo::db::user array names db_slot =  user_id >> set c [::xo::db::Class get_class_from_db -object_type group] =  ::xo::db::group .. XOTcl class ::xo::db::group created (superclass ::xo::db::party) .. SQL attributes: >> ::xo::db::group array names db_slot =  group_name group_id .. Create XOTcl object for user_id = 0 .. please log in >> set u [::xo::db::Class get_instance_from_db -id $myuser] =  ::0 .. ::0 created, class ::xo::db::user .. class hierarchy for ::0 ::xo::db::user ::xo::db::person ::xo::db::party ::xo::db::Object ::xotcl::Object .. show contents of ::0 ::xo::db::user create ::0 -noinit \     -set object_title Unregistered Visitor \     -set party_id 0 \     -set email {} \     -set last_name Visitor \     -set object_id 0 \     -set url {} \     -set person_id 0 \     -set first_names Unregistered \     -set user_id 0 .. The object ::0 was fetched from the database using the .. automatically created query: SELECT users.user_id,persons.last_name,persons.first_names,   persons.person_id,parties.email,   parties.party_id,parties.url,   acs_objects.title AS object_title,acs_objects.object_id FROM users,persons,parties,acs_objects WHERE user_id = 0 and person_id = user_id and   party_id = user_id and object_id = user_id .. Now we modify the user. To be on the safe side, we .. a) save firstly the original URL of the current user, then .. b) we set it to a new value and save the user information ..    to the database .. c) delete the user object in memory .. d) load it again from the database to see the modified data .. e) reset it to the original value and save it again to restore ..    the original state .. Step a: >> set url [::0 url] .. Step b: >> ::0 url http://nowhere.land/http://nowhere.land/ >> ::0 save .. Step c: >> ::0 destroy .. Step d: >> set u [::xo::db::Class get_instance_from_db -id $myuser] =  ::0 .. show contents of ::0 ::xo::db::user create ::0 -noinit \     -set object_title Unregistered Visitor \     -set party_id 0 \     -set email {} \     -set last_name Visitor \     -set object_id 0 \     -set url http://nowhere.land/ \     -set person_id 0 \     -set first_names Unregistered \     -set user_id 0 .. Step e: >> ::0 url $url >> ::0 save >> ::0 destroy >> set u [::xo::db::Class get_instance_from_db -id $myuser] =  ::0 .. show contents of ::0 ::xo::db::user create ::0 -noinit \     -set object_title Unregistered Visitor \     -set party_id 0 \     -set email {} \     -set last_name Visitor \     -set object_id 0 \     -set url {} \     -set person_id 0 \     -set first_names Unregistered \     -set user_id 0 ############################################################ # # 4) Use the generic Content Repository interface (using #    just cr_items and cr_revisions) # .. check, if cr_item with name 'testing' exists >> set item_id [::xo::db::CrClass lookup -name testing] =  7841 .. yes, it exists; delete it without instantiating >> ::xo::db::CrItem delete -item_id 7841 .. create item >> set i [::xo::db::CrItem new  -name "testing"  -title "Title of Hello World"  -text "Hello World"  ] =  ::xotcl::__#a >> $i save_new =  7852 .. show contents of item ::xo::db::CrItem create ::xotcl::__#a -noinit \     -set creation_date {2007-09-03 23:28:26.727511+02} \     -set creation_user 0 \     -set object_id 7852 \     -set description {} \     -set text {Hello World} \     -set nls_language en_US \     -set mime_type text/plain \     -set name testing \     -set publish_status ready \     -set title {Title of Hello World} \     -set revision_id 7851 \     -set item_id 7852 \     -set last_modified {2007-09-03 23:28:26.727511+02} \     -set parent_id -100 .. update content >> ::xotcl::__#a append text {... more text.. more text.. more text.} =  Hello World... more text.. more text.. more text. >> ::xotcl::__#a append title { - v2} =  Title of Hello World - v2 .. show modified contents of item ::xo::db::CrItem create ::xotcl::__#a -noinit \     -set creation_date {2007-09-03 23:28:26.727511+02} \     -set creation_user 0 \     -set object_id 7852 \     -set description {} \     -set text {Hello World... more text.. more text.. more text.} \     -set nls_language en_US \     -set mime_type text/plain \     -set name testing \     -set publish_status ready \     -set title {Title of Hello World - v2} \     -set revision_id 7851 \     -set item_id 7852 \     -set last_modified {2007-09-03 23:28:26.727511+02} \     -set parent_id -100 >> ::xotcl::__#a save =  7852 .. method 'save' creates a new revision; see changed revision_id below ::xo::db::CrItem create ::xotcl::__#a -noinit \     -set creation_date {2007-09-03 23:28:26.727511+02} \     -set creation_user 0 \     -set object_id 7852 \     -set description {} \     -set text {Hello World... more text.. more text.. more text.} \     -set nls_language en_US \     -set mime_type text/plain \     -set name testing \     -set publish_status ready \     -set title {Title of Hello World - v2} \     -set revision_id 7853 \     -set item_id 7852 \     -set last_modified {2007-09-03 23:28:26.727511+02} \     -set parent_id -100 >> set item_id 7852 =  7852 >> ::xotcl::__#a destroy >> set i [::xo::db::CrClass get_instance_from_db -item_id 7852] =  ::7852 ::xo::db::CrItem create ::7852 -noinit \     -set object_type content_revision \     -set creation_date {2007-09-03 23:28:26.727511+02} \     -set object_id 7853 \     -set creation_user 0 \     -set description {} \     -set text {Hello World... more text.. more text.. more text.} \     -set nls_language en_US \     -set package_id 492 \     -set name testing \     -set mime_type text/plain \     -set publish_status ready \     -set title {Title of Hello World - v2} \     -set item_id 7852 \     -set revision_id 7853 \     -set last_modified {2007-09-03 23:28:26.750059+02} \     -set parent_id -100 ############################################################ # # 5) Create new application classes by sub-typing the #    Content Repository, adding additional attributes # .. We create a subclass of ::xo::db::CrItem called ::demo::Page .. which has a few more attributes. Actually, this class is very .. similar to ::xowiki::Page. Again, we define an XOTcl class .. ::demo::Page which creates the ACS Object Type, the ACS .. attributes and the table, if necessary. >>   # content class very similar to ::xowiki::Page   ::xo::db::CrClass create Page \     -superclass ::xo::db::CrItem  \     -pretty_name "demo Page"  \     -mime_type text/html  \     -slots {         if {[::xo::db::has_ltree]} {           ::xo::db::CrAttribute create page_order \             -sqltype ltree -validator page_order \             -default ""         }         ::xo::db::CrAttribute create creator \             -column_name creator_string       } =  ::demo::Page .. The sql_attribute_names for content items contain .. the attributes of all supertypes: >> ::demo::Page array names db_slot =  creator page_order page_id object_id description text object_title nls_language mime_type name title item_id revision_id >> ::demo::Page info slots =  ::demo::Page::slot::creator ::demo::Page::slot::page_order ::demo::Page::slot::mime_type ::demo::Page::slot::page_id >> ::xo::slotobjects ::demo::Page =  ::demo::Page::slot::creator ::demo::Page::slot::page_order ::demo::Page::slot::mime_type ::demo::Page::slot::page_id ::xo::db::CrItem::slot::package_id ::xo::db::CrItem::slot::nls_language ::xo::db::CrItem::slot::description ::xo::db::CrItem::slot::name ::xo::db::CrItem::slot::text ::xo::db::CrItem::slot::publish_status ::xo::db::CrItem::slot::parent_id ::xo::db::CrItem::slot::title ::xo::db::CrItem::slot::revision_id ::xo::db::CrItem::slot::item_id ::xo::db::Object::slot::object_title ::xo::db::Object::slot::object_id .. create page >> set i [Page new  \     -name "page0"  \     -title "Joke of the Month" \     -creator "GN" \     -text "Three cannibals meet in a NYC subway station..."  ] =  ::xotcl::__#j >> $i save_new =  7855 .. show contents of page object ::xotcl::__#j (including creator and page_order, .. when ltree is available) ::demo::Page create ::xotcl::__#j -noinit \     -set page_order {} \     -set creator GN \     -set page_id {} \     -set creation_date {2007-09-03 23:28:29.149591+02} \     -set object_id 7855 \     -set creation_user 0 \     -set description {} \     -set text {Three cannibals meet in a NYC subway station...} \     -set nls_language en_US \     -set mime_type text/html \     -set name page0 \     -set publish_status ready \     -set title {Joke of the Month} \     -set revision_id 7854 \     -set item_id 7855 \     -set last_modified {2007-09-03 23:28:29.149591+02} \     -set parent_id -100 >> set item_id [::xotcl::__#j item_id] =  7855 >> ::xotcl::__#j destroy >> ::demo::Page get_instance_from_db -item_id 7855 =  ::7855 ::demo::Page create ::7855 -noinit \     -set page_order {} \     -set object_type ::demo::Page \     -set page_id 7854 \     -set creation_date {2007-09-03 23:28:29.149591+02} \     -set object_id 7854 \     -set creation_user 0 \     -set description {} \     -set text {Three cannibals meet in a NYC subway station...} \     -set nls_language en_US \     -set package_id 492 \     -set name page0 \     -set mime_type text/html \     -set title {Joke of the Month} \     -set publish_status ready \     -set revision_id 7854 \     -set item_id 7855 \     -set last_modified {2007-09-03 23:28:29.149591+02} \     -set parent_id -100 \     -set creator_string GN

Installing *nix

Created by OpenACS community, last modified by Gustaf Neumann 23 Sep 2013, at 08:16 PM

Install a *nix-based operating system (OS)

Follow the installation directions that come with the distribution.

There are generally 2 strategies at this point:

  1. Install an OS with minimum programs, or
  2. Install a suite of programs, for example choose between a developer set or desktop set.

We recommend installing only the OS to minimize the chances of conflicts resulting from installing 2 or more copies of one of the OpenACS system components openacs-system.

The impatient reader might want to check out the two scripts at naviserver-openacs which can be used to install OpenACS from scratch on a variety if systems (including Debian/RHEL Linux or Mac OS X), and which lists the detailed dependencies during the build process. Below, we describe in detail the steps.

Many additional programs, such as a build environment (gcc), Mail Transport Agent (MTA), and source control system, are also needed for a fully operational installation. Most of these are included with a basic OS installation.

Install some helper software

You might want to install some of these after a minimum OS install, since OpenACS administration usually assumes you have these (or alternates) installed:

  • wget
  • emacs or vi/vim
  • bash shell (usually automatically installed with Linux distributions)
  • gcc or equivalent (along with standard distribution source libraries) - if you plan to install software from source.
  • ImageMagick - used by some packages for server side image processing
  • aspell - used to offer spell checking in forms

*nix install guides

some helpful documentation for installing *nix flavors

*nix-based systems without installing *nix

These DEMOs install a temporary *nix OS on your system:

Or, lease a hosted system with a *nix OS and OpenACS installed on it.

See companies that host OpenACS websites.

Securing your system

Once you get your OS installed, it's imperative that you secure your installation. As Jon Griffin repeatedly warns us, "No distribution is secure out of the box." The Reference Platform implements some basic precautions, but security is a process, not a condition. If you are responsible for a computer hooked to the internet, you are responsible for learning some rudiments of security, such as monitoring the state of a computer, maintaining patch levels, and keeping backups. We recommend these resources:

ACS Mail

Created by Nick Carroll, last modified by Gustaf Neumann 18 Sep 2013, at 05:50 PM

Error in includelet '{{adp /www/templates/info-file {package_key acs-mail}}}' of page en:acs-mail:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/bug-tracker {package_key acs-mail}}}' of page en:acs-mail:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/metrics {package_key acs-mail}}}' of page en:acs-mail:
Nesting of includelets is to deep

Messages Applet

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 09:33 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-messages}}}' of page en:dotlrn-messages:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-messages}}}' of page en:dotlrn-messages:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-messages}}}' of page en:dotlrn-messages:
Nesting of includelets is to deep

Layout Manager

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 09:31 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:layout-manager}}}' of page en:layout-manager:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:layout-manager}}}' of page en:layout-manager:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:layout-manager}}}' of page en:layout-manager:
Nesting of includelets is to deep

Theme Zen

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 09:28 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:theme-zen}}}' of page en:theme-zen:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:theme-zen}}}' of page en:theme-zen:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:theme-zen}}}' of page en:theme-zen:
Nesting of includelets is to deep

SOAP db

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 09:26 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:soap-db}}}' of page en:soap-db:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:soap-db}}}' of page en:soap-db:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:soap-db}}}' of page en:soap-db:
Nesting of includelets is to deep

Ajax Photoalbum UI

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 09:25 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:ajax-photoalbum-ui}}}' of page en:ajax-photoalbum-ui:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:ajax-photoalbum-ui}}}' of page en:ajax-photoalbum-ui:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:ajax-photoalbum-ui}}}' of page en:ajax-photoalbum-ui:
Nesting of includelets is to deep

ACS Object Management

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 09:23 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:acs-object-management}}}' of page en:acs-object-management:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:acs-object-management}}}' of page en:acs-object-management:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:acs-object-management}}}' of page en:acs-object-management:
Nesting of includelets is to deep

Auth CAS

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 09:22 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:auth-cas}}}' of page en:auth-cas:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:auth-cas}}}' of page en:auth-cas:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:auth-cas}}}' of page en:auth-cas:
Nesting of includelets is to deep

Webmail System

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 09:21 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:webmail-system}}}' of page en:webmail-system:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:webmail-system}}}' of page en:webmail-system:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:webmail-system}}}' of page en:webmail-system:
Nesting of includelets is to deep

MMplayer Applet

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 09:18 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-mmplayer}}}' of page en:dotlrn-mmplayer:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-mmplayer}}}' of page en:dotlrn-mmplayer:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-mmplayer}}}' of page en:dotlrn-mmplayer:
Nesting of includelets is to deep

File Storage Includelet

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 09:15 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:file-storage-includelet}}}' of page en:file-storage-includelet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:file-storage-includelet}}}' of page en:file-storage-includelet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:file-storage-includelet}}}' of page en:file-storage-includelet:
Nesting of includelets is to deep

Calendar Includelet

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 09:14 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:calendar-includelet}}}' of page en:calendar-includelet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:calendar-includelet}}}' of page en:calendar-includelet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:calendar-includelet}}}' of page en:calendar-includelet:
Nesting of includelets is to deep

LORS management Includelet

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 09:13 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:lorsm-includelet}}}' of page en:lorsm-includelet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:lorsm-includelet}}}' of page en:lorsm-includelet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:lorsm-includelet}}}' of page en:lorsm-includelet:
Nesting of includelets is to deep

Forums Includelet

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 09:12 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:forums-includelet}}}' of page en:forums-includelet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:forums-includelet}}}' of page en:forums-includelet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:forums-includelet}}}' of page en:forums-includelet:
Nesting of includelets is to deep

Layout Managed Subsite

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 09:10 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:layout-managed-subsite}}}' of page en:layout-managed-subsite:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:layout-managed-subsite}}}' of page en:layout-managed-subsite:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:layout-managed-subsite}}}' of page en:layout-managed-subsite:
Nesting of includelets is to deep

Connections

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 09:09 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:connections}}}' of page en:connections:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:connections}}}' of page en:connections:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:connections}}}' of page en:connections:
Nesting of includelets is to deep

Auth HTTP

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 09:08 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:auth-http}}}' of page en:auth-http:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:auth-http}}}' of page en:auth-http:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:auth-http}}}' of page en:auth-http:
Nesting of includelets is to deep

dbm

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 09:06 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dbm}}}' of page en:dbm:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dbm}}}' of page en:dbm:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:dbm}}}' of page en:dbm:
Nesting of includelets is to deep

Planner

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 09:05 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:planner}}}' of page en:planner:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:planner}}}' of page en:planner:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:planner}}}' of page en:planner:
Nesting of includelets is to deep

S5

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 09:03 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:s5}}}' of page en:s5:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:s5}}}' of page en:s5:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:s5}}}' of page en:s5:
Nesting of includelets is to deep

Latest

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 09:00 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:latest}}}' of page en:latest:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:latest}}}' of page en:latest:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:latest}}}' of page en:latest:
Nesting of includelets is to deep

Latest Portlet

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 09:00 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:latest-portlet}}}' of page en:latest-portlet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:latest-portlet}}}' of page en:latest-portlet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:latest-portlet}}}' of page en:latest-portlet:
Nesting of includelets is to deep

Latest Applet

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 08:59 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-latest}}}' of page en:dotlrn-latest:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-latest}}}' of page en:dotlrn-latest:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-latest}}}' of page en:dotlrn-latest:
Nesting of includelets is to deep

Facebook API

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 08:58 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:facebook-api}}}' of page en:facebook-api:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:facebook-api}}}' of page en:facebook-api:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:facebook-api}}}' of page en:facebook-api:
Nesting of includelets is to deep

Content Includelet

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 08:56 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:content-includelet}}}' of page en:content-includelet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:content-includelet}}}' of page en:content-includelet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:content-includelet}}}' of page en:content-includelet:
Nesting of includelets is to deep

Learning Content Applet

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 08:55 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-learning-content}}}' of page en:dotlrn-learning-content:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-learning-content}}}' of page en:dotlrn-learning-content:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-learning-content}}}' of page en:dotlrn-learning-content:
Nesting of includelets is to deep

Learning Content Portlet

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 08:54 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:learning-content-portlet}}}' of page en:learning-content-portlet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:learning-content-portlet}}}' of page en:learning-content-portlet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:learning-content-portlet}}}' of page en:learning-content-portlet:
Nesting of includelets is to deep

Learning Content

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 08:52 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:learning-content}}}' of page en:learning-content:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:learning-content}}}' of page en:learning-content:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:learning-content}}}' of page en:learning-content:
Nesting of includelets is to deep

Content Portlet

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 08:51 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:content-portlet}}}' of page en:content-portlet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:content-portlet}}}' of page en:content-portlet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:content-portlet}}}' of page en:content-portlet:
Nesting of includelets is to deep

Content Applet

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 08:50 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-content}}}' of page en:dotlrn-content:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-content}}}' of page en:dotlrn-content:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-content}}}' of page en:dotlrn-content:
Nesting of includelets is to deep

XoWiki Includelet

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 08:47 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:xowiki-includelet}}}' of page en:xowiki-includelet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:xowiki-includelet}}}' of page en:xowiki-includelet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:xowiki-includelet}}}' of page en:xowiki-includelet:
Nesting of includelets is to deep

XoWiki Applet

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 08:46 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-xowiki}}}' of page en:dotlrn-xowiki:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-xowiki}}}' of page en:dotlrn-xowiki:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-xowiki}}}' of page en:dotlrn-xowiki:
Nesting of includelets is to deep

XoWiki Portlet

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 08:45 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:xowiki-portlet}}}' of page en:xowiki-portlet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:xowiki-portlet}}}' of page en:xowiki-portlet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:xowiki-portlet}}}' of page en:xowiki-portlet:
Nesting of includelets is to deep

Wikipedia

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 08:43 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:wikipedia}}}' of page en:wikipedia:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:wikipedia}}}' of page en:wikipedia:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:wikipedia}}}' of page en:wikipedia:
Nesting of includelets is to deep

Wikipedia Portlet

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 08:42 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:wikipedia-portlet}}}' of page en:wikipedia-portlet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:wikipedia-portlet}}}' of page en:wikipedia-portlet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:wikipedia-portlet}}}' of page en:wikipedia-portlet:
Nesting of includelets is to deep

Wikipedia Applet

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 08:41 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-wikipedia}}}' of page en:dotlrn-wikipedia:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-wikipedia}}}' of page en:dotlrn-wikipedia:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-wikipedia}}}' of page en:dotlrn-wikipedia:
Nesting of includelets is to deep

Scorm Simple LMS

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 08:40 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:scorm-simple-lms}}}' of page en:scorm-simple-lms:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:scorm-simple-lms}}}' of page en:scorm-simple-lms:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:scorm-simple-lms}}}' of page en:scorm-simple-lms:
Nesting of includelets is to deep

Scorm Player

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 08:38 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:scorm-player}}}' of page en:scorm-player:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:scorm-player}}}' of page en:scorm-player:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:scorm-player}}}' of page en:scorm-player:
Nesting of includelets is to deep

Scorm Core

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 08:36 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:scorm-core}}}' of page en:scorm-core:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:scorm-core}}}' of page en:scorm-core:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:scorm-core}}}' of page en:scorm-core:
Nesting of includelets is to deep

Scorm Importer

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 08:35 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:scorm-importer}}}' of page en:scorm-importer:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:scorm-importer}}}' of page en:scorm-importer:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:scorm-importer}}}' of page en:scorm-importer:
Nesting of includelets is to deep

Ajax Filestore UI

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 08:34 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:ajax-filestorage-ui}}}' of page en:ajax-filestorage-ui:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:ajax-filestorage-ui}}}' of page en:ajax-filestorage-ui:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:ajax-filestorage-ui}}}' of page en:ajax-filestorage-ui:
Nesting of includelets is to deep

Pages

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 08:32 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:pages}}}' of page en:pages:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:pages}}}' of page en:pages:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:pages}}}' of page en:pages:
Nesting of includelets is to deep


Quota

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 08:28 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:quota}}}' of page en:quota:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:quota}}}' of page en:quota:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:quota}}}' of page en:quota:
Nesting of includelets is to deep

Quota Portlet

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 08:27 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:quota-portlet}}}' of page en:quota-portlet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:quota-portlet}}}' of page en:quota-portlet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:quota-portlet}}}' of page en:quota-portlet:
Nesting of includelets is to deep

Quota Applet

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 08:26 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-quota}}}' of page en:dotlrn-quota:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-quota}}}' of page en:dotlrn-quota:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-quota}}}' of page en:dotlrn-quota:
Nesting of includelets is to deep

EduWiki

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 08:23 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:eduwiki}}}' of page en:eduwiki:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:eduwiki}}}' of page en:eduwiki:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:eduwiki}}}' of page en:eduwiki:
Nesting of includelets is to deep

EduWiki Portlet

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 08:17 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:eduwiki-portlet}}}' of page en:eduwiki-portlet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:eduwiki-portlet}}}' of page en:eduwiki-portlet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:eduwiki-portlet}}}' of page en:eduwiki-portlet:
Nesting of includelets is to deep

EduWiki Applet

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 08:15 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-eduwiki}}}' of page en:dotlrn-eduwiki:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-eduwiki}}}' of page en:dotlrn-eduwiki:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-eduwiki}}}' of page en:dotlrn-eduwiki:
Nesting of includelets is to deep

Lab Report Central

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 08:12 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:lab-report-central}}}' of page en:lab-report-central:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:lab-report-central}}}' of page en:lab-report-central:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:lab-report-central}}}' of page en:lab-report-central:
Nesting of includelets is to deep

Lab Report

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 08:11 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:lab-report}}}' of page en:lab-report:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:lab-report}}}' of page en:lab-report:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:lab-report}}}' of page en:lab-report:
Nesting of includelets is to deep


News Includelet

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 08:08 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:news-includelet}}}' of page en:news-includelet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:news-includelet}}}' of page en:news-includelet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:news-includelet}}}' of page en:news-includelet:
Nesting of includelets is to deep



Private-Message

Created by OpenACS community, last modified by Gustaf Neumann 16 Sep 2013, at 08:06 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:messages}}}' of page en:messages:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:messages}}}' of page en:messages:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:messages}}}' of page en:messages:
Nesting of includelets is to deep
nbsp;

not to be confused with PrivateMessaging

Package: Private Message

Description:  private-message was written in 2004 for the lastest OpenACS (version 5.1.5). It uses the CR and other OpenACS toolkit features.

related discussion

en:ecommerce-g2 project will need a private messaging service. From ec g2 page:

Check applicability of a private-message package as an interOpenACS messaging package for sending private messages to users (and between users?). This becomes significant for

1. cases where one needs to retain strict privacy and email addresses may be shared (not private). See http://openacs.org/forums/message-view?message%5fid=387304#387964 (skip first line)

2. keeping an online log of messages that need to be reported to admins (similar to the Problem Reports messaging that is used in the ecommerce package).

3. ecommerce Problem Reports could use that fancy, green alert bar to alert package admins to items that need immediate attention. (add this ability to notifications or some intra-site mail package instead? NO. that functionality only applies to existing sessions.

There are 2 user-to-user message package available, and also something called acs-messaging which seems to have the underlying functionality). Maybe the green bar could notify of new messages in the private messaging system...

Following is edited material about an intrasite-message package with similar goals:

Richard Hamilton wrote an intrasite-message package that allowed what looked like webmail but done so that the message never leaves the database. Needed to work with OpenACS 4.6.2. Because there is no list builder on that version, it uses Jon Griffin's paginator procs for the message folder display functionality which works very well but is not really part of the OpenACS and you would need to install his procs in order to use it.The OpenACS object model is not used. You absolutely do not want to be having to set permissions on messages or adding multiple entries (per message) to the permissions lookup view because as message numbers grow this would be a sure fire way to clog everything up big time. Code assumes recipients are allowed to see the messages and others cannot.

RH's module provides the basic folders (in-box, sent, deleted, draft) and allows users to add additional custom folders and move messages around between them just like in Outlook Express. Mesages are addressed by user_id by use of the user lookup code from the admin pages (with mods). The module takes care of the fact that a single message can exist in a different folder for each user, and allows for replies, copying the text and indenting with '>' just as Outlook Express does.

Intrasite-message has been used for a security conscious deployment where public email was not favored. Consequently, RH also hacked package calls to ns_sendmail such that messages were sent using intrasite-message instead of through the smtp server. Such a re-direction should be made an option in the parameters for applications that send notifications, that the messaging module can be selected instead of the system smtp server. However it needs to be implemented properly using callbacks instead of with ugly cross package hacks :-). Intrasite-message also grabs unread message numbers data for display on the user home page etc.

Intrasite-message is not implemented (and it makes no sense really to permit) messages being forwarded out of the private message module to public email because that breaches the very privacy that you are trying to achieve, but notifications of a message could be valuable. Also, an incoming message function might be an interesting adjuct in future for emails sent to [username]@[website].

a general purpose, properly supported, OpenACS module for private (intra-site) messages would need these improvements:

  • 1) Use list builder for message box display.
  • 2) Re-do the UI so that it is 100% style sheet rather than using ad_table tables withing template tables!
  • 3) implement callbacks for integration with any other package that needs to send or receive messages.

Ajax Helper

Created by Hamilton Chua, last modified by Gustaf Neumann 16 Sep 2013, at 08:05 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:ajaxhelper}}}' of page en:ajaxhelper:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:ajaxhelper}}}' of page en:ajaxhelper:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:ajaxhelper}}}' of page en:ajaxhelper:
Nesting of includelets is to deep

Ajax Helper is a package created to assist OpenACS developers incorporate Ajax into their web applications. It is composed of helper procs that wrap javascript functions that perform DHTML effects and Ajax. 

Ajax Helper incorporates javascript from Thomas Fuch's Scriptaculous Javascript Library (http://script.aculo.us) and Yahoo's User Interface Library or YUI ( http://developer.yahoo.com/yui/ ).

Tutorials on how to use Ajax Helper :

Introduction to Ajax Helper with Simple Effects
http://www.solutiongrove.com/blogger/one-entry?entry%5fid=266153

Using Ajax
http://www.solutiongrove.com/blogger/one-entry?entry%5fid=268010

Simple Drag and Drop
http://www.solutiongrove.com/blogger/one-entry?entry%5fid=266155

Current Release on CVS HEAD : AjaxHelper 0.87d
includes Scriptaculous v.1.7.3 Beta, YUI v. 2.3.0 and ExtJs 1.1.1

Messages Portlet

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 08:03 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:messages-portlet}}}' of page en:messages-portlet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:messages-portlet}}}' of page en:messages-portlet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:messages-portlet}}}' of page en:messages-portlet:
Nesting of includelets is to deep

Ratings

Created by Robert Taylor, last modified by Gustaf Neumann 16 Sep 2013, at 07:35 PM

Error in includelet '{{adp /www/templates/info-file {package_key ratings}}}' of page en:ratings:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/bug-tracker {package_key ratings}}}' of page en:ratings:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/metrics {package_key ratings}}}' of page en:ratings:
Nesting of includelets is to deep

Here is an example showing how to use ratings package with photo-album.

feature requests

auditing, because en:ecommerce-2 will be using ratings package instead of ecommerce package's custom solution.

 Current Work

Solution Grove is working on a project that will use ratings and will have an AJAX UI for both a 1-5 star rating and binary (mark as on of your favorites).  We'll committ when we are done but it you need it sooner send us an email.

Beehive

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 07:21 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:beehive}}}' of page en:beehive:
Nesting of includelets is to deep
br />For more details, see http://sydney.edu.au/engineering/latte/projects/beehive.shtml 

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:beehive}}}' of page en:beehive:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:beehive}}}' of page en:beehive:
Nesting of includelets is to deep


Curriculum Tracker

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 06:54 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:curriculum-tracker}}}' of page en:curriculum-tracker:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:curriculum-tracker}}}' of page en:curriculum-tracker:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:curriculum-tracker}}}' of page en:curriculum-tracker:
Nesting of includelets is to deep


Courses

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 06:03 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:courses}}}' of page en:courses:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:courses}}}' of page en:courses:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:courses}}}' of page en:courses:
Nesting of includelets is to deep

User Tracking

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 02:21 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:user-tracking}}}' of page en:user-tracking:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:user-tracking}}}' of page en:user-tracking:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:user-tracking}}}' of page en:user-tracking:
Nesting of includelets is to deep


A filter is needed (and included in the tool) in order to append user and communities ids in log files so it’s necessary to comment the "extendedheaders" line in config.tcl and add the above within the section "ns_section ns/server/${server}/module/nslog"

#ns_param extendedheaders COOKIE
ns_param extendedheaders X-User-Id

Check the original thread.

User Tracking Portlet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 02:21 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:user-tracking-portlet}}}' of page en:user-tracking-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:user-tracking-portlet}}}' of page en:user-tracking-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:user-tracking-portlet}}}' of page en:user-tracking-portlet:
Nesting of includelets is to deep

User Tracking Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 02:20 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-user-tracking}}}' of page en:dotlrn-user-tracking:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-user-tracking}}}' of page en:dotlrn-user-tracking:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-user-tracking}}}' of page en:dotlrn-user-tracking:
Nesting of includelets is to deep

Tasks Portlet

Created by Robert Taylor, last modified by Gustaf Neumann 16 Sep 2013, at 02:20 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:tasks-portlet}}}' of page en:tasks-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:tasks-portlet}}}' of page en:tasks-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:tasks-portlet}}}' of page en:tasks-portlet:
Nesting of includelets is to deep

Tasks Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 02:19 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-tasks}}}' of page en:dotlrn-tasks:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-tasks}}}' of page en:dotlrn-tasks:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-tasks}}}' of page en:dotlrn-tasks:
Nesting of includelets is to deep

Research Portlet

Created by Robert Taylor, last modified by Gustaf Neumann 16 Sep 2013, at 02:19 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:research-portlet}}}' of page en:research-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:research-portlet}}}' of page en:research-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:research-portlet}}}' of page en:research-portlet:
Nesting of includelets is to deep

Research Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 02:18 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-research}}}' of page en:dotlrn-research:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-research}}}' of page en:dotlrn-research:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-research}}}' of page en:dotlrn-research:
Nesting of includelets is to deep

Recruiting Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 02:18 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-recruiting}}}' of page en:dotlrn-recruiting:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-recruiting}}}' of page en:dotlrn-recruiting:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-recruiting}}}' of page en:dotlrn-recruiting:
Nesting of includelets is to deep

Random-photo Portlet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 02:17 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:random-photo-portlet}}}' of page en:random-photo-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:random-photo-portlet}}}' of page en:random-photo-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:random-photo-portlet}}}' of page en:random-photo-portlet:
Nesting of includelets is to deep

Random-photo Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 02:17 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-random-photo}}}' of page en:dotlrn-random-photo:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-random-photo}}}' of page en:dotlrn-random-photo:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-random-photo}}}' of page en:dotlrn-random-photo:
Nesting of includelets is to deep

Project-manager Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 02:15 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-project-manager}}}' of page en:dotlrn-project-manager:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-project-manager}}}' of page en:dotlrn-project-manager:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-project-manager}}}' of page en:dotlrn-project-manager:
Nesting of includelets is to deep

Project Manager Portlet

Created by Robert Taylor, last modified by Gustaf Neumann 16 Sep 2013, at 02:14 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:project-manager-portlet}}}' of page en:project-manager-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:project-manager-portlet}}}' of page en:project-manager-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:project-manager-portlet}}}' of page en:project-manager-portlet:
Nesting of includelets is to deep

LAMS Integration Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 02:13 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-lamsint}}}' of page en:dotlrn-lamsint:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-lamsint}}}' of page en:dotlrn-lamsint:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-lamsint}}}' of page en:dotlrn-lamsint:
Nesting of includelets is to deep

LAMS Integration Portlet

Created by Robert Taylor, last modified by Gustaf Neumann 16 Sep 2013, at 02:12 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:lamsint-portlet}}}' of page en:lamsint-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:lamsint-portlet}}}' of page en:lamsint-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:lamsint-portlet}}}' of page en:lamsint-portlet:
Nesting of includelets is to deep

Jabber Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 02:10 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-jabber}}}' of page en:dotlrn-jabber:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-jabber}}}' of page en:dotlrn-jabber:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-jabber}}}' of page en:dotlrn-jabber:
Nesting of includelets is to deep

Jabber Portlet

Created by Robert Taylor, last modified by Gustaf Neumann 16 Sep 2013, at 02:10 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:jabber-portlet}}}' of page en:jabber-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:jabber-portlet}}}' of page en:jabber-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:jabber-portlet}}}' of page en:jabber-portlet:
Nesting of includelets is to deep

Irc Applet

Created by Robert Taylor, last modified by Gustaf Neumann 16 Sep 2013, at 02:09 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:irc-applet}}}' of page en:irc-applet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:irc-applet}}}' of page en:irc-applet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:irc-applet}}}' of page en:irc-applet:
Nesting of includelets is to deep

Invoices Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 02:08 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-invoices}}}' of page en:dotlrn-invoices:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-invoices}}}' of page en:dotlrn-invoices:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-invoices}}}' of page en:dotlrn-invoices:
Nesting of includelets is to deep

Invoices Portlet

Created by Robert Taylor, last modified by Gustaf Neumann 16 Sep 2013, at 02:08 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:invoices-portlet}}}' of page en:invoices-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:invoices-portlet}}}' of page en:invoices-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:invoices-portlet}}}' of page en:invoices-portlet:
Nesting of includelets is to deep

IMS-LD Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 02:06 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-imsld}}}' of page en:dotlrn-imsld:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-imsld}}}' of page en:dotlrn-imsld:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-imsld}}}' of page en:dotlrn-imsld:
Nesting of includelets is to deep

Glossar Portlet

Created by Robert Taylor, last modified by Gustaf Neumann 16 Sep 2013, at 02:06 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:glossar-portlet}}}' of page en:glossar-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:glossar-portlet}}}' of page en:glossar-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:glossar-portlet}}}' of page en:glossar-portlet:
Nesting of includelets is to deep

Glossar Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 02:05 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-glossar}}}' of page en:dotlrn-glossar:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-glossar}}}' of page en:dotlrn-glossar:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-glossar}}}' of page en:dotlrn-glossar:
Nesting of includelets is to deep

FAQ Portlet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 02:04 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:faq-portlet}}}' of page en:faq-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:faq-portlet}}}' of page en:faq-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:faq-portlet}}}' of page en:faq-portlet:
Nesting of includelets is to deep

FAQ Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 02:04 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-faq}}}' of page en:dotlrn-faq:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-faq}}}' of page en:dotlrn-faq:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-faq}}}' of page en:dotlrn-faq:
Nesting of includelets is to deep

Expense-tracking Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 02:02 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-expense-tracking}}}' of page en:dotlrn-expense-tracking:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-expense-tracking}}}' of page en:dotlrn-expense-tracking:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-expense-tracking}}}' of page en:dotlrn-expense-tracking:
Nesting of includelets is to deep

Edit-this-page Portlet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 02:01 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:edit-this-page-portlet}}}' of page en:edit-this-page-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:edit-this-page-portlet}}}' of page en:edit-this-page-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:edit-this-page-portlet}}}' of page en:edit-this-page-portlet:
Nesting of includelets is to deep

Edit-this-page Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 02:01 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-edit-this-page}}}' of page en:dotlrn-edit-this-page:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-edit-this-page}}}' of page en:dotlrn-edit-this-page:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-edit-this-page}}}' of page en:dotlrn-edit-this-page:
Nesting of includelets is to deep

Wimpypoint Slim Portlet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 02:00 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:wps-portlet}}}' of page en:wps-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:wps-portlet}}}' of page en:wps-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:wps-portlet}}}' of page en:wps-portlet:
Nesting of includelets is to deep

Wimpypoint Slim Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 02:00 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-wps}}}' of page en:dotlrn-wps:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-wps}}}' of page en:dotlrn-wps:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-wps}}}' of page en:dotlrn-wps:
Nesting of includelets is to deep

Syllabus Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:59 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-syllabus}}}' of page en:dotlrn-syllabus:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-syllabus}}}' of page en:dotlrn-syllabus:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-syllabus}}}' of page en:dotlrn-syllabus:
Nesting of includelets is to deep

Survey Portlet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:58 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:survey-portlet}}}' of page en:survey-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:survey-portlet}}}' of page en:survey-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:survey-portlet}}}' of page en:survey-portlet:
Nesting of includelets is to deep

Survey Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:58 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-survey}}}' of page en:dotlrn-survey:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-survey}}}' of page en:dotlrn-survey:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-survey}}}' of page en:dotlrn-survey:
Nesting of includelets is to deep

Static Portlet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:57 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:static-portlet}}}' of page en:static-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:static-portlet}}}' of page en:static-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:static-portlet}}}' of page en:static-portlet:
Nesting of includelets is to deep

Notes : If you change the content it does  not version and  keep an old copy.  For a client who is using them heavily I recommended they make a new one for each week rather then editing the old one. Then they could remove the old one from the portal and put up the new one.

CAUTION: When you create a new custom portlet it is automatically put on the first page left column of your home portal page. You need to go into customize portal pages and remove it till you are ready for it.

-Caroline@solutiongrove.com

Static Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:57 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-static}}}' of page en:dotlrn-static:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-static}}}' of page en:dotlrn-static:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-static}}}' of page en:dotlrn-static:
Nesting of includelets is to deep

Photo Album Portlet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:56 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:photo-album-portlet}}}' of page en:photo-album-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:photo-album-portlet}}}' of page en:photo-album-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:photo-album-portlet}}}' of page en:photo-album-portlet:
Nesting of includelets is to deep

Photo Album Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:56 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-photo-album}}}' of page en:dotlrn-photo-album:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-photo-album}}}' of page en:dotlrn-photo-album:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-photo-album}}}' of page en:dotlrn-photo-album:
Nesting of includelets is to deep

News Portlet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:55 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:news-portlet}}}' of page en:news-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:news-portlet}}}' of page en:news-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:news-portlet}}}' of page en:news-portlet:
Nesting of includelets is to deep

News Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:55 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-news}}}' of page en:dotlrn-news:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-news}}}' of page en:dotlrn-news:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-news}}}' of page en:dotlrn-news:
Nesting of includelets is to deep

News Aggregator Portlet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:54 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:news-aggregator-portlet}}}' of page en:news-aggregator-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:news-aggregator-portlet}}}' of page en:news-aggregator-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:news-aggregator-portlet}}}' of page en:news-aggregator-portlet:
Nesting of includelets is to deep

News Aggregator Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:54 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-news-aggregator}}}' of page en:dotlrn-news-aggregator:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-news-aggregator}}}' of page en:dotlrn-news-aggregator:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-news-aggregator}}}' of page en:dotlrn-news-aggregator:
Nesting of includelets is to deep

LORS management Portlet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:53 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:lorsm-portlet}}}' of page en:lorsm-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:lorsm-portlet}}}' of page en:lorsm-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:lorsm-portlet}}}' of page en:lorsm-portlet:
Nesting of includelets is to deep

LORS management Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:53 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-lorsm}}}' of page en:dotlrn-lorsm:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-lorsm}}}' of page en:dotlrn-lorsm:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-lorsm}}}' of page en:dotlrn-lorsm:
Nesting of includelets is to deep

Homework Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:51 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-homework}}}' of page en:dotlrn-homework:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-homework}}}' of page en:dotlrn-homework:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-homework}}}' of page en:dotlrn-homework:
Nesting of includelets is to deep

Forums Portlet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:50 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:forums-portlet}}}' of page en:forums-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:forums-portlet}}}' of page en:forums-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:forums-portlet}}}' of page en:forums-portlet:
Nesting of includelets is to deep

Forums Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:50 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-forums}}}' of page en:dotlrn-forums:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-forums}}}' of page en:dotlrn-forums:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-forums}}}' of page en:dotlrn-forums:
Nesting of includelets is to deep

File Storage Portlet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:49 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:fs-portlet}}}' of page en:fs-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:fs-portlet}}}' of page en:fs-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:fs-portlet}}}' of page en:fs-portlet:
Nesting of includelets is to deep

File Storage Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:49 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-fs}}}' of page en:dotlrn-fs:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-fs}}}' of page en:dotlrn-fs:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-fs}}}' of page en:dotlrn-fs:
Nesting of includelets is to deep

Evaluation applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:47 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-evaluation}}}' of page en:dotlrn-evaluation:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-evaluation}}}' of page en:dotlrn-evaluation:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-evaluation}}}' of page en:dotlrn-evaluation:
Nesting of includelets is to deep

Bulk mail Portlet

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 01:46 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:bm-portlet}}}' of page en:bm-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:bm-portlet}}}' of page en:bm-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:bm-portlet}}}' of page en:bm-portlet:
Nesting of includelets is to deep

Bulk mail Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:46 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-bm}}}' of page en:dotlrn-bm:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-bm}}}' of page en:dotlrn-bm:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-bm}}}' of page en:dotlrn-bm:
Nesting of includelets is to deep

Acknowledgement

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 01:44 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:acknowledgement}}}' of page en:acknowledgement:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:acknowledgement}}}' of page en:acknowledgement:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:acknowledgement}}}' of page en:acknowledgement:
Nesting of includelets is to deep

Attendance Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:39 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-attendance}}}' of page en:dotlrn-attendance:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-attendance}}}' of page en:dotlrn-attendance:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-attendance}}}' of page en:dotlrn-attendance:
Nesting of includelets is to deep

Assessment Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:38 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-assessment}}}' of page en:dotlrn-assessment:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-assessment}}}' of page en:dotlrn-assessment:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-assessment}}}' of page en:dotlrn-assessment:
Nesting of includelets is to deep

Curriculum Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:38 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-curriculum}}}' of page en:dotlrn-curriculum:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-curriculum}}}' of page en:dotlrn-curriculum:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-curriculum}}}' of page en:dotlrn-curriculum:
Nesting of includelets is to deep

Curriculum Portlet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:37 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:curriculum-portlet}}}' of page en:curriculum-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:curriculum-portlet}}}' of page en:curriculum-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:curriculum-portlet}}}' of page en:curriculum-portlet:
Nesting of includelets is to deep

Contacts Portlet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:37 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:contacts-portlet}}}' of page en:contacts-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:contacts-portlet}}}' of page en:contacts-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:contacts-portlet}}}' of page en:contacts-portlet:
Nesting of includelets is to deep

Contacts Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:36 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-contacts}}}' of page en:dotlrn-contacts:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-contacts}}}' of page en:dotlrn-contacts:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-contacts}}}' of page en:dotlrn-contacts:
Nesting of includelets is to deep

Chat Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:35 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-chat}}}' of page en:dotlrn-chat:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-chat}}}' of page en:dotlrn-chat:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-chat}}}' of page en:dotlrn-chat:
Nesting of includelets is to deep

Calendar Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:33 PM

Error in includelet '{{adp /www/templates/info-file {package_key dotlrn-calendar}}}' of page en:dotlrn-calendar:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/bug-tracker {package_key dotlrn-calendar}}}' of page en:dotlrn-calendar:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/metrics {package_key dotlrn-calendar}}}' of page en:dotlrn-calendar:
Nesting of includelets is to deep

Application track Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:32 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-application-track}}}' of page en:dotlrn-application-track:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-application-track}}}' of page en:dotlrn-application-track:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-application-track}}}' of page en:dotlrn-application-track:
Nesting of includelets is to deep

Beehive Applet

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 01:32 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-beehive}}}' of page en:dotlrn-beehive:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-beehive}}}' of page en:dotlrn-beehive:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-beehive}}}' of page en:dotlrn-beehive:
Nesting of includelets is to deep

Cards applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:30 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-cards}}}' of page en:dotlrn-cards:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-cards}}}' of page en:dotlrn-cards:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-cards}}}' of page en:dotlrn-cards:
Nesting of includelets is to deep

Anon Eval Portlet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:29 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:ae-portlet}}}' of page en:ae-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:ae-portlet}}}' of page en:ae-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:ae-portlet}}}' of page en:ae-portlet:
Nesting of includelets is to deep

Anon Eval Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:29 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-ae}}}' of page en:dotlrn-ae:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-ae}}}' of page en:dotlrn-ae:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-ae}}}' of page en:dotlrn-ae:
Nesting of includelets is to deep

Cards portlet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:27 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:cards-portlet}}}' of page en:cards-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:cards-portlet}}}' of page en:cards-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:cards-portlet}}}' of page en:cards-portlet:
Nesting of includelets is to deep

Bboard Portlet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:26 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:bboard-portlet}}}' of page en:bboard-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:bboard-portlet}}}' of page en:bboard-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:bboard-portlet}}}' of page en:bboard-portlet:
Nesting of includelets is to deep

Application track portlet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:23 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:application-track-portlet}}}' of page en:application-track-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:application-track-portlet}}}' of page en:application-track-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:application-track-portlet}}}' of page en:application-track-portlet:
Nesting of includelets is to deep

dotLRN BBoard Applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 16 Sep 2013, at 01:15 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotlrn-bboard}}}' of page en:dotlrn-bboard:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotlrn-bboard}}}' of page en:dotlrn-bboard:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:dotlrn-bboard}}}' of page en:dotlrn-bboard:
Nesting of includelets is to deep

IMS LD Portlet

Created by Robert Taylor, last modified by Gustaf Neumann 16 Sep 2013, at 01:12 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:imsld-portlet}}}' of page en:imsld-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:imsld-portlet}}}' of page en:imsld-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:imsld-portlet}}}' of page en:imsld-portlet:
Nesting of includelets is to deep

Theming Project

Created by Robert Taylor, last modified by Gustaf Neumann 16 Sep 2013, at 10:48 AM

OACS Theming Project 

XoWiki is getting to the point where we are going to be ready to use that live as our homepage.

However before we consider making XoWiki our website cms, we need to consider the idea of theming first.

Some ideas on how theming would work:

The basic idea is the use of translation keys.  so you have something like this #­theme.add_icon# and then your theme package has the translation of that to  <img src="/resources/mytheme/add.gif">

Some thoughts

This is a two step process:

1.  Create a theme example to prove the idea.

2.  Set a time line to fix all packages to incorporate the fix.

Keys to success:

1. Inclusion into the toolkit as an idea everyone agrees on

2. Writeup Docs on how to create themes

3. Create a repo of themes one could download.

4.  Maybe make a package that creates a dummy theme package you can then use to setup a new theme.

Proposed requirements for dev time:

approx 8 hours, half writing the code and desinging a theme, half writing documentation

 Resources

ACS Content

Created by Gustaf Neumann, last modified by Gustaf Neumann 16 Sep 2013, at 09:22 AM

Error in includelet '{{adp /www/templates/info-file {package_key en:acs-content}}}' of page en:acs-content:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:acs-content}}}' of page en:acs-content:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:acs-content}}}' of page en:acs-content:
Nesting of includelets is to deep

Spam System

Created by Robert Taylor, last modified by Gustaf Neumann 16 Sep 2013, at 09:22 AM

Error in includelet '{{adp /www/templates/info-file {package_key en:spam}}}' of page en:spam:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:spam}}}' of page en:spam:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:spam}}}' of page en:spam:
Nesting of includelets is to deep

category test

Created by Gustaf Neumann, last modified by Gustaf Neumann 14 Sep 2013, at 11:37 AM

Error in includelet '{{categories -name {Category Tree} -open_page en:xowiki }}' of page en:category_test:
Nesting of includelets is to deep


Application track

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 13 Sep 2013, at 12:25 AM


Error in includelet '{{adp /www/templates/info-file {package_key en:application-track}}}' of page en:application-track:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:application-track}}}' of page en:application-track:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:application-track}}}' of page en:application-track:
Nesting of includelets is to deep


Tsearch2 Driver

Created by Gustaf Neumann, last modified by Gustaf Neumann 12 Sep 2013, at 11:52 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:tsearch2-driver}}}' of page en:tsearch2-driver:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:tsearch2-driver}}}' of page en:tsearch2-driver:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:tsearch2-driver}}}' of page en:tsearch2-driver:
Nesting of includelets is to deep


OpenFTS Driver

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 11:51 PM

Error in includelet '{{adp /www/templates/info-file {package_key openfts-driver}}}' of page en:openfts-driver:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key openfts-driver}}}' of page en:openfts-driver:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key openfts-driver}}}' of page en:openfts-driver:
Nesting of includelets is to deep

 See: tsearch2-driver

ACS Default Theme

Created by Gustaf Neumann, last modified by Gustaf Neumann 12 Sep 2013, at 11:48 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:openacs-default-theme}}}' of page en:openacs-default-theme:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:openacs-default-theme}}}' of page en:openacs-default-theme:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:openacs-default-theme}}}' of page en:openacs-default-theme:
Nesting of includelets is to deep


Intermedia Driver

Created by Gustaf Neumann, last modified by Gustaf Neumann 12 Sep 2013, at 11:47 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:intermedia-driver}}}' of page en:intermedia-driver:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:intermedia-driver}}}' of page en:intermedia-driver:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:intermedia-driver}}}' of page en:intermedia-driver:
Nesting of includelets is to deep


ACS Tcl

Created by Gustaf Neumann, last modified by Gustaf Neumann 12 Sep 2013, at 11:45 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:acs-tcl}}}' of page en:acs-tcl:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:acs-tcl}}}' of page en:acs-tcl:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:acs-tcl}}}' of page en:acs-tcl:
Nesting of includelets is to deep


dotFOLIO

Created by Nick Carroll, last modified by Gustaf Neumann 12 Sep 2013, at 01:28 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotfolio}}}' of page en:dotfolio:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotfolio}}}' of page en:dotfolio:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:dotfolio}}}' of page en:dotfolio:
Nesting of includelets is to deep



dotFOLIO UI

Created by Nick Carroll, last modified by Gustaf Neumann 12 Sep 2013, at 01:28 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:dotfolio-ui}}}' of page en:dotfolio-ui:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:dotfolio-ui}}}' of page en:dotfolio-ui:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:dotfolio-ui}}}' of page en:dotfolio-ui:
Nesting of includelets is to deep


Wiki

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 01:24 PM

Error in includelet '{{adp /www/templates/info-file {package_key wiki}}}' of page en:wiki:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key wiki}}}' of page en:wiki:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key wiki}}}' of page en:wiki:
Nesting of includelets is to deep

 The use of xowiki is recommended.

Webmail

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 01:22 PM

Error in includelet '{{adp /www/templates/info-file {package_key webmail}}}' of page en:webmail:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key webmail}}}' of page en:webmail:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key webmail}}}' of page en:webmail:
Nesting of includelets is to deep

Vocabulary

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 01:21 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:vocabulary}}}' of page en:vocabulary:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:vocabulary}}}' of page en:vocabulary:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:vocabulary}}}' of page en:vocabulary:
Nesting of includelets is to deep


Users Selection

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 01:20 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:users-selection}}}' of page en:users-selection:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:users-selection}}}' of page en:users-selection:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:users-selection}}}' of page en:users-selection:
Nesting of includelets is to deep


User Parameter Package - RFC

Created by Ryan Gallimore, last modified by Gustaf Neumann 12 Sep 2013, at 01:18 PM

There seems to be a need in OpenACS for user-defined parameters. These might include customizing a menu, personalizing a site style template, or even removing or adding includes and panels.

 Here's an initial brainstorm of possible field types:

  • Personalized text - user defined text or titles, such as the title of a personal subsite homepage
  • Turn on/off toolbar buttons
  • Color picker
  • CSS stylesheet
  • Turn on/off includes (e.g. Solution Grove homepage)
  • Change site theme (e.g selva) - is this possible?

The best part of this is that it is dead easy to add new parameters via the APM.

Please post your comments here.

Ryan Gallimore - Viscous Media

CM: What would the user facing UI for this look  like? Parmeters are such a horrid UI.

I was talking to a person from the MIT media lab who works on a site for kids there. Thier site allows the kids to use the CSS personalization for My Space. This means that there are all sorts of cool themes for the kids without the site owners having to program them.  T. The problem they have is that some of the themes have very very My Space specific things, like hide the 3rd table in the 4th div, which is of course quite diffent on thier site then My Space's.  Nevertheless, this is an idea we might want to use, making out stuff compatiable either My Space or another system with a wide variety of themes so we get a lot of looks for "free"

Daveb: what do you mean by user-editable parameters? Do you mean "preferences"? Is this for administrators or regular users.  

Ryan: by user-editable pages I mean regular users, and yes you could call them preferences, but users would  be editing parameters directly in oacs. As far as UI goes, I think the current UI for parameters would work well - perhaps with more field validation.

Maltes: There exists a user_preferences table and this is where your custom applications should store it's values. Then just write a page with form callback hooks (look at callback::contact::special_attributes::ad_form_values::contract and callback::contact::special_attributes::ad_form_save::contract respectively in /contacts/www/contact-add.tcl) which will allow the packages to extend the form with the variables they allow the user to edit. This way you only need one page e.g. in acs-subsite /pvt/edit_preferences where the user can change all his / her user_preferences, including the ones already stored in this table. Each package would then (for each parameter it wants to have a user setting for):

  • Extend user_preferences by adding the column
  • Write a form extension callback implementation
  • Write a form save callback implementation
  • Add the code that deals with the parameter's return somewhere
Obviously it would make sense for the last step to have a cached procedure "user::get_preference -name -user_id". And we should probably enforce a naming convention like "${package_key}_$pref_name" so we are not accidently running into name conflicts on the table.

Tasks

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 01:16 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:tasks}}}' of page en:tasks:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:tasks}}}' of page en:tasks:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:tasks}}}' of page en:tasks:
Nesting of includelets is to deep


T Account

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 01:16 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:t-account}}}' of page en:t-account:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:t-account}}}' of page en:t-account:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:t-account}}}' of page en:t-account:
Nesting of includelets is to deep


Survey Reports

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 01:14 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:survey-reports}}}' of page en:survey-reports:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:survey-reports}}}' of page en:survey-reports:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:survey-reports}}}' of page en:survey-reports:
Nesting of includelets is to deep


Sloan Bboard

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 01:12 PM

Error in includelet '{{adp /www/templates/info-file {package_key sloan-bboard}}}' of page en:sloan-bboard:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key sloan-bboard}}}' of page en:sloan-bboard:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key sloan-bboard}}}' of page en:sloan-bboard:
Nesting of includelets is to deep

Selva theme

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 12 Sep 2013, at 01:10 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:theme-selva}}}' of page en:theme-selva:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:theme-selva}}}' of page en:theme-selva:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:theme-selva}}}' of page en:theme-selva:
Nesting of includelets is to deep

Related Links:

Selva Theme

Search

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 01:09 PM

Error in includelet '{{adp /www/templates/info-file {package_key search}}}' of page en:search:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key search}}}' of page en:search:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key search}}}' of page en:search:
Nesting of includelets is to deep

The limitation to Postgresql may be obsolete, thanks to the intermedia-driver.  See David Bauer's post 12.  The intermedia-driver itself states that it requires Oracle 8.1.7, may work with 9, will NOT work with Oracle 10.

Summary

The aim of the project is to create a user-friendly, extensible, and scalable search package. The project team consists of Dirk Gomez (co-lead), Deirdre Kane (co-lead), and Dave Bauer. MIT Sloan is the lead .LRN institution for this project.

There currently is no working search solution for .LRN. The document below describes how to implement a search package for .LRN for Oracle 8i, which is the database system in use in MIT Sloan School. The described approach should be portable to PostgreSQL.

Packages/portlets used by Sloan

A User may have these portlets:

  • News
  • Useful Links (custom portlet)
  • Links
  • Day Summary
  • Full Calendar
  • Documents
  • Surveys
  • Forums
  • Frequently Asked Questions

A class may have these portlets.

  • Class Info
  • News
  • Frequently Asked Questions
  • Forums
  • Syllabus
  • Staff List
  • Schedule
  • Subgroups
  • Survey
  • Full Calendar
  • Documents
  • Calendar
  • Homework
  • Assignments
  • Lectures Notes and Slides
  • Handouts and Study Materials
  • Trading Game

A communitiy may have these portlets:

  • News
  • Frequently Asked Questions
  • Survey
  • Forums
  • Subgroups
  • Documents
  • Members
  • Full Calendar
  • Community Info
  • Calendar
  • Schedule
  • Syllabus
  • Trading Game

Portlets/packages not indexed

  • Trading Game
  • bookmarks
  • curriculum
  • news-aggregator
  • blogger

Work on packages

To be reviewed

  • faq
  • survey
  • static

First draft programmed

  • calendar
  • curriculum
  • dotlrn

Pending

  • File-storage
  • news

Per-Package docs and comments

FAQ

Index questions and answers and index FAQs separately.

Forums

Index messages and forum title charter separately.

Content-Repository

See this Forum thread

Open Questions and Tasks

Should we use triggers for indexing content? Contrast portability, stability, plugin-ability.

Read up on doc_highlight

Maybe store the community_id in the intermedia content?


 

Scholarship Fund

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 01:07 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:scholarship-fund}}}' of page en:scholarship-fund:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:scholarship-fund}}}' of page en:scholarship-fund:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:scholarship-fund}}}' of page en:scholarship-fund:
Nesting of includelets is to deep


Room Reservation

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 01:05 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:room-reservation}}}' of page en:room-reservation:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:room-reservation}}}' of page en:room-reservation:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:room-reservation}}}' of page en:room-reservation:
Nesting of includelets is to deep


Resource List

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 01:04 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:resource-list}}}' of page en:resource-list:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:resource-list}}}' of page en:resource-list:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:resource-list}}}' of page en:resource-list:
Nesting of includelets is to deep


Research Papers

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 01:03 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:research-papers}}}' of page en:research-papers:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:research-papers}}}' of page en:research-papers:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:research-papers}}}' of page en:research-papers:
Nesting of includelets is to deep


cop-ui

Created by Gustaf Neumann, last modified by Gustaf Neumann 12 Sep 2013, at 12:59 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:cop-ui}}}' of page en:cop-ui:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:cop-ui}}}' of page en:cop-ui:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:cop-ui}}}' of page en:cop-ui:
Nesting of includelets is to deep


cop-base

Created by Gustaf Neumann, last modified by Gustaf Neumann 12 Sep 2013, at 12:58 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:cop-base}}}' of page en:cop-base:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:cop-base}}}' of page en:cop-base:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:cop-base}}}' of page en:cop-base:
Nesting of includelets is to deep


Package Builder

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 12:37 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:package-builder}}}' of page en:package-builder:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:package-builder}}}' of page en:package-builder:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:package-builder}}}' of page en:package-builder:
Nesting of includelets is to deep


Poll

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 12:35 PM

Error in includelet '{{adp /www/templates/info-file {package_key poll}}}' of page en:poll:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key poll}}}' of page en:poll:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key poll}}}' of page en:poll:
Nesting of includelets is to deep

Review of the utility poll and his posterior integration with the platform dotLRN.

This package allows in a course or community, to realize simple public-opinion polls to the group. http://pizarra.uv.es/ficheros/index?folder%5fid=11752071 

With it we will be able to explore the opinion of the group with regard to a topic in concretly. 


PAM Authentication Driver

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 12 Sep 2013, at 12:32 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:auth-pam}}}' of page en:auth-pam:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:auth-pam}}}' of page en:auth-pam:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:auth-pam}}}' of page en:auth-pam:
Nesting of includelets is to deep


Online Catalog

Created by OpenACS community, last modified by Gustaf Neumann 12 Sep 2013, at 12:30 PM

Status

pre-release 

Introduction

Part of the ecommerce-g2 project

Feature requests

add requests here 


One Assessment's Administration Page

Created by Caroline Meeks, last modified by Gustaf Neumann 12 Sep 2013, at 12:30 PM

url stub: /assessment/asm-admin/one-a?assessment_id=12309

 A test example: http://mgh.zill.net/assessment/asm-admin/one-a?assessment_id=12309

Here is a new idea: Lets use a tabbed interface with the following tabs.

 Assessment Name Admin | Results | Section 1 Name |  Section 2 Name

Thus we can cut down on the really long pages and make it easy for people to move between sections.

Assessment Name Admin 

On the one assessment admin page add in the export and permissions we took out from the top level admin page. Display the current values of all the many configuration settings an assessment can use. Since we now have sections and questions on another page we can use the space here to show these details and let people change them one by one. I belive this will be less intimidating then the current form which seems to ask you for 20 uncomprehensible decisions right up front.  Eventaully we can add links to help text that would explain why you might want to use these different options.

Results

We aren't going to deal with the details of the results page right now, but in day to day operation the results are the most important most used part of the admin interface. It should be easier to get to and we should devote a full page to a UI for browsing and getting to the results you want.

Sections



 New Look would be something like

1. Section 1 (SEC_12312) Edit | Preview |  Triggers | Add New Section

  • Lets either use icons or words in class=button. Mixing them is not working. I think words are easier for now.
  • Search for a new section is a particular form of adding a new section. It should be an option AFTER you click Add New Section
  • Edit Display types actually edits the package wide display type. This should be done from the top level page.
  • Everything you might want to do with triggers can be dealt with after you click triggers.
  • Moving a section should be done from the Edit page. We can present a UI that lets people say exactly what section they want this section to follow. Should be easier then incrementally using arrows.
  • Delete should be an "Extreme Action" on the edit page.

Items (Questions)

items.png

New Look

2. Last Name  ( QUE_4551)  2 triggers Preview

Edit | Move Up | Move Down | Delete | Copy | New Question 

  • Hide the details of the question until someone clicks Preview then use CSS to display the entire question inline.
  • Searching for questions is a specific way of adding a new question so it shoudl be an option on the new question page. \
  • Trigger adminstration should be an option on the Edit page. I think we need to keep a visual reminder here when triggers are defined for a question as that is a pretty important and unusual event.
We can repeat Add a New Question and then below that Add a New Section at the bottom of the page for convienence. Remove all references to searching as per above.






OCT Election

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 12:29 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:oct-election}}}' of page en:oct-election:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:oct-election}}}' of page en:oct-election:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:oct-election}}}' of page en:oct-election:
Nesting of includelets is to deep


Notes

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 12:29 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:notes}}}' of page en:notes:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:notes}}}' of page en:notes:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:notes}}}' of page en:notes:
Nesting of includelets is to deep


Mail Tracking

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 12:26 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:mail-tracking}}}' of page en:mail-tracking:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:mail-tracking}}}' of page en:mail-tracking:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:mail-tracking}}}' of page en:mail-tracking:
Nesting of includelets is to deep


Solution Grove's end user documentation: http://www.solutiongrove.com/docwiki/mail_tracking 

MMplayer

Created by Agustín Lopez Bueno, last modified by Gustaf Neumann 12 Sep 2013, at 12:25 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:mmplayer}}}' of page en:mmplayer:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:mmplayer}}}' of page en:mmplayer:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:mmplayer}}}' of page en:mmplayer:
Nesting of includelets is to deep


Player of files multimedia of high compatibility.

Integration of a player in the platform dotLRN that allows the visualization of files multimedia inside a course or community.

The administrator  of the courseor community can form in what moment and when time will be available for the rest of users of the course or community.

 The more emphasized from the module is  his high compatibility with the different files multimedia.



MMplayer Portlet

Created by Gustaf Neumann, last modified by Gustaf Neumann 12 Sep 2013, at 12:24 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:mmplayer-portlet}}}' of page en:mmplayer-portlet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:mmplayer-portlet}}}' of page en:mmplayer-portlet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:mmplayer-portlet}}}' of page en:mmplayer-portlet:
Nesting of includelets is to deep


LORS management

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 12 Sep 2013, at 12:20 PM

Error in includelet '{{adp /www/templates/info-file {package_key lorsm}}}' of page en:lorsm:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/bug-tracker {package_key lorsm}}}' of page en:lorsm:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/metrics {package_key lorsm}}}' of page en:lorsm:
Nesting of includelets is to deep

LORS - Learning Objects Repository Service

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 12 Sep 2013, at 12:19 PM

Error in includelet '{{adp /www/templates/info-file {package_key lors}}}' of page en:lors:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/bug-tracker {package_key lors}}}' of page en:lors:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/metrics {package_key lors}}}' of page en:lors:
Nesting of includelets is to deep

LORS central

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 12 Sep 2013, at 12:18 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:lors-central}}}' of page en:lors-central:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:lors-central}}}' of page en:lors-central:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:lors-central}}}' of page en:lors-central:
Nesting of includelets is to deep


LDAP Authentication Driver

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 12 Sep 2013, at 12:17 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:auth-ldap}}}' of page en:auth-ldap:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:auth-ldap}}}' of page en:auth-ldap:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:auth-ldap}}}' of page en:auth-ldap:
Nesting of includelets is to deep


LAMS Integration

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 12:17 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:lamsint}}}' of page en:lamsint:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:lamsint}}}' of page en:lamsint:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:lamsint}}}' of page en:lamsint:
Nesting of includelets is to deep


LAMS Integration Configuration

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 12:15 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:lamsconf}}}' of page en:lamsconf:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:lamsconf}}}' of page en:lamsconf:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:lamsconf}}}' of page en:lamsconf:
Nesting of includelets is to deep


Jabber

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 12:13 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:jabber}}}' of page en:jabber:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:jabber}}}' of page en:jabber:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:jabber}}}' of page en:jabber:
Nesting of includelets is to deep


Beehive Portlet

Created by Gustaf Neumann, last modified by Gustaf Neumann 12 Sep 2013, at 12:12 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:beehive-portlet}}}' of page en:beehive-portlet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:beehive-portlet}}}' of page en:beehive-portlet:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:beehive-portlet}}}' of page en:beehive-portlet:
Nesting of includelets is to deep


Imsld

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 12:06 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:imsld}}}' of page en:imsld:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:imsld}}}' of page en:imsld:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:imsld}}}' of page en:imsld:
Nesting of includelets is to deep


Image Magick

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 12:05 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:image-magick}}}' of page en:image-magick:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:image-magick}}}' of page en:image-magick:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:image-magick}}}' of page en:image-magick:
Nesting of includelets is to deep


IRC Logger

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 12:05 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:irc-logger}}}' of page en:irc-logger:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:irc-logger}}}' of page en:irc-logger:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:irc-logger}}}' of page en:irc-logger:
Nesting of includelets is to deep


IMS Enterprise

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 12:05 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:ims-ent}}}' of page en:ims-ent:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:ims-ent}}}' of page en:ims-ent:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:ims-ent}}}' of page en:ims-ent:
Nesting of includelets is to deep


Glossar

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 12:04 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:glossar}}}' of page en:glossar:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:glossar}}}' of page en:glossar:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:glossar}}}' of page en:glossar:
Nesting of includelets is to deep


Expense Tracking

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 12:00 PM

Error in includelet '{{adp /www/templates/info-file {package_key en:expense-tracking}}}' of page en:expense-tracking:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:expense-tracking}}}' of page en:expense-tracking:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:expense-tracking}}}' of page en:expense-tracking:
Nesting of includelets is to deep


Expense

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 11:59 AM

Error in includelet '{{adp /www/templates/info-file {package_key en:expenses}}}' of page en:expenses:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:expenses}}}' of page en:expenses:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:expenses}}}' of page en:expenses:
Nesting of includelets is to deep

Email Handler

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 11:58 AM

Error in includelet '{{adp /www/templates/info-file {package_key en:email-handler}}}' of page en:email-handler:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:email-handler}}}' of page en:email-handler:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:email-handler}}}' of page en:email-handler:
Nesting of includelets is to deep

Ecommerce Serial Number Tracking

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 11:57 AM

Error in includelet '{{adp /www/templates/info-file {package_key en:ec-serial-numbers}}}' of page en:ec-serial-numbers:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:ec-serial-numbers}}}' of page en:ec-serial-numbers:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:ec-serial-numbers}}}' of page en:ec-serial-numbers:
Nesting of includelets is to deep

Directory

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 12 Sep 2013, at 11:55 AM

Error in includelet '{{adp /www/templates/info-file {package_key en:directory}}}' of page en:directory:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:directory}}}' of page en:directory:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:directory}}}' of page en:directory:
Nesting of includelets is to deep

Diagram

Created by Nima Mazloumi, last modified by Gustaf Neumann 12 Sep 2013, at 11:54 AM

This package provides an extension to the templating system. Like the list builder a new diagram builder is made available that renders pie, chart and cockpit diagrams.

Error in includelet '{{adp /www/templates/info-file {package_key en:diagram}}}' of page en:diagram:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:diagram}}}' of page en:diagram:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:diagram}}}' of page en:diagram:
Nesting of includelets is to deep

 Thread annoucing the package with some details http://openacs.org/forums/message-view?message_id=360964

Customer Service

Created by OpenACS community, last modified by Gustaf Neumann 12 Sep 2013, at 11:53 AM

Status

pre-release  

Introduction

Part of the ecommerce-g2 project

Feature requests

add requests here

Cronjob

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 12 Sep 2013, at 11:52 AM

Error in includelet '{{adp /www/templates/info-file {package_key en:cronjob}}}' of page en:cronjob:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:cronjob}}}' of page en:cronjob:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:cronjob}}}' of page en:cronjob:
Nesting of includelets is to deep

Clipboard

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 12 Sep 2013, at 11:51 AM

Error in includelet '{{adp /www/templates/info-file {package_key en:clipboard}}}' of page en:clipboard:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:clipboard}}}' of page en:clipboard:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:clipboard}}}' of page en:clipboard:
Nesting of includelets is to deep

Clickthrough

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 12 Sep 2013, at 11:50 AM

Error in includelet '{{adp /www/templates/info-file {package_key en:clickthrough}}}' of page en:clickthrough:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:clickthrough}}}' of page en:clickthrough:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:clickthrough}}}' of page en:clickthrough:
Nesting of includelets is to deep

Cards

Created by Francisco Soler Lahuerta, last modified by Gustaf Neumann 12 Sep 2013, at 11:50 AM

Description:   This module is destined to facilitate the follow-up of the students during the course in each of the subjects. For it, there has been designed a card that contains the personal information of the pupil and allows the teacher to add a series of annotations on the same one.

The teacher can add annotations of text to realize a follow-up of the students in concepts as the participation in class or the assistance to tutorships between others, being these annotations deprived of the teacher and in no case accessible for the pupils.

Also numerical annotations corresponding will be able to be added to a certain typology that the teacher should define and form for the management of intermediate qualifications of the tasks of the subject and his later evaluation (partial, practice, works, etc ..)


Error in includelet '{{adp /www/templates/info-file {package_key en:cards}}}' of page en:cards:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:cards}}}' of page en:cards:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:cards}}}' of page en:cards:
Nesting of includelets is to deep
nbsp;

CMS

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 12 Sep 2013, at 11:45 AM

Error in includelet '{{adp /www/templates/info-file {package_key cms}}}' of page en:cms:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/bug-tracker {package_key cms}}}' of page en:cms:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/metrics {package_key cms}}}' of page en:cms:
Nesting of includelets is to deep

CMS News Demo

Created by Gustaf Neumann, last modified by Gustaf Neumann 12 Sep 2013, at 11:45 AM

Error in includelet '{{adp /www/templates/info-file {package_key en:cms-news-demo}}}' of page en:cms-news-demo:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:cms-news-demo}}}' of page en:cms-news-demo:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:cms-news-demo}}}' of page en:cms-news-demo:
Nesting of includelets is to deep
nbsp;

Bug tracker

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 12 Sep 2013, at 11:41 AM

Error in includelet '{{adp /www/templates/info-file {package_key en:bug-tracker}}}' of page en:bug-tracker:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:bug-tracker}}}' of page en:bug-tracker:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:bug-tracker}}}' of page en:bug-tracker:
Nesting of includelets is to deep

Bookshelf

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 12 Sep 2013, at 11:40 AM

Error in includelet '{{adp /www/templates/info-file {package_key en:bookshelf}}}' of page en:bookshelf:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:bookshelf}}}' of page en:bookshelf:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:bookshelf}}}' of page en:bookshelf:
Nesting of includelets is to deep

Bookmarks

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 12 Sep 2013, at 11:38 AM

Error in includelet '{{adp /www/templates/info-file {package_key en:bookmarks}}}' of page en:bookmarks:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:bookmarks}}}' of page en:bookmarks:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:bookmarks}}}' of page en:bookmarks:
Nesting of includelets is to deep

Authentication Server

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 12 Sep 2013, at 11:35 AM

Error in includelet '{{adp /www/templates/info-file {package_key en:auth-server}}}' of page en:auth-server:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:auth-server}}}' of page en:auth-server:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:auth-server}}}' of page en:auth-server:
Nesting of includelets is to deep


Attendance

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 12 Sep 2013, at 11:30 AM


Error in includelet '{{adp /www/templates/info-file {package_key en:attendance}}}' of page en:attendance:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:attendance}}}' of page en:attendance:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:attendance}}}' of page en:attendance:
Nesting of includelets is to deep


Address Book

Created by Philip Jensen, last modified by Gustaf Neumann 12 Sep 2013, at 11:29 AM


Error in includelet '{{adp /www/templates/info-file {package_key en:address-book}}}' of page en:address-book:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:address-book}}}' of page en:address-book:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:address-book}}}' of page en:address-book:
Nesting of includelets is to deep


Ad Server

Created by Philip Jensen, last modified by Gustaf Neumann 12 Sep 2013, at 11:29 AM


Error in includelet '{{adp /www/templates/info-file {package_key en:adserver}}}' of page en:adserver:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:adserver}}}' of page en:adserver:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:adserver}}}' of page en:adserver:
Nesting of includelets is to deep


ACS Mail Lite

Created by Nick Carroll, last modified by Gustaf Neumann 12 Sep 2013, at 11:28 AM

Error in includelet '{{adp /www/templates/info-file {package_key acs-mail-lite}}}' of page en:acs-mail-lite:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/bug-tracker {package_key acs-mail-lite}}}' of page en:acs-mail-lite:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/metrics {package_key acs-mail-lite}}}' of page en:acs-mail-lite:
Nesting of includelets is to deep

Curriculum Central

Created by Nick Carroll, last modified by Gustaf Neumann 12 Sep 2013, at 11:26 AM

http://nickcarroll.me/2006/04/04/curriculum-central-and-curriculum-tracker/ 


Error in includelet '{{adp /www/templates/info-file {package_key en:curriculum-central}}}' of page en:curriculum-central:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:curriculum-central}}}' of page en:curriculum-central:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:curriculum-central}}}' of page en:curriculum-central:
Nesting of includelets is to deep


ACS Interface

Created by Nick Carroll, last modified by Gustaf Neumann 12 Sep 2013, at 11:24 AM

Error in includelet '{{adp /www/templates/info-file {package_key en:acs-interface}}}' of page en:acs-interface:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/bug-tracker {package_key en:acs-interface}}}' of page en:acs-interface:
Nesting of includelets is to deep
br />
Error in includelet '{{adp /www/templates/metrics {package_key en:acs-interface}}}' of page en:acs-interface:
Nesting of includelets is to deep


ACS LDAP Authentication

Created by Nick Carroll, last modified by Gustaf Neumann 12 Sep 2013, at 11:24 AM

Error in includelet '{{adp /www/templates/info-file {package_key en:acs-ldap-authentication}}}' of page en:acs-ldap-authentication:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key en:acs-ldap-authentication}}}' of page en:acs-ldap-authentication:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key en:acs-ldap-authentication}}}' of page en:acs-ldap-authentication:
Nesting of includelets is to deep

Assessment Section Display Types

Created by Dave Bauer, last modified by Gustaf Neumann 12 Sep 2013, at 11:14 AM

Big Picture

 We are not 100% sure that we understand everything a display can or should do.

 What is clear is that:   The assessment author should be able to pick from the predefined list of display types.

We think the display type is a first step towards a UI that lets you pick a type of test/survey/quiz etc. and then sets sensible defaults. But right now its pretty confusing.  It doesn't seem to make a lot of sense as to what is controled by the display type and what is a setting for a section.

Current Plans
We want to reorganize the display type attributes and the section functional attributes to make more sense. 

Display types currently control some display attributes of an assessment section. Right now an assessment author can create a new display type which exposes confusing and complex attributes such as a chunk of adp code to display the assessment. Because it can involve ADP code we are assuming at this point that creating a new display type should be done by a site-wide admin.  So we intend to restrict access in the UI to creating display types.

Right now display types to be specific to the package instance level but its not clear that is the desired behavior, however we do not have immediate plans to change it. 

Display type refers to the style of display. Right now it also controls the number of questions per page. This seems wrong, Number of questions per page, is a functional attribute and should be set per section. The number of questions should not be tied to how the questions are formatted. An assessment author should be able to use any number of questions on a page with any display type.

Future thoughts: (we are not currently funded to implement these ideas)

Recently the default adp template for an assessment form has been rewritten with semantic HTML that should be suitable for most display types. The visual design can be changed with CSS. This leads me to believe that display types should evolve into CSS style declarations instead of ADP code.

Right now display types are per package isntance. In general we'd want site wide display types that can be used by any assessment author in any assessment package instance. For example, with dotlrn, each class has a seperate assessment package instance, but the display types may be resued across the whole site.



Assessment Admin UI

Created by Caroline Meeks, last modified by Gustaf Neumann 12 Sep 2013, at 11:13 AM

TODO LIST

  • Update this page with the lastest work
  • Carl will fill in here... 

 The current UI is very confusing and cluttered.

Our vision of a final UI is that a assessment creator would pick a type of assessment he wants and the site will set all defaults appropriately for it. However, the first attempt to do this was a failure so we are working on an incremental approach that we think will provide value with minial effort. Our intent is that later we move to an even friendlier UI.

 Incremental Improvement Vision:  The current user experience is: everytime you create anything you are confronted by many many choices, most of which you can ignore. Similarly all the admin pages have many repeated buttons and its not clear when you want to do what.  Thus our goal is:

  • Creation pages are very very simple and usefull defaults are set for everything.
  • Objects then have one button to an Edit page that has all the complex thngs you can do with the object.
Related Pages:

 Notes

Screenshots

These are screenshots of the work in progress.

Simplified quick assessment creation form. 

One Assessment Admin Page 

One Section Admin Page


 Add a question page.

First the original question form:

Now the new form. The question creation process used to require filling out 3 forms. We compressed it to one form by removing unused settings, and making intelligent default decisions. Some more work needs to be done. Assessment has a huge amount of complex features and it is not clear how they are used together to create a certain type of assessment. It is clear that all of the settings rarely need to be used together.


Assessment Admin Index

Created by Caroline Meeks, last modified by Gustaf Neumann 12 Sep 2013, at 11:12 AM

url stub: /assessment/asm-admin/

 url: http://mgh.zill.net/assessment/asm-admin/

Current: admin_actions.JPG

This is the "top level" it should have links to things that are potentially  used in all Assessments.

I suggest the following links in class = button style along the top.

 [New Assessment] | Display Types | Categories | Actions | Requests | Permissions | Documentation

  •  We don't need to repeat the word "Administer" we are on the administration page.
  • Remove the QTI upload, it is another way to create a New Assessment so it should be an option after you click New Assessment. 
  • Remove Export and Permissions from the list of Assessments. Those are options that have to do with one assessment and should be on that assessment's admin page [one-a]. 

Assessment Listing

Dispaly the list of assessments as a sortable table. We have moved some actions to the [one-a] page so lets use that realestate to give people information that might help them find the Assessment they are interested in. 

Title        Last Modified By      Last Modified Date     Request Permission




Chat Portlet

Created by Gustaf Neumann, last modified by Gustaf Neumann 12 Sep 2013, at 10:57 AM

Error in includelet '{{adp /www/templates/info-file {package_key chat-portlet}}}' of page en:chat-portlet:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/bug-tracker {package_key chat-portlet}}}' of page en:chat-portlet:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/metrics {package_key chat-portlet}}}' of page en:chat-portlet:
Nesting of includelets is to deep

dotLRN Course Catalog

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 12 Sep 2013, at 09:21 AM

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?

Error in includelet '{{adp /www/templates/info-file {package_key dotlrn-catalog}}}' of page en:dotlrn-catalog:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key dotlrn-catalog}}}' of page en:dotlrn-catalog:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key dotlrn-catalog}}}' of page en:dotlrn-catalog:
Nesting of includelets is to deep
nbsp;

dotLRN Administration

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 12 Sep 2013, at 09:20 AM

Error in includelet '{{adp /www/templates/info-file {package_key dotlrn-admin}}}' of page en:dotlrn-admin:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/bug-tracker {package_key dotlrn-admin}}}' of page en:dotlrn-admin:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/metrics {package_key dotlrn-admin}}}' of page en:dotlrn-admin:
Nesting of includelets is to deep

dotLRN - Ecommerce

Created by Caroline Meeks, last modified by Gustaf Neumann 12 Sep 2013, at 09:20 AM

Package: dotlrn Ecommerce

Description:  Integrates payment processing with course registration.

Release Info:

This is being used at Mass General Hospital [case study] and the Museum of Science

More information and a link to admin documentation can be found on the Solution Grove website

dotlrn-ecommerce provides event based email handling, to send email when  users request for a course is submitted, approved or rejected, etc. There is a proposal to generalize this at email-event-handling.

dotLRN

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 12 Sep 2013, at 09:20 AM

Error in includelet '{{adp /www/templates/info-file {package_key dotlrn}}}' of page en:dotlrn:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/bug-tracker {package_key dotlrn}}}' of page en:dotlrn:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/metrics {package_key dotlrn}}}' of page en:dotlrn:
Nesting of includelets is to deep
/p>

See proposal for comprehensive email event handling

dotLRN portlet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 12 Sep 2013, at 09:20 AM

Error in includelet '{{adp /www/templates/info-file {package_key dotlrn-portlet}}}' of page en:dotlrn-portlet:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/bug-tracker {package_key dotlrn-portlet}}}' of page en:dotlrn-portlet:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/metrics {package_key dotlrn-portlet}}}' of page en:dotlrn-portlet:
Nesting of includelets is to deep

dotLRN applet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 12 Sep 2013, at 09:19 AM

Error in includelet '{{adp /www/templates/info-file {package_key dotlrn-dotlrn}}}' of page en:dotlrn-dotlrn:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/bug-tracker {package_key dotlrn-dotlrn}}}' of page en:dotlrn-dotlrn:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/metrics {package_key dotlrn-dotlrn}}}' of page en:dotlrn-dotlrn:
Nesting of includelets is to deep

Recruiting Portlet

Created by Robert Taylor, last modified by Gustaf Neumann 12 Sep 2013, at 09:17 AM

Error in includelet '{{adp /www/templates/info-file {package_key recruiting-portlet}}}' of page en:recruiting-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/bug-tracker {package_key recruiting-portlet}}}' of page en:recruiting-portlet:
Nesting of includelets is to deep

Error in includelet '{{adp /www/templates/metrics {package_key recruiting-portlet}}}' of page en:recruiting-portlet:
Nesting of includelets is to deep

Evaluation portlet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 12 Sep 2013, at 09:11 AM

Error in includelet '{{adp /www/templates/info-file {package_key evaluation-portlet}}}' of page en:evaluation-portlet:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/bug-tracker {package_key evaluation-portlet}}}' of page en:evaluation-portlet:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/metrics {package_key evaluation-portlet}}}' of page en:evaluation-portlet:
Nesting of includelets is to deep

Calendar portlet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 12 Sep 2013, at 09:05 AM

Error in includelet '{{adp /www/templates/info-file {package_key calendar-portlet}}}' of page en:calendar-portlet:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/bug-tracker {package_key calendar-portlet}}}' of page en:calendar-portlet:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/metrics {package_key calendar-portlet}}}' of page en:calendar-portlet:
Nesting of includelets is to deep

Assessment portlet

Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 12 Sep 2013, at 09:04 AM

Error in includelet '{{adp /www/templates/info-file {package_key assessment-portlet}}}' of page en:assessment-portlet:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/bug-tracker {package_key assessment-portlet}}}' of page en:assessment-portlet:
Nesting of includelets is to deep
Error in includelet '{{adp /www/templates/metrics {package_key assessment-portlet}}}' of page en:assessment-portlet:
Nesting of includelets is to deep

Accounts Desk

Created by OpenACS community, last modified by Gustaf Neumann 12 Sep 2013, at 09:00 AM

Status

pre-release

Introduction

Part of the ecommerce-g2 project

Feature requests

add feature requests here

Field Service

Created by OpenACS community, last modified by Gustaf Neumann 12 Sep 2013, at 09:00 AM

Status

pre-release 

Introduction

Part of the ecommerce-g2 project

Feature requests

add requests here 

Inventory Control

Created by OpenACS community, last modified by Gustaf Neumann 12 Sep 2013, at 08:59 AM

Status

pre-release 

Introduction

Part of the ecommerce-g2 project

Feature requests

add requests here 

Accounts Payroll

Created by OpenACS community, last modified by Gustaf Neumann 12 Sep 2013, at 08:58 AM

Status

pre-release 

Introduction

Part of the ecommerce-g2 project

Feature requests

 add requests here

E-commerce 2

Created by OpenACS community, last modified by Gustaf Neumann 12 Sep 2013, at 08:58 AM

Status 

pre-release 

Introduction

Part of the ecommerce-g2 project

Feature requests

Accounts Receivables

Created by OpenACS community, last modified by Gustaf Neumann 12 Sep 2013, at 08:57 AM

Status

pre-release 

Introduction

Part of the ecommerce-g2 project

Feature Requests

add requests here


Human Resources

Created by OpenACS community, last modified by Gustaf Neumann 12 Sep 2013, at 08:56 AM

Status

pre-release 

Introduction

Part of the ecommerce-g2 project

Feature requests

add requests here

Vendors-Suppliers

Created by OpenACS community, last modified by Gustaf Neumann 12 Sep 2013, at 08:56 AM

Status

pre-release 

Introduction

Part of the ecommerce-g2 project

Feature requests

add requests here 

General Ledger

Created by OpenACS community, last modified by Gustaf Neumann 12 Sep 2013, at 08:55 AM

Status 

 pre-release

Introduction

Part of the ecommerce-g2 project

Feature requests

add requests here 

Ship-Track

Created by OpenACS community, last modified by Gustaf Neumann 12 Sep 2013, at 08:55 AM

Status

pre-release 

Introduction

Part of the ecommerce-g2 project

Feature requests

add requests here 

Production

Created by OpenACS community, last modified by Gustaf Neumann 12 Sep 2013, at 08:54 AM

Status

pre-release 

Introduction

Part of the ecommerce-g2 project

Feature requests

add requests here 

Bulk Upload

Created by OpenACS community, last modified by Gustaf Neumann 12 Sep 2013, at 08:53 AM


Status

pre-release  (part of the ecommerce-g2 project)

Introduction

There is little consistency between packages for uploading data. Most packages do not offer an import feature. The current practice is to use the database import features directly. This also means creating small scripts or using intermediate applications to manipulate the data prior to import, and using shell commands to get the data into the right security context and location. Mistakes in the import usually have to be corrected with hand-written sql updates. A data importer likely needs to have admin level access and unix level competency, which is beyond the usual skill set required to manage a website application. A bulk-upload package would standardize and ease barriers to setting up and managing OpenACS packages.

Vision Statement

A package that provides standardized UI and import services for bulk uploading data (tables and lists) into existing tables of other packages

Requirements

  • provide import modes
    • insert rows with new keys only
    • update where rows already exist
    • report any unchanged rows?
    • ignore or error if importing a field not found in tables or specified sets
  • import to multiple tables from the same upload
  • option to print or log ignored or rejected rows/fields
  • use the status_bar feature, that tells when a file is uploaded, and when it is being processed (helps in cases where connection times out)
  • Use this framework to create a UI for managing ACS reference data ( en:acs-reference ) --importing, updating, editing, reporting. (for en:ecommerce-g2 )

Implementation Notes

see also: http://jongriffin.com/static/openacs/acs-reference/thoughts

Exsiting ecommerce bulk upload of custom fields represents the most flexible at this point, because it handles inserts and updates, and builds the sql as well as uses the xql query files: http://cvs.openacs.org/cvs/openacs-4/packages/ecommerce/www/admin/products/extras-upload-2.tcl.

Perhaps a dumbed-down spreadsheet data model would work well, to allow for tables of most any number of columns or rows without having to create/expose code that modifies db tables.

DAVEB: In addition to any generic storage of imported data, I think it would be useful to support importing into specific storage tables. The easiest, best examples are the content repository, or dynamic types defined tables and views. There are Tcl apis to insert/update these tables and it makes sense to support this as well.

Don Baccus has other implementations which complement this and may provide an overall development path for a preliminary general bulk upload.

Feature requests

Manufacturing Design

Created by OpenACS community, last modified by Gustaf Neumann 12 Sep 2013, at 08:53 AM

Status

pre-release 

Introduction

Part of the ecommerce-g2 project

Feature requests

add requests here 

Fabrication

Created by OpenACS community, last modified by Gustaf Neumann 12 Sep 2013, at 08:52 AM

Status

pre-release 

Introduction

Part of the ecommerce-g2 project

Feature requests

add requests here 

Accounts Payables

Created by OpenACS community, last modified by Gustaf Neumann 12 Sep 2013, at 08:51 AM

Status

pre-release

Introduction

Part of the ecommerce-g2 project

Feature requests

  • add requests here

Reference Data - GIFI

Created by OpenACS community, last modified by Gustaf Neumann 12 Sep 2013, at 08:50 AM

Status

pre-release 

Introduction

Part of the ecommerce-g2 project

Feature requests

add requests here 

for everyone

Created by OpenACS community, last modified by Benjamin Brink 09 Sep 2013, at 07:44 PM

OpenACS for everyone

OpenACS (Open Architecture Community System) is:

  • an advanced toolkit for building scalable, community-oriented web applications.
  • a robust, scalable framework (see: en:openacs-system) for building dynamic content driven sites and enterprise-level web applications.
  • a collection of pre-built applications and services that you can build on to create a custom web-site or application.
  • derived from the ArsDigita Community System (ACS). ArsDigita (now part of Red Hat, Inc.) kindly made their work available under the GPL, making all of this possible.

Through a modular architecture, OpenACS has packages for user/groups management, content management, e-commerce, news, FAQs, calendar, forums, bug tracking, wiki (XoWiki ), full-text searching etc. See OpenACS repository.

Strengths

Use the OpenACS fourms to contact the OpenACS community. We welcome your feedback and can help with your OpenACS endeavors. Commercial support is also available.

What others say about OpenACS

Testimonials posted to forums on OpenACS

Try OpenACS

History of OpenACS

See: History of OpenACS en:docs-history

Bibliography and Credits

See: Documentation Credits en:doc-credits

Install Tcl

Created by OpenACS community, last modified by Jim Lynch 06 Sep 2013, at 12:21 AM

Check suitability of a previously installed TCL.

Start tcl (type tclsh or find it using which tclsh).

[root root]% info exists tcl_platform(threaded)
1
[root root]% info patchlevel
8.5.14
[root root]%

If the first command returns anything other than 1, then tcl is not threaded. If tcl is threaded and the version is 8.5 or higher, then installing tcl from source is optional.

 (jiml) Note that you will also need compiletime stuff so you can build things against that tcl; how to get it varies according to what OS and flavor thereof you run. Personally, I don't like to permit the operating system to dictate any versions of anything or have any influence over installing/removing, so I build the whole stack (these days, not including postgres) myself.

Install Tcl

Get TCL 8.5 (or higher). Download and install TCL 8.5 from source.

If you have not installed TCL already, download the latest TCL version from Sourceforge or http://www.tcl.tk/software/tcltk/downloadnow85.html 

We are installing tcl in context with aolserver to use a consistent set of libraries when more than one version may be present. Use the same directory for aolserver here, that you will be using when installing aolserver from the en:aolserver-install page.

Remember that you have to be logged in as root to issue the following commands.

[root root]# mkdir -p /usr/local/src/aolserver40r10
[root root]# cd /usr/local/src/aolserver40r10
[root src]# wget http://heanet.dl.sourceforge.net/sourceforge/tcl/tcl8.5.14-src.tar.gz
[root src]# tar xfz tcl8.5.14-src.tar.gz
[root src]# cd tcl8.5.14/unix
[root unix]# ./configure --enable-threads --prefix=/usr/local/aolserver40r10
[root unix]# make install
[root root]# 
      

ref: http://openacs.org/doc/aolserver4.html 

Pull info from: http://www.tcl.tk/software/tcltk/downloadnow85.html 

Installing OpenACS on debian

Created by OpenACS community, last modified by Gustaf Neumann 31 Aug 2013, at 11:37 AM

The quicksheet versions:

You should know what you're doing when you use them.

notes

Tcl development headers are required for compiling Tcl packages yourself.

apt-get install tcl8.4-dev

Should you decide to Install OpenACS from source using general en:openacs-system-install instructions, refer to these notes for changes:

Installing Postgresql

Debian stable user should install PostGreSQL from source as detailed below, or they should use the www.backports.org backport for Postgres to get a more current version. Debian unstable users: the following process has been known to work (but you should double-check that the version of PostGreSQL is 7.3 or above):

For Debian stable users, you can use backports, by adding this line to the /etc/apt/sources.list

deb http://www.backports.org/debian stable bison postgresql openssl openssh tcl8.4 courier debconf spamassassin tla diff patch neon chkrootki

and perform this actions:

apt-get update
apt-get install postgresql postgresql-dev postgresql-doc
ln -s /usr/include/postgresql/ /usr/include/pgsql
ln -s /var/lib/postgres /usr/local/pgsql
ln -s /usr/include/pgsql /usr/local/pgsql/include
su postgres -c "/usr/lib/postgresql/bin/createlang plpgsql template1"

..and proceed to the next section.

Installing PostgreSQL's Tsearch2

apt-get install postgresql-contrib

Creating the Postgres user.

Use adduser instead of useradd. Type man adduser for more info.

Compiling PostgreSQL

On debian woody (stable, 3.0), do:

./configure --without-readline --without-zlib 

Set PostgreSQL to start on boot

[root ~]# cp /var/tmp/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql
[root ~]# chown root.root /etc/init.d/postgresql
[root ~]# chmod 755 /etc/init.d/postgresql
[root ~]# 
cp /var/tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql
chown root.root /etc/init.d/postgresql
chmod 755 /etc/init.d/postgresql

Test the script

[root ~]# /etc/init.d/postgresql stop
Stopping PostgreSQL: ok
[root ~]# 

If PostgreSQL successfully stopped, then use the following command to make sure that the script is run appropriately at boot and shutdown.

[root ~]# update-rc.d postgresql defaults
 Adding system startup for /etc/init.d/postgresql ...
   /etc/rc0.d/K20postgresql -> ../init.d/postgresql
   /etc/rc1.d/K20postgresql -> ../init.d/postgresql
   /etc/rc6.d/K20postgresql -> ../init.d/postgresql
   /etc/rc2.d/S20postgresql -> ../init.d/postgresql
   /etc/rc3.d/S20postgresql -> ../init.d/postgresql
   /etc/rc4.d/S20postgresql -> ../init.d/postgresql
   /etc/rc5.d/S20postgresql -> ../init.d/postgresql
[root ~]# /etc/init.d/postgresql start
Starting PostgreSQL: ok
[root ~]#

Debian defaults to starting all services on runlevels 2-5.

Installing Tcl

You can apt-get install tcl8.4-dev if you have the right version (stable users will need to add tcl8.4 to their sources.list file as described in the "Install Postgresql" section above. You will have to use /usr/lib/tcl8.4/ instead of /usr/local/lib when you try to find the tcl libraries, however.

apt-get install tcl8.4 tcl8.4-dev

and proceed to installing aolserver.

When installing aolserver, replace --with-tcl=/usr/local/lib/ with --with-tcl=/usr/lib/tcl8.4.

Installing AOLserver

To install AOLserver you can use apt command:

apt-get install aolserver4 aolserver4-nscache aolserver4-nspostgres aolserver4-nssha1 tdom

After installing AOLserver, You need to make the following symbolic link:

ln -s /usr/lib/aolserver4 /usr/local/aolserver


AOLserver

Created by OpenACS community, last modified by Gustaf Neumann 31 Aug 2013, at 11:17 AM

the free, open-source, multithreaded, scalable, Tcl-enabled, web/application server used by some of the world's busiest websites, such as AOL.com, Mapquest.com, Netscape.com, and Moviefone.com. Other sites that run on AOLserver: http://panoptic.com/wiki/aolserver/Sites_That_Run_On_AOLserver

What others say about AOLserver

Using AOLserver with OpenACS

Notes on upgrading AOLserver 4.5.1 ( or greather )

  • All the ns_cache* API is from AOLServer 4.5.1 on, part of the core, therefore loading nscache.so in your config file is not longer required. Doing otherwise could lead to syntax errors while doing some calls to the API.

 

Postgres 9.1 and later versions

Created by Gustaf Neumann, last modified by Gustaf Neumann 31 Aug 2013, at 10:53 AM

The head version of OpenACS (5.8) works with PostgreSQL 9.1 or newer out of the box, no special configurations in postgresql.conf are needed.

To work with PostgreSQL 9, one has to use an actual postgres driver:

OpenACS core + commonly used packages (search, forums, xowiki, ...) have been tested with PostgreSQL 9.2.4

For new installs, OpenACS 5.8 works without further considerations. When upgrading to PostgresSQL 9.*, one has to keep in mind, that not only the sql-install scripts have to be SQL 9.* compatible, but as well the update scripts (migration scripts). During the work for making OpenACS compatible with PostgreSQL 9.*, we did not update (all) of the migration scripts (e.g. kernel upgrades) of earlier versions.

Therefore, the following upgrade steps are recommended: 

  • For users of PostgreSQL versions earlier than 8.4:  In case you run a version of OpenACS earlier than 5.5 then upgrade first your code to OpenACS 5.5 (oacs-5-5 branch from the CVS Repository), then dump your database and reload it into pg 8.4 (e.g. into pg 8.4.17, which is the oldest still supported version from postgres, end-of-life July 2014). Then continue with the next step below.

  • For users of PostgreSQL version 8.4 (or newer before 9): Make sure, you are running Tcl 8.5, then get OpenACS 5.8.0 (or newer) and upgrade OpenACS and your used packages (e.g. via acs-admin/apm + "install packages"). Then dump the database and restore it in pg 9.*.


Installing OpenACS on Redhat

Created by OpenACS community, last modified by Gustaf Neumann 20 Aug 2013, at 01:32 PM

Redhat publishes 2 versions of their OS, Fedora (FC) and Redhat Enterprise...

The quicksheet versions:

You should know what you're doing when you use them.

Should you decide to Install OpenACS from source using general en:openacs-system-install instructions, refer to these notes for changes.

Some of these notes below are probably outdated by now, but might still give some useful hints for certain installations.

Notes for Installing Postgresql en:postgresql-install

If you install PostgreSQL 7.3.2 from the Red Hat 9 RPM, you can skip a few steps. These shell commands add some links for compatibility with the directories from a source-based install; start the service; create a new group for web service users, and modify the postgres user's environment (more information):

[root root]# ln -s /usr/lib/pgsql/ /var/lib/pgsql/lib
[root root]# ln -s /var/lib/pgsql /usr/local/pgsql
[root root]# ln -s /etc/init.d/postgresql /etc/init.d/postgres
[root root]# ln -s /usr/bin /usr/local/pgsql/bin
[root root]# service postgresql start
Initializing database:
                                                           [  OK  ]
Starting postgresql service:                               [  OK  ]
[root root]# echo "export LD_LIBRARY_PATH=/usr/local/pgsql/lib" >> ~postgres/.bash_profile
[root root]# echo "export PATH=$PATH:/usr/local/pgsql/bin" >> ~postgres/.bash_profile
[root root]# groupadd web
[root root]# su - postgres
-bash-2.05b$

ln -s /usr/lib/pgsql/ /var/lib/pgsql/lib
ln -s /var/lib/pgsql /usr/local/pgsql
ln -s /usr/bin /usr/local/pgsql/bin
service postgresql start
echo "export LD_LIBRARY_PATH=/usr/local/pgsql/lib" >> ~postgres/.bash_profile
echo "export PATH=$PATH:/usr/local/pgsql/bin" >> ~postgres/.bash_profile
groupadd web
su - postgres

... and then skip to the section in en:postgresql-install that deals with installing plpgsql.

Set PostgreSQL to start on boot

Red Hat RPM:

The init script is already installed; just turn it on for the appropriate run levels.

[root root]# chkconfig --level 345 postgresql on
[root root]# 

Red Hat from source:

[root src]# cp /var/tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql
[root src]# chown root.root /etc/rc.d/init.d/postgresql
[root src]# chmod 755 /etc/rc.d/init.d/postgresql
[root src]# 
cp /var/tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql
chown root.root /etc/rc.d/init.d/postgresql
chmod 755 /etc/rc.d/init.d/postgresql

Test the script.

[root root]# service postgresql stop
Stopping PostgreSQL: ok
[root root]# 

If PostgreSQL successfully stopped, then use the following command to make sure that the script is run appropriately at boot and shutdown. And turn it back on because we'll use it later.

[root root]# chkconfig --add postgresql
[root root]# chkconfig --level 345 postgresql on
[root root]# chkconfig --list postgresql
postgresql      0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root root]# service postgresql start
Starting PostgreSQL: ok
[root root]#
chkconfig --add postgresql
chkconfig --level 345 postgresql on
chkconfig --list postgresql
service postgresql start

Red Hat defaults to starting services on 3-5. So, on Red Hat, PostgreSQL won't start on runlevel 2 unless you alter the above commands a little. This usually isn't a problem as Red Hat defaults to runlevel 3)

hstore

Created by Michael Aram, last modified by Gustaf Neumann 16 Aug 2013, at 10:19 PM

hstore  is a postgresql module, which is used optionally by newer versions of xowiki and xowf (xowiki content flow ) to provide quick access to the "instance_attributes" (the per-form or per-workflow attributes not part of the native content repository data model). The supporting functions (creating indices, etc) are currently mostly part of the xowf sources, but will be moved eventually into xowiki.

Under Ubuntu, you can install hstore by locating the appropriate sql file on your system (you may need to install the postgres-contrib first), and then install it as postgresql user via:

psql -d <yourdb> -f /usr/share/postgresql/8.3/contrib/hstore.sql

...or issueing the command "create extension hstore" in psql. You can then verify the successful installation on the shell using:

::xo::db::has_hstore

Get the Code!

Created by roc@, last modified by Gustaf Neumann 25 Jul 2013, at 08:52 PM

This are instructions to obtain OpenACS, either as a released distribution (a .tar.gz file) or from CVS.

Obtain a released version of OpenACS via .tar file:

Download from OpenACS.org: http://openacs.org/projects/openacs/download/

Unpack the OpenACS tarball. Usually something like this works:

tar zxvf openacs-5.7.0.tgz

Obtain OpenACS from CVS (a certain release with potential patches, or the HEAD version):

If you want to track fresh code developments between releases, or you are an OpenACS core developer, you may want to install from CVS. This is identical to downloading a distribution, except that you get the files from CVS instead of the tarball. The following commands are used to obtain OpenACS 5.6 from CVS:

cvs -d:pserver:anonymous@cvs.openacs.org:/cvsroot login
# press enter for password
cvs -d:pserver:anonymous@cvs.openacs.org:/cvsroot checkout -r oacs-5-6 acs-core 

The command above checks out the core packages of OpenACS in a directory named openacs-4. For  the entire OpenACS version 5.6 branch you can use the following commands (adjust as required going forward):

cvs -d:pserver:anonymous@cvs.openacs.org:/cvsroot checkout -r oacs-5-6 openacs-4

If the the branch name (like oacs-5-6) is omitted, the the leading edge developer version (the HEAD release) is obtained

cvs -d:pserver:anonymous@cvs.openacs.org:/cvsroot checkout openacs-4

In order to check out a single package (e.g. the package cronjob) from  e.g. the leading edge developer version (HEAD), use 

cvs -d:pserver:anonymous@cvs.openacs.org:/cvsroot checkout openacs-4/packages/cronjob

For most OpenACS packages, CVS aliases are defined. In order to checkout e.g. the forums package from OpenACS 5.5, just use:

cvs -d:pserver:anonymous@cvs.openacs.org:/cvsroot checkout -r oacs-5-5 forums

 More info here: http://www.openacs.org/test-doc/using-cvs-with-openacs

Looking for README instructions or installers? View the OpenACS Installation instructions: en:openacs-system-install, otherwise continue by setting up the OpenACS distribution:

Set up the file system for one or more OpenACS sites

For Linux Standard Base compliance and ease of backup, all of the files in each OpenACS site are stored in a subdirectory of /var/lib/aolserver, one subdirectory (SERVERROOT) per site (see: en:openacs-reference-platform). The first time you install an OpenACS site on a server, you must create the parent directory and set its permissions:

While logged in as root:

mkdir -p /var/lib/aolserver
chgrp web /var/lib/aolserver
chmod 770 /var/lib/aolserver

Move the uncompressed code to SERVERROOT and rename the directory to $OPENACS_SERVICE_NAME:

mv openacs-4 /var/lib/aolserver/$OPENACS_SERVICE_NAME

Postgres 8.1.x and later versions

Created by Rocael Hernández Rizzardini, last modified by Gustaf Neumann 24 May 2013, at 05:06 PM

Postgres 8.x (e.g. 8.1.* and later) require a few changes in the configuration file for backward compatibility:

1. Configure postgres8 with all compatibility ON in postgresql.conf:


add_missing_from = on
regex_flavor = extended
default_with_oids = on

2. If you are upgrading an OpenACS site between versions 4.5.2 to 5.2 and not continuing to 5.3, then: After the createdb step to create the OpenACS database, generate the next function before you import the pre-existing OpenACS database.

 From your shell prompt enter:


psql <dbname>

From the psql prompt enter the follow plpgsql code to create the bitfromint4 function:


create or replace function bitfromint4 (integer)
returns bit varying as '
begin
return $1::bit(32);
end;' language 'plpgsql' immutable strict;

Exit psql:


\q 

This is the original thread  

For a full script on how to install PG 8.2 with ltree and tsearch2 look at Malte's install script  

Q-Wiki

Created by Benjamin Brink, last modified by Gustaf Neumann 21 Mar 2013, at 08:06 AM

Q-Wiki

For the latest updates to this readme file, see: http://openacs.org/xowiki/q-wiki

The lastest version of the code is available at the development site: http://github.com/tekbasse/q-wiki

introduction

Q-Wiki is an OpenACS wiki using a templating system. It allows tcl procedures to be used in a web-based publishing environment. It is not tied to vertical web applications, such as OpenACS ecommerce package.

Q-Wiki is derived from OpenACS' ecommerce package. Administrators have voiced interest in having some kind of strictly filtered ACS developer support dynamics for user content.

license

Copyright (c) 2013 Benjamin Brink po box 20, Marylhurst, OR 97036-0020 email: kappa@dekka.com

Q-Wiki is open source and published under the GNU General Public License, consistent with the OpenACS system:http://www.gnu.org/licenses/gpl.html A local copy is available at q-wiki/www/doc/LICENSE.html

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

features

Pages automatically have revisioning.

Pages must be trashed before being deleted. Trashed pages can be untrashed.

Trashed pages are not published.

Users with create permission can also trash their own creations.

No UI javascript is used, so technologies with limited UI can use it.

Tcl procedures pass through two filters: 1. a list of glob expressions stating which procedures are allowed to be used 2. a list of specifically banned procedures

A package parameter can switch the TCL/ADP rendering of content on or off.

This web-app is easily modifiable for custom applications. It consists of a single q-wiki tcl/adp page pair and an extra unused "flags" field.

This app is ready for web-based publishing SEO optimization. Besides content, pages include comments, keywords, and page description fields.

Ecommerce G2

Created by OpenACS community and package contributors, last modified by Torben Brosten 06 Mar 2013, at 12:10 AM

Introduction

This is an initiative to upgrade and round-out en:ecommerce and related packages to benefit from current OpenACS programming standards and practices. Project is currently led by Benjamin Brink in the open and cooperative spirit of the OpenACS community. The development is occuring via https://github.com/openacs-ecg2

All are welcome to participate.

page information

  • Last modified: 2013-03-06 00:10:51.888117+01

Emacs as an OpenACS IDE

Created by OpenACS community, last modified by Prem Thomas 18 Jan 2013, at 09:54 PM

emacs integrated development environment for OpenACS

emacs documentation: http://www.gnu.org/software/emacs/manual/html_node/

Emacs uses major and minor modes that provide a UI context for editing various file types. Here are some useful ones for working with OpenACS:

CVS Mode Emacs with OpenACS

I use M-x cvs-examine to update and check in code when I am working with OpenACS. One thing that is a pain with CVS is that cvs diff does not tell you what you are going to get if you update, it only tells you what is changed in your local copy.

You can use M-x cvs-examine and then type "d e" next to any of the files in your checkout in the *cvs* buffer to open ediff mode and then interactively merge what's in CVS with your local changes. In ediff mode you use n/p to got to the next/previous difference. You can copy changes from the CVS buffer to your local copy using a/b to copy the the buffer marked A to B or B to A. Type ? on the ediff window to get a list of other commands.

OpenACS Mode for Emacs

See historical page describing oacs.el http://web.archive.org/web/20040621200046/www.thecodemill.biz/services/oacs/

Download: oacs.el.tar updated 2006-08-15 . The lastest version includes nXML mode support in addition to PSGML support. There are good installation instructions in the INSTALL.txt file. A quick install guide for Debian


sudo su -
cd /usr/share/emacs/site-lisp
wget http://www.emacswiki.org/elisp/color-occur.el
wget http://openacs.org/storage/view/xowiki-resources%5C/oacs.el.tar
tar xf oacs.el.tar
apt-get install psgml mmm-mode

# Alternatively compile manually
wget http://www.lysator.liu.se/~lenst/about_psgml/psgml-1.2.5.tar.gz
tar xfz psgml-1.2.5.tar.gz
cd psgml-1.2.5
./configure
make install
cd ..
wget http://switch.dl.sourceforge.net/sourceforge/mmm-mode/mmm-mode-0.4.8.tar.gz
tar xfz mmm-mode-0.4.8.tar.gz
cd mmm-mode-0.4.8
./configure
make install

After this login as the user who is doing the development and edit you .emacs file.


(add-to-list 'load-path "/usr/share/emacs/site-lisp/oacs")
(require 'oacs)
(setq user-full-name "<yourname>")
(setq user-mail-address "<your email>")
(add-to-list 'auto-mode-alist '("\\.vuh" . tcl-mode))
(add-to-list 'auto-mode-alist '("\\.adp" . html-mode))

For recent Emacs versions (> 2008), modify oacs-nxml.el in the downloaded tarball:

line 30: (load "nxml-mode.el")  instead of (load "rng-auto.el")

See http://lists.gnu.org/archive/html/emacs-devel/2008-01/msg00947.html

Also, you may need to modify adp.rnc to the correct path to the xhtml.rnc schema on your installation. On OS X, for example, line 5 should read:

include "/Applications/Emacs.app/Contents/Resources/etc/schema/xhtml.rnc" 

The following was written by Bart the author of oacs.el

OpenACS lacked a good Integrated Development Environment and as I use Emacs for almost everything it was only natural to fill the void. The Emacs OACS module is an extension to GNU Emacs, the extensible, customizable, self-documenting real-time display editor.

Development status

Emacs OACS's development is driven by the needs I encounter in my OpenACS projects. Development takes place in my spare time. At this stage the code is the documentation. I lack the time to write a proper article. However, as Emacs OACS addresses the issues described in articles XQL Document Type Definition and Replacing SQL bind vars in Emacs some background information can be found in those articles.

Forum thread: Beta Emacs OACS module available

Useful commands

Formating TCL

  • M-o ft to re-format Tcl code. See code for details.
  • M-o fh to reformat Html or Adp code.
  • M-o fs to reformat Sql code.
  • M-x oacs-format-separate-tags to separate adjacent tags. E.g. <tr><td>
  • M-x oacs-format-includes to place all include attribubtes on a separate line.
        

Code navigation

  • M-o oo to search for any custom regular expression.
  • M-o on to search the log for Notice oacs-dbg messages. That is a Notice level message created with the macro 'oddbg'.
  • M-o od to search the log for Debug oacs-dbg messages.
  • M-o oe to search the log for Error oacs-dbg messages. Etc for all other ns_log levels.
  • M-o op to browse Tcl libraries for procedure definitions. This is by far my favorite way of navigating a library!
  • M-o fp (find-file-at-point) to NSD error log mode.
  • M-o rl to revert the logfile
  • M-o ml to to open an error log file and monitor the changes to the log. 

Editing docbook xml

editing via Muse mode

editing via nXML mode

See http://openacs.org/doc/nxml-mode.html

psgml mode

See:

Developing with emacs

To make emacs display .vuh files similar to .tcl files, add to .emacs file:


(add-to-list 'auto-mode-alist '("\\.vuh" . tcl-mode))

To make emacs display .adp files similar to .html files, add to .emacs file:


(add-to-list 'auto-mode-alist '("\\.adp" . html-mode))

Common command shortcuts

Minor Modes

 M-x global-font-lock-mode highlights syntax using colors
 M-x transient-mark-mode   shows a highlighted text region
 M-x show-paren-mode       shows matching parentheses (and when the do not)

Move, Search and Replace

 M-x goto-line             go to a specific line in a file
 M-x goto-char             go to a specific character number in a file
 M-C-f                     search forward for matching brace
 M-C-b                     search backward for matching brace
 M-x replace-regexp        search/replace using regular expressions
 M-x query-replace-regexp  query/search/replace using regular expressions
   note \\( and \\) for start and end subgroups
 M-x grep                  grep creates new buffer with results
                           for fast loading/editing search hits

Useful "sleepers" (not found in many shortcut sheets)

 fg<cr>                    restart a suspended emacs session from commandline
 C-q <key press>           add a key without emacs interpreting the key binding

You can configure emacs to create 4 spaces when you press the tab key--important for meeting coding standards. Add this to your .emacs file:

(setq-default tab-width 4 indent-tabs-mode nil)

other useful quicksheets

Learning Content Tool

Created by Alvaro Rodriguez, last modified by josue ruiz 21 Dec 2012, at 12:22 AM

Learning-Content Tool

Description


User specs
The Learning-Content Package is a simple content creation tool based on xowiki. This package lets you easily create, edit and organize content for a course, taking advantage of xowiki's easy inline edition and revision history.  The package provides a generic template generated automatically with the pages and the categories.
During the edition of the pages there is an interface that allows the addition of terms and definitions to a glossary, linking the words from the content. It comes with an interface that allows linking of certain resources from the course, such as linking evaluations, assessments and forums to the content pages.
There is a new admin section for the content which includes a page to manage the categories in the content tree, an option to show/hide a specific title for the course on every page, user tracking by page or user, and one-click automatic copy of the content to other classes/communities.

Development History


2007

The Content package was first developed by Byron Linares (Galileo University) as a portlet using xowiki as the main package, adding all the files and modifications needed in xowiki. The automatic template included was specific for the Galileo's theme.

Works on:
postgresql 8.2.x
xowiki 0.47
xotcl 0.47

Required:
ltree module for postgresql

2008-2009
The package was improved by Alvaro Rodriguez and Viaro Networks team to make it a real package as an extension of xowiki, it was updated to work with the latest version of xotcl-core, xowiki from the oacs-5-4 branch. It was completely ported to Oracle and it no longer requires the ltree module for postgresql.

How to Install


Works on:
Postgresql 8.2.x +
Oracle 9i +

Requires:
xowiki 0.106.1
xotcl-core 0.100
views 0.1d3
ajaxhelper 0.87d (needs upgrade to YUI 2.5.2+)

Installation process:
  1. Get the following packages from branch oacs-5-4: dotlrn-all, xowiki, xotcl-core, views
  2. Get the following packages from HEAD: learning-content, learning-content-portlet, dotlrn-learning-content, ajaxhelper
  3. Move to the content package folder and run the script.sh, this will patch all the files from other packages to integrate them with content new features
    1. To run the script:
      • /$path_to_content_patch/$  sh script.sh
  4. Install dotlrn, then install xowiki, xotcl-core, learn-content, learn-content-portlet, dotlrn-learn-content, ajaxhelper and views
  5. Restart the server
  6. Activate the applet in a course

Release Notes


Name: Content
Version: 0.1d  (October 2007)
Developed by: Byron Linares (Galileo University)
  • Provides a simple interface to create web pages and easily include and manipulate web assets such as flash, videos, images, etc.
  • Provides a web template, easy to manage, similar to a PPT template but with built in navigation (sequential navigation, tab based organization, sub tabs supported and per unit / module navigation).
  • Folder, subfolders, pages ordering.
  • Free of "standards" approaches, so professors with basic word knowledge can use it.
  • Auto scroll (focus navigation on the content area).
  • It provides portlets for .LRN

Name: Learn Content (Renamed because Content was a very generic name)
Version: 1.0b (January 2009)
Developed by: Alvaro Rodriguez (Viaro Networks)
  • The package is an OO extension of xowiki, leaves xowiki package unmodified
  • Glossary tool, a plugin for xinha to add words to the glossary during the content edition, an admin page to manage all words and definitions, dynamic popup with the word definition inside the content
  • Integration with other dotlrn resources, a new interface to link resources from the course to the content pages, this allows the content tool to be the reference of a course like SCORM
  • User tracking, reports about all the content pages and all the users views, visits by page and visits by user
  • Header for the content, show/hide a specific title for the course on top of each page of the content
  • An admin section of the content for teachers, the xowiki's inherited admin section is only for swa
  • Automatic copy of the content to other classes/communities inside dotlrn
  • Split up the automatic template in sections to be easily changed (by developers/designers)

Technical specs


The Learn-Content Package is an OO extension of xowiki. The package generic template was split into sections so that it can be easily modified (by a developer/designer).  A new plug-in for the Xinha richtext editor allows it to interact with the new glossary feature. To use this plug-in a parameter in the Xinha configuration must be set (which is automatically added in content).

Every page instantiated along with the package (index, glossary admin, templates, etc) is now in the prototypes section of content. If a site-wide administrator deletes a page it will be loaded again when requested. There is a new admin section that is independent of xowiki's admin section, this section is in a different directory so that different permissions can be set.

Calls to content callbacks have been added to other packages in the add forms to be able to link the resources from those packages to the content pages. The callbacks extend the form of a new object to receive the page_id to be linked to, and inserts the objects into the page once it has been created in the submit section of the form.

A new proc was created that automatically copies content to other classes/comunities using the export and import options of xowiki, complete with all the categories, the mapped objects, and the activities linked to the content.

Each callback is defined and implemented in the learn-content-callback-procs, in the following way:
ad_proc -public -callback "callback_name" -impl content
if a package needs a different implementation of a callback it should be done in the package callbacks procs in the following way:
ad_proc -public -callback "callback_name" -impl $package_key
This callbacks are used inside the page that has the form for creating/editing new in the following way:
callback -catch -impl content "callback_name" -params...

To add a new package to the activities available in content, the callbacks should be added to the file(s) where the objects are created, i.e. forum-new, task-add-edit, etc.
  1. A new parameter called page_instance_id needs to be added to the ad_page_contract
  2. The following callback should be added in a place where the form can be extended
    • callback -catch -impl content learning_content::extend_form -name $form_name -page_instance_id $page_instance_id
  3. The following callback should be added in the submit section of the form after the object has been created
    • callback -catch -impl content learning_content::insert_object -name $object_name -item_id $page_instance_id -activity_id $object_id
  4. The activity should be added to the activity-new and get-activities pages in the learning-content package, check out the existing activities sections to figure out the right way to include

The script added to the package to patch the rest of the packages was generated with diff between the packages from clean oacs-5-4 and modified oacs-5-4:
diff -crNB ~/oacs-5-4/packages/$package_name ~/custom-oacs-5-4/packages/$package_name


This work was done in collaboration with Innova - UNED.

Openacs git repo on Github

Created by Jim Lynch, last modified by Jim Lynch 13 Jul 2012, at 12:35 AM

description/intro paragraph (this might as well be inline)

(all the rest are menu items, which probably open into submenu which has content)

getting started with git for openacs

git for openacs users

git for openacs coders and contributors

openacs release management using git

managing the repos

Install AOLserver

Created by OpenACS community, last modified by Gustaf Neumann 22 Jun 2012, at 05:07 PM

Get AOLserver and modules Download AOLserver and modules from CVS. Install Tcl if it is not installed yet.

Comments:
  • one should base the documentation on releases, not on head versions. So, just relying on the head version of github is not recommended for beginners.
  • newer versions of aolserver have ns_cache included (4.5.1 or newer). no need for the extra module listed below.
  • using "aolserver40r10" as name for the install directory is strange, especially, when the release is not 4.0.10
[root root]# mkdir -p /usr/local/src/aolserver40r10/
[root root]# git clone git://github.com/aolserver/aolserver.git /usr/local/src/aolserver40r10/aolserver/
[root root]# git clone git://github.com/aolserver/nssha1.git /usr/local/src/aolserver40r10/nssha1/
[root root]# git clone git://github.com/aolserver/nspostgres.git /usr/local/src/aolserver40r10/nspostgres/
[root root]# git clone git://github.com/aolserver/nsoracle.git /usr/local/src/aolserver40r10/nsoracle/
[root root]# cd /usr/local/src/aolserver40r10
[root root]# cvs -z3 -d:pserver:anonymous@aolserver.cvs.sourceforge.net:/cvsroot/aolserver co nscache

Download en:tdom, tcllib, and XOTcl.

[root aolserver]# cvs -z3 -d:pserver:anonymous@cvs.tdom.org:/usr/local/pubcvs co tdom
[root aolserver]# wget http://heanet.dl.sourceforge.net/sourceforge/tcllib/tcllib-1.10.tar.bz2
[root aolserver]# wget http://media.wu-wien.ac.at/download/xotcl-1.6.7.tar.gz

Configure, compile and install AOLserver. Many people need to run more than one version of AOLserver in parallel. This section accomodates future upgrades by installing AOLserver 4 in /usr/local/aolserver40r10.

[root aolserver]# cd /usr/local/src/aolserver40r10/aolserver
[root aolserver]# ./configure --prefix=/usr/local/aolserver40r10 \
				--with-tcl=/usr/local/lib/ \
				--enable-threads
[root aolserver]# make
[root aolserver]# make install

If this is the only version of AOLserver in use, or is the default version, create a symlink. If not, then be sure to use /usr/local/aolserver40r10 instead of /usr/local/aolserver in future steps and check any scripts and makefiles you run to ensure they use the correct path.

[root aolserver]# ln -s /usr/local/aolserver40r10 /usr/local/aolserver

Configure, compile and install the modules.

OpenACS looks for the Oracle driver at /usr/local/aolserver/bin/ora8.so, but some versions of nsoracle may create nsoracle.so instead. In that case, you can symlink (ln -s nsoracle.so ora8.so) to fix it.

  1. Install nscache

    [root aolserver]# cd /usr/local/src/aolserver40r10/nscache
    [root nscache]# make install AOLSERVER=/usr/local/aolserver40r10
  2. Install nsoracle (if you want to use Oracle)

    [root nscache]# cd ../nsoracle
    [root nsoracle]# make install AOLSERVER=/usr/local/aolserver40r10
  3. Install nspostgres (if you want to use Postgres)

    [root nscache]# cd ../nspostgres
    [root nspostgres]# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql/lib
    [root nspostgres]# make install POSTGRES=LSB \
    				ACS=1 \
    				INST=/usr/local/aolserver40r10 \
    				AOLSERVER=/usr/local/aolserver40r10
                  

     You might try POSTGRES=PG_CONFIG if that does not work.

    If you get errors like:

    nspostgres.c: In function `Ns_PgTableList':
    nspostgres.c:679: warning: passing arg 3 of `Tcl_DStringAppend' as signed due to prototype

    then PostGreSQL is probably not in the standard location.

    [jiml at cvs openacs here.] There are -new- (as of within 2nd quarter 2007) changes to nspostgres, there have been expansions of the ways to locate postgres, and changes to some error reporting. Please read the README and the Makefile. The nspostgres build can now use postgres's pg_config to locate a particular postgres installation. [jiml out]

    The location of PostGreSQL is very dependent on which method was used to install it. To correct the problem, replace LSB with the path to the path to your PostGreSQL installation. Often this is /usr/local/pgsql.

    Another possibility is that you may need to set the LD_LIBRARY_PATH environmental variable. You may still get warnings, but sometimes this will fix things enough to work.

    [root nspostgres]# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql/lib
                  

    You can use the ldd command to verify that all libraries are linked in: ldd /usr/local/src/aolserver40r10/nspostgres/nspostgres.so

    If you run into problems with libpq.a do the following (and repeat the step above)

    [root nspostgres]# ranlib /usr/local/pgsql/lib/libpq.a

    If you run into problems with the linker, edit the Makefile. Add -lnsdb to the MODLIBS var.

    MODLIBS = -L$(PGLIB) -lpq -lnsdb
  4. Install nssha1

    [root nspostgres]# cd ../nssha1

    Now install nssha1:

    [root nssha1]# make install NSHOME=/usr/local/aolserver40r10

    If the make fails you will have to edit nssha1.c. Comment out the following 2 lines (lines 139-140):

    // typedef unsigned int u_int32_t;
    // typedef unsigned char u_int8_t;
  5. Install tDOM Note, if you use bash31 you need to apply a patch, see http://openacs.org/forums/message-view?message_id=369867 for details.

    [root nssha1]# cd ../tDOM-0.8.0/unix

    Edit the CONFIG file. Uncomment the instructions meant for AOLserver 4, but edit it to look like this:

    ../configure --enable-threads --disable-tdomalloc --prefix=/usr/local/aolserver40r10 --with-tcl=/usr/local/src/aolserver40r10/tcl-8.4.14/unix

    Now you can compile and configure tDOM

    [root unix]# sh CONFIG
    [root unix]# make install
  6. Install tcllib

    [root aolserver]# cd /usr/local/src/aolserver40r10
    [root aolserver]# tar xvfj tcllib-1.10.tar.bz2
    [root aolserver]# cd tcllib-1.10
    [root aolserver]# ./configure --prefix=/usr/local/aolserver40r10
    [root aolserver]# make install
    
  7. Install XOTcl

    [root aolserver]# cd /usr/local/src/aolserver40r10
    [root aolserver]# tar xvfz xotcl-1.6.7.tar.gz
    [root aolserver]# cd xotcl-1.6.7/
    [root aolserver]# export CC=gcc
    [root aolserver]# ./configure --enable-threads --enable-symbols \
    				--prefix=/usr/local/aolserver40r10 \
    				--exec-prefix=/usr/local/aolserver40r10 \
    				--with-tcl=/usr/local/src/aolserver40r10/tcl8.4.14/unix
    [root aolserver]# make
    [root aolserver]# make install-aol
    

Add a database-specific wrapper script. This script sets database environment variables before starting AOLserver; this allows the AOLserver instance can communicate with the database. There is one script each for Oracle and PostgreSQL. They don't conflict, so if you plan to use both databases, install both. Note that this section requires you to have the OpenACS, which you can get through CVS, through a tarball, or by other means. You can come back to this section after you acquire the OpenACS code, but don't forget to come back. (Note to maintainers: this should be moved to the next page and integrated into the text there)

  • Oracle

    [root aolserver]# cd /usr/local/aolserver40r10/bin
    [root bin]# cp /tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/nsd-oracle.txt ./nsd-oracle
    [root bin]# chmod 750 nsd-oracle
    [root bin]#
    
  • PostgreSQL

    [root aolserver]# cd /usr/local/aolserver40r10/bin
    [root bin]# cp /var/tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres
    [root bin]# chmod 755 nsd-postgres
    [root bin]#
    

You may need to edit these scripts if you are not using /usr/local/aolserver as the directory of Aolserver4.

Test AOLserver. We will use the sample-config.tcl file provided in the AOLserver distribution to test AOLserver. This test will use the nobody user and web group. The sample-config.tcl configuration writes to the default log locations, so we need to give it permission to do so or it will fail. Grant the web group permission to write to /usr/local/aolserver/log and /usr/local/aolserver/servers.

[root root]# cd /usr/local/aolserver
[root aolserver]# chown -R root.web log servers
[root aolserver]# chmod -R g+w log servers
[root aolserver]# ls -l
total 32
drwxr-sr-x    2 root     root         4096 Mar  8 12:57 bin
drwxr-xr-x    3 root     root         4096 Mar  8 10:34 include
drwxr-sr-x    3 root     root         4096 Mar  8 10:34 lib
drwxrwsr-x    2 root     web          4096 Mar  8 10:31 log
drwxr-sr-x    3 root     root         4096 Mar  8 10:31 modules
-rw-r--r--    1 root     root         7320 Mar 31  2001 sample-config.tcl
drwxrwsr-x    3 root     web          4096 Mar  8 10:31 servers
[root aolserver]#

Note: AOLserver4.x does not include a default start page, so we create one for this test. Type echo "Welcome to AOLserver" > /usr/local/aolserver40r10/servers/server1/pages/index.html

Now, run AOLserver using the sample configuration to verify it runs without errors. This configuration attempts to automatically get the machine's IP address and hostname. It will then start up the server at port 8000 of that IP address.

[root aolserver]# ./bin/nsd -t sample-config.tcl -u nobody -g web
[root aolserver]# [08/Mar/2003:15:07:18][31175.8192][-main-] Notice: config.tcl: starting to read config file...
[08/Mar/2003:15:07:18][31175.8192][-main-] Warning: config.tcl: nsssl not loaded -- key/cert files do not exist.
[08/Mar/2003:15:07:18][31175.8192][-main-] Warning: config.tcl: nscp not loaded
-- user/password is not set.
[08/Mar/2003:15:07:18][31175.8192][-main-] Notice: config.tcl: finished reading
config file.

The first warning, about nsssl, can be ignored. We will not be using nsssl; we will be using nsopenssl instead. The nssl error happens because we have not fully configured secure connections to use nsopenssl. The nscp warning means that without a user and password in the sample-config.tcl file, the administrative panel of AOLserver will not load. We do not plan to use it and can ignore that error as well. Any other warning or error is unexpected and probably indicates a problem.

Test to see if AOLserver is working by starting Mozilla or Lynx on the same computer and surfing over to your web page. If you browse from another computer and the sample config file didn't guess your hostname or ip correctly, you will get a false negative test.

[root aolserver]# lynx localhost:8000

You should see a "Welcome to AOLserver" page. If this does not work, try browsing to http://127.0.0.1:8000/. If this still does not work, read the en:aolserver-admin section on "Troubleshooting AOLserver". Note that you will not be able to browse to the web page from another machine, because AOLserver is only listening to the local address.

Shutdown the test server:

[root aolserver]# killall nsd
[root aolserver]#

The killall command will kill all processes with the name nsd, but clearly this is not a good tool to use for managing your services in general. We cover this topic in en:aolserver-admin section.

Set up the file system for one or more OpenACS Sites

This should already have been done, according to the instructions at the bottom of this page: en:Get_the_Code

Set up a user account for each site.

AOLserver needs to be started as the root user if you want to use port 80. Once it starts, though, it will drop the root privileges and run as another user, which you must specify on the command line. This user should have as few privileges as possible, because if an intruder somehow breaks in through AOLserver, you do not want the intruder to have any ability to do damage to the rest of your server.

At the same time, AOLserver needs to have write access to some files on your system in order for OpenACS to function properly. So, we run AOLserver with a different user account for each different service. Create the username as $OPENACS_SERVICE_NAME.

The password should be blank, to prevent login by password, for increased security. The only way to log in will be with ssh certificates. The only people who should log in are developers for that specific instance. Add this user, and put it in the $OPENACS_SERVICE_NAME group so that it can use database and server commands associated with that group. (If you don't know how to do this, type man usermod. You can type groups to find out which groups a user is a part of)

[root root]# useradd $OPENACS_SERVICE_NAME

You also need to set up a group called web.

[root root]# groupadd web
      

Then change the user to be a part of this group:

[root root]# usermod -g web $OPENACS_SERVICE_NAME
      

ref: http://openacs.org/doc/aolserver4.html

Migration from CVS to GIT

Created by Victor Guerra, last modified by Jim Lynch 15 Jun 2012, at 01:36 AM


IMPORTANT!!! by no means the statements written in this page are official. At the moment one should consider this information just and only for experimental purposes. There are no official decisions made by the OCT so far regarding migration to GIT or any other source control tool.  At the moment CVS is the official tool used and you can navigate the project history and code at our official code and history inspector Fisheye OpenACS

Tools to consider for the migration (?):

  • GIT includes a tool for the migration of CVS repositories called git-cvsimport.
  • The cvs2svn project provides support for converting a CVS repository into GIT. The tool is called cvs2git

Structure of the GIT Repository (?):

  • One git repository hosting the entire code base of openacs ( including contrib and all packages ). 
  • Provide separate git repositories; one hosting the core packages and independent repositories for each of the other packages. 
  • TODO: checkout the subtree subcommand to manipulate non-core packages git-subtree

Where could the repositories live (?):

  • Official repositories on openacs.org machine? (Perhaps setting up git.openacs.org)  and having remote-mirrored repositories on github so developers can clone and share patches using github. -- jiml: many tools which could get similar function to github (forking, pull requests),,, what would be required to get a git.openacs.org?  can we put up a gitorious on a test site with maybe 50gb of repo space so all the committers can have their own?
  • Using github.com as our official nest. (jiml says: there's a 300mb limit, and a full repo is over that, jcdny says: asked the github admins and they said limit is "soft, and only enforced to prevent abuse")

Points to consider before | when migrating to GIT: 

  • Application for voting on oct-elections depends on commits history ( most likely this will transparent since we use fisheye.openacs.org  for fetching information about commit history , and fisheye provides one and one only interface for querying data, so the fact that the code is being controlled by cvs or git is irrelevant)
  • Installing-software-from-repository code is based on channels and cvs-tags in order to define which channels are available to users ( http://openacs.org/repository/) and to provide the recent packages for that channel.  The same tags can be used in git as well, but the code retrieving this information has to be rewritten.
  • It is necessary to provide git-guidelines similar to cvs-guidelines 

Release management using GIT:

How to contribute to OpenACS using GIT: 

(jiml) probably they would git clone the repo using ssh acct, commit to their own repos then git push origin

I was told of a code review tool at http://www.reviewboard.org/ which we could look at.

In recent news, Victor Guerra has pulled the cvs into github into an account Victor created called openacs. In order to make git and the github account easier to use, we're creating very skeletal, short documents which when flushed out and assembled would become a guide for users, developers and admins for how everyone can participate in openacs using git. Link to come very shortly as I'm creating them now. Stay tuned....

The first page is basically a menu page to the openacs on git guides. It starts its life empty. I have some material to fill in, the way I want to do the user guide is start with some paragraphs I wrote, and put each on a separate wiki page so they can be filled out, gradually becoming useful. Let's see what we can do.

Install OpenACS on debian unstable / Ubuntu 7.10

Created by David Arroyo Menéndez, last modified by Gustaf Neumann 09 Nov 2011, at 02:07 PM

There are now debian packages for all OpenACS requirements, and OpenACS (.LRN) itself.

See The debian wiki page

The rest of this page is superseded by the debian wiki page.

You can also use the en:OpenACSDebianInstallGuide quicksheet.

Install tcl 8.4

apt-get install tcl8.4 tcl8.4-dev tcl8.4-doc

Install PostgreSQL 8.2

(from ubuntu repository or debian etch) for PG 8.2 I had to add this line to the /etc/apt/sources.list (under debian etch) 

deb http://www.backports.org/debian etch-backports main contrib non-free

Install with apt

apt-get install postgresql-8.2 postgresql-client postgresql-dev postgresql-doc
under debian-etch I did this to avoid downloading some 7.4-packages
apt-get install postgresql-8.2 postgresql-client-8.2 postgresql-dev postgresql-doc-8.2

Config the postgresql 8.x

from http://openacs.org/xowiki/How_to_install_in_Postgres_8.x
/etc/postgresql/8.2/main/postgresql.conf
add_missing_from = on
regex_flavor = extended
default_with_oids = on
On debian you could need to change the postgresql port number to 5432, see /etc/postgresql/8.2/main/postgresql.conf

Create the database

su postgres -c "/usr/lib/postgresql/8.2/bin/createlang plpgsql template1"
su postgres -c "createuser service"

Shall the new user be allowed to create
    databases? (y/n) y
  Shall the new user be allowed to create
    more new users? (y/n) y
  CREATE USER
su postgres -c "createdb -E UNICODE service"

Install AOLserver

(AOLserver 4.5 for now only from debian unstable)
# Note: on ubuntu maybe more better install AOLserver 4.0 and you can download it from debian stable
  1. Add the next lines to /etc/apt/sources.list
    deb http://http.us.debian.org/debian stable main contrib non-free
    deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
    deb http://security.debian.org stable/updates main contrib non-free
  2. Update
    apt-get update
    # If you have any trouble with gpg keys, then you must read: http://www.davidam.com/debian/debian-gpg

  3. Install wit apt

    apt-get install -t unstable aolserver4 aolserver4-nscache aolserver4-nsopenssl aolserver4-nspostgres aolserver4-nssha1 aolserver4-dev aolserver4-doc daemontools-installer cvs

    *note: unpack the https.gz from aolserver4-nsopenssl and copy it over to the tcl directory of aolserver4, if not the api with https such as ns_httpspost will not be available.

    https.gz is normally found at /usr/share/doc/aolserver4-nsopenssl/examples/

    The tcl directory for aolserver4 is normally found at /usr/lib/aolserver4/modules/tcl/

  4. Install tdom from cvs
    # Sometimes cvs.tdom.org is down, if you have problems you can download with
    wget http://cognovis.de/file-storage/view/aolserver45.tar.bz2
    cd /usr/lib/aolserver4
    sudo ln -s /usr/include/aolserver4 include
    mkdir /usr/local/src/aolserver4
    cd /usr/local/src/aolserver4
    sudo cvs -z3 -d:pserver:anonymous@cvs.tdom.org:/usr/local/pubcvs co tdom
    cd tdom/unix
    ../configure --enable-threads --disable-tdomalloc --with-aolserver=/usr/lib/aolserver4 --prefix=/usr/lib/aolserver4 --with-tcl=/usr/lib/tcl8.4
    sudo make install
  5. Install XOTcl
    cd /usr/local/src
    sudo wget http://media.wu-wien.ac.at/download/xotcl-1.6.7.tar.gz
    sudo tar xvfz xotcl-1.6.7.tar.gz
    cd xotcl-1.6.7/
    export CC=gcc
    sudo ./configure --enable-threads --enable-symbols --prefix=/usr/lib/aolserver4 --exec-prefix=/usr/lib/aolserver4 --with-tcl=/usr/lib/tcl8.4
    sudo make
    sudo make install-aol
  6. Install TclLib
    cd /usr/local/src
    sudo wget http://kent.dl.sourceforge.net/sourceforge/tcllib/tcllib-1.10.tar.gz
    sudo tar xvzf tcllib-1.10.tar.gz
    cd tcllib-1.10
    sudo ./configure --prefix=/usr/lib/aolserver4
    sudo make install

Download and config OpenACS 5.4

  1. Create the directory where we can install OpenACS
    adduser service
    su - service
    mkdir aolserver
    cd aolserver
  2. Copy the two config files aolserver.nsadmin and nsadmin.tcl there:
    wget http://www.davidam.com/debian/aolserver.nsadmin
    wget http://www.davidam.com/debian/nsadmin.tcl
  3. Change nsadmin to service
    mv aolserver.nsadmin aolserver.service
    mv nsadmin.tcl service.tcl

    sed -i "s/nsadmin/service/g" aolserver.service service.tcl
  4. Download OpenACS from cvs
    cvs -z3 -d :pserver:anonymous@cvs.openacs.org:/cvsroot co -r oacs-5-4 openacs-4
    mv openacs-4 service
    chmod 774 aolserver.service

     # create log directory (if needed)

    mkdir service/log
  5. Start AOLserver
    ./aolserver.service start
    Some minutes after that, it must be runing on http://localhost:8000

Install OpenACS on Mac OS X 10.5 / 10.6 (Snow Leopard) Using Macports

Created by Malte Sussdorff, last modified by Gustaf Neumann 03 Nov 2011, at 02:26 PM

I worked off the work of Dave Bauer and used Macports.

Unfortunately, the default configuration of Mac OS X does not allow suitable amounts of shared memory to be created to run the database server. 

Therefore you should edit your /etc/sysctl.conf

On a MacBook Pro with 2GB of RAM, the author's sysctl.conf contains:

kern.sysv.shmmax=1610612736

kern.sysv.shmall=393216

kern.sysv.shmmin=1

kern.sysv.shmmni=32

kern.sysv.shmseg=8

kern.maxprocperuid=512

kern.maxproc=2048

Download and install MacPorts from http://www.macports.org/install.php and get the latest version (1.7.1 as of 2009-04-18)

Install PostgreSQL 8.4

sudo port -k install postgresql84
cd `port work postgresql84`/postgresql-8.4.7/contrib/ltree
make all
sudo make install
sudo port install postgresql84-server
This installs expat, gperf, libiconv, ncursesw, ncurses, gettext, m4, bison, zlib, libxml2, libxslt1, openssl, readline, postgresql82. The macports install then says
To create a database instance, after install do
sudo mkdir -p /opt/local/var/db/postgresql84/defaultdb
sudo chown postgres:postgres /opt/local/var/db/postgresql84/defaultdb
sudo su postgres -c '/opt/local/lib/postgresql84/bin/initdb -D /opt/local/var/db/postgresql84/defaultdb'

Then after initdb postgres says to start postgresql. Before that edit the config file to make it compatible with ACS

sudo emacs -nw /opt/local/var/db/postgresql84/defaultdb/postgresql.conf
Once you have emacs open, change the following config items:
autovacuum = on
add_missing_from = on
default_with_oids = on
regex_flavor = extended

Now start the PostgreSQL Server 

sudo su postgres -c  '/opt/local/lib/postgresql84/bin/postgres -D /opt/local/var/db/postgresql84/defaultdb' &

Install plpgsql as a language

/opt/local/lib/postgresql84/bin/createlang plpgsql template1 -U postgres

Last but not least, put postgresql under launchctl so you can start and stop it: 

sudo launchctl load -w /Library/LaunchDaemons/org.macports.postgresql84-server.plist 

To start it from then on just call

sudo launchctl start org.macports.postgresql84-server

To stop it:

sudo launchctl stop org.macports.postgresql84-server

Install AOLserver 4.5

sudo port install tcl +threads +headers

This will install Tcl with threads enabled, which is needed for AOLserver.

sudo port install aolserver
Now we have AOLserver installed into /opt/local/aolserver. You now need to configure the server to your needs. You might want to create another user (e.g. aolserver) to run the server. First get all the files:
    cd /usr/local/src
    mkdir aolserver 
    cd aolserver 
    TCLLIB=1.13
    XOTCL=1.6.7
    # Path for the AOLserver installation 
    NS=/opt/local/aolserver
    cvs -z3 -d:pserver:anonymous@aolserver.cvs.sourceforge.net:/cvsroot/aolserver co nssha1 
    cvs -z3 -d:pserver:anonymous@aolserver.cvs.sourceforge.net:/cvsroot/aolserver co nspostgres
    echo "Getting TDOM ..." 
    git clone git://github.com/tDOM/tdom.git
    echo "Getting TCL modules ..." 
    curl -L -O http://downloads.sourceforge.net/tcllib/tcllib-${TCLLIB}.tar.bz2 
    curl -L -O http://downloads.sourceforge.net/tcl/thread2.6.5.tar.gz 
    curl -L -O http://media.wu-wien.ac.at/download/xotcl-${XOTCL}.tar.gz

Now install nssha1

 
    cd nssha1
    sudo make install NSHOME=${NS} 
    cd ..

Now go for nspostgres

 
    cd nspostgres/

    # Edit the Makefile so it reads (adding the "-lnsdb")
    MODLIBS = -L$(PGLIB) -lpq -lnsdb
    
    sudo make install AOLSERVER=/opt/local/aolserver/ PGCONFIG=/opt/local/lib/postgresql84/bin/pg_config POSTGRES=/opt/local PGINC=/opt/local/include/postgresql84/ PGLIB=/opt/local/lib/postgresql84/ ACS=1
    cd ..

tDOM

 
    cd tDOM-0.8.2/unix
    ../configure    --mandir=/usr/local/share/man    --libdir=/opt/local/aolserver/lib    --with-tcl=/opt/local/lib   --with-aolserver=/opt/local/aolserver
    sudo make install 
    cd ../..

Thread

 
    tar xvfz thread2.6.5.tar.gz 
    cd thread2.6.5/unix 
    ../configure    --mandir=/usr/local/share/man    --libdir=/Library/Tcl    --with-tcl=/System/Library/Frameworks/Tcl.framework    --with-tclinclude=/System/Library/Frameworks/Tcl.framework/Headers    --with-aolserver=/opt/local/aolserver 
    sudo make install
    cd ../..

XOTcl

The private header files of Tcl are missing, therefore I got the source and recompiled Tcl:

  curl -L -O http://downloads.sourceforge.net/tcl/tcl8.5.9-src.tar.gz
  tar xfz tcl8.5.9-src.tar.gz
  cd tcl8.5.9/unix
  ./configure --enable-threads --prefix=/opt/local --disable-corefoundation 
  sudo make install
  cd ../..

  tar xvfz xotcl-1.6.7.tar.gz 
  cd xotcl-1.6.7
  NS=/opt/local/aolserver/ 
  ./configure --enable-threads --enable-symbols --prefix=${NS} --exec-prefix=${NS} --with-tcl=/opt/local/lib
  sudo make install-aol
  cd .. 

Now we finish off with tcllib

 
  tar xvfj tcllib-1.13.tar.bz2 
  cd tcllib-1.13
  ./configure --prefix=/opt/local/aolserver/ 
  sudo make install
Type in terminal before starting nsd
  ulimit -n 256
I would recommend to install the server in ~/Sites/yourserver if you don't intend to run multiple different servers with access rights on your machine. Checkout the OpenACS code and Edit ~/Sites/yourserver/etc/config.tcl and make the following changes
# Change the server root
set serverroot                "~/Sites/${server}"

# Make sure that OpenACS finds PostgreSQL. Add two lines to the $database if statement

if { $database eq "oracle" } {
    set db_password           "mysitepassword"
} else {
    set db_host               localhost
    set db_port               ""
    set db_user               $server
    ns_section "ns/db/driver/postgres"
    ns_param   pgbin              /opt/local/lib/postgresql84/bin/
}

# Change the AOLserver location
set homedir                   /opt/local/aolserver

Now you can start up your server. First try ist with /opt/local/aolserver/bin/nsd -t ~/Sites/yourserver/etc/config.tcl. If this works you might want to create a launchctl entry as you did above for postgresql

Edit /Library/LaunchDaemons/org.openacs.YOURSERVER.plist and enter the following

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Label</key>
        <string>org.openacs.YOURSERVER</string>
        <key>OnDemand</key>
        <false/>
        <key>ProgramArguments</key>
        <array>
            <string>/Users/youruser/Sites/yourserver/etc/daemontools/run</string>
        </array>
        <key>ServiceDescription</key>
        <string>OpenACS Service</string>
        <key>UserName</key>
        <string>youruser</string>
        <key>GroupName</key>
        <string>staff</string>
    </dict>
</plist>

Now put yourserver under launchctl so you can start and stop it: 

sudo launchctl load -w /Library/LaunchDaemons/org.openacs.yourserver.plist 

To start it from then on just call

sudo launchctl start org.openacs.yourserver

To stop it:

sudo launchctl stop org.openacs.yourserver 

It is a good idea to schedule regular backups for your server(s). To do this create a shell script, e.g. backup.sh which executes your backups and then create a launchdaemon plist to run your backups nightly

Edit /Library/LaunchDaemons/org.openacs.backup.plist and enter the following

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Label</key>
        <string>org.openacs.backup</string>
        <key>ProgramArguments</key>
        <array>
        <string>/Users/youruser/Sites/backup.sh</string>
        </array>
        <key>LowPriorityIO</key>
                <true/>
                <key>Nice</key>
                <integer>1</integer>
                <key>StartCalendarInterval</key>
                <dict>
                        <key>Hour</key>
                        <integer>3</integer>
                        <key>Minute</key>
                        <integer>15</integer>
                </dict>
    </dict>
</plist>

If you intend to run AOLserver on a continous basis remember that it is a great idea to make sure it responds properly. To do this you can run a keepalive service.

Edit /Library/LaunchDaemons/org.openacs.keepalive.plist and enter the following

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Label</key>
        <string>org.openacs.keepalive.plist</string>
        <key>ProgramArguments</key>
        <array>
            <string>/Users/youruser/Sites/keepalive.sh</string>
	    <string>yourserver</string>
            <string>yourport</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>StartInterval</key>
        <integer>180</integer>
</dict>
</plist>

Your keepalive.sh could look like this

#!/bin/bash 
GREP=/usr/bin/grep
HEAD="/usr/bin/head -1"

INSTANCE="$1";
PORT="$2"

[ -z "$1" ] && exit
[ -z "$2" ] && exit

MAIL_ADDR=""
WGET_FILE=/tmp/.output-keepalive-${INSTANCE}
URL_TEST="http://127.0.0.1:${PORT}/SYSTEM/dbtest"
[ -f ${WGET_FILE} ] && rm -f ${WGET_FILE}  

_restartwebserver ()
{

/bin/launchctl start org.openacs.$INSTANCE
sleep 3
/bin/launchctl start org.openacs.$INSTANCE
}

_sendmail ()
{
echo "${1}" |mailx -s AolWebserver ${MAIL_ADDR}
}

while [ 1 -eq 1 ];
do
        [ -f ${WGET_FILE} ] && /bin/rm -f ${WGET_FILE}
        /usr/bin/curl -s -o $WGET_FILE --connect-timeout 3 --retry 3 "${URL_TEST}"

        if [ -f ${WGET_FILE} ] 
                then
                FIRST_LINE=`${HEAD} ${WGET_FILE} | ${GREP} -i "success"`
                [ -z "${FIRST_LINE}" ] && _restartwebserver && _sendmail "I just restarted the $INSTANCE webserver on `uname -n`" && echo "`date +'%D-%H:%M'` :: FAILURE" || echo "`date +'%D-%H:%M'` :: success $INSTANCE" >>/Users/malte/Sites/keepalive.log 
                else
                _restartwebserver && _sendmail "I just restarted the $INSTANCE webserver on `uname -n`"
#               _restartwebserver
                echo "`date +'%D-%H:%M'` :: FAILURE"
        fi
done

If you intend to run AOLserver on a continous basis remember that it is a great idea to restart your server once per night, otherwise the memory footprint will grow and grow and grow.

Edit /Library/LaunchDaemons/org.openacs.restart.plist and enter the following

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Label</key>
        <string>org.openacs.restart</string>
        <key>OnDemand</key>
        <false/>
        <key>ProgramArguments</key>
        <array>
            <string>/Users/youruser/Sites/restart.sh</string>
        </array>
         <key>LowPriorityIO</key>
        <true/>
                <key>Nice</key>
                <integer>1</integer>
                <key>StartCalendarInterval</key>
                <dict>
                        <key>Hour</key>
                        <integer>4</integer>
                        <key>Minute</key>
                        <integer>15</integer>
                </dict>
</dict>
</plist>

Now put scripts under launchctl so they will run in the night: 

sudo launchctl load -w /Library/LaunchDaemons/org.openacs.backup.plist

sudo launchctl load -w /Library/LaunchDaemons/org.openacs.restart.plist

sudo launchctl load -w /Library/LaunchDaemons/org.openacs.keepalive.plist

Your restart.sh could look like this

  #!/bin/bash
  echo "cognovis"
  sudo launchctl stop org.openacs.yourserver
  sleep 10
  sudo launchctl start org.openacs.yourserver 

XOTcl

Created by Gustaf Neumann, last modified by Gustaf Neumann 03 Nov 2011, at 02:25 PM

XOTcl is an object oriented extension for Tcl and required part of OpenACS installations since  TIP #87. The OpenACS package xotcl-core provides base functionality and integration with the OpenACS framework.

The current version of XOTcl is 1.6.7. Read about XOTcl motivations and  feature from http://media.wu-wien.ac.at/whatIsXOTcl.html . For more details about XOTcl, see XOTcl Homepage .

INSTALLATION of XOTcl:

One can get XOTcl e.g. in binary form from debian or it can be complied from source. The following instructions describe, how to compile XOTcl from source.
  1. Get, compile and install XOTcl

    Get xotcl-1.6.7:

    cd /usr/local/src
    wget http://media.wu-wien.ac.at/download/xotcl-1.6.7.tar.gz
    tar zxvf xotcl-1.6.7.tar.gz

    The following commands can be used to compile XOTcl and install it into the appropriate places of the specified aolserver. We assume that the aolserver is installed under /usr/local/aolserver:

    cd xotcl-1.6.7
    CC=gcc;export CC
    ./configure --enable-threads --enable-symbols --prefix=/usr/local/aolserver --exec-prefix=/usr/local/aolserver --with-tcl=/usr/src/tcl8.4.16/unix

    Use appropriate paths for aolserver4 and your tcl version.

    make
    make install-aol

    After the "make install-aol" from the XOTcl sources, a file xotcl.tcl is installed in the directory /usr/local/aolserver/modules/tcl/ that handles .xotcl files and XOTcl serialization in the aolserver.

  2. Restart your aolserver to load xotcl.

News aggregator

Created by Emmanuelle Raffenne, last modified by Emmanuelle Raffenne 28 Jun 2011, at 05:36 PM

Error in includelet '{{adp /www/templates/info-file {package_key news-aggregator}}}' of page en:news-aggregator:
Nesting of includelets is to deep
p>
Error in includelet '{{adp /www/templates/bug-tracker {package_key news-aggregator}}}' of page en:news-aggregator:
Nesting of includelets is to deep
p>
Error in includelet '{{adp /www/templates/metrics {package_key news-aggregator}}}' of page en:news-aggregator:
Nesting of includelets is to deep

tDOM

Created by OpenACS community, last modified by Gustaf Neumann 04 May 2011, at 05:41 PM

A tcl-based package, tDOM combines high performance XML data processing with easy and powerful Tcl scripting functionality. tDOM is one of the fastest ways to manipulate XML with a scripting language and uses very little memory.

More info at tdom.github.com (mailing list )

What others say about tDOM

Using tDOM with OpenACS

en:tdom-programming

for beginning developers

Created by OpenACS community, last modified by Gustaf Neumann 12 Mar 2011, at 11:40 PM

Tutorials for OpenACS development

Other related tutorials

See also: OpenACS Mentorship Program

Other useful resources

Web Sites

Books

.LRN Zen Project - YEF

Created by Avni Khatri, last modified by Dave Bauer 23 Feb 2011, at 04:07 PM

Overview

This page is being used to track the work done for the .LRN Zen Project Phase Two with money received from the YEF grant. The grant will cover work to make the latest forums package conform to WCAG 2.0 AA accessibility standards. The goal is to finish the project in time to apply for a large YEF grant in the next cycle - June 2011.

Team Members

  • Dave Bauer
  • Avni Khatri
  • Carl Blesius
  • Emmanuelle Raffenne
  • Michael Steigman

Regular Meetings

  • Wednesdays 6:10pm PT / 9:10pm ET
  • Ask Avni for the dial-in if you want to attend

Current Status

  • Overall status
    • Dave reviewed all of the WCAG 2.0 Guidelines document to get a better understanding of the scope of this project.
      The good news is that since we use consistent templates, forms, etc most of the code is automatically generated and we can make the code generators compliant and just check the output. 
      He's modified the spreadsheet list to combine the checklist and functional steps because it was recommended to go straight to the WCAG documents.
  • Action items
    • (Dave) Try out the proposed process on one of the forum pages - 2/16
    • (Avni) Work with Emmanuelle (if she has time) to come up with simplified WCAG 2.0 AA checklist we will use - 2/16
      • http://webaim.org/standards/wcag/checklist 
    • Send Emmanuelle a finalized project plan with estimates and have her review - 2/23

Estimated LOE

  • https://spreadsheets.google.com/ccc?key=0Ai-_Aw_13c7ddGFvNHRiaS1zZElfSGdJZTNwLTB1b1E
  • Current estimate for the work is 74.25 not counting meetings

Relevant Links

Hour Tracking

  • Try out proposed process (Dave) = .5 hour
  • Come up with simplified checklist (Avni, Emmanuelle) = ? 
  • Meeting 2/9 - 0.5 * 2 (Dave, Avni) = 1 hour
  • Create project tracking page (Avni) = 1 hour
  • Meeting 2/2 - 0.5 * 3 (Dave, Carl, Avni) = 1.5 hours
  • Determine LOE - (Dave) = 1 hour
  • Meeting 1/26 - 0.5 * 3 (Dave, Carl, Avni) = 1.5 hours
  • Discuss scope of project, package (Dave, Michael) = ?
  • Meeting 1/19 - 0.5 * 3 (Dave, Carl, Avni) = 1.5 hours


OpenACS/.LRN for Debian

Created by Héctor Romojaro, Stefan Sobernig, last modified by Héctor Romojaro 22 Feb 2011, at 12:07 PM


Logo


Packages of OpenACS  and .LRN  are now available for Debian GNU/Linux . We hope to facilitate the adoption by novices and the infrastructure deployment by professional users, both running Debian GNU/Linux  and its derivates. Our packaging activity explicitly targets Debian GNU/Linux  stable , testing and unstable . Important dependencies are co-maintained with the Debian Tcl/Tk Maintainers .

See also OpenACS for Ubuntu.

Getting started

Please, review the section on supported distributions first.  Currently, the core packages (openacs, dotlrn) and their dependencies are included into the official Debian GNU/Linux  repositories.

Install


  1. Run:

    apt-get update

  2. (optional) Provide for a PostgreSQL environment: If you don't have a PostgreSQL installation at hand, provide one. You do not need to care about setting up a concrete data base. This is automatically done by the openacs and dotlrn post-install instructions. For further PostgreSQL-related set-up issue, see ...

    apt-get install postgresql
    If you run a remote PostgreSQL instance, remember to allow for access of the PostgreSQL Administrator (postgres) and the openacs/dotlrn user from machine hosting your OpenACS/.LRN installation.

  3. Install the core packages and follow the on-screen instructions:

    # OpenACS
    apt-get install openacs
    ... or ...

    # .LRN
    apt-get install dotlrn

After Install

  1. (optional) To change IP address and port of the instance, please edit the file:

    # OpenACS
    /etc/openacs/openacs.sh

    # dotLRN
    /etc/dotlrn/dotlrn.sh


  2. (optional) To control the instance using daemontools, please install the daemontools debian packages and follow the instructions on the file:


    # OpenACS
    /usr/share/doc/openacs/README.daemontools

    # dotLRN
    /usr/share/doc/dotlrn/README.daemontools

To-dos

Next Steps, After Basic Installation (above)

People

Active contributors

  • Héctor Romojaro 
  • Stefan Sobernig
  • Avni M. Khatri
  • Carl R. Blesius


Packages status


Packages maintained by Debian Tcl/Tk Maintainers 
Packages co-maintained by OCT & Debian Tcl/Tk Maintainers 

    Prodding

    Please, for getting in contact and reporting issues, consider ...

    OpenACS/.LRN for Ubuntu

    Created by Héctor Romojaro, last modified by Héctor Romojaro 22 Feb 2011, at 12:00 PM


    Packages of OpenACS  and .LRN  are now available for Ubuntu Linux . We hope to facilitate the adoption by novices and the infrastructure deployment by professional users, both running Debian GNU/Linux  and its derivates. This is an on-going effort. Beware, our packaging activity explicitly targets Ubuntu Linux  10.04 LTS (Lucid Lynx) and further versions. Important dependencies are co-maintained with the Debian Tcl/Tk Maintainers .

    See also OpenACS for Debian.

    Getting started

    Please, review the section on supported distributions first. Currently, the core packages (openacs, dotlrn) are included into the Universe Ubuntu repository.

    Release packages for Ubuntu 10.04 and Further


    1. Run:


      apt-get update
    2. (optional) Provide for a PostgreSQL environment: If you don't have a PostgreSQL installation at hand, provide one. You do not need to care about setting up a concrete data base. This is automatically done by the openacs and dotlrn post-install instructions.


      apt-get install postgresql
      If you run a remote PostgreSQL instance, remember to allow for access of the PostgreSQL Administrator (postgres) and the openacs/dotlrn user from the machine hosting your OpenACS/.LRN installation.

    3. Install the core packages and follow the on-screen instructions:


      # OpenACS
      apt-get install openacs
      ... or ...


      # .LRN
      apt-get install dotlrn

    After Install

    1. (optional) To change IP address and port of the instance, please edit the file:

      # OpenACS
      /etc/openacs/openacs.sh

      # dotLRN
      /etc/dotlrn/dotlrn.sh



    2. (optional) To control the instance using daemontools, please install the daemontools ubuntu packages and follow the instructions on the file:


      # OpenACS
      /usr/share/doc/openacs/README.daemontools

      # dotLRN
      /usr/share/doc/dotlrn/README.daemontools

    People

    Active contributors

    • Héctor Romojaro 
    • Stefan Sobernig
    • Avni M. Khatri
    • Carl R. Blesius


    Packages status


    Packages maintained by Debian Tcl/Tk Maintainers 
    Packages co-maintained by OCT & Debian Tcl/Tk Maintainers 

    Community packages maintained by OCT

    Prodding

    Please, for getting in contact and reporting issues, consider ...

    Chat

    Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 08 Feb 2011, at 09:37 AM

    Error in includelet '{{adp /www/templates/info-file {package_key chat}}}' of page en:chat:
    Nesting of includelets is to deep
    Error in includelet '{{adp /www/templates/bug-tracker {package_key chat}}}' of page en:chat:
    Nesting of includelets is to deep
    Error in includelet '{{adp /www/templates/metrics {package_key chat}}}' of page en:chat:
    Nesting of includelets is to deep

     The chat package is using currently two different chat engines:

    1. The Java applet and the Java chat server, or
    2. the Ajax based chat class from xotcl-core

    If no xotcl-core is installed, one can only use the version with Java applet. If xotcl-core is installed, one has to option to choose between both engines via parameter.

    In essence, the Ajax based variant is the chat implementation from xowiki plus chat room management and a list of the currently connected users. Originally, the ajax-based chat class (::xo::Chat) was developed for xowiki, but later moved to xotcl-core such that the chat package does not need a dependency on xotcl-core and xowiki.

    Actually, the chat support in xowiki contains a different variety of ajax based communication strategies:

    1. Polling mode (the web browser queries via ajax in definable intervals the server, and checks, if there is some new information available), and
    2. Streaming mode (the client opens a connection to the server, the server pushes the information back to the client. xowiki chat supports two different submodes:
      1. streaming of JSON  objects via asynchronous AJAX sockets, or
      2. scripted streaming, where the browser loads HTML with embedded script tags in the background  from an hidden iframe

    Both (2a) and (2b) require libthread support and a small patch for the aolserver, so they are currently not for beginners. However, the advantage of the streaming approaches is that they are much faster in the look and feel and that they are better scalable on sites with a high load. 2a works only on firefox (not in current versions of IE or Safari) and has the advantage over 2b that the browser does not show the background activity (no spinning wheel in Firefox). 2b is more robust and works with Safari, IE and Firefox (the information about the browser support is from 2006, and most probably different today). Both streaming modes implement, what is sometimes called COMET .

    When the chat package uses the ::xo::Chat, it uses it only in currently only polling mode which has the  least requirements. This has been as well tested with (Firefox, IE and Safari).

    Install OpenACS distribution

    Created by OpenACS community, last modified by Michael Aram 22 Dec 2010, at 06:19 PM

    You should have an OpenACS distribution downloaded and available at /var/lib/aolserver/$OPENACS_SERVICE_NAME, otherwise en:Get_the_Code.

    Option 1: Use an automated script

    A bash script is available to automate all of the steps for the rest of this section. It requires tclwebtest. The automated script can greatly accelerate the install process, but is very sensitive to the install environment. We recommend that you run the automated install and, if it does not work the first time, consider switching to a manual installation.

    Get the install script from CVS. It is located within the main cvs tree, at /etc/install. Use anonymous CVS checkout to get that directory in the home directory of the service's dedicated user. We put it there so that it is not overwritten when we do the main CVS checkout to the target location.

    [root root]# su - $OPENACS_SERVICE_NAME
    [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cvs -d :pserver:anonymous@cvs.openacs.org:/cvsroot co -d install openacs-4/etc/install
    cvs server: Updating install
    U install/README
    U install/TODO
      ... many lines omitted ...
    U install/tcl/twt-procs.tcl
    U install/tcl/user-procs.tcl
    [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cd install
    [$OPENACS_SERVICE_NAME install]$ emacs install.tcl
    

    Edit the installation configuration file, /home/$OPENACS_SERVICE_NAME/install/install.tcl and update the site-specific values, such as the new service's IP address and name, which will be written into the new service's config.tcl file. If your system is different from the one described in the previous sections, check the file paths as well. Set do_checkout=yes to create a new OpenACS site directly from a CVS checkout, or =no if you have a fully configured site and just want to rebuild it (drop and recreate the database and repeat the installation). If you have followed a stock installation, the default configuration will work without changes and will install an OpenACS site at 127.0.0.1:8000.

    Run the install script install.sh as root:

    [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ exit 
    [root root]# sh /home/$OPENACS_SERVICE_NAME/install/install.sh
    /home/$OPENACS_SERVICE_NAME/install/install.sh: Starting installation with config_file 
    /home/$OPENACS_SERVICE_NAME/install/install.tcl. Using serverroot=/var/lib/aolserver/
    $OPENACS_SERVICE_NAME, server_url=http://0.0.0.0:8000, do_checkout=yes, do_install=yes, 
    dotlrn=no, and database=postgres., use_daemontools=true
      ... many lines omitted ...
    Tue Jan 27 11:50:59 CET 2004: Finished (re)installing /var/lib/aolserver/$OPENACS_SERVICE_NAME.
    ######################################################################
      New site URL: http://127.0.0.1:8000
    admin email   : admin@yourserver.net
    admin password: xxxx
    ######################################################################
    [root root]#

    If there are no errors, you can browse to the "Welcome" page of your server. Be sure to visit en:docs-admin for administration help and en:docs-dev-tutorial for tutorials.

    Option 2: Install available distribution

    Secure the directory so that only the owner can access it. Check the permissions by listing the directory.

    [root root]# su - $OPENACS_SERVICE_NAME
    [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cd /var/lib/aolserver
    [$OPENACS_SERVICE_NAME aolserver]$ tar xzf /var/tmp/openacs-5.2.0d1.tgz
    [$OPENACS_SERVICE_NAME aolserver]$ mv openacs-5.2.0d1 $OPENACS_SERVICE_NAME
    [$OPENACS_SERVICE_NAME aolserver]$ chmod -R 775 $OPENACS_SERVICE_NAME
    [$OPENACS_SERVICE_NAME aolserver]$ chown -R $OPENACS_SERVICE_NAME.$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME
    [$OPENACS_SERVICE_NAME aolserver]$ ls -al
    total 3
    drwxrwx---    3 root     web          1024 Mar 29 16:41 .
    drwxr-xr-x   25 root     root         1024 Mar 29 16:24 ..
    drwx------    7 $OPENACS_SERVICE_NAME web          1024 Jan  6 14:36 $OPENACS_SERVICE_NAME
    [$OPENACS_SERVICE_NAME aolserver]$ exit
    logout
    [root root]#
    su - $OPENACS_SERVICE_NAME
    cd /var/lib/aolserver
    tar xzf /var/tmp/openacs-5.2.0d1.tgz
    mv openacs-5.2.0d1 $OPENACS_SERVICE_NAME
    chmod -R 755 $OPENACS_SERVICE_NAME
    chown -R $OPENACS_SERVICE_NAME.$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME
    exit

    Prepare the database

    Prepare Oracle for OpenACS. If you won't be using Oracle, skip to Prepare PostgreSQL for an OpenACS Service

    You should be sure that your user account (e.g. $OPENACS_SERVICE_NAME) is in the dba group.

    1. Verify membership by typing groups when you login:

      [$OPENACS_SERVICE_NAME ~]$ groups
      dba web

      If you do not see these groups, take the following action:

      [$OPENACS_SERVICE_NAME ~]$ su -
      Password: ************
      [root ~]# adduser $OPENACS_SERVICE_NAME dba

      If you get an error about an undefined group, then add that group manually:

      [root ~]# groupadd dba
      [root ~]# groupadd web

      Make sure to logout as root when you are finished with this step and log back in as your regular user.

    2. Connect to Oracle using svrmgrl and login:

      [$OPENACS_SERVICE_NAME ~]$ svrmgrl
      SVRMGR> connect internal
      Connected.

    3. Determine where the system tablespaces are stored:

      SVRMGR> select file_name from dba_data_files;

      Example results:

      /ora8/m01/app/oracle/oradata/ora8/system01.dbf
      /ora8/m01/app/oracle/oradata/ora8/tools01.dbf
      /ora8/m01/app/oracle/oradata/ora8/rbs01.dbf
      /ora8/m01/app/oracle/oradata/ora8/temp01.dbf
      /ora8/m01/app/oracle/oradata/ora8/users01.dbf
      /ora8/m01/app/oracle/oradata/ora8/indx01.dbf
      /ora8/m01/app/oracle/oradata/ora8/drsys01.dbf

    4. Using the above output, you should determine where to store your tablespace. As a general rule, you'll want to store your tablespace on a mount point under the /ora8 directory that is separate from the Oracle system data files. By default, the Oracle system is on m01, so we will use m02. This enables your Oracle system and database files to be on separate disks for optimized performance. For more information on such a configuration, see Chapter 12 of Philip's book. For this example, we'll use /ora8/m02/oradata/ora8/.

    5. Create the directory for the datafile; to do this, exit from svrmgrl and login as root for this step:

      SVRMGR> exit
      [$OPENACS_SERVICE_NAME ~]$ su -
      Password: ************
      [root ~]# mkdir -p /ora8/m02/oradata/ora8/
      [root ~]# chown $OPENACS_SERVICE_NAME:web /ora8/m02/oradata/ora8
      [root ~]# chmod 775 /ora8/m02/oradata/ora8
      [root ~]# exit
      [$OPENACS_SERVICE_NAME ~]$
    6. Create a tablespace for the service. It is important that the tablespace can autoextend. This allows the tablespace's storage capacity to grow as the size of the data grows. We set the pctincrease to be a very low value so that our extents won't grow geometrically. We do not set it to 0 at the tablespace level because this would affect Oracle's ability to automatically coalesce free space in the tablespace.

      [$OPENACS_SERVICE_NAME ~]$ svrmgrl
      SVRMGR> connect internal;
      SVRMGR> create tablespace $OPENACS_SERVICE_NAME
            datafile '/ora8/m02/oradata/ora8/$OPENACS_SERVICE_NAME01.dbf' 
            size 50M 
            autoextend on 
            next 10M
            maxsize 300M
            extent management local
            uniform size 32K;
    7. Create a database user for this service. Give the user access to the tablespace and rights to connect. We'll use $OPENACS_SERVICE_NAMEpassword as our password.

      Write down what you specify as service_name (i.e. $OPENACS_SERVICE_NAME) and database_password (i.e. $OPENACS_SERVICE_NAMEpassword). You will need this information for configuring exports and AOLserver.

      SVRMGR> create user $OPENACS_SERVICE_NAME identified by $OPENACS_SERVICE_NAMEpassword default tablespace $OPENACS_SERVICE_NAME
          temporary tablespace temp quota unlimited on $OPENACS_SERVICE_NAME;
      SVRMGR> grant connect, resource, ctxapp, javasyspriv, query rewrite, create view, create synonym to $OPENACS_SERVICE_NAME;
      SVRMGR> revoke unlimited tablespace from $OPENACS_SERVICE_NAME;
      SVRMGR> alter user $OPENACS_SERVICE_NAME quota unlimited on $OPENACS_SERVICE_NAME;
      SVRMGR> exit;

      Your table space is now ready. In case you are trying to delete a previous OpenACS installation, consult these commands in the section called “Deleting a tablespace” below.

    8. Make sure that you can login to Oracle using your service_name account:

      [$OPENACS_SERVICE_NAME ~]$ sqlplus $OPENACS_SERVICE_NAME/$OPENACS_SERVICE_NAMEpassword
      SQL> select sysdate from dual;
      SYSDATE
      ----------
      2001-12-20
      SQL> exit;

      You should see today's date in a format 'YYYY-MM-DD.' If you can't login, try redoing step 1 again. If the date is in the wrong format, make sure you followed the steps outlined in the section called “Troubleshooting Oracle Dates”

    Prepare PostgreSQL for an OpenACS Service.

    • PostgreSQL:

      Create a user in the database matching the service name. With default PostgreSQL authentication, a system user connecting locally automatically authenticates as the postgres user of the same name, if one exists. We currently use postgres "super-users" for everything, which means that anyone with access to any of the openacs system accounts on a machine has full access to all postgresql databases on that machine.

      [root root]# su - postgres
      [postgres pgsql]$ createuser -a -d $OPENACS_SERVICE_NAME
      CREATE USER
      [postgres pgsql]$ exit
      logout
      [root root]#
    • Create a database with the same name as our service name, $OPENACS_SERVICE_NAME.

      [root root]# su - $OPENACS_SERVICE_NAME
      [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ createdb -E UNICODE $OPENACS_SERVICE_NAME
      CREATE DATABASE
    • Automate daily database Vacuuming. This is a process which cleans out discarded data from the database. A quick way to automate vacuuming is to edit the cron file for the database user. Recommended: VACUUM ANALYZE every hour and VACUUM FULL ANALYZE every day.

      [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ export EDITOR=emacs;crontab -e

      Add these lines to the file. The vacuum command cleans up temporary structures within a PostGreSQL database, and can improve performance. We vacuum gently every hour and completely every day. The numbers and stars at the beginning are cron columns that specify when the program should be run - in this case, whenever the minute is 0 and the hour is 1, i.e., 1:00 am every day, and every (*) day of month, month, and day of week. Type man 5 crontab for more information.

      0 1-23 * * * /usr/local/pgsql/bin/vacuumdb --analyze $OPENACS_SERVICE_NAME
      0 0 * * * /usr/local/pgsql/bin/vacuumdb --full --analyze $OPENACS_SERVICE_NAME

      Depending on your distribution, you may receive email when the crontab items are executed. If you don't want to receive email for those crontab items, you can add > /dev/null 2>&1 to the end of each crontab line

      At this point the database should be ready for installing OpenACS.

    Configure an AOLserver Service for OpenACS.

    1. The AOLserver architecture lets you run an arbitrary number of virtual servers. A virtual server is an HTTP service running on a specific port, e.g. port 80. In order for OpenACS to work, you need to configure a virtual server. The Reference Platform uses a configuration file included in the OpenACS tarball, /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/config.tcl. Open it in an editor to adjust the parameters.

      [root root]# su - $OPENACS_SERVICE_NAME
      [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc
      [$OPENACS_SERVICE_NAME etc]$ emacs config.tcl
      

      You can continue without changing any values in the file. However, if you don't change address to match the computer's ip address, you won't be able to browse to your server from other machines. See en:aolserver-admin for an explanation of some other values you might want to change in the config.tcl file.

    Verify AOLserver startup.

    1. Kill any current running AOLserver processes and start a new one. The recommended way to start an AOLserver process is by running the included script, /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/daemontools/run. If you are not using the default file paths and names, you will need to edit run.

      If you want to use port 80, there are complications. AOLserver must be root to use system ports such as 80, but refuses to run as root for security reasons. So, we call the run script as root and specify a non-root user ID and Group ID which AOLserver will switch to after claiming the port. To do so, find the UID and GID of the $OPENACS_SERVICE_NAME user via grep $OPENACS_SERVICE_NAME /etc/passwd and then put those numbers into the command line via -u 501 -g 502. In AOLserver 4, you must also send a -b flag. Do this by editing the run file as indicated in the comments.

      If you are root then killall will affect all OpenACS services on the machine, so if there's more than one you'll have to do ps -auxw | grep nsd and selectively kill by job number.

      [$OPENACS_SERVICE_NAME etc]$ killall nsd
      nsd: no process killed
      [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ /usr/local/aolserver/bin/nsd-postgres -t /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/config.tcl
      [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ [08/Mar/2003:18:13:29][32131.8192][-main-] Notice: nsd.tcl: starting to read config file...
      [08/Mar/2003:18:13:29][32131.8192][-main-] Notice: nsd.tcl: finished reading config file.
    2. Attempt to connect to the service from a web browser. You should specify a URL like: http://yourserver.test:8000

      You should see a page that looks like this, otherwise check the en:aolserver-admin Troobleshooting secton.

    Configure a Service with the OpenACS Installer. Now that you've got AOLserver up and running, let's install OpenACS 5.2.0d1.

    • You should see a page from the webserver titled OpenACS Installation: Welcome. You will be warned if your version of the database driver is out of date, if AOLserver cannot connect to the database, if any modules are missing or out-of-date, or if there are any problems with filesystem permissions on the server side. But if everything is fine, you can click Next to proceed to load the OpenACS Kernel data model.

    • The next page shows the results of loading the OpenACS Kernel data model - be prepared to wait a few minutes as it works. You should see a string of output messages from the database as the datamodel is created. You'll see the line:

      Loading package .info files ... this will take a few minutes

      This will really take a few minutes. Have faith! Finally, another Next button will appear at the bottom - click it.

    • The following page shows the results of loading the core package data models. You should see positive results for each of the previously selected packages, but watch out for any errors. Eventually, the page will display "Generating secret tokens" and then "Done"- click Next.

    • You should see a page, "OpenACS Installation: Create Administrator" with form fields to define the OpenACS site administrator. Fill out the fields as appropriate, and click Create User.

    • You should see a page, "OpenACS Installation: Set System Information" allowing you to name your service. Fill out the fields as appropriate, and click Set System Information

    • You'll see the final Installer page, "OpenACS Installation: Complete." It will tell you that the server is being restarted; note that unless you already set up a way for AOLserver to restart itself (ie. inittab or daemontools), you'll need to manually restart your service.

      [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ /usr/local/aolserver/bin/nsd-postgres -t /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/config.tcl
    • Give the server a few minutes to start up. Then reload the final page above. You should see the front page, with an area to login near the upper right. Congratulations, OpenACS <version> is now up and running!

    ref: http://openacs.org/doc/openacs.html

    Commit graph

    Created by Jeff Davis, last modified by Jeff Davis 04 Nov 2010, at 03:22 PM

    commits.png
    NameContent TypeLast ModifiedBy UserSize (Bytes)
    commits.pngimage/png2010-11-04 15:22:29+01Jeff Davis4670500

    Commits

    Created by Jeff Davis, last modified by Jeff Davis 04 Nov 2010, at 03:20 PM

    Commit graph 

    Nagios Monitoring

    Created by Malte Sussdorff, last modified by Malte Sussdorff 22 Jul 2010, at 06:08 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.

    Installing OpenACS on win2k

    Created by OpenACS community, last modified by Maurizio Martignano 14 Jul 2010, at 09:59 AM

    by Matthew Burke and Curtis Galloway and others

    NOTE: These instructions were valid for ACS v4, but have not been tested with OpenACS and the ArsDigita binary distributions are no longer available. Currently (Summer 2010), the best option to get OpenACS 5.6.* and .LRN 2.5.* running on Windows is to use the native windows installation [Win32-OpenACS] by Spazio IT (Maurizio Martignano).

    Another option, for OpenACS 5.2.* is to use VMware and John Sequeira's Oasis VM distribution.


     

    Overview

    With the recent release of a win32 version of AOLserver, it is now possible to run the OpenACS on Windows2000 and Windows98. This document explains the steps necessary to get the OpenACS installed and running on your machine.

    Note:

    We do not recommend running a production server on Windows98. But the platform is more than sufficient for working the problem sets and for getting a feel for the OpenACS.

    You'll need to use the ArsDigita binary distribution of AOLserver for the Win32 platform, which contains patches for several problems we have come across in the default AOLserver binary distribution. See the ArsDigita AOLserver 3 distribution page (from archive.org) for details.

    You can download the binary distribution from the ArsDigita download page (compliments of Eve Andersson) under "ArsDigita AOLserver 3 Binary Distribution for Win32." Please read the release notes in the distribution for configuration notes specific to the version you are downloading.

    Prerequisites

    It is helpful if you have Oracle interMedia Text for full-text searches. We're also trying to make our system work with the PLS System, available free from http://www.pls.com.

    Although the zsh shell is the only command-line tool required to install the OpenACS, if you are a UNIX person used to typing ls instead of dir you'll get along much better with the Cygwin toolkit from RedHat (available at http://sourceware.cygnus.com/cygwin). This is a development library and set of tools that gives you a very UNIX-like environment under Windows. In particular, it includes bash, gzip and tar, which you can use to perform the OpenACS installation instead of WinZip and zsh.

    Your Oracle installation

    When you install Oracle, a good rule of thumb is "every default setting is wrong." We will not discuss Oracle configuration here except to mention that the OpenACS requires Oracle's NLS_DATE_FORMAT parameter be set to 'YYYY-MM-DD'. Fixing this depends on whether Oracle Administration Assistant for Windows NT (yes, that's Windows NT) will run on your machine or not (in some cases, it will complain about Microsoft Managment Console not being installed).

    If it runs on your machine, proceed as follows:

    1. Run Oracle Administration Assistant for Windows NT

    2. Navigate using the Explorer-style control in the left panel and select the Oracle Home for the database you wish to use.

    3. Bring up its properties dialog and add a parameter NLS_DATE_FORMAT with value 'YYYY-MM-DD' (without the quotes)

    4. Verify the date format by logging into the database using SQL Plus and run the following query: select sysdate from dual;

    Otherwise you will need to perform a little registry surgery as follows:

    1. Run regedit and navigate down the registry keys to HKEY_LOCAL_MACHINE\Software\ORACLE.

    2. Choose the appropriate subtree; this will be HOME0 if you only have on einstallation of Oracle.

      If you are an Oracle achiever and have more than one Oracle installation on your machine, you will see HOME0, HOME1, HOME2, etc. Choose the subtree that corresponds to the Oracle installtion you wish to use with the OpenACS.

       

    3. If the NLS_DATE_FORMAT key is already present, double-click on its value and change it to 'YYYY-MM-DD' (without the quotes). If the key does not exist, choose Edit->New->String Value from the menu and type NLS_DATE_FORMAT for the name of the new value to create it. Then double-click on the empty value to change it.

    4. Verify the date format by logging into the database using SQL Plus and run the following query: select sysdate from dual;

    For more information on Oracle configuration look at http://photo.net/wtr/oracle-tips or search the OpenACS forums. One other note: the "nuke a user" admin page and Intermedia won't run unless you set open_cursors = 500 for your database.

    The ArsDigita binary installation

    Extract the ArsDigita AOLserver distribution onto the C: drive into the default aol30 directory. You can install it on any drive, but it will make your life easier if you keep the AOLserver binary and your OpenACS instance on the same drive. For the rest of these instructions, we'll assume that you used drive C:.

    Untar the OpenACS

    We recommend rooting webserver content in c:\web. Since most servers these days are expected to run multiple services from multiple IP addresses, each server gets a subdirectory from c:\web. For example, http://scorecard.org would be rooted at c:\web\scorecard on one of our machines and if http://jobdirect.com were on the same box then it would be at c:\web\jobdirect.

    For the sake of argument, we're going to assume that your service is called "yourdomain", is going to be at http://yourdomain.com and is rooted at c:\web\yourdomain in the Windows 2000 file system. Note that you'll find our definitions files starting out with "yourdomain.com".

    • download the OpenACS (see above) into c:\temp\acs.tar.gz

    • use WinZip (or equivalent) to extract the files to c:\web\yourdomain

    You'll now find that c:\web\yourdomain\www contains the document root and c:\web\yourdomain\tcl contains Tcl scripts that are loaded when the AOLserver starts up.

    Feeding Oracle the Data Model

    The entire server will behave in an unhappy manner if it connects to Oracle and finds that, for example, the users table does not exist. Thus you need to connect to Oracle as whatever user the AOLserver will connect as, and feed Oracle the table definitions.

    • load the states, country_codes and counties tables using the load-geo-tables shell script in the c:\web\yourdomain\www\install directory. You will need to open a console window and run

      zsh load-geo-tables foo/foopassword

      You most likely will see a slew of "Commit point reached . . . " messages. This does not indicate a problem.

    • cd to c:\web\yourdomain\www\doc\sql and feed Oracle the .sql files that you find there. There is a meta-loader file, load-data-model.sql, that includes the other files in the proper order. To use it, open a console window and run

      sqlplus foo/foopassword < load-data-model.sql
    • If you have interMedia installed, while still in c:\web\yourdomain\www\doc\sql, run

      zsh load-site-wide-search foo foopassword ctxsys-password

      Note that there's no slash between foo and foopassword here. The third argument, ctxsys-password, is the password for interMedia Text's special ctxsys user.

    Configuring AOLserver

    You will need two configuration files. The first is a Tcl file with configuration information for AOLserver. This should be called yourdomain and should be located in c:\aolserve3_0. The second is an .ini file that configures the OpenACS and is discussed below. Note that pathnames in yourdomain must use forward slashes rather than the Windows back slashes. This is also true for the .ini file.

    The following items must be defined in yourdomain:

    • three database pools: main, subquery, and log. They must be named as such. The default pool will be "main".

    • the auxconfig directory which contains the .ini file: c:\web\yourdomain\parameters

    • the pageroot: c:\web\yourdomain\www

    • the directory containing the TclLibrary: c:\web\yourdomain\tcl

    You can use our template file as a starting point (you'll need to save this file with a rather than .txt extension).

    Configuring OpenACS itself

    If you want a system that works, go to c:\web\yourdomain\parameters and copy ad.ini to yourdomain.ini (or any other name different from ad.ini). You don't actually have to delete ad.ini.

    Each section of yourdomain.ini has a hardcoded "yourservername" in the name (e.g. [ns/server/yourservername/acs]). This means that the OpenACS will ignore your configuration settings unless your AOLserver name happens to be "yourservername". Therefore you must go through yourdomain.ini and change "yourservername" to whatever you're calling this particular AOLserver (look at the server name in the nsd file for a reference).

    Unless you want pages that advertise a community called "Yourdomain Network" owned by "webmaster@yourdomain.com", you'll probably want to edit the text of yourdomain.ini to change system-wide parameters. If you want to see how some of these are used, a good place to look is c:\web\yourdomain\tcl\ad-defs. The Tcl function, ad_parameter, is used to grab parameter values from the .ini file.

    Starting the Service

    Now you're ready to start things up. Before installing as a Windows service, you might want to test the setup for configuration errors. Open up a console window and go to c:\aol30. Then run

    bin\nsd -ft yourdomain.tcl

    This will print all the AOLserver messages to the console so you can see them.

    Try to connect to your new server with a web browser. If you see the message "Error in serving group pages", you probably forgot to copy the ad.ini file in c:\web\yourdomain\parameters If everything seems ok, you can kill the server with Control-c and then issue the following command to install as a Windows service:

    bin\nsd -I -s yourdomain -t yourdomain.tcl

    You can now configure error recovery and other Windows aspects of the service from the Services control panel. If you make further changes to yourdomain or yourdomain.ini you should stop and start the service from the Services control panel.

    Configuring Permissions

    Now, you need to protect the proper administration directories of the OpenACS. You decide the policy although we recommend requiring the admin directories be accessible only via an SSL connection. Here are the directories to consider protecting:

    • /doc (or at least /doc/sql/ since some AOLserver configurations will allow a user to execute SQL files)

    • /admin

    • any private admin dirs for a module you might have written that are not underneath the /admin directory

    Adding Yourself as a User and Making Yourself a Sysadmin

    OpenACS will define two users: system and anonymous. It will also define a user group of system administrators. You'll want to add yourself as a user (at /register/ ) and then add yourself as as member of the site-wide administration group. Start by logging out as yourself and logging in as the system user (email of "system"). Change the system user's password. Visit the https://yourservername.com/admin/ug/ directory and add your personal user as a site-wide administrator. Now you're bootstrapped!

    If you do not know what the system user's password is connect to Oracle using SQL Plus and run the following query:

    select password from users where last_name = 'system';

    Where to Find What

    A few pointers:

    • the /register directory contains the login and registration scripts. You can easily redirect someone to /register/index to have them login or register.

    • the /pvt directory is for user-specific pages. They can only be accessed by people who have logged in.

    Making sure that it works

    Run the acceptance tests in /doc/acceptance-test

    Running Multiple Instances of the OpenACS

    You can run multiple instances of the OpenACS on a physical machine but they must each be set up as a separate Windows service. Each instance of the OpenACS must have its own:

    • Oracle tablespace and a user account with the appropriate permissions on that tablespace. Each of these tablespaces must have the OpenACS data model loaded.

    • file with the appropriate settings including server name, auxconfig, ipaddress, and port.

    • Copy of the acs files in an appropriate directory under c:\web.

    Suppose you wish to run two services: lintcollectors.com and iguanasdirect.com. You would need the following:

    • an Oracle tablespace, lintcollectors with a user lintcollectors and password secretlint

    • an Oracle tablespace, iguanasdirect with a user iguanasdirect and password secretiguanas

    For each of these tablespaces/users you would load the OpenACS data model as described above. Then in c:\aolserver3_0 create files for each service, i.e. lintcollectors and iguanasdirect. These files would point to their respective pageroots, c:\web\lintcollectors\www and c:\web\iguanasdirect\www; their respective auxconfigdirs, c:\web\lintcollectors\parameters and c:\web\iguanasdirect\parameters; etc. In the respective auxconfigdirs would be the files lintcollectors.ini and iguanasdirect.ini.

    Now open a console window and go to c:\aol30. You'll start up the two services as follows:

    bin\nsd -I -s lintcollectors -t lintcollectors.tcl
    bin\nsd -I -s iguanasdirect -t iguanasdirect.tcl

    In the services control panel you should see two services: AOLserver-lintcollectors and AOLserver-iguanasdirect.

    ref: http://openacs.org/doc/win2k-installation.html

    Vi as an OpenACS IDE

    Created by OpenACS community, last modified by Gustaf Neumann 19 May 2010, at 12:26 PM

    In vim add the following in your .vimrc will help convert tabs to 4 spaces to meet part of the OpenACS coding standard.

    set tabstop=4
    set expandtab
    set list
    set listchars=tab:>.

    It's also nice to have syntax highlighting by adding the following line

    syntax on 

    Also useful to use tagging features. In brief - run ctags -R in the root of the install or source tree.

    At that point you can edit using vim -t procname or ::package::procname and go to the corresponding place in the code. From within the code, you can lookup functions by having the term highlighted and hit CTL-] - use CTL-T to go back.

    Only works if you edit from the top directory, all tags are relative to there.



    OCT Meetings

    Created by Dave Bauer, last modified by Dave Bauer 21 Apr 2010, at 06:20 PM

    See Also: openacs-release-status openacs-todo

    Next Meeting: 2010-04-28 18:00 CET/CEST Convert to your local time 

    Agenda


    • Next OCT Election (May 2010)
    • OpenACS 5.6 Release Beta Weekend 2010-04-25

    Previous Meetings

    2008

    Automated Installs - Using install.xml

    Created by Ryan Gallimore, last modified by Ryan Gallimore 10 Apr 2010, at 07:29 PM

    To automatically install packages with specific parameters and mount points, create an install.xml file in your /path/to/service/ directory, according to:

     Automated Install Thread 

    Testing with TCLWebtest

    Created by OpenACS community, last modified by Ryan Gallimore 10 Apr 2010, at 06:49 PM

    Testing with TCLWebtest

    by Simon Carstensen and Joel Aufrecht

    Tclwebtest is primarily for testing user interface and acceptance testing.

    API testing is only part of testing your package - it doesn't test the code in our adp/tcl pairs. For this, we can use TCLWebtest (see sourceforge ). TCLWebtest provides a library of functions (see command reference ) that make it easy to call a page through HTTP, examine the results, and drive forms. TCLwebtest's functions overlap slightly with acs-automated-testing; see the example provided for one approach on integrating them.

    TCLWebtest must be installed for to work. Since automated testing uses it, it should be part of every OpenACS installation. Note that TCLwebtest is installed automatically by Malte's install script .

    Forum Posts:

    Command Reference:

    • http://tclwebtest.sourceforge.net/doc/api_public.html 

    Articles:

    • Automated Testing Best Practices see: http://openacs.org/doc/automated-testing-best-practices.html
    • testing packages for release en:Package_Testing_Process_

    Tools:

    • Webtest-Recorder Firefox extension (TwtR) see http://www.km.co.at/km/twtr This module is a plugin for Firefox. It is used to generate/edit a tclwebtest script which can be used later for regression testing without the need of a browser. There is a certain overlap of the application range between selenium and TwtR. This plugin was developed by Åsmund Realfsen for regression/load testing of the assessment module.

    Here are some guidelines on how to write automated tests with TCLWebtest. It is a joy to work with automated testing once you get the hang of it. We will use the "myfirstpackage" as an example.

    Create the directory that will contain the test script and edit the script file. The directory location and file name are standards which are recognized by the automated testing package:

    [$OPENACS_SERVICE_NAME www]$ mkdir /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/tcl/test
    [$OPENACS_SERVICE_NAME www]$ cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/tcl/test
    
    [$OPENACS_SERVICE_NAME test]$ emacs myfirstpackages-procs.tcl

    Write the tests. This is obviously the big step :) The script should first call ad_library like any normal -procs.tcl file:

    ad_library {
        ...
    }
    

    To create a test case you call aa_register_case test_case_name.. Once you've created the test case you start writing the needed logic. We'll use the tutorial package, "myfirstpackage," as an example. Let's say you just wrote an API for adding and deleting notes in the notes packages and wanted to test that. You'd probably want to write a test that first creates a note, then verifies that it was inserted, then perhaps deletes it again, and finally verifies that it is gone.

    Naturally this means you'll be adding a lot of bogus data to the database, which you're not really interested in having there. To avoid this I usually do two things. I always put all my test code inside a call to aa_run_with_teardown which basically means that all the inserts, deletes, and updates will be rolled back once the test has been executed. A very useful feature. Instead of inserting bogus data like: set name "Simon", I tend to generate a random script in order avoid inserting a value that's already in the database:

    set name [ad_generate_random_string]
    
    

    Here's how the test case looks so far:

    aa_register_case mfp_basic_test {
        My test
    } {
        aa_run_with_teardown \
           -rollback \
           -test_code  {
    
           }
    }
    

    Now look at the actual test code. That's the code that goes inside -test_code {}. We want to implement test case API-001, "Given an object id from API-001, invoke mfp::note::get. Proc should return the specific word in the title."

          set name [ad_generate_random_string]
          set new_id [mfp::note::add -title $name]
          aa_true "Note add succeeded" [exists_and_not_null new_id]

    To test our simple case, we must load the test file into the system (just as with the /tcl file in the basic tutorial, since the file didn't exist when the system started, the system doesn't know about it.) To make this file take effect, go to the APM and choose "Reload changed" for "MyFirstPackage". Since we'll be changing it frequently, select "watch this file" on the next page. This will cause the system to check this file every time any page is requested, which is bad for production systems but convenient for developing. We can also add some aa_register_case flags to make it easier to run the test. The -procs flag, which indicates which procs are tested by this test case, makes it easier to find procs in your package that aren't tested at all. The -cats flag, setting categories, makes it easier to control which tests to run. The smoke test setting means that this is a basic test case that can and should be run any time you are doing any test. (a definition of "smoke test")

    Once the file is loaded, go to ACS Automated Testing and click on myfirstpackage. You should see your test case. Run it and examine the results.

    Example

    Now we can add the rest of the API tests, including a test with deliberately bad data. The complete test looks like:

    ad_library {
        Test cases for my first package.
    }
    
    aa_register_case \
        -cats {smoke api} \
        -procs {mfp::note::add mfp::note::get mfp::note::delete} \
        mfp_basic_test \
        {
            A simple test that adds, retrieves, and deletes a record.
        } {
            aa_run_with_teardown \
                -rollback \
                -test_code  {
                    set name [ad_generate_random_string]
                    set new_id [mfp::note::add -title $name]
                    aa_true "Note add succeeded" [exists_and_not_null new_id]
                    
                    mfp::note::get -item_id $new_id -array note_array
                    aa_true "Note contains correct title" [string equal $note_array(title) $name]
                    
                    mfp::note::delete -item_id $new_id
                    
                    set get_again [catch {mfp::note::get -item_id $new_id -array note_array}]
                    aa_false "After deleting a note, retrieving it fails" [expr $get_again == 0]
                }
        }
    
    aa_register_case \
        -cats {api} \
        -procs {mfp::note::add mfp::note::get mfp::note::delete} \
        mfp_bad_data_test \
        {
            A simple test that adds, retrieves, and deletes a record, using some tricky data.
        } {
            aa_run_with_teardown \
                -rollback \
                -test_code  {
                    set name {-Bad [BAD] \077 { $Bad}} 
                    append name [ad_generate_random_string]
                    set new_id [mfp::note::add -title $name]
                    aa_true "Note add succeeded" [exists_and_not_null new_id]
                    
                    mfp::note::get -item_id $new_id -array note_array
                    aa_true "Note contains correct title" [string equal $note_array(title) $name]
                    aa_log "Title is $name"
                    mfp::note::delete -item_id $new_id
                    
                    set get_again [catch {mfp::note::get -item_id $new_id -array note_array}]
                    aa_false "After deleting a note, retrieving it fails" [expr $get_again == 0]
                }
        }
    
    
    aa_register_case \
        -cats {web smoke} \
        -libraries tclwebtest \
        mfp_web_basic_test \
        {
            A simple tclwebtest test case for the tutorial demo package.
            
            @author Peter Marklund
        } {
            # we need to get a user_id here so that it's available throughout
            # this proc
            set user_id [db_nextval acs_object_id_seq]
    
            set note_title [ad_generate_random_string]
    
            # NOTE: Never use the aa_run_with_teardown with the rollback switch
            # when running Tclwebtest tests since this will put the test code in
            # a transaction and changes won't be visible across HTTP requests.
            
            aa_run_with_teardown -test_code {
                
                #-------------------------------------------------------------
                # Login
                #-------------------------------------------------------------
                
                # Make a site-wide admin user for this test
                # We use an admin to avoid permission issues
                array set user_info [twt::user::create -admin -user_id $user_id]
                
                # Login the user
                twt::user::login $user_info(email) $user_info(password)
                
                #-------------------------------------------------------------
                # New Note
                #-------------------------------------------------------------
                
                # Request note-edit page
                set package_uri [apm_package_url_from_key myfirstpackage]
                set edit_uri "${package_uri}note-edit"
                aa_log "[twt::server_url]$edit_uri"
                twt::do_request "[twt::server_url]$edit_uri"
                
                # Submit a new note
    
                tclwebtest::form find ~n note
                tclwebtest::field find ~n title
                tclwebtest::field fill $note_title
                tclwebtest::form submit
                
                #-------------------------------------------------------------
                # Retrieve note
                #-------------------------------------------------------------
                
                # Request index page and verify that note is in listing
                tclwebtest::do_request $package_uri                 
                aa_true "New note with title \"$note_title\" is found in index page" \
                    [string match "*${note_title}*" [tclwebtest::response body]]
                
                #-------------------------------------------------------------
                # Delete Note
                #-------------------------------------------------------------
                # Delete all notes
    
                # Three options to delete the note
                # 1) go directly to the database to get the id
                # 2) require an API function that takes name and returns ID
                # 3) screen-scrape for the ID
                # all options are problematic.  We'll do #1 in this example:
    
                set note_id [db_string get_note_id_from_name " 
                    select item_id 
                      from cr_items 
                     where name = :note_title  
                       and content_type = 'mfp_note'
                " -default 0]
    
                aa_log "Deleting note with id $note_id"
    
                set delete_uri "${package_uri}note-delete?item_id=${note_id}"
                twt::do_request $delete_uri
                
                # Request index page and verify that note is in listing
                tclwebtest::do_request $package_uri                 
                aa_true "Note with title \"$note_title\" is not found in index page after deletion." \
                    ![string match "*${note_title}*" [tclwebtest::response body]]
                
            } -teardown_code {
                
                twt::user::delete -user_id $user_id
            }
        }
    
    
    

    YUI Project

    Created by Ryan Gallimore, last modified by Ryan Gallimore 03 Apr 2010, at 06:31 AM

    Notes on an OpenACS wrapper for YUI

    • There is some consensus to use YUI over other JS libraries, e.g. jQuery.
    • Use most complete version - currently 2.x
    • YUI Loader for dynamic loading.  Each wrapper function in OpenACS loads only the YUI components that it needs.  This is preferable to sending the full 250 KB gzipped library for every page.
    • Download YUI sources from package directory or Yahoo's CDN.
    • Always combine sources into one HTTP download if using CDN
    • UI tests (Selenium IDE/RC) should be written for all wrappers to facilitate testing during development and when YUI is upgraded.
    • Wrappers will be defined by specific tasks like perform an AJAX request and return the response into a div.  The wrapper will take care of loading all required sources into the page.
    YUI Theme [Suggestion]

    • Provide a package openacs-theme-yui, which is based on the YUI CSS Foundation

    nlunt: A word of warning regarding YUI Loader:
    While it sounds like a good idea to load only the modules that are needed, my experience has shown that there may be more benefit to loading a single gzipped file for the javascript and css portions of YUI for a total of 250K that is cached after the first load. This sounds like a lot to load for every page, however, loading just the base modules of YUI may exceed that amount because the individual javascript and css files for each module are not gzipped. Loading all of YUI uncompressed is about 1M, so there is considerable benefit in loading the files compressed.

    Cookbook

    Created by Dave Bauer, last modified by Torben Brosten 29 Mar 2010, at 07:23 PM

    The OpenACS Cookbook. This is the place for tips and tricks, code fragments, etc.

     

     

    Permissions explored, a practical way exists

    Created by openacs irc community, last modified by Torben Brosten 29 Mar 2010, at 07:22 PM

    This is from a discussion about permissions on OpenACS' irc (names changed) that took place sometime circa 2005.

    ryan: How do I create a group containing other groups?
    dave: composition_rel
    ryan: For instance, I have 30 admin groups, and instead of adding user A to each one manually, I want to add her to one group, and thus all 30.
    dave: what are you trying to accomplish?
    dave: you can't do that
    ryan: crap.
    dave: it it totally non-intuitive
    dave: here is why :)
    dave: we have the Super Admin group
    dave: wait.
    dave: no it doesn't work
    ryan: So what is a composition_rel? I thought parties were supposed to be a superset of groups.
    dave: let me explian :)
    dave: no
    ryan: ok, thanks :)
    dave: here is how it works.
    dave: Super Admin
    dave: then we have admins_a which is a component of super admins
    dave: maybe it can work.
    dave: question is
    dave: can a group
    dave: have a composition_rel to more than one other group
    ryan: So what is the definition of a component?
    dave: lets find out.
    dave: a component
    dave: so if Admin A is a component of Super Admin
    dave: then every meber of A is a member of Super
    dave: which is NOT what you want.
    dave: you want ever member of super to have permission over all the groups "inside" it right?
    dave: but in this case every member of A would have permission over all the other components etc.
    dave: group are NOT for permissions.
    dave: that is the design weirdness
    ryan: huh?
    ryan: Now I am completely confused.
    dave: you can't use groups the way you want
    ryan: isn't the whole point of groups to avoid permissioning on individual users?
    jim: but you should be able to build a page that asks for a user and puts the user into the 30 groups
    dave: ryan, yes.
    dave: you they don't inherit the way you think
    ryan: so you set permissions on a group with a set of objects, then just add/remove users from the group, right?
    dave: its backwards to what you are thinking.
    dave: yes
    dave: that works
    dave: perfectly
    jim: so you can get what you want (convenience, non-tedium) but have to do it another way
    dave: but composition_rels
    dave: behave backwards
    dave: they are not useful for org chart models
    ryan: ah ok.
    dave: but I think it can work
    ryan: WHat is an application of composition_rels?
    dave: here is what you would do
    dave: if it works
    dave: create all your groups
    dave: Admin A, Admin B etc
    ryan: done.
    dave: then make one group
    dave: and give it a composititon rel to all of those groups.
    dave: its upside down.
    dave: then if I am in the one group, i am in all of those other groups
    jim: so you're putting the one group into all the groups
    jim: that should work :)
    dave: yes
    dave: b/c its not _in_
    dave: its a component.
    dave: i think that will trigger the correct permissions.
    ryan: how do components work in the data model - I want to understand this better.
    dave: well
    jim: it'
    dave: then I recommend you 1) read the acs-kenrel sql files
    jim: s a special kind of acs_rel
    dave: 2) run alot fo experiments in psql
    dave: 3) find a bug in the triggers
    dave: :)
    dave: that is how I figured it out.
    dave: sucks huh.
    dave: seriously the comments in the SQL files in acs-kernel are very illuminating.
    dave: also have you read permissions tediously explained?
    ryan: but you're it'll work?
    ryan: Yes.
    dave: i am not sure it'll work
    dave: but
    jim: we think it will work
    ryan: but I could re-read it a fourth time
    dave: i don't see any rule
    dave: that disallows a group being a component of more than one group
    dave: if there is such a rule, it won't work.
    ryan: but compositions typically extend 'up' the chain of groups?
    dave: yes
    dave: that is what its for
    dave: so for example
    ryan: what is a practical example?
    dave: I have Main Subsite
    dave: and several other subsites
    dave: wait
    dave: actually this is an example of why it doesn't work :)
    dave: hmmm actually I have to check
    dave: not sure if susbsite groups are components of main subsite or not.
    dave: ....
    ryan: You see, I want to create this super group and then let the client admin the members...
    dave: ok there are no rel_contraints on a default install. so that should be safe.
    dave: yes
    dave: but its really a sub-group
    jim: try it with two groups and another group be a componenet of both groups... give each of the first two groups two different permissions... put a user into the component group...
    dave: a super group would not work the way you want.
    dave: here i what you do
    jim: see if the user has both perms
    dave: 1) create two groups
    dave: 2) create another group
    dave: 3) make the thired group a compoennt of the first two
    dave: 4) add someone to the third group
    dave: 5) check if they are a member of 1 and 2
    dave: for extra credit
    dave: apply a permission to 1 and 2
    dave: check if the members of 3 have permission on those things
    dave: if this works
    jim: 1-4 and the extra credit are what I just sed :)
    dave: i just solved the oldest OpenACS 4 riddle
    joe: As a topical aside, we changed the way we use groups in our subsites for dotcommunity. One for admins and one for members (so we don't use admin_rels). Then we use a composition rel to make admins of top level sites also admins of lower level sites, and to compisitions in the opposite direction to make members of lower level sites members of the higher level ones too.
    dave: jim, yes :)
    jim: 5 is a good idea too
    ryan: ok, sounds good. Will test and get back to you. That would be very cool if it could work both ways. Obviously it is important to be able to have groups of groups...
    dave: joie: you could still use admin_rels to do that
    dave: it would work the same way.
    dave: ryan, yes if that works the way I expect it would be cool.
    dave: joie, so is the lower level admin group a component of the higher level admin group?
    joe: The problem with admin rels was that an admin of a subsite became an admin of the supersite, which isnt what we wanted.
    dave: or the othe way around?
    dave: joie: yes
    dave: that is what I just said
    dave: the component rels go the wrong way
    dave: than what you would think intuitively
    dave: although mathematically they work correctylu as specified.
    dave: damn PhDs
    dave: basically we need to write high-level functional wrappers over all this crap
    joe: So we have a compisition rel going "down" for admins, and "up" for members. So the supersite admin group is a component of the subsite's admin group, and the subsite's members group is a component of the supersites members group.
    dave: so you can just call a tcl proc that tells you what happens (instead of what is does in the database)
    dave: joie: ah so it _does_ work. that is just what I told ryan-g to do
    dave: we need to write a tcl api to do that that is clear what is happening.
    jim: so members of the subsite become also members of the supersite
    dave: yes
    dave: which makes sense
    joe: Indeed. Then we frigged the acs-subsite members pages to do the "right thing".
    dave: but then admins of the subsite become admins of the supersite (if you use admin_rels)
    dave: which is why you don't want to do that.
    dave: joie: but you are right
    dave: and openacs is wrong
    dave: except I doubht there is an upgrade script that would work
    dave: damn PhDs
    dave: joie: why the hell didn't you tell us this before? :)
    dave: i have been trying to figure that out for 4 years
    joe: We have an upgrade script that does it somewhere. Rob wrote it.
    dave: you rock.
    joe: We weren't sure the new way was "right".
    dave: yeah
    dave: it is
    dave: b/c it makes sense
    dave: well
    dave: except
    dave: no its right.
    joe: We then got rid of admin_rels completely.
    joe: and only use membership_rels
    dave: b/c everyone expects it to work that way
    dave: yeah see
    dave: the problems is
    dave: all this stuff was experimental
    dave: and noone every finished it
    jim: you would need to be careful when deleting certain objects
    dave: except you did.
    dave: so now we can say "this is the way its supposed to work' We can say that because that is the way everone has expected it to work, but it never did
    dave: wow
    jim: make sure to remove all rels first then delete
    dave: i am so surprised.
    joe: The code is in the dotCommiunity download on www.dotcommunity.org. The upgrade scripts aren't there though.
    dave: this is so cool.
    dave: get them!
    dave: :)
    joe: Heh. I'll talk to Rob about it tomorrow, as not sure what he implemented.

    .LRN Meetings

    Created by Alvaro Rodriguez, last modified by Alvaro Rodriguez 10 Mar 2010, at 04:41 AM

    Next Meeting: 2010-03-10 18:00 CET/CEST Convert to your local time 

    Agenda

    • .LRN 2.6 Release

    Previous Meetings


    2008

    Tcl Thread Library

    Created by Gustaf Neumann, last modified by Gustaf Neumann 14 Jan 2010, at 08:15 PM

    Libthread is the standard Tcl thread library developed by Zoran Vasiljevic and provides optional functionality for OpenACS. Threads created by the Tcl thread library are executed in an event loop, which makes it easy to send commands to such threads. xotcl-core provides support for the the thread library and uses it for example for background delivery of large files. Also the chat package uses libthread when it is installed. The xotcl-request-monitor depends on libthread.

    INSTALLATION:

    1. Get and install libthread:

        download thread2.6.5 from


    http://mesh.dl.sourceforge.net/sourceforge/tcl/thread2.6.5.tar.gz

     untar it and go to you platform specific directory (eg. thread2.6.5/unix)


    # cd unix
    # ../configure --enable-threads \
    --prefix=/usr/local/aolserver \
    --exec-prefix=/usr/local/aolserver \
    --with-aolserver=/usr/local/aolserver

    use --prefix --exec-prefix --with-aolserver with the path pointing to the directory, where aolserver4 is installed. The flag --with-aolserver is essential. When multiple Tcls are installed on the system, it is recommended to use the flag pointing to it, like e.g. in --with-tclinclude=/usr/local/src/tcl8.4.16/unix/ --with-tcl=/usr/lib/

    make
    # check in output if there is following definition: -DNS_AOLSERVER=1
    make install

    You should now have installed libthread2.6.5.so (check for /usr/local/aolserver/lib/thread2.6.5/libthread2.6.5.so

    2) Adjusting config.tcl for libthread service

        I would recommed to load libthread 2.6.5 as a "module" from the aolserver config file to avoid a mixup with the plain tcl libthread extension (which is most likely compiled without --with-aolserver)

    • open config.tcl (/var/lib/aolserver/${yourservice}/etc/config.tcl)
    • look for modules section: ns_section ns/server/${server}/modules
    • add libthread to modules section:


      ns_param libthread ${homedir}/lib/thread2.6.5/libthread2.6.5.so

    restart the aolserver and check the error log, whether libthread2.6.5 was loaded successfully.


    svc -t /service/${yourservice}

    XOTcl Request Monitor

    Created by Gustaf Neumann, last modified by Gustaf Neumann 14 Jan 2010, at 12:59 PM

    Error in includelet '{{adp /www/templates/info-file {package_key xotcl-request-monitor}}}' of page en:xotcl-request-monitor:
    Nesting of includelets is to deep
    Error in includelet '{{adp /www/templates/bug-tracker {package_key xotcl-request-monitor}}}' of page en:xotcl-request-monitor:
    Nesting of includelets is to deep
    Error in includelet '{{adp /www/templates/metrics {package_key xotcl-request-monitor}}}' of page en:xotcl-request-monitor:
    Nesting of includelets is to deep
    nbsp;

    The xotcl--request-monitor depends in xotcl-core and libthread.

    Naming

    Created by Rocael Hernández Rizzardini, last modified by Ryan Gallimore 07 Jan 2010, at 03:13 PM

    Files

    • Use always is lowercase: file.tcl
    • Separate names with dash “-“:  my-file.tcl
    • Use English as your for your naming (at least if you plan to contribute to the community)
    • Put generic names, such as:
      • my-page-add-edit.tcl
      • my-page-delete.tcl
      • index.tcl
    • Follow the object-action naming convention
      • my-page-delete.tcl
      • NOT delete-my-page.tcl

    Procedures

    • Usually in lowercase (only in proc callbacks or service contracts you will use TheFirstLetterOfEachWord as uppercase)
    • Separate words with “_”: my_proc
    • Use names that indicates what the procs does, usually not too long
      • my_package::user::add_to_class
    • Always use namespaces
      • The namespace must be the same as the package-key, just that with “_” if applies
        • If package-key is: my-package
        • Then: my_package::add_user
      • Follow the package_key::object::action convention, use
        • my_package::user::add_to_class
        • NOT my_package::add_to_class::user
      • If you have only one action on users you might also use:
        • my_package::add_user_to_class

    SQL Statements

    • Lowercase
    • Seperate words with "_": select_users_in_class
    • Use names that indicate what the SQL statement does, or what it returns
      • db_list list_of_unregistered_user_ids {}
      • db_1row user_info {}
      • db_dml update_user_biography {}
    • Preferrably, in db_multirow calls, keep your statement name the same as the multirow name
    • For PL/SQL look here

    SQL constraints

    • Read the document behind the link
    • All constraints have to be named
    • The naming convention for constraints are as follows:
      • Primary Key: tablename_pk (acs_mail_lite_queue_pk)
      • Unique: tablename_columnname1_columnname2_un
      • Foreign Key: tablename_columnname_fk ( acs_mail_lite_queue_pck_fk)
      • Check:  tablename_column_name_ck (acs_mail_lite_co_qu_use_sender_p_ck)
    • Column names can be abbreviated (e.g. pck instead of package_id)

    Variables


    • Lowercase
    • Seperate words with "_": user_id
    • Use names that indicate what the variable contains. If this matches with a database column, use the same name as used for the column in the database.
    • Use the following conventions for variables containing
      • IDs: Append "_id" at the end, like "user_id"
      • Booleans: Append "_p" at the end, like "employee_p" to define if the user is an employee
      • Arrays: Append "_arr" at the end, like "employee_arr". This way you can immediately detect arrays in the code. 

    Community Metrics in OpenACS

    Created by Michael Steigman, last modified by Michael Steigman 09 Dec 2009, at 06:09 PM

    What can we provide now?


    * WIKI

    new pages this week
    average: new pages per month
    page edits this week
    average: page edits per month
    average: editors per page

    * FORUMS

    new threads this week
    posts this week
    average: new threads per month
    average: posts per month
    average: forum notification subscriptions per month
    ratio: posts per thread (monthly?)

    example queries:

    hub=# select to_char(r.publish_date, 'YYYY-MM') as month, count(*) from cr_items i join cr_revisions r on (i.item_id = r.item_id) where parent_id = '2239905' group by month order by month desc;
      month  | count
    ---------+-------
     2009-10 |   123
     2009-09 |   394
     2009-08 |   410
     2009-07 |   671
     2009-06 |   158
     2009-05 |     4
     2009-03 |     8
     2009-01 |     4
     2008-12 |    56
    (9 rows)

    hub=# select to_char(o.creation_date, 'YYYY-MM') as month, count(*) from cr_items i join acs_objects o on (i.item_id = o.object_id) where parent_id = '2239905' group by month order by month desc;
      month  | count
    ---------+-------
     2009-10 |     2
     2009-09 |    31
     2009-08 |    38
     2009-07 |    71
     2009-06 |    39
     2009-05 |     2
     2009-03 |     4
     2009-01 |     1
     2008-12 |    12
    (9 rows)

    hub=# select max(count) from (select count(distinct creation_user) as count from cr_items i join cr_revisions r on (i.item_id = r.item_id) join acs_object\
    s o on (o.context_id = r.item_id) where parent_id = '2239905' group by i.item_id) a;
     max
    -----
       7
    (1 row)

    hub=# select avg(count) from (select count(distinct creation_user) as count from cr_items i join cr_revisions r on (i.item_id = r.item_id) join acs_object\
    s o on (o.context_id = r.item_id) where parent_id = '2239905' group by i.item_id) a;
            avg
    --------------------
     1.4900000000000000
    (1 row)

    hub=# select count(distinct creation_user), i.item_id from cr_items i join cr_revisions r on (i.item_id = r.item_id) join acs_objects o on (o.context_id =\
     r.item_id) where parent_id = '2239905' group by i.item_id;
     count | item_id
    -------+---------
         2 | 2239907
         1 | 2240099
         1 | 2240101
         2 | 2240276
         1 | 2240751
         1 | 2240763
         1 | 2240769
         7 | 2240772
         1 | 2248445
         1 | 2249069
         1 | 2249119
         1 | 2249149
    ...
         2 | 2714595
         1 | 2716420
         1 | 2721530
         1 | 2722191
         2 | 2724344
         1 | 2731842
         1 | 2752093
    (200 rows)

    What could we provide in the future?


    average: # new/departed group members per day/month/year
    average: visit length of group members
    2 day answer rate for new threads
    average: uploads/downloads per month
    average: first answer time for threads
    ratio: page view per post (lurk)
    etc.

    Installing OpenACS on FreeBSD (quick)

    Created by Martin Matuska, last modified by Gustaf Neumann 18 Nov 2009, at 08:47 AM

    This quick-and-dirty guide is intended for more experienced (or very impatient) users.
    More detailed instructions can be found here.

    1. Installation requirements

    FreeBSD (7.x, or 6.x) with updated ports tree
    and NOT yet installed ports databases/postgresql82-server, www/openacs or www/openacs-dotlrn

    2. Installing OpenACS

     Enter the following shell commands:

    # cd /usr/ports/databases/postgresql82-server # make install clean # cd /usr/ports/databases/p5-postgresql-plperl # make install clean # echo 'postgresql_enable="YES"' >> /etc/rc.conf # cd /usr/ports/www/openacs # make install clean # echo 'openacs_enable="YES"' >> /etc/rc.conf # /usr/local/etc/rc.d/postgresql initdb # /usr/local/share/doc/openacs/adjust_pgsql_conf.sh # /usr/local/etc/rc.d/postgresql start # /usr/local/share/doc/openacs/create_sampledb.sh # /usr/local/etc/rc.d/openacs start

    Now open  in your browser http://localhost:8000 and fill in all neccesary data, finalize installation. The openacs server goes down afterwards.

    # /usr/local/etc/rc.d/openacs start
    

    That's all! You local OpenACS installation is accesible under http://localhost:8000

    3. Installing .LRN 

     Enter the following shell commands:

    # cd /usr/ports/databases/postgresql82-server # make install clean # cd /usr/ports/databases/p5-postgresql-plperl # make install clean # echo 'postgresql_enable="YES"' >> /etc/rc.conf.local # cd /usr/ports/www/openacs-dotlrn # make install clean # echo 'dotlrn_enable="YES"' >> /etc/rc.conf.local # /usr/local/etc/rc.d/postgresql initdb # /usr/local/share/doc/dotlrn/adjust_pgsql_conf.sh # /usr/local/etc/rc.d/postgresql start # /usr/local/share/doc/dotlrn/create_sampledb.sh # /usr/local/etc/rc.d/dotlrn start

    Now open  in your browser http://localhost:8000 and fill in all neccesary data, finalize installation. The .LRN server goes down afterwards.

    # /usr/local/etc/rc.d/dotlrn start
    

    That's all! You local .LRN installation is accesible under http://localhost:8000

    A. Contact information and bug reporting

    Please send bug reports and feature suggestions to the port maintainer of OpenACS/.LRN FreeBSD ports:
    Martin Matuska
    <mm_at_FreeBSD_dot_org>



    Most Popular Pages

    Created by Gustaf Neumann, last modified by Gustaf Neumann 12 Nov 2009, at 02:25 AM

    Error in includelet '{{most-popular -max_entries 30 -decoration none}}' of page en:most-popular:
    Nesting of includelets is to deep

    OpenACS Performance Tuning

    Created by OpenACS community, last modified by Torben Brosten 09 Nov 2009, at 07:54 PM

    OpenACS Performance Tuning

    Here is some documentation on general OpenACS performance tuning:

    Much performance tuning is targeted at the subsystems level, and so you will find some specific tuning information in these pages:

    A broad scope of causes can be attributed to OpenACS performance issues. These forum threads help identify useful diagnostic techniques and accurate testing to help narrow the scope of problem areas etc.

    Site Wide File Upload

    Created by Dave Bauer, last modified by Dave Bauer 02 Nov 2009, at 09:00 PM

    Spec for File Management Overhaul on Hub

    Michael Steigman (09/25/09) Updated 11/2/2009

    User interface mockups  

    Big Picture

    File management in OpenACS is a complicated affair at the moment. There are
    several ways to upload and link to files and this has led to duplicate files, broken links
    throughout content blocks and “embedded” files in rich text that are difficult to manage
    (among many other issues). We are aiming to unify the file upload, linking and
    management model and UI across the site, in order to make it simple to upload, update,
    share, reference and delete files.

    Organization of Files

    To help users in a community or on a site collaborate, weʼd like to allow them to
    organize and view files in ways that are intuitive. Taking from OS X, Google, Zoho, Windows et.
    al., we envision a series of organizational areas in the files UI corresponding to different
    filtering criteria.
    Places - within a community, default “places” will include all applications and any other
    subfolders the admin wishes to include. All users will see these places.
    Views - the views area will include some basic views which should cover a lot of
    scenarios (search for in OS Xʼs finder) and will expand with custom views created and
    saved on the advanced tab.
    Favorites (or bookmarks?) - this organizational area will display folders and files in the
    personal file area which the user has marked as interesting anywhere on the site.
    Shared - implied by the title, this area shows up in the personal file space and shows
    files shared by and to you.

    Upload and Linking Mechanisms

    We want to allow users to link to/attach/upload files to any type of content and present a
    consistent UI when doing this. The easiest way to do this would be to provide the same
    interface users normally browse by, as OS X does. The WYSIWYG editor will have to
    replicate this environment in a plugin setting. Apps that donʼt use the richtext widget
    should be able to “include” a version of the browsing interface that allows for single (and
    multiple?) file selection.
    Much like hard links in Unix, we envision multiple links to each files. The links should be
    viewable at the fileʼs canonical location (visible in the mockups). When no more links to
    a file exist, the file can be deleted (think callbacks on link removal). Storing a checksum
    for the file upon upload so that we can determine if it already exists within the
    community would be beneficial.

    Metadata Requirements

    We need to be able to map from link to destination file. Within this link, we need to
    capture some information - the object weʼre linking from being the primary bit of
    information. If this link were to be an instance of a dedicated object type, it could also be
    permissioned (i.e., a proxy). It could also point to a particular revision, which would
    enable a learning module to point at a stable revision and prevent teaching material
    from moving beneath a module author. These do not need to be part of the initial
    implementation but should be considered.

    Navigation and Page Requirements

    We should provide an generic overview page (detailed in the mockups) that describes
    the files attached to a piece of content. We need to be able to generate navigation for
    content such as wiki pages or forum posts that include a link to the overview page if files
    are attached. We also need a single, permanent page to display information about a file (File View in the
    mockups).

    Shared Folders

    Referece Google Docs Shared Folders Feature http://docs.google.com/support/bin/answer.py?hl=en&answer=158074
    Reference Zoho Document Management http://www.zoho.com/online-document-management/share-documents-collaborate.html

    Use Cases

    Upload File From Subsite/Group Files tab

    User clicks "Add File" link or button from "Subsite->Files" page.
    User sees upload dialog and chooses a file from their computer to upload.
    File is added to subsite default folder.
    Creation_user is the uploading user.
    Parent_id is the default folder for the subsite.
    Permissions are inherited from context_id,  all members of subsite can view this file.
    Context_id is the default folder for the subsite.

    Upload file as attachment to Forums Message (or wiki page, etc.)

    (note forums post workflow is not addressed)
    User chooses to attach a file to a forum message.
    User sees upload dialog and chooses a file from their computer to upload.
    File is added to subsite default folder.
    Creation_user is the uploading user.
    Parent_id is the related object, ie: forum_message
    Permissions are inherited from context_id, all members who can see the forum post can see the attached file.
    Context_id is the parent_id.

    Attach existing file from subsite folder as attachment to Forums Message (or wiki page, etc.)

    User chooses to attach a file to a forum message.
    User sees file chooser dialog (embedded filter view of subsite files).
    User chooses existing file.
    Acs_data_link created between forums_message and the uploaded file.

    Upload file to personal folder

    User browsers to their "workspace" (blah) and chooses Files.
    This shows the My Files view.
    User chooses Add File.
    File is added to user default folder (child of user object).
    Parent_id is the user default folder.
    Context_id is the parent_id.
    Permissions are inherited from the context_id.
    Noone else can see or manage these files except the user.

    Attach Existing file from personal folder to a forums message etc.

    User chooses to attach file to a forums message.
    User sees file chooser dialog (embedded filter view of subsite files).
    Somehow the user chooses to list My Files and sees a list of all files this user has created.
    Use chooses file from personal folder.
    User sees message that they will share this file with the group/subsite/community with a checkbox to acknowlege.
    A cr_symlink is created (this is the manifestation of "share" in this case.) in the subsite default folder.
    Acs_data_link created between symlink and the forums message.
    Permissions, parent_id, context_id of original file do not change!
    Parent_id of symlink is default folder.
    Context_id of symlink is parent_id.
    Permissions are inherited from context_id, all members of the subsite can view the symlink (which resolves to the file) as long as it is being shared (the symlink exists.)


    View subsite files

    User sees a list of files in the subsite folder or any subfolders, that they have permission to see (by default all of them.)
    Shows filename/title, description, updated date/time, tags, creation user???
    User sees list of Places (packages in the subsite.) Each place filters files that have acs_data_link to objects owned by that package.
    User can search filenames(titles/descriptions/tags) using the Search Within feature. Just like google docs. Does not search file contents??
    Clicking on a file name opens it but there should be an obvious place to view file information (permissions, revisions, links)
    Clicking on a folder shows files/folders in that folder.
    User can sort by name or date (asc/desc options, perhaps arrow next to name/date sort option?)
    What do we do with pagination? How does search/sort affect pagination?

    Experimental!! Sharing a Folder

    User creates a folder or chooses an existing folder to share.
    Symlink is created in group or target users folders to the shared folder depending on sharing level.
    Permissions are granted on the ORIGINAL folder based on the sharing settings. NOTE: how do we do this without screwing something up? That is the sharers are not allowed to DELETE or ADMIN the original folder. But we want to simplify dealing with the items IN that folder.

    User interface mockups

    Created by Dave Bauer, last modified by Dave Bauer 19 Oct 2009, at 03:21 PM

    NameContent TypeLast ModifiedBy UserSize (Bytes)
    file-upload-mockups.pdfapplication/pdf2009-10-19 15:21:47+02Dave Bauer161631

    Installing OpenACS on Mac OS X

    Created by OpenACS community, last modified by Torben Brosten 19 Oct 2009, at 10:34 AM

    Installing OpenACS on Apple Mac OS X

    See one of these:

    Should you decide to Install OpenACS from source using general en:openacs-system-install instructions, refer to these notes for changes:

    Installing en:postgresql

    OS X conventions

    On Mac OS X type sudo su - to become root.

    Use curl -L -O instead of wget

    If you are running Mac OS X prior to 10.3, you should be able to install and use PostGreSQL 7.3.x. Mac OS X 10.3 requires PostGreSQL 7.4. Note: if you're installing PG on an Intel Mac, you'll need to install 8.x; 7.4.x won't compile because of a lack of "native spinlock support" -- and this is something that the PG maintainers aren't inclined to fix. See this. PG 8.0.x installs fine, as does PG 8.1 or 8.2.

    Creating postgres user

    Do this instead:

    First make sure the gids and uids below are available (change them if they are not). To list taken uids and gids:

    nireport / /groups name gid | grep "[0-9][0-9][0-9]" nireport / /users name uid | grep "[0-9][0-9][0-9]"

    Now you can install the users

    sudo niutil -create / /groups/web sudo niutil -createprop / /groups/web gid 201 sudo niutil -create / /users/postgres sudo niutil -createprop / /users/postgres gid 201 sudo niutil -createprop / /users/postgres uid 502 sudo niutil -createprop / /users/postgres home /usr/local/pgsql sudo niutil -create / /users/$OPENACS_SERVICE_NAME sudo niutil -createprop / /users/$OPENACS_SERVICE_NAME gid 201 sudo niutil -createprop / /users/$OPENACS_SERVICE_NAME uid 201 mkdir -p /usr/local/pgsql chown -R postgres:web /usr/local/pgsql /usr/local/src/postgresql-7.4.7 chmod 750 /usr/local/pgsql

    Compile and install PostgreSQL

    If you're using Fink:

    Append --with-includes=/sw/include/ --with-libraries=/sw/lib flags to ./configure.

    ./configure --with-includes=/sw/include/ --with-libraries=/sw/lib

    Set PostgreSQL to start on boot

    cd /Library/StartupItems/ tar xfz /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-core-docs/www/files/osx-postgres-startup-item.tgz

    Alternatively, one can use an XML file like the following to start postgres via launchd (specifying the postgres binary directory and database directory)

    For Mac OS X Tiger (10.4.*), use:

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>GroupName</key> <string>nsadmin</string> <key>Label</key> <string>org.postgresql.PostgreSQL</string> <key>OnDemand</key> <false/> <key>ProgramArguments</key> <array> <string>/usr/local/pg820/bin/pg_ctl</string> <string>-D</string> <string>/usr/local/pg820/data</string> <string>-l</string> <string>/usr/local/pg820/data/server.log</string> <string>start</string> </array> <key>ServiceDescription</key> <string>PostgreSQL Server</string> <key>UserName</key> <string>postgres</string> </dict> </plist>

    For Mac OS X Leopard (10.5.*), use:

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>org.postgresql.PostgreSQL</string> <key>UserName</key> <string>postgres</string> <key>GroupName</key> <string>nsadmin</string> <key>OnDemand</key> <false/> <key>ProgramArguments</key> <array> <string>/usr/local/pg820/bin/postmaster</string> <string>-D</string> <string>/usr/local/pg820/data</string> <string>-c</string> <string>log_connections=YES</string> </array> </dict> </plist>

    Save the above files as /Library/LaunchDaemons/org.postgresql.PostgreSQL.plist and postgres will be started automatically on the next boot of the system. One can use launchctl to start the service for testing;

    launchctl % load /Library/LaunchDaemons/org.postgresql.PostgreSQL.plist % start org.postgresql.PostgreSQL % ^D

    To get Tcl to build on Leopard or newer

    for compiling under Mac OS X Leopard or newer, use the following flags to compile Tcl:

    ./configure --prefix=/opt/aolserver --enable-threads --disable-corefoundation --enable-symbols


    To get tDOM to build on tiger

    1. Download and install/update to the latest version of xcode tools (version2.2) from http://developer.apple.com/tools/xcode which updates the gcc compiler.

    2. Then make some additional changes to the unix/CONFIG file (after modifying the unix/CONFIG file according to instructions at en:aolserver-install, uncomment:
      'CC=gcc; export CC'
    3. add a new line, somewhere after the first line:

      export CPP="/usr/bin/cpp"

    When versions of aolservers different to aolserver 4.5 (head, including changes from Mar 22, 2008) are used, aolserver is likely to segfault on startup due to recent changes in the Mac OS X System libraries. To avoid this, use
    ulimit -n 256
    in the startup script (don't use unlimited).

    Educational Wiki (Eduwiki) Tool

    Created by Hector Amado, last modified by Hector Amado 07 Oct 2009, at 11:34 PM

    Educational Wiki  (Eduwiki)

    Description


    The Educational Wiki (Eduwiki) Package is a Wiki tool based on xowiki, Eduwiki aims to be a simple tool for Wiki pages creation in the educational context.
    This package lets the teacher to easily define Eduwiki Activities,  there are three Eduwiki Types activities:  Teacher Wiki,  Group Wiki and Student Wiki.
    Teacher Wiki activity is a single Wiki Activity managed by the Teacher,  Teacher may set permissions to the students to read and write Wiki pages.
    Group Wiki activity creates a Wiki per Group, Teacher may set permissions to read and write Wiki pages by other groups members.
    Student Wiki type creates individual Wiki pages per student,  each student can edit an create Wiki pages, teacher may set permissions to the rest of students to view and edit student Wiki pages.


    How to Install


    Eduwiki package works on: Postgresql 8.2.x+

    Requires:
    dotlrn 2.4.1
    xowiki 0.116
    xotcl-core 0.106
    ajaxhelper 0.87d


    Installation process:


    1. Get the following packages from HEAD:  eduwiki,  eduwiki-portlet,  dotlrn-eduwiki
    2. Save packages to packages dir in your .LRN installation
    3. Browse to Package Manager to install new packages (eduwiki,  eduwiki-portlet,  dotlrn-eduwiki)
    4. Restart the server
    5. Activate the applet in a course


    Release Notes


    Name: Educational Wiki (eduwiki)
    Version:  0.1d3 (July 2009)
    Developed by:  Hector Amado (Galileo University)
    Designed by: Rocael Hernández, Byron Linares (Galileo University)
    Requirements by: Daniel Contreras, Rocael Hernández (Galileo University)

    Provides a simple interface to create Wiki Activities,  Teacher may set permissions to read, write and create Wiki Pages.
    Provides a simple interface to create Wiki Pages (a no-brainer 1 click), and easily include and manipulate web assets such as flash, videos, images, etc.

    The package is an OO extension of xowiki,  leaves xowiki package unmodified, is based in XOWiki, since it is a very well maintained tool,  and have many of the desired features such as: easy content tool (plus the advantage that a wiki tools is becoming more and more common), directories, versioning, basic template management, variables, multi-language support.
    It provides portlets for .LRN


    Technical specs


    The Educational Wiki (eduwiki) Package is an OO extension of xowiki.  It's based on Policy ::xowiki::policy3, to set permissions per pages.

    A new proc was created to manage Eduwiki Activities, eduwiki::set_eduwiki_permissions,  this proc set permissions to new pages based
    on the activity definition.


    To-Do


    Start and end date editing functionality
    Integration with evaluation package

    New Documentation Process

    Created by Rocael Hernández Rizzardini, last modified by César Clavería 05 Oct 2009, at 04:21 PM

    New Documentation Process

    Official documentation will go into openacs.org/test-doc (to be renamed) generate from there the html pages for documentation, therefore the first result is to update the documentation to reflect current tools, version, correct commands, all done within that wiki instance

    The process for generating technical documentation is:

    1. Update that documentation wiki instance named doc-head
    2. Once the documentation is ready, freeze it doing a export/import process from /doc/head to a new instance (i.e. /doc/5-5-0)
      • No write permissions for the public will be granted to this frozen instances
      • Use an alternate template to distinguish between /doc/head and the frozen ones
    3. Generate the static html documentation based on the wiki-frozen instance (/doc/5-5-0) 
      • Using as template_file the view-oacs-docs
        • Available here: http://alice.wu-wien.ac.at:8000/xowiki/listing?m=list
        • Have to be placed on www dir of xowiki package
        • Also the parameter top_includelet have to be in blank for the wiki-frozen instance
        • Example on how the doc will be available in the wiki-frozen instance: http://alice.wu-wien.ac.at:8000/test-doc/for-everyone
      • Options for the static content:
        • One large HTML file and/or (book-print prototype)
        • One HTML file per chapter and/or (tutorial-advance prototype)
        • Same granularity as in /doc/head
        • Get the documentation using wget
          • This wget command should get you the html files for the documentation:
          • wget -kpr -R book <root of the documentation's xowiki instance>
        • The html files will not have an extension, this may cause them to not be interpreted as html and returned as plain text on some web servers, to be safe, rename the files to have an extension. Run the following script on the directory containing the static html files.
          • #!/bin/bash

            FILENAMES=`ls . | grep -v "html" | grep -v ".sh"`

            for f in $FILENAMES; do
                if [ ! -d "$f" ] ; then
                    FILE_NAME=`echo $f | awk -F ? '{print $1}'`
                    FILE_PARAMS=`echo $f | awk -F ? '{print $2}'`
                    if [ -z "$FILE_PARAMS" ]; then
                        NEW_FILE_NAME="${f}.html"
                    else
                        NEW_FILE_NAME="${FILE_NAME}.html?${FILE_PARAMS}"
                    fi

                    if [ ! -f "$NEW_FILE_NAME" ]; then
                        mv $f $NEW_FILE_NAME
                    fi
                fi
            done


    4. Commit into the CVS, branch and tag appropriately following the branch/tag conventions for the specific release.
    5. Add a link of this new /doc/5-5-0 into online documentation index openacs.org/doc and a map it in the site map to /doc/current
    Then the process can start again for the next documentation release.

    To-Do

    • Still missing a way to transform to independent html files with index / navigation within it (right now only produces a one big html). (done by Gustaf)
    • New /doc has to have a link to the various online (xowiki) frozen versions of the documentation.
    • Document the document formatting/markup rules in the wiki instance and the static documentation. 
      • Probably there is already formats for technical documentation available, produced, or at least some guidelines.
    • Openacs.org/doc will be replaced with the wiki-documentation (/test-doc instance renamed to /doc/head)
      • Provide an index to link to all frozen documentation releases.
      • Current /doc can be renamed to /doc-5-1
    • Assign someone to udpate the documentation, follow the process and release documentation.


    Consortium activities organization (DRAFT)

    Created by Rocael Hernández Rizzardini, last modified by Rocael Hernández Rizzardini 22 Sep 2009, at 05:40 PM

    DOCUMENT STATUS: A draft that HAS NOT YET been endorsed by the OpenACS OCT, the .LRN Board, or the .LRN Leadership Team (Honchos)


    These areas and list of activities has been summarized of a discussion over the lists. The aim is to have a more integrated set of activities created and provided by the different working groups (board, leadership team, oct).

    Consortium investment in .LRN:

    • Create a budget for the next 12 months / year, has to include also all administrative costs. (Alvaro can prepare a preliminary budget).
    • Figure out the priorities for technical development (QA, new releases, etc.), documentation & tutorials, marketing.

    Some areas to invest in that have been already formulated:

    1. Bug-fixes: #3 & #4: prioritize technical tasks is OCT and leadership authority
    2. QA testing for releases
    3. Release Management
    4. See original proposed set of jobs: https://docs.google.com/Doc?docid=0AUeGYMa72ygGZGhjbnc0bm1fN2R3czdxeGZ0&hl=en

    Documentation:

    1. Tutorials for basic areas of openacs technical development.
    2. Update on installation process for official documentation (already on creation process, a plan about how to address it will be posted soon, so approval is give to proceed with it)


    Marketing:

    1. Training on .LRN usage.
    2. Users help section
    3. A demo-course of .LRN (already on creation process)
    4. All these actions (and probably new ones) towards getting more users.


    The Consortium investment process:

    1. The priorities has to be agreed at the Leadership Team / OCT. Any formulated item will require a description clear enough to be able to justify a given investment.
    2. Figure out which investment channels we can have:
      • There is the initial Jobs small - incentives.
      • Some other people argue for better rates, that can lead us to monthly contract: directly contract monthly time in a yearly basis for some developers (at lets say open source rates, not as small as in the jobs): for instance one or two experienced community recognized developers, and one newbie (which is not expensive) that will do the bee-work.
      • Other possible paths? such as posting for a job and people make an offer and from there negotiate a give amount. Different people might require different amounts.
      • We might contract either an individual or an organization (Institution or a company)
    3. Assign a given priority / task to the interested developer / party.
    4. OCT / Leadership Team review and approved the work finished
    5. Consortium pays.


    Oracle support:

    At this point we cannot guarantee oracle support for .LRN.
    There are specific donations to Oracle, such from UCLA.
    Additionally, UNED & Bergen use oracle and has given their donation, so a part of that funds should go to Oracle support.
    Also, since UNED has an active group of developers supporting their installation, we should ask them to test Oracle as well.


    Increase community participation:

    • Consortium will request active and committed technical developer participation in the Leadership Team to the institutions that might have technical developers. (nominate an active developer for open-source with lets say 10-20 hours a week). Additionally, to be able to contribute better the best scenario will be to have this institutions to have their .LRN installations up-to-date, and have mechanisms that allow them to separate their code from what the official distribution is, that as well will let them influence more directly into the official distribution.
    • Improve communication from OCT & Leadership Team:
      • post the meeting minutes in time (the day after at the latest)
      • get the IRC logger back and have a usable page to access logs
      • move technical discussion to forums
      • Improve communication with the board.
      • Others?


    Community growth:

    • Create means to get new developers:  any ideas?
      • Emma: That won't happen alone. The main issue is "getting new users" and
        it's a marketing matter.



    dotlrn.org:

    • git will be replaced with cvs checkout from the cvs.openacs.org
    • update content
    • The technical management is assigned to the Leadership Team.
      • Leadership team can assume the technical management BUT ONLY ONCE the
        site is a CVS checkout from the openacs.org tree



    The new tutorial:

    • Has to have a place, where it links and download it.
    • It can be included on the distribution file and in the documentation.
    • With which tool we'll produce future tutorials and based on which templates still need to be settled. Maybe a comparison chart will help to make the decision.
    • A tutorial has not the same format and purpose of a traditional documentation (format as how is structured, organized and designed, and not to which is the document type).
    • Has to reflect any engineering standard that it might come across within its examples. While understanding that the tutorial is not to explain the engineering standards. The engineering standards has to be clearly defined with examples if necessary in the engineering standards section of the standard documentation (including the accessibility ones). The better explained, the easier to follow them!
    • It can be exported to different formats but its mandatory format is html.
    • As for documentation: we see in the repository no major changes in the documentation itself over the last years, so probably we need good review and really involve people to update on it, since none of the members of the groups seems to be doing maintenance over them.







    Testing with Selenium

    Created by Hamilton Chua, last modified by Dave Bauer 17 Sep 2009, at 07:56 PM

    Testing with Selenium

    Selenium is primarily for feature testing, user interface and acceptance testing.

    Recently OpenACS got support for Selenium RC   on CVS HEAD to be released in OpenACS 5.6 sometime in the future.

    Forum Posts :

    http://openacs.org/forums/message-view?message_id=365992

    Command Reference :

    http://www.openqa.org/selenium/seleniumReference.html

    Interesting Articles :

    Tools :

    Selenium Recorder Firefox Extension

    Quickstart to Writing Tests:

      This quickstart shows you how to start writing selenium tests with selenium and the selenium recorder (aka selenium-ide).

    1. You need to have the Firefox Browser version 1.5 or higher
    2. Proceed to http://www.openqa.org/selenium-ide/ and click on the link (Firefox Extension) to install the Selenium IDE firefox extension
    3. Restart firefox
    4. Click Tools -> Selenium IDE
    5. The selenium ide window will open
    6. It will start recording your actions in the browser.
    7. You can go ahead and go to a url and click on the links to see how the recorder records your actions.
    8. To disable recording while the recorder window is open, click the "red" button.
    9. Selenium verifies that a test or action is successful by checking the title or text in a webpage
    10. You can verify the title of the current page  by right clicking on the webpage you are currently in and click Append Selenium -> verifyTitle
    11. You can verify the presence of text in a page by highlighting some text and then right click -> Append Selenium Command -> verifyTextPresent

    Click here for a video of how to use Selenium IDE.

    Selenium IDE allows you to create, save, load and run tests right from firefox without having to install Selenium on the server.

    Selenium on the Server

    Aside from using the Selenium IDE to test webpages, selenium itself can be installed on the server. This provides a central location for testers and developers to view and execute tests. "Server" here refers to the OpenACS instance where your application is running. If your OpenACS instance is in http://your_openacs_instance, then selenium should be installed in http://your_openacs_instance/selenium

    WARNING: We do not recommend installing selenium on the server of a production instance. Only install selenium on a staging or test server. This is because

    • When tests fail, they leave a mess of test data that you will not want on production
    • Selenium is mostly javascript that can run on any browser. While there are currently no reports of exploits on servers running selenium, we do not want and (you should not too) take the risk of having it on a production box where it is possible for a clever hacker to utilize a browser vulnerability to break into your server.

    To instal selenium on the server :

    1. Download selenium from http://www.openqa.org/selenium-core/download.action
    2. Choose to download the "Full Release"
    3. After downloading, decompress the file.
    4. You will see a folder selenium-x.x where "x.x" is the version of selenium you downloaded.
    5. Go inside this folder and look for the "selenium" folder.
    6. Copy this "selenium" folder to the openacsroot/www/ directory
    7. Launch a browser and go to http://your_openacs_instance/selenium

    At this point, selenium is installed. The page that you see when you visit /selenium is the default selenium page. It lists the tests that come with selenium.

    To start using selenium on the server :

    1. Customize the landing page /selenium/index.html
    2. Create Test Suites for each package. A test suite is just a file in selenium/tests that lists a number of tests for a particular feature or section of an application. For instance, TestSuite-News.html would be a file that lists the tests for the News Package.
    3. Upload tests to the /selenium/tests folder.
    Guidelines for Creating and Running Tests for OpenACS Packages

    Coming Soon .....

    Some Limitations :

    • Minor Issue with SSL  : Selenium can't switch properly between http and https pages.
    • File Input type not supported : You can't tell selenium to upload a file. But there is a work around with firefox. Read it here
    • WYSIWYG Editors  : Selenium can't write to some WYSIWYG editors like htmlarea but it seems to work with xinha, you just need to get the textearea element name that xinha uses.

    Tips :

    Use xpath to find specific html elements

    I have  scenario where I want to click ona image field with no id or name attribute so there's no easy way to tell selenium to click it. We can either ask the designer to put an id or name attribute or use xpath. Let's say the image button in question looks like this

     <input type="image" src="images/long-login-btn.gif" width=166 height=15 />

    the xpath syntax will be

     //input[@src='http://www.openacs.org/images/long-login-btn.gif']

    and you can use this in conjunction with clickAndWait

    Use javascript to create dummy values

    You can use javascript to generate values like so

      javascript{'test' + (new Date()).getTime()}

    and use store to store them to a value for use later in the selenium script.

    .LRN 2.5 Release Management

    Created by Rocael Hernández Rizzardini, last modified by Emmanuelle Raffenne 16 Sep 2009, at 06:44 PM

    About

    • Next stable release: 2.5.0
    • Las stable release: 2.4.1
    • Tentavive deadlines:
      • may 31, 2009: code freeze and branch
      • june 1, 2009: alpha release process starts
      • june 15, 2009: beta release
      • july 15, 2009: final release

    .LRN 2.5 will contain the packages included in the following cvs modules:

    • acs-core
    • dotlrn-all
    • dotlrn-extras
    See Aliases at CVS for a detailed list of the packages included in those modules.

    Releases are coordinated by the .LRN Leadership Team.

    Weekly technical meetings in IRC at openacs channel:

    • Summer: Wednesdays, following the OCT one at 16:00 GMT
    • Winter: Wednesdays, following the OCT one at 17:00 GMT.

    To-do List

    • Databases support:
      • Postgresql 8.2 and 8.3
      • Oracle 10 and 11
    • Replace "html_p" by "mime/type" and richtext widget for input (news, bulk-mail, others?)
    • calendar: localize notifications
    • forums:
      • DONE: localize notifications
      • removed the SC implementation of search to avoid confusion (search now implemented with callbacks)
    • assessment:
      • review daveb changes
      • added "views" support (explicit dependency)

    Wish List

    NOTE: xowiki was NOT part of .LRN 2.4 or earlier. Since noone from the accessibility group has checked, whether xowiki is compliant with WCAG 1.0 double-A, the DotLRN consortium board meeting decided in Valencia to include xowiki and maybe some other packages in a dotlrn-extras distribution in 2.5. This extra-distribution should not have the strong accessibility requirement as dotlrn-all, where every package must be manually checked in detail by some "accessibility expert".

    Note by Don Baccus:  Honchos, not an ad hoc group of .LRN consortium members, decides what goes into .LRN.  Honchos proposed, and the board agreed, that a MINIMUM requirement for inclusion is accessibility compliance.  If xowiki hasn't been checked, by default it DOES NOT go in, not vice-versa.

    New features

    • Removal of .LRN applets:  see the Removal of Applet thread
    • Wiki (xowiki with special policy set designed for .LRN, i.e. avoid professors writing their own tcl scripts or access the DB (DONE), probably a simplified UI?) Galileo will work on this and a few additions to have a wiki for .LRN, in late may / early june 2008.
    • Content package: tools for creating content online for .LRN
    • xo-S5: online presentation tool (and get rid of wimpy-point)
    • Replacement of static portlets by xowiki portlet pages (need to figure out if we use the same xowiki instance for "portlet pages" and for the wiki)
    • Blogger replacement with xowiki blogger? (have to review funtionality list, upgrade from actual blogger, others)
    Having the idea of a macro-tool (xowiki) that can be easily customized for specific use with prototypes and others will help us to the reduce the code to maintain.

    To do

    • xowiki (What's missing?)
    • content: produce an standard release that work atop .LRN (oracle & PG).
    • s5
    • xo static portlet (supported via xowiki-portlet and dotrln-xowiki; what else?)
    • blogger

    Packages that could be xoified?

    There are packages that could be replaced with xowiki/xotcl.
    xowiki might need a finer granularity (object level) for permissions (parties), categories, comments.

    • news (if we manage to tell xowiki to use dates to display and archive a news item
    • edit-this-page
    • bulkmail (like news but with email being sent out and ui for selecting role/users)

    I would even to that far to say that we can replace forums (using page_order) and calendar (similar to news/bulkmail but special UI).

    TOC includelet test

    Created by Torben Brosten, last modified by Christiane Zim Zapelini 11 Sep 2009, at 08:30 PM

    begin toc 

    Error in includelet '{{toc -decoration plain -expand_all 1 -source {} }}' of page en:toc-test:
    Nesting of includelets is to deep

     end toc
     

    Time/Topics Planner for dotLRN Courses

    Created by Alvaro Rodriguez, last modified by Alvaro Rodriguez 01 Sep 2009, at 04:12 PM

    Introduction

    .LRN Blocks View is an additional View to .LRN Communities or Classes.

    The Blocks View works by integrating all kinds of activities or resources of a community to a simple interface where everything is treated by the object id no matter what the object type is, and creating a new behavior to the activities according to the object type.

    The new interface becomes the Community Home and is organized by blocks, there are currently 2 formats for the blocks:
    • Weekly Format
      • Each block represents a week, the weeks start to count the day the community starts, this value is set in the Course Settings of the Blocks View.
      • The current weeks is highlighted.
    • Topics Format
      • Each block represents a topic, all the activities and resources in this block are related to the topic, in this format the start date of the community is not relevant.
      • This format lets the teacher selects the current topic and highlights that topic automatically until it is deselected or another topic is selected, only one topic can be selected at a time.

    This option is available for all communities inside the dotlrn-admin-portlet, there's a link to enable/disable this view, when the view is enabled a default empty block is created inside the community (this initial block it is always shown on top with no format) and it automatically mounts the packages needed (evaluation, assessment, forums, content, xowiki, chat) on the community.

    Course Settings


    In the Course Settings of the Blocks View we can set:
    • the number of blocks, if the number of blocks selected is greater than the current blocks, the extra blocks needed are created, if the number of blocks selected is lower than the current blocks the rest of the blocks are simply not displayed but never deleted.
    • the start date, this is used to set the start day for the weekly format.
    • the format, weekly or topics.

    Blocks Basics


    To add objects to a block there is a section inside each block where we can select the type of activity/resource we want to add and it lead us to the specific interface of that object type to create a new object or we can go to choose an existing activity from an interface showing all the available activities.

    Each block has the following options:
    • Add a summary, this is a small text that we can add to be shown on top of the block to describe the block's content.
    • Show/Hide, we can choose which blocks we want to make available for students.
    • Move, the blocks can be ordered by using a drag n drop option to move them or doing a manual move by moving the block one position at a time.

    Blocks Objects Basics


    Each object inside a block has the following options:
    • Show/Hide, we can choose which object we want to make available for students.
    • Move, the objects can be ordered inside the same block or moved to a different block by using the drag n drop option.
    • Indent, the objects can be indent right or left, this is just for visual purposes and it has no side effect on the behavior of the objects.
    • Edit, this link lead us to the specific edit interface depending on the object type.
    • Delete, this link deletes the reference of the object with the block and if the object is not referenced by another block it deletes the object as well.

    Technical Specs


    The relations between all the packages integrated with blocks are handled by using callbacks, this callbacks are declared in the blocks context and the implemented in each package context.

    The callbacks used are:
    Specific callbacks: These callbacks need to be implemented for each package  because it must return the url for different actions on an specific object type.
    1. search::url
    2. planner::edit_url
    3. planner::delete_url
    Standard callbacks: These callbacks are implemented once because there's no difference in the code needed for all packages.*
    1. planner::extend_form
    2. planner::insert_object

    * The only package with a different implementation for the standard callbacks is the file-storage, the objects of the file-storage cannot be treated only with the object_id because there are different types of objects (url, file or folder) and to be able to choose a file we might need to navigate inside some folders, so in this case the value for the block id is passed in the cookies and the cookies are validated by the parameter return_url.

    A New Package


    A new package was created based on xowiki called "pages" to accomplish the integration of xowiki with the blocks view, xowiki is not a usual package so it was not possible to add the callbacks in the same way as the rest of the packages, a lot of procs needed to be changed and to avoid adding too much code to xowiki we created an independent package.  This package requires xowiki as it uses all the xowiki classes and procs.

    This package works just like xowiki but using a different policy to let the users only work with ::xowiki::Page and ::xowiki::PlainPage, adding new pages can be handled only from the blocks interface because it needs a block to associate the page with. The package has a callback "after-mount" to set the permissions to not inherit from parent and only swa can admin that package.

    Navigation Bar


    The blocks view provides a navigation bar in the master section (only inside of the community), this bar show all the objects inside the blocks on that community and you can go to any object on any block. If you're inside an object page, the navigation focuses on that object (this is done by sending a parameter to the master with the object_id) and enables the navigation to the next and previous object (if possible).

    Scalability


    This .LRN Planner went through scalability tests because it has it's own data model which links objects from all the other resources tables, if this is used as every single course home organizer it could become slow know that needs to get specific information from different tables for every object. 

    The solution for this matter was to group all the activities of a course for a specific type, get the information by groups and leave it in aolserver's cache, this involves a lot of extra code to keep the cache up-to-date, this is completely handled to make the planner a powerful solution for every course in .LRN.

    Project Documentation

    This paper was presented in the 7th OpenACS/.LRN Conference, you can check out the conference paper.

    How to Install

    Works on:
    Postgresql 8.2.x +
    Oracle 9i +

    Requires:
    dotlrn 2.4.1
    xowiki 0.106.1
    xotcl-core 0.100
    ajaxhelper 0.87d

    Installation process:

    1. Get the following packages from branch oacs-5-4: dotlrn-all, xowiki, xotcl-core
    2. Get the following packages from HEAD: planner, pages, ajaxhelper
    3. Move to the planner-patch folder in the planner package folder and run the script.sh, this will patch all the files from other packages to integrate them with the planner new features
      1. To run the script:
        • /$path_to_planner_patch/$  sh script.sh
    4. Install dotlrn, then install xowiki, xotcl-core, planner, pages and ajaxhelper
    5. Restart the server
    6. Activate the Planner View in a course admin portlet

    Release Notes

    Name: .LRN Planner
    Version: 1.0b (July 2009)
    Developed by: Alvaro Rodriguez (Viaro Networks)

    • Full integration with dotlrn resources: evaluation, assessment, forums, file-storage, HTML and Text Pages (using the Pages package)
    • Use of aolserver cache to assure scalability
    • Weeks and topics formats available
    • Provides a completely independent course home
    This is how the Planner View looks.

    Technical Specs

    The planner works by linking activities by calling the callbacks that have been added to other packages in the add forms to be able to link the resources from those packages to the planner blocks. The callbacks extend the form of a new object to receive the page_id to be linked to and inserts the objects to the page once it has been created in the submit section of the form.

    Each callback is defined and implemented in the planner-procs, in the following way:
    ad_proc -public -callback "callback_name" -impl planner
    if a package needs a different implementation of a callback it should be done in the package callbacks procs in the following way:
    ad_proc -public -callback "callback_name" -impl $package_key
    This callbacks are used inside the page that has the form for creating/editing new in the following way:
    callback -catch -impl planner "callback_name" -params...

    To add a new package to the activities available in the planner, the callbacks should be added to the file(s) where the objects are created, i.e. forum-new, task-add-edit, etc.
    1. A new parameter called block_id needs to be added to the ad_page_contract
    2. The following callback should be added in a place where the form can be extended
      • callback -catch -impl planner planner::extend_form -name $form_name -block_id $block_id
    3. The following callback should be added in the submit section of the form after the object has been created
      • callback -catch -impl planner planner::insert_object -name $object_name -block_id $block_id -object_id $object_id
    4. The activity should be added to the index, select-activity and get-activities pages in the planner package, check out the existing activities sections to figure out the right way to include 
    5. Depending on the activity, other lines of code need to be added to keep the consistency with the use of aolserver's cache, to keep it up-to-date with objects add/edit/delete actions.

    The script added to the package to patch the rest of the packages was generated with diff between the packages from clean oacs-5-4 and modified oacs-5-4:
    diff -crNB ~/oacs-5-4/packages/$package_name ~/custom-oacs-5-4/packages/$package_name

    This work was done in collaboration with Innova - UNED.

    Next Steps After Installation, Debian Specific

    Created by Kenneth Wyrick, last modified by Kenneth Wyrick 14 Jul 2009, at 04:30 PM

    Next-Steps

    After following:

    Debian Installation Instructions

    A. Installing Daemontools

    Documentation
    nano /usr/share/doc/openacs|dotlrn/README.daemontools on openacs package.

    apt-get install daemontools daemontools-run


    B. Configuring Daemontools and Using SVC

    1) Change the "StartDaemon" value to "no" in /etc/default/:
    # OpenACS
    nano /etc/default/openacs
    ... or ...

    # .LRN
    nano /etc/default/dotlrn

    2) Stop the daemon:

    # OpenACS
    /etc/init.d/openacs stop
       ... or ...





    # .LRN
    /etc/init.d/dotlrn stop





    3) Link daemontools dotlrn|openacs script:

    # OpenACS
    ln -s /usr/share/openacs/etc/daemontools /etc/service/openacs
    ... or ...

    # .LRN

    ln -s /usr/share/dotlrn/etc/daemontools /etc/service/dotlrn

    Now you can control the dotlrn service using the svc command:
    * To start the service: svc -u /etc/service/
    /openacs or dotlrn
    * To stop the service: svc -d /etc/service/
    /openacs or dotlrn
    * To restart the service: svc -t /etc/service/openacs or dotlrn


    C. If There's Problems Purge and Reinstall

    apt-get remove --purge openacs or dotlrn

    apt-get install openacs or dotlrn

    D. To configure the instance to listen on a different IP than 127.0.0.1

     

    Edit the config.tcl file:
    nano /etc/openacs|dotlrn/config.tcl

    Change the following parameters to fit your needs:
    set hostname Your hostname
    set address to Your public IP


    E. Backup and Restore (to be filled in)

    I first went to: backup and restore docs

    and found that I had to figure out how to:

    su - $OPENACS_SERVICE_NAME
    pg_dump -f /var/lib/aolserver/$OPENACS_SERVICE_NAME/database-backup/before_upgrade_to_4.6.dmp openacs-dev
    ls -al /var/lib/aolserver/$OPENACS_SERVICE_NAME/database-backup/before_upgrade_to_4.6.dmp
    exit
    

    The $OPENACS_SERVICE_NAME
    which I thought would be "dotlrn"
    turned out to be "www-data"

    Next I found there was no /var/lib/aolserver but there are /var/lib/dotlrn and /var/lib/postgresql

    The default paths show the locations that were decided upon (in early 2004) so below we will try to document were things are in a standard dotlrn installation, now.

    a work in progress



    OpenACS service dotlrn
    OpenACS service account www-data
    OpenACS database name dotlrn
    SERVERROOT /usr/share/dotlrn/www
    Database backup directory /var/backups/
    Service config files /usr/share/dotlrn/etc/config.tcl
    Service log files /usr/share/dotlrn/log/
    PostgreSQL directory /usr/lib/postgresql/8.3/main
    AOLserver directory /usr/lib/aolserver4
    Backup Script
    /usr/share/dotlrn/etc/backup.sh


    F. Installing Packages (to be filled in)

    1. From .LRN CVS

    a) Create a local repository

    b) Download to your local repository

    G. View the Log File

    nano /var/log/aolserver4/dotlrn/error.log


    H. Mail Server (to be filled in)

    1. Installation
    2. configuration

    How to contribute code that meets accessibility requirement

    Created by Rocael Hernández Rizzardini, last modified by Emmanuelle Raffenne 11 Jun 2009, at 07:24 PM

    About this document

    • Status: DRAFT
    • Updated: 11-jun-2009

    Accessibility Policy

    The policy for .LRN is published at .LRN website: Accessibility Policy

    Corresponding policy for OpenACS is currently being written and will be published soon.

    The conformance level to be satisfied is explained in the "Accessibility Conformance Level" section of the .LRN Accessibility Policy.

    The "Accessibility page" refered by the .LRN Accessibility Policy states the conformance level and its domain of aplication for each version of the software.

    Web Content Accessibility Guidelines

    Note: Although automatic tools, such as TAW and "Cynthia says", may be useful to help the developer/author in addressing accessibility issues by providing informative reports, they can not certify the accessibility level of a page since many things need a manual review. Also, those tools won't be able to check a page protected by user and password (they would report on the login page, the one they can actually reach).

    WCAG version 2.0

    WCAG version 1.0

    • The guidelines: explain how to make Web content accessible to people with disabilities.
    • Checklist of checkpoints to satify for each level of conformance. Each checkpoint is followed by one or more links to techniques in the following documents:
      • "Core Techniques for Web Content Accessibility Guidelines 1.0" ([WCAG10-CORE-TECHNIQUES]), which discusses the accessibility themes and general techniques that apply across technologies.
      • "HTML Techniques for Web Content Accessibility Guidelines 1.0" ([WCAG10-HTML-TECHNIQUES]), which provides examples and strategies for authoring accessible Hypertext Markup Language (HTML) content.
      • "CSS Techniques for Web Content Accessibility Guidelines 1.0" ([WCAG10-CSS-TECHNIQUES]), which provides examples and strategies to help authors write Cascading Style Sheets (CSS) as part of accessible content design.
    • Techniques: gateway to the aforementioned specific ones.

    Contributing Code

    Once the requirements are met, to contribute your code follow these instructions (one of the two):

    1. How to contribute to OpenACS
    2. Contributing code for .LRN: submit your proposal to the .LRN leadership team by:
      • posting at the .LRN Q&A forum
      • joining the weekly meeting on IRC (tuesday at 18:00 CET/CEST)

    Resources

    on-site resources

    External resources

    If you need more information on how to address accessibility, post your questions at the forums

    .LRN Installation

    Created by Carl Robert Blesius, last modified by Alvaro Rodriguez 11 Jun 2009, at 04:12 PM

    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

    Body Onload javascript event

    Created by Rocael Hernández Rizzardini, last modified by Gustaf Neumann 28 Apr 2009, at 08:47 AM

    The latest technique makes a consistent API for adding code into the document:

    The new template::head and 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.

    If your script may only be added once you may supply an identifier. Subsequent calls to template::add_body_handler with the same identifier will replace your script rather than appending to it.

    event may be one of:

    • onload
    • onunload
    • onclick
    • ondblclick
    • onmousedown
    • onmouseup
    • onmouseover
    • onmousemove
    • onmouseout
    • onkeypress
    • onkeydown
    • onkeyup

    @param event the event during which the supplied script should be executed

    @param script the javascript code to execute

    @param identifier a name, if supplied, used to ensure this javascript code is only added to the handler once

    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>

    News Item

    Created by , last modified by Victor Guerra 11 Mar 2009, at 03:44 PM

    @image_url@ @_text@
    @detail_link@

    Workshop Announcement

    Created by Gustaf Neumann, last modified by Victor Guerra 11 Mar 2009, at 03:44 PM

    @event@

    Abstract: @_text@
    @detail_link@

    Talk Announcement

    Created by Gustaf Neumann, last modified by Victor Guerra 11 Mar 2009, at 03:44 PM

    @event@

    Abstract: @_text@
    @detail_link@

    Book

    Created by , last modified by Victor Guerra 11 Mar 2009, at 03:44 PM

    Error in includelet '{{set-parameter template_file view-default}}' of page en:book:
    Nesting of includelets is to deep

    Error in includelet '{{toc -decoration plain -book_mode 1 -expand_all 1}}' of page en:book:
    Nesting of includelets is to deep

    Book

    Creator:

    Error in includelet '{{book -menu_buttons "edit copy create delete"}}' of page en:book:
    Nesting of includelets is to deep

    Simple Content Creator / Editor

    Created by Rocael Hernández Rizzardini, last modified by Alvaro Rodriguez 06 Mar 2009, at 12:06 AM

    Description

    The Content Package aims to be a simple tool for content creation in the educational context. 

    • Provides a simple interface to create web pages (a no-brainer 1 click), and easily include and manipulate web assets such as flash, videos, images, etc.
    • Provides a web template, easy to manage, similar to a PPT template but with built in navigation (sequential navigation, tab based organization, sub tabs supported and per unit / module navigation).
    • Folder, subfolders, pages ordering.
    • Free of "standards" approaches, so professors with basic word knowledge can use it.
    • Auto scroll (focus navigation on the content area).
    • It provides portlets for .LRN

    The Content Package is based in XOWiki, since it is a very well maintained tool, and have many of the desired features such as: easy content tool (plus the advantage that a wiki tools is becoming more and more common), directories, versioning, flexible built-in features to handle content more easily (including positioning and segmentation), basic template management, variables, multi-language support.

    The Content Package is a configuration package with a set of scripts, xowiki is left unmodified for Content to work. 

    Check Galileo University promotional video (in spanish) and public announcement. 

    Application architecture design by Byron & Rocael, development by Byron for Galileo University

    Try it at:

    http://www.galileo.edu/dotlrn/classes/departamentoparapruebas/departamentoparapruebas.actualizacintributaria/lamegaprueba2/xowiki/


    user & pass: usertest

    Check the manuals (in spanish).

    To-Do 

    • Provide collaborative content creation tools while being able to set up roles easily.
    • Integrate to SCORM / LORS

    How to install

     

    Works on:

    postgresql 8.2.4

    xowiki 0.47 +

    xotcl 0.47 +
     

    Requirements: 

    ltree module for postgresql.

    Installation Process:

     

    1. Install ltree module for postgres.
    2. Obtain packages:  content-portlet, dotlrn-content, xowiki,xotcl-core
    3. Move the files of content-portlet/misc/www/*  to xowiki/www/
    4. Move the files of content-portlet/misc/admin/*  to xowiki/www/admin
    5. Move the files of content-portlet/misc/portlets/*   to xowiki/www/portlets/
    6. Go to acs-admin/apm
    7. Choose "install-packages"
    8. Install xotcl-core,  xowiki , content-portlet, dotlrn-content
    9. If xowiki is already installed, reload xowiki
    10. Restart the server.
    11. Activate the applet in one course.


     

    Technical Specs

     Install the content applet in dotlrn will:    

    1. Place the xowiki (INSTANCIA) that will be used with the following personalized characteristics.
    • Parameters:  
    • extra_css : /resources/content-portlet/template/Gestheme.css
    • security_policy: ::xowiki::policyb
    • template_file: ges-view


    • Kind of created pages.
    • ::xowiki::Page : Index for welcoming to the main application: content-portlet/www/prototypes/gestemplate/GesTemplateIndex.page
    • ::xowiki::Object : 
    • Default object whit the name folder_id in which the use of Xhina editor is configured.
    • es:o_index : Object which manages the presentation of the index page depending on the kind of user.
    Source: content-portlet/www/prototypes/gestemplate/GesTemplateIndexe.page
    • ::xowiki::PageTemplate:
    • es:Template_de_ges Web template that manages the presentation and navegation of the future content pages that will be created.
    Source: content-portlet/www/prototypes/gestemplate/GesTemplatebody.page
    • es:Template_de_header: Template which manages the edition of the content titles.
    source: content-portlet/www/prototypes/gestemplate/GesTemplateheader.page
    • ::xowiki::PageInstance :
    • es:header_page : used to entry the heading of the future content pages.
    Source    : content-portlet/www/prototypes/gestemplate/GesTemplateheaderpage.page
    1. Creation of the content index that will be used:  this content index is composed of the following categories:
    • Unit or chapter
    • Introduction
    • Content
    • Activities
    • Glossary
    • Appendix

    Content-Portlet Description:
    The template es:Template_de_ges  manages the final presentation of the created content pages.
    The web template used, is based in three navigation levels.
     

    • Unit or module
    • Section
    • Subsection

    This template is built with a series of scripts, which are responsible of the navigation of every section, is divided in:  header, module navigation, section navigation, subsections navigation, navigation between pages and content.
    The navigation is controlled by their respectives scripts located in content-portlet/www/

    And they are:

    unit-navbar: Checks the navigation between units or modules.
    Navbar and complete-navbar:  Checks the navigation between sections in the web template.
    complete-titlebar, next, home: These are the elements that conform and check the horizontal navigation bar between content pages for one section or subsection.
    Subnavbar and complete-subnavbar: These elements check the navigation between subsections.
    Each one of these are part of the web template and provides us a graphic simple way to navigate between content pages.

    content-portlet/www/prototypes/gestemplate :  Provides the content of the diferents pages of xowiki created automatically by adding the applet in a course.

    content-portlet/www/resources : It contains the graphic part of the web template that is being used.  (images, estiles, etc.)

    Updates

    There is an improved version of this package called Learning Content.

    F. A. Q.

    Created by Robert Taylor, last modified by Torben Brosten 16 Jan 2009, at 01:11 PM

    Previous version of FAQ (with many more Q and A):  http://openacs.org/faq 

    A cookbook of procedures is available at: [OpenACS Cookbook] 

    Install OpenACS - prereqs

    Created by OpenACS community, last modified by Torben Brosten 15 Dec 2008, at 08:39 PM

    Prerequisites to installing OpenACS

    You will need a computer with at least these minimum specifications:

    • 256MB RAM (much more if you will be running Oracle)
    • 1GB free space on the computer's hard disk (much more if you will be running Oracle)
    • a compatible, Unix-like operating system en:os-nix installed.

    All of the software mentioned is open-source and available without direct costs, except for Oracle. You can obtain a free copy of Oracle for development purposes (see: en:oracle-install).

    Each version of OpenACS only works with certain versions of the component software. Determine which versions you will be using by reviewing the en:openacs-compatibility-matrix.

    These components in-turn depend on other software and parts of the OS. Here is a list of minimum required versions. For production systems, use the lastest stable release:

    • GNU/Linux. The installation assumes a linux kernel of 2.2.22 or newer, or 2.4.14 or newer.
    • glibc 2.2 or newer. You need recent versions of these libraries for Oracle to build and work properly. For Unicode support, you need glibc 2.2 or newer. glibc should be included in your operating system distribution.
    • GNU Make 3.76.1 or newer and gcc. PostgreSQL and AOLserver require gmake/gcc to compile.

    OpenACS has a variety of packages that may require other software to be installed. Review the individual package documentation for other requirements. Also, OpenACS is commonly deployed with other related applications. For your convenience, here is a short list of some of these:

    • tclwebtest - a tool for testing web interfaces via tcl scripts.
    • ns_pam - provides PAM capabilities for AOLserver. You need this if you want OpenACS users to authenticate through a PAM module (such as RADIUS).
    • pam_radius - provides RADIUS capabilities for PAM. You need this if you want to use RADIUS authentication via PAM in OpenACS.
    • ns_ldap - provides LDAP capabilities for AOLserver. You need this if you want to use LDAP authentication in OpenACS.
    • OpenFTS - Adds full-text-search to PostgreSQL and includes a driver for AOLserver. You need this if you want users to be able to search for any text on your site. For postgres 7.4.x and higher, full text search is also available via tsearch2.
    • Analog - examines web server request logs, looks up DNS values, and produces a report. You need this if you want to see how much traffic your site is getting.
    • Balance - "a simple but powerful generic tcp proxy with round robin load balancing and failover mechanisms." You need this or something equivalent if you are running a high-availability production site and do not have an external load balancing system.
    • Daemontools -You need this if you want AOLserver and qmail to run "supervised," meaning that they are monitored and automatically restarted if they fail. An alternative would be to run the services from inittab.
    • en:mta
    • Netqmail - You need this (or a different Mail Transport Agent) if you want your webserver to send and receive email.
    • ucspi-tcp - listens for incoming TCP connections and hands them to a program. We use it instead of inetd, which is insecure. You need this if you are running qmail.
    • DocBook (docbook-xml, docbook-xsl, libxslt, xsltproc) - for writing or editing docbook style documentation.
    • en:source-control
    • search uses these utilities to index file contents: http://wagner.pp.ru/~vitus/software/catdoc/ and  http://poppler.freedesktop.org/ based on xpdf.

    next: en:openacs-system-install

    Install OpenACS on Linux

    Created by Gustaf Neumann, last modified by Gustaf Neumann 06 Dec 2008, at 10:36 AM

    The following pre-packaged installations for OpenACS and .LRN under Linux are available:

    OpenACS and .LRN can be installed certainly as well from scratch using the guidelines for stepwise installation of all necessary components.

    In general, OpenACS and its components works very well under Linux. It is used in many large installation with up to 10 million hits per day. For most applications, the systems runs nicely with a wide range of versions of Linux and its components. Due to some library changes in some Linux versions (especially in the native Linux thread installations), some precautions might be necessary. In case of problems on sites with high loads (e.g. server hangs) we recommend the following versions

    • Linux Kernel <2.6.9 or better,  >2.6.25
    • NTPL >= 2.7
    • gcc >= 4.2
    • Tcl libthread should be > 2.6.5 (including changes from 2008-05-22)


    Boost your application performance to serve large files!

    Created by Rocael Hernández Rizzardini, last modified by Gustaf Neumann 24 Nov 2008, at 03:23 PM

    In order to speed up file-deliveries, one can use the background delivery methods provided by xotcl-core. The main advantage is that with background delivery the costly connection threads are just used for permission checking and locating the file, and the time-consuming spooling of the file to the client is implemented in an asynchronous background delivery thread. Therefore, connection thread are not blocked, it is possible to spool simultaneously several hundred (thousand?) files with only a few connection threads configured.

    We use this in production since several years. For example today (no semester yet) we had so far 150.000 file deliveries by background delivery.

    The asynchrounous background delivery requires a small patch (2 changes, one is a backport from naviserver) and the tcl thread library (by zoran). The application code is in XOTcl is only a few lines of code and is included in xotcl-core (bgdelivery-procs.tcl).

    One needs the following patch to

    The patch is already included in the current head version of aolserver 4.5 and in naviserver.

    With this patch and xotcl-core, one can replace


    ns_returnfile 200 $mime_type $filename
    by

    ad_returnfile_background 200 $mime_type $filename
    e.g. in cr_write_content in acs-content-repository/tcl/revision-procs.tcl to activate it and to deliver files from the content-repository (file-store) in the background.

    The connection thread is only used for permission management, localization of the file and writing the the reply header, the actual delivery of the file is performed via asychronous io without using up many resources. This can handle probably a couple of thousand concurrent file deliveries without running out of resources.

    Check the files that has been served since the last reboot of your aolserver using this method from the developer support shell:

    bgdelivery do set delivery_count


    Original thread:
    http://openacs.org/forums/message-view?message_id=482221 

    Marketing Materials Home

    Created by Ryan Gallimore, last modified by Ryan Gallimore 15 Nov 2008, at 03:15 AM

    Please find here marketing materials to help you sell OpenACS.

    Documentation for everyone ( en:docs-end-user ) includes a marketing slant. These docs follow Marketing documentation requirements

    Permissions Administrator

    Created by Ryan Gallimore, last modified by Ryan Gallimore 11 Nov 2008, at 04:29 AM

    Permissions Administrator Specification

    Download 0.2d version

    Forum Thread 

     

    Goal: Update group membership and permissions for all site packages and subsites from a single admin UI.

    Features:

    1. Assign a User to a Group
    2. Admin Groups
      • Add or Delete a Group
      • Grant any permission on any package/subsite
      • View each member and their membership relation
    3. Assign Many Users to a Group / Relational Segment
    4. View All Groups and Permissions
    5. View Reports on Groups, Permissions and related objects.
    6. Utilizes an AJAX search widget[1] to easily type and select users and packages from large lists.

    Reporting 

    Output each user's permissions, group memberships, group permissions, and permissions granted through group assignment. This report can be filtered by the following criteria: Object Name/URL, Group, Privilege.

    The report is downloadable as a CSV spreadsheet.

    Notes

    • Due to performance issues, the Permissions Administrator does not set or report permissions granted through inheritance. This must be maintained using the core tools.

    • Only Read, Write, Create and Admin permissions can be granted or revoked with this tool.

     

    1. An AJAX Search is a search that displays the results dynamically as you type. As you enter 'music' all the objects matching that string anywhere in its name or URL are displayed in a dropdown box underneath the search box.


     

     

     

    Release Notes .LRN 2.3.1

    Created by Alvaro Rodriguez, last modified by Alvaro Rodriguez 11 Nov 2008, at 02:40 AM

    Release Notes .LRN 2.3.1

    Note: This release notes were created based on the change log from tag dotlrn-2-3-0-final to dotlrn-2-3-1-final on the branch oacs-5-3. (view full change log

    ASSESSMENT

    Add form for naming an answer set

    Fix upgrade to work with correct constraint names

    CALENDAR

    Add attachment icon if an event has attachments

    Upgrade that fixes permissions and removes requests for personal calendars

    FAQ

    Added triggers to index faq contents for search

    NEW-PORTAL

    Fix bug where database does not magically return portal pages in sorted order, causing user confusion when the pages end up out of order. No upgrade for existing pages since I don't want to stomp all over portals that may have been customized.

    changes to portal layout page design

    THEME-ZEN

    First shot at integration of Zen. Everything except DIV-based column layout is in other than some details ...

    And more necessary things ... would've been nice to have received the tar file in the first place, as was asked for!

    Zen round 2.  Added 1, 2 and 3 column div-based layout and a horrible, horrible hack in the new-portal package to make them work.

    Use site blank-master. Initialize header stuff

    1. Fixed some catalog stuff.  Made a simple update script, not ready for Prime Time.

    Zen: file for onkeypress goto function; needs to be reviewed by donb

    Changed update code to set portlet themes to zen

    1. Localized styleswitcher links
     

    This work has been done for the .LRN Consortium

    Change Log from .LRN 2.2 to .LRN 2.3.0

    Created by Alvaro Rodriguez, last modified by Alvaro Rodriguez 11 Nov 2008, at 02:33 AM

    .LRN Packages

    Note: This changelog was created from dotlrn-all on branch oacs-5-3 until dotlrn-2-3-0-final tag.

    ----- ACS-DATETIME -----

    Greek translation

        * 2007-04-15 14:11:49 -0600 emmar     openacs-4_packages_acs-datetime@catalog/acs-datetime.el_GR.utf-8.xml 1.4.2.1 (unknown)

    Merging Nima's changes: UI fixes

        * 2007-02-15 16:24:04 -0600 emmar     openacs-4_packages_acs-datetime@tcl/acs-calendar-procs.tcl 1.22.2.1 (unknown)

    Merging catalog files to oacs-5-3 from oacs-5-2 for acs-datetime

        * 2007-02-19 01:14:14 -0600 victorg     openacs-4_packages_acs-datetime@catalog/acs-datetime.ca_ES.ISO-8859-1.xml 1.3.2.1 (unknown)

    Update version number for packages and dependencies

        * 2007-04-02 14:18:24 -0600 emmar     openacs-4_packages_acs-datetime@acs-datetime.info 1.16.2.1 (unknown)

    ----- ACS-DEVELOPER-SUPPORT -----

    Developer support should only be running from the main domain

        * 2007-06-24 12:51:51 -0600 maltes     openacs-4_packages_acs-developer-support@tcl/acs-developer-support-procs.tcl 1.45.2.1 (unknown)
        * 2007-06-24 12:51:51 -0600 maltes     openacs-4_packages_acs-developer-support@lib/toolbar.adp 1.16.2.1 (unknown)
        * 2007-06-24 12:51:51 -0600 maltes     openacs-4_packages_acs-developer-support@lib/toolbar.tcl 1.8.2.1 (unknown)

    Do not enable on startup to avoid error at installation

        * 2007-01-02 16:06:35 -0600 emmar     openacs-4_packages_acs-developer-support@acs-developer-support.info 1.18.6.1 (unknown)

    Migrated to list builder

        * 2007-03-05 12:58:44 -0600 nimam     openacs-4_packages_acs-developer-support@lib/footer.adp 1.14.6.1 (unknown)
        * 2007-03-05 12:58:44 -0600 nimam     openacs-4_packages_acs-developer-support@lib/footer.tcl 1.9.6.1 (unknown)

    Update version number for packages and dependencies

        * 2007-04-02 14:18:24 -0600 emmar     openacs-4_packages_acs-developer-support@acs-developer-support.info 1.18.6.2 (unknown)

    ----- ACS-EVENTS -----

    All editing only future events of a recurrence

        * 2007-03-30 23:09:59 -0600 daveb     openacs-4_packages_acs-events@sql/oracle/upgrade/upgrade-0.6d1-0.6d2.sql 1.1.2.1 (unknown)
        * 2007-03-30 23:09:58 -0600 daveb     openacs-4_packages_acs-events@sql/oracle/acs-events-create.sql 1.10.6.1 (unknown)
        * 2007-03-30 23:09:59 -0600 daveb     openacs-4_packages_acs-events@sql/postgresql/acs-events-create.sql 1.14.2.1 (unknown)
        * 2007-03-30 23:09:59 -0600 daveb     openacs-4_packages_acs-events@sql/postgresql/upgrade/upgrade-0.6d1-0.6d2.sql 1.1.2.2 (unknown)

    Fix handling of recurring events over DST. Add upgrade script. NOTE:
    only needed on postgresql since Oracle doesn't store timezones.

        * 2007-03-28 19:43:25 -0600 daveb     openacs-4_packages_acs-events@sql/postgresql/upgrade/upgrade-0.6d1-0.6d2.sql 1.1.2.1 (unknown)
        * 2007-03-28 19:43:25 -0600 daveb     openacs-4_packages_acs-events@acs-events.info 1.16.2.1 (unknown)

    Fixed typo in daveb's change

        * 2007-04-22 19:58:19 -0600 donb     openacs-4_packages_acs-events@sql/oracle/acs-events-create.sql 1.10.6.3 (unknown)

    Make sure "this event" is updated when editing a reucrrence and applying
    to this event and all future events

        * 2007-03-31 00:06:47 -0600 daveb     openacs-4_packages_acs-events@sql/postgresql/acs-events-create.sql 1.14.2.2 (unknown)
        * 2007-03-31 00:06:47 -0600 daveb     openacs-4_packages_acs-events@sql/oracle/upgrade/upgrade-0.6d1-0.6d2.sql 1.1.2.2 (unknown)
        * 2007-03-31 00:06:46 -0600 daveb     openacs-4_packages_acs-events@sql/oracle/acs-events-create.sql 1.10.6.2 (unknown)
        * 2007-03-31 00:06:47 -0600 daveb     openacs-4_packages_acs-events@sql/postgresql/upgrade/upgrade-0.6d1-0.6d2.sql 1.1.2.3 (unknown)

    Update version number for packages and dependencies

        * 2007-04-02 14:18:25 -0600 emmar     openacs-4_packages_acs-events@acs-events.info 1.16.2.2 (unknown)

    ----- ASSESSMENT-PORTLET -----

    Adding catalog file for local ca_ES

        * 2007-02-19 00:52:30 -0600 victorg     openacs-4_packages_assessment-portlet@catalog/assessment-portlet.ca_ES.ISO-8859-1.xml 1.1.4.2 (unknown)

    Bump to dotlrn 2.3.0a2

        * 2007-04-02 17:08:28 -0600 donb     openacs-4_packages_assessment-portlet@assessment-portlet.info 1.3.4.4 (unknown)

    Bump version for dotlrn packages

        * 2007-01-09 10:39:32 -0600 emmar     openacs-4_packages_assessment-portlet@assessment-portlet.info 1.3.4.1 (unknown)

    Bumped version number.

        * 2007-09-08 16:52:42 -0600 donb     openacs-4_packages_assessment-portlet@assessment-portlet.info 1.3.4.8 (unknown)

    Bumped version numbers

        * 2007-09-05 15:52:00 -0600 donb     openacs-4_packages_assessment-portlet@assessment-portlet.info 1.3.4.7 (unknown)

    Bumped version numbers of dotlrn components

        * 2007-03-31 20:02:46 -0600 donb     openacs-4_packages_assessment-portlet@assessment-portlet.info 1.3.4.2 (unknown)

    Bumped version numbers to 2.3.0

        * 2007-04-22 18:49:14 -0600 donb     openacs-4_packages_assessment-portlet@assessment-portlet.info 1.3.4.6 (unknown)

    Bumped version numbers to 2.3.0 beta 1

        * 2007-04-15 16:00:05 -0600 donb     openacs-4_packages_assessment-portlet@assessment-portlet.info 1.3.4.5 (unknown)

    File assessment-portlet.ca_ES.ISO-8859-1.xml was added on branch oacs-5-3 on 2007-02-19 00:52:30 +0000

        * 2005-09-02 09:58:20 -0600 victorg     openacs-4_packages_assessment-portlet@catalog/assessment-portlet.ca_ES.ISO-8859-1.xml 1.1.4.1 (unknown)

    File assessment-portlet.pl_PL.utf-8.xml was added on branch oacs-5-3 on 2007-02-19 00:51:21 +0000

        * 2006-05-30 03:57:13 -0500 victorg     openacs-4_packages_assessment-portlet@catalog/assessment-portlet.pl_PL.utf-8.xml 1.1.4.1 (unknown)

    File assessment-portlet.pt_BR.ISO-8859-1.xml was added on branch oacs-5-3 on 2007-02-19 00:51:21 +0000

        * 2006-07-31 06:27:12 -0500 victorg     openacs-4_packages_assessment-portlet@catalog/assessment-portlet.pt_BR.ISO-8859-1.xml 1.1.4.1 (unknown)

    Fix portlet to show correct revision.

        * 2007-04-06 17:57:05 -0600 daveb     openacs-4_packages_assessment-portlet@www/assessment-portlet.xql 1.7.2.1 (unknown)

    Fix typo in message key

        * 2007-04-09 12:39:46 -0600 daveb     openacs-4_packages_assessment-portlet@www/assessment-portlet.tcl 1.11.2.3 (unknown)

    Greek translation

        * 2007-04-15 14:11:50 -0600 emmar     openacs-4_packages_assessment-portlet@catalog/assessment-portlet.el_GR.utf-8.xml 1.1.2.1 (unknown)

    Importing catalog files from traslate.openacs.org for Openacs Core Packages (5.3.1)
    and .LRN Packages (2.3.0).

        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_assessment-portlet@catalog/assessment-portlet.el_GR.utf-8.xml 1.1.2.2 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_assessment-portlet@catalog/assessment-portlet.es_ES.ISO-8859-1.xml 1.1.4.3 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_assessment-portlet@catalog/assessment-portlet.ca_ES.ISO-8859-1.xml 1.1.4.3 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_assessment-portlet@catalog/assessment-portlet.en_US.ISO-8859-1.xml 1.1.4.5 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_assessment-portlet@catalog/assessment-portlet.pl_PL.utf-8.xml 1.1.4.3 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_assessment-portlet@catalog/assessment-portlet.es_GT.ISO-8859-1.xml 1.2.4.2 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_assessment-portlet@catalog/assessment-portlet.pt_BR.ISO-8859-1.xml 1.1.4.3 (unknown)

    Link to new start page

        * 2007-02-16 03:03:05 -0600 daveb     openacs-4_packages_assessment-portlet@www/assessment-portlet.tcl 1.11.2.1 (unknown)

    Local changes at Mannheim. Mostly merging catalog files

        * 2007-02-20 16:57:49 -0600 nimam     openacs-4_packages_assessment-portlet@catalog/assessment-portlet.en_US.ISO-8859-1.xml 1.1.4.2 (unknown)

    Merging catalog files to oacs-5-3 from oacs-5-2 for assessment-portlet

        * 2007-02-19 00:51:21 -0600 victorg     openacs-4_packages_assessment-portlet@catalog/assessment-portlet.pl_PL.utf-8.xml 1.1.4.2 (unknown)
        * 2007-02-19 00:51:21 -0600 victorg     openacs-4_packages_assessment-portlet@catalog/assessment-portlet.es_ES.ISO-8859-1.xml 1.1.4.1 (unknown)
        * 2007-02-19 00:51:21 -0600 victorg     openacs-4_packages_assessment-portlet@catalog/assessment-portlet.es_GT.ISO-8859-1.xml 1.2.4.1 (unknown)
        * 2007-02-19 00:51:21 -0600 victorg     openacs-4_packages_assessment-portlet@catalog/assessment-portlet.pt_BR.ISO-8859-1.xml 1.1.4.2 (unknown)
        * 2007-02-19 00:51:21 -0600 victorg     openacs-4_packages_assessment-portlet@catalog/assessment-portlet.en_US.ISO-8859-1.xml 1.1.4.1 (unknown)

    Only show live assessments.

        * 2007-04-06 17:56:01 -0600 daveb     openacs-4_packages_assessment-portlet@www/assessment-portlet-oracle.xql 1.4.2.1 (unknown)

    Ported latest postgres changes to oracle

        * 2007-07-02 10:56:18 -0600 raulm     openacs-4_packages_assessment-portlet@www/assessment-portlet.xql 1.7.2.2 (unknown)
        * 2007-07-02 10:56:18 -0600 raulm     openacs-4_packages_assessment-portlet@www/assessment-portlet-postgresql.xql 1.11.2.2 (unknown)
        * 2007-07-02 10:56:18 -0600 raulm     openacs-4_packages_assessment-portlet@www/assessment-portlet-oracle.xql 1.4.2.2 (unknown)

    Remove h3's which don't make sense in this portlet.

        * 2007-04-06 17:55:25 -0600 daveb     openacs-4_packages_assessment-portlet@www/assessment-portlet.adp 1.7.2.1 (unknown)

    Rolling back nima's commit where it overwrote previous commits

        * 2007-02-21 11:53:04 -0600 emmar     openacs-4_packages_assessment-portlet@catalog/assessment-portlet.en_US.ISO-8859-1.xml 1.1.4.3 (unknown)

    Spanish translation

        * 2007-03-22 10:13:57 -0600 emmar     openacs-4_packages_assessment-portlet@catalog/assessment-portlet.es_ES.ISO-8859-1.xml 1.1.4.2 (unknown)

    Speed up query 10x by using exists on the acs_object_party_privilege_map
    instead of an explicit join. The join causes a sequential scan of
    acs_object_context_index.

        * 2007-04-04 02:08:01 -0600 daveb     openacs-4_packages_assessment-portlet@www/assessment-portlet-postgresql.xql 1.11.2.1 (unknown)

    Update version number for packages and dependencies

        * 2007-04-02 14:18:25 -0600 emmar     openacs-4_packages_assessment-portlet@assessment-portlet.info 1.3.4.3 (unknown)

    Zen: HTML cleanup

        * 2007-03-28 10:18:54 -0600 emmar     openacs-4_packages_assessment-portlet@www/assessment-portlet.tcl 1.11.2.2 (unknown)

    Zen: version change

        * 2007-03-21 09:47:19 -0600 avni     openacs-4_packages_assessment-portlet@catalog/assessment-portlet.en_US.ISO-8859-1.xml 1.1.4.4 (unknown)

    ----- ASSESSMENT -----

    Abstract handling of updates that happen on even admin edit page for item-edit.

        * 2007-02-05 14:12:47 -0600 daveb     openacs-4_packages_assessment@tcl/test/as-assessment-procs.tcl 1.2.2.1 (unknown)
        * 2007-02-05 14:12:47 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-type-oq-procs.tcl 1.18.2.1 (unknown)
        * 2007-02-05 14:12:47 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-type-procs.tcl 1.2.2.1 (unknown)
        * 2007-02-05 14:12:47 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-display-fu-procs.xql 1.2.2.1 (unknown)
        * 2007-02-05 14:12:47 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-display-rb-procs.tcl 1.13.2.1 (unknown)
        * 2007-02-05 14:12:47 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-type-mc-procs.xql 1.12.2.1 (unknown)
        * 2007-02-05 14:12:47 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-display-rb-procs.xql 1.4.6.1 (unknown)
        * 2007-02-05 14:12:47 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-type-sa-procs.tcl 1.15.2.1 (unknown)
        * 2007-02-05 14:12:47 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-display-tb-procs.xql 1.4.6.1 (unknown)
        * 2007-02-05 14:12:47 -0600 daveb     openacs-4_packages_assessment@tcl/as-section-procs.xql 1.13.2.1 (unknown)
        * 2007-02-05 14:12:47 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-type-mc-procs.tcl 1.21.2.1 (unknown)
        * 2007-02-05 14:12:47 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-type-mc-procs-postgresql.xql 1.2.6.1 (unknown)
        * 2007-02-05 14:12:47 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-display-ta-procs.xql 1.4.6.1 (unknown)
        * 2007-02-05 14:12:47 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-display-cb-procs.tcl 1.13.2.1 (unknown)
        * 2007-02-05 14:12:47 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-display-cb-procs.xql 1.4.6.1 (unknown)
        * 2007-02-05 14:12:47 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-procs.xql 1.9.2.1 (unknown)
        * 2007-02-05 14:12:47 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-display-fu-procs.tcl 1.2.2.1 (unknown)
        * 2007-02-05 14:12:47 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-display-ta-procs.tcl 1.9.2.1 (unknown)
        * 2007-02-05 14:12:47 -0600 daveb     openacs-4_packages_assessment@tcl/as-assessment-procs.tcl 1.33.2.1 (unknown)
        * 2007-02-05 14:12:47 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-display-tb-procs.tcl 1.9.2.1 (unknown)
        * 2007-02-05 14:12:47 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-procs.tcl 1.18.2.1 (unknown)
        * 2007-02-05 14:12:47 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-type-mc-procs-oracle.xql 1.3.6.1 (unknown)
        * 2007-02-05 14:12:47 -0600 daveb     openacs-4_packages_assessment@tcl/as-section-procs.tcl 1.29.2.1 (unknown)

    Add HTML anchors per section to aid linking to one section.

        * 2007-03-26 19:21:13 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/questions.adp 1.1.2.3 (unknown)

    Add a few more on delete cascades.

        * 2007-02-05 18:51:59 -0600 daveb     openacs-4_packages_assessment@sql/oracle/upgrade/upgrade-0.22d2-0.22d3.sql 1.1.2.1 (unknown)
        * 2007-02-05 18:51:59 -0600 daveb     openacs-4_packages_assessment@sql/postgresql/upgrade/upgrade-0.22d2-0.22d3.sql 1.1.2.2 (unknown)

    Add admin links if an administrator is viewing the assessment.

        * 2007-02-18 22:33:56 -0600 daveb     openacs-4_packages_assessment@lib/session-items.adp 1.12.2.3 (unknown)
        * 2007-02-18 22:33:56 -0600 daveb     openacs-4_packages_assessment@lib/session-items.tcl 1.16.2.2 (unknown)

    Add advacned options link to allow access to previous UI while we figure
    out how to make this easier to use.

        * 2007-03-23 16:25:11 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-general.adp 1.2.6.4 (unknown)
        * 2007-03-23 16:25:11 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-general.tcl 1.15.2.6 (unknown)

    Add anchor to redirect

        * 2007-08-21 17:23:17 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/section-form.tcl 1.6.2.3 (unknown)

    Add assessment specific CSS for feedback.

        * 2007-02-05 17:50:52 -0600 daveb     openacs-4_packages_assessment@www/resources/assessment.css 1.1.2.1 (unknown)

    Add background image for progress bar

        * 2007-02-18 22:32:43 -0600 daveb     openacs-4_packages_assessment@www/resources/pb-bg.gif 1.1.2.1 (unknown)

    Add form for naming an answer set

        * 2007-06-30 00:00:56 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/save-answer-set.adp 1.1.2.1 (unknown)
        * 2007-06-30 00:00:56 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/save-answer-set.xql 1.1.2.1 (unknown)
        * 2007-06-30 00:00:56 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/save-answer-set.tcl 1.1.2.1 (unknown)

    Add missing key

        * 2007-02-16 13:00:03 -0600 daveb     openacs-4_packages_assessment@catalog/assessment.en_US.ISO-8859-1.xml 1.77.2.6 (unknown)

    Add missing on delete cascade from create file.
    Fix HTML anchors so they aren't picked up as HTML entities.

        * 2007-04-07 21:47:18 -0600 daveb     openacs-4_packages_assessment@tcl/as-session-procs.tcl 1.7.2.3 (unknown)
        * 2007-04-07 21:47:17 -0600 daveb     openacs-4_packages_assessment@lib/section-items.adp 1.19.2.4 (unknown)
        * 2007-04-07 21:47:18 -0600 daveb     openacs-4_packages_assessment@sql/postgresql/assessment-collected-data-create.sql 1.11.2.1 (unknown)
        * 2007-04-07 21:47:18 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-add.tcl 1.13.2.8 (unknown)
        * 2007-04-07 21:47:18 -0600 daveb     openacs-4_packages_assessment@sql/oracle/assessment-collected-data-create.sql 1.5.2.1 (unknown)

    Add new message keys for enhanced admin UI

        * 2008-09-02 17:46:04 -0600 daveb     openacs-4_packages_assessment@catalog/assessment.en_US.ISO-8859-1.xml 1.77.2.17 (unknown)

    Add new start page

        * 2007-02-16 02:08:58 -0600 daveb     openacs-4_packages_assessment@www/instructions.tcl 1.1.2.1 (unknown)
        * 2007-02-16 02:08:58 -0600 daveb     openacs-4_packages_assessment@www/instructions.xql 1.1.2.1 (unknown)
        * 2007-02-16 02:08:58 -0600 daveb     openacs-4_packages_assessment@www/instructions.adp 1.1.2.1 (unknown)

    Add on delete cascade on as_session_items mapping table.

        * 2007-09-14 20:38:52 -0600 daveb     openacs-4_packages_assessment@sql/postgresql/upgrade/upgrade-0.22d3-0.22d4.sql 1.1.2.3 (unknown)
        * 2007-09-14 20:38:53 -0600 daveb     openacs-4_packages_assessment@sql/oracle/upgrade/upgrade-0.22d3-0.22d4.sql 1.1.2.3 (unknown)

    Add on delete cascades so things can actually be deleted

        * 2007-04-07 22:42:00 -0600 daveb     openacs-4_packages_assessment@sql/postgresql/assessment-section-create.sql 1.18.2.2 (unknown)
        * 2007-04-07 22:42:00 -0600 daveb     openacs-4_packages_assessment@sql/postgresql/assessment-item-type-create.sql 1.10.2.1 (unknown)
        * 2007-04-07 22:42:00 -0600 daveb     openacs-4_packages_assessment@sql/postgresql/assessment-types-create.sql 1.4.2.1 (unknown)
        * 2007-04-07 22:42:00 -0600 daveb     openacs-4_packages_assessment@sql/postgresql/assessment-item-create.sql 1.17.2.1 (unknown)

    Add procs needed for tests

        * 2007-04-07 23:07:19 -0600 daveb     openacs-4_packages_assessment@tcl/as-section-procs.xql 1.13.2.2 (unknown)
        * 2007-04-07 23:07:19 -0600 daveb     openacs-4_packages_assessment@tcl/as-section-procs.tcl 1.29.2.2 (unknown)

    Add progress bar, allow delete for admins

        * 2007-02-05 17:48:57 -0600 daveb     openacs-4_packages_assessment@lib/progress-bar.adp 1.1.2.1 (unknown)
        * 2007-02-05 17:48:57 -0600 daveb     openacs-4_packages_assessment@lib/session.tcl 1.4.2.2 (unknown)
        * 2007-02-05 17:48:57 -0600 daveb     openacs-4_packages_assessment@lib/progress-bar.tcl 1.1.2.1 (unknown)

    Add saving answer sets to the user interface.

        * 2007-06-29 22:34:12 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-type-mc-procs.tcl 1.21.2.3 (unknown)
        * 2007-06-29 22:34:12 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-choice-procs.tcl 1.8.2.1 (unknown)

    Add tests for uninstaniate code

        * 2007-04-07 21:23:51 -0600 daveb     openacs-4_packages_assessment@tcl/test/as-assessment-procs.tcl 1.2.2.2 (unknown)

    Adding choosing answer sets to user interface. Allow chaning from radio to checkboxes

        * 2007-06-29 22:39:39 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-add.tcl 1.13.2.10 (unknown)
        * 2007-06-29 22:39:39 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-general.adp 1.2.6.6 (unknown)
        * 2007-06-29 22:39:39 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-general.tcl 1.15.2.9 (unknown)
        * 2007-06-29 22:39:39 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-add.xql 1.2.6.1 (unknown)
        * 2007-06-29 22:39:39 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-add.adp 1.2.6.6 (unknown)
        * 2007-06-29 22:39:39 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-general.xql 1.4.2.2 (unknown)

    Adding missing message keys

        * 2007-04-09 01:47:09 -0600 daveb     openacs-4_packages_assessment@catalog/assessment.en_US.ISO-8859-1.xml 1.77.2.14 (unknown)

    Adding missing widget of points,field_code, max_time_to_complete
    Item_type validate_block

        * 2007-02-23 17:27:49 -0600 byronl     openacs-4_packages_assessment@www/asm-admin/item-add.tcl 1.13.2.5 (unknown)
        * 2007-02-23 17:27:49 -0600 byronl     openacs-4_packages_assessment@www/asm-admin/item-add.adp 1.2.6.4 (unknown)

    Adding new keys

        * 2007-01-24 21:58:48 -0600 daveb     openacs-4_packages_assessment@catalog/assessment.en_US.ISO-8859-1.xml 1.77.2.1 (unknown)
        * 2007-02-22 03:43:40 -0600 daveb     openacs-4_packages_assessment@catalog/assessment.en_US.ISO-8859-1.xml 1.77.2.9 (unknown)
        * 2007-01-24 21:58:48 -0600 daveb     openacs-4_packages_assessment@catalog/assessment.de_DE.ISO-8859-1.xml 1.5.2.1 (unknown)

    Adding new message keys

        * 2007-02-01 21:16:40 -0600 daveb     openacs-4_packages_assessment@catalog/assessment.en_US.ISO-8859-1.xml 1.77.2.2 (unknown)

    Allow adding a section if all sections have been deleted.

        * 2007-07-16 15:27:55 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/one-a.adp 1.17.2.6 (unknown)

    Allow package to be deleted.

        * 2007-04-07 21:22:59 -0600 daveb     openacs-4_packages_assessment@tcl/as-install-procs.xql 1.1.2.1 (unknown)
        * 2007-04-07 21:22:59 -0600 daveb     openacs-4_packages_assessment@tcl/as-install-procs.tcl 1.35.2.1 (unknown)

    Allow users to take assessment if assessment is set to number_tries == 0

        * 2007-06-22 14:20:33 -0600 daveb     openacs-4_packages_assessment@www/instructions.adp 1.1.2.4 (unknown)

    Another on delete cascade. If you table has "map" in the name, its a
    pretty good chance the foreign keys should have "on delete cascade".

        * 2007-02-02 16:16:59 -0600 daveb     openacs-4_packages_assessment@sql/postgresql/upgrade/upgrade-0.22d2-0.22d3.sql 1.1.2.1 (unknown)

    Bump version for db upgrades

        * 2007-04-07 22:51:12 -0600 daveb     openacs-4_packages_assessment@assessment.info 1.42.2.4 (unknown)

    Bump version for dotlrn packages

        * 2007-01-09 10:39:32 -0600 emmar     openacs-4_packages_assessment@assessment.info 1.42.2.1 (unknown)

    Change in as_assessments table done in the upgrade script but not in the creation one

        * 2007-03-27 12:52:04 -0600 emmar     openacs-4_packages_assessment@sql/oracle/assessment-section-create.sql 1.7.2.1 (unknown)
        * 2007-03-27 12:49:40 -0600 emmar     openacs-4_packages_assessment@sql/postgresql/assessment-section-create.sql 1.18.2.1 (unknown)

    Change to ordering by sort_order instead of section_id

        * 2007-01-24 22:13:39 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/questions.xql 1.1.2.2 (unknown)

    Delete from as_session_results when deleteing an assessment

        * 2007-02-01 21:05:07 -0600 daveb     openacs-4_packages_assessment@tcl/as-session-procs.tcl 1.7.2.1 (unknown)

    Do the comparison correctly.

        * 2007-03-13 16:41:18 -0600 daveb     openacs-4_packages_assessment@www/instructions.adp 1.1.2.3 (unknown)

    Doing the case logic outside where_clause as this case syntax is only for postgresql

        * 2007-09-14 23:14:47 -0600 raulm     openacs-4_packages_assessment@www/asm-admin/sessions.tcl 1.2.2.6 (unknown)
        * 2007-09-14 23:09:39 -0600 raulm     openacs-4_packages_assessment@www/asm-admin/results-users.tcl 1.9.2.4 (unknown)

    Don't allow publishing of assessments without any questions.

        * 2007-03-23 16:35:56 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/toggle-publish.xql 1.1.2.1 (unknown)
        * 2007-03-23 16:35:56 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/toggle-publish.tcl 1.1.2.1 (unknown)

    Don't let someone hit the back button and resubmit after seeing feedback

        * 2007-07-23 22:57:12 -0600 daveb     openacs-4_packages_assessment@lib/assessment.tcl 1.18.2.7 (unknown)

    Don't offer to take/retake the assessment if the maximum number of
    attempts has been exceeded.

        * 2007-03-13 16:37:49 -0600 daveb     openacs-4_packages_assessment@www/instructions.adp 1.1.2.2 (unknown)

    Don't reset correct choices from database values on submit, use what's
    in the form!

        * 2007-02-15 21:16:39 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-general.tcl 1.15.2.4 (unknown)

    Don't show correct/incorrect if there's no correct answer.
    Don't show score if there isn't any score.

        * 2007-07-26 00:13:10 -0600 daveb     openacs-4_packages_assessment@lib/session-items.adp 1.12.2.4 (unknown)
        * 2007-07-26 00:13:10 -0600 daveb     openacs-4_packages_assessment@lib/session.adp 1.5.2.3 (unknown)
        * 2007-07-26 00:13:10 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-type-mc-procs.tcl 1.21.2.8 (unknown)

    Don't show feedback if the question has not been asnwered yet.

        * 2007-07-20 15:53:42 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-type-mc-procs.tcl 1.21.2.6 (unknown)

    Don't treat string as a list (if there are quotes etc, it'll fail).
    Capture the html attributes accurately instead of relying or ordering in
    the list.

        * 2007-07-31 15:11:47 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/export/index.vuh 1.9.2.1 (unknown)

    FIx so more than 11 answers can be added by correctly initializing
    num_choices.

        * 2007-06-21 01:50:39 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-general.tcl 1.15.2.8 (unknown)

    File assessment.gl_ES.ISO-8859-1.xml was added on branch oacs-5-3 on 2007-02-19 00:45:49 +0000

        * 2006-11-29 06:50:49 -0600 victorg     openacs-4_packages_assessment@catalog/assessment.gl_ES.ISO-8859-1.xml 1.1.4.1 (unknown)

    File assessment.pt_BR.ISO-8859-1.xml was added on branch oacs-5-3 on 2007-02-19 00:45:49 +0000

        * 2006-07-31 06:27:12 -0500 victorg     openacs-4_packages_assessment@catalog/assessment.pt_BR.ISO-8859-1.xml 1.1.4.1 (unknown)

    Finally handle 0 question sections. Also add curly braces around a
    couple of expr calls.

        * 2007-03-26 17:47:37 -0600 daveb     openacs-4_packages_assessment@lib/assessment.tcl 1.18.2.5 (unknown)

    Fix bug handling multiple session_ids

        * 2007-07-07 01:13:11 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/send-mail.tcl 1.3.6.2 (unknown)

    Fix bug introduced when custom code was committed. Remove reference to non-existant procedure. Remove reference to views package procedure.

        * 2007-09-14 15:24:27 -0600 daveb     openacs-4_packages_assessment@lib/assessment.tcl 1.18.2.10 (unknown)
        * 2007-09-14 15:24:27 -0600 daveb     openacs-4_packages_assessment@assessment.info 1.42.2.6 (unknown)

    Fix check for correct feedback, we show it when there are ANY
    answers not just when the user choose it.

        * 2007-07-23 18:01:13 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-type-mc-procs.tcl 1.21.2.7 (unknown)

    Fix check for number of tries

        * 2007-03-23 16:37:57 -0600 daveb     openacs-4_packages_assessment@tcl/as-assessment-procs.tcl 1.33.2.3 (unknown)

    Fix delete to check the correct option

        * 2007-02-05 17:50:02 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/results-session.tcl 1.5.2.1 (unknown)
        * 2007-02-05 17:50:02 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/session-delete.tcl 1.4.2.1 (unknown)

    Fix email feature to not rely on dotlrn install.
    Allow sending email to a list of user_ids in addition to the other options.

        * 2007-07-07 00:33:21 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/send-mail-oracle.xql 1.1.6.1 (unknown)
        * 2007-07-07 00:33:21 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/send-mail-postgresql.xql 1.1.6.2 (unknown)

    Fix message key to contain a link to start the assessment.

        * 2007-04-07 19:58:55 -0600 daveb     openacs-4_packages_assessment@catalog/assessment.en_US.ISO-8859-1.xml 1.77.2.13 (unknown)

    Fix ordering of sections.
    Fix number of choices setting (reset for each question instead of
    accidentally taking the value from the previous question)

        * 2007-03-13 17:14:49 -0600 daveb     openacs-4_packages_assessment@tcl/as-qti-procs.tcl 1.44.2.2 (unknown)

    Fix query problem in oracle

        * 2007-09-14 22:37:55 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/sessions.tcl 1.2.2.5 (unknown)

    Fix results display

        * 2007-02-22 03:11:56 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/results-users-postgresql.xql 1.1.4.1 (unknown)
        * 2007-02-22 03:11:56 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/sessions.tcl 1.2.2.3 (unknown)

    Fix return url for notification requests.

        * 2007-07-26 17:25:19 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/one-a.tcl 1.11.2.3 (unknown)

    Fix return urls for new questions page.
    Rationalize confirm/cancel UI on item-copy page.

        * 2007-02-01 14:57:43 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/section-swap.tcl 1.2.6.1 (unknown)
        * 2007-02-01 14:57:43 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/section-form.tcl 1.6.2.2 (unknown)
        * 2007-02-01 14:57:43 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-copy.tcl 1.4.6.1 (unknown)
        * 2007-02-01 14:57:43 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-delete.tcl 1.5.2.1 (unknown)
        * 2007-02-01 14:57:43 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/section-delete.tcl 1.5.2.1 (unknown)
        * 2007-02-01 14:57:43 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-swap.tcl 1.3.2.1 (unknown)

    Fix return_url, you can't redirect to view the session you just deleted!

        * 2007-09-15 00:45:06 -0600 daveb     openacs-4_packages_assessment@lib/session.tcl 1.4.2.3 (unknown)

    Fix section ordering on export.

        * 2007-03-23 16:18:46 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/export/index.xql 1.7.2.1 (unknown)

    Fix typo

        * 2007-04-12 17:53:23 -0600 emmar     openacs-4_packages_assessment@sql/postgresql/assessment-collected-data-create.sql 1.11.2.3 (unknown)

    Fix typos in spanish translation

        * 2007-04-13 18:09:17 -0600 emmar     openacs-4_packages_assessment@catalog/assessment.es_ES.ISO-8859-1.xml 1.22.2.4 (unknown)

    Fix upgrade to work with correct constraint names

        * 2007-09-14 23:58:31 -0600 daveb     openacs-4_packages_assessment@sql/oracle/upgrade/upgrade-0.22d3-0.22d4.sql 1.1.2.4 (unknown)
        * 2007-09-14 23:58:32 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/sessions.xql 1.1.2.1 (unknown)
        * 2007-09-14 23:58:32 -0600 daveb     openacs-4_packages_assessment@sql/postgresql/assessment-collected-data-create.sql 1.11.2.4 (unknown)
        * 2007-09-14 23:58:32 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/sessions.tcl 1.2.2.7 (unknown)

    Fix variable reference so feedback right appears.
    Remove some ns_logs

        * 2007-01-26 00:33:57 -0600 daveb     openacs-4_packages_assessment@lib/results-messages.adp 1.2.2.1 (unknown)
        * 2007-01-26 00:33:57 -0600 daveb     openacs-4_packages_assessment@lib/assessment.tcl 1.18.2.1 (unknown)
        * 2007-01-26 00:33:57 -0600 daveb     openacs-4_packages_assessment@lib/results-messages.tcl 1.2.2.1 (unknown)
        * 2007-01-26 00:33:57 -0600 daveb     openacs-4_packages_assessment@lib/results-messages.xql 1.3.2.1 (unknown)
        * 2007-01-26 00:33:57 -0600 daveb     openacs-4_packages_assessment@lib/session-items.tcl 1.16.2.1 (unknown)
        * 2007-01-26 00:33:57 -0600 daveb     openacs-4_packages_assessment@lib/section-items.tcl 1.11.2.1 (unknown)
        * 2007-01-26 00:33:57 -0600 daveb     openacs-4_packages_assessment@lib/session-items.adp 1.12.2.1 (unknown)

    Fixed bug 3075 on assessment

        * 2007-03-01 16:15:14 -0600 cesarc     openacs-4_packages_assessment@tcl/as-callback-procs.xql 1.2.2.1 (unknown)

    Fixed oracle query, rownum=1 instead of limit 1

        * 2007-07-24 08:23:16 -0600 raulm     openacs-4_packages_assessment@lib/session-oracle.xql 1.1.2.2 (unknown)

    Fixed placing of rownum

        * 2007-07-25 11:21:19 -0600 raulm     openacs-4_packages_assessment@lib/session-oracle.xql 1.1.2.3 (unknown)

    Fixesd daveb typo in previous post-beta commit

        * 2007-04-22 20:07:05 -0600 donb     openacs-4_packages_assessment@sql/oracle/assessment-collected-data-create.sql 1.5.2.4 (unknown)

    Fixing various merge bugs, adding new message keys

        * 2007-01-24 21:56:03 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-general.tcl 1.15.2.1 (unknown)
        * 2007-01-24 21:56:03 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/assessment-form.adp 1.3.2.2 (unknown)
        * 2007-01-24 21:56:03 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/one-a.tcl 1.11.2.2 (unknown)
        * 2007-01-24 21:56:03 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-stats.tcl 1.3.2.1 (unknown)
        * 2007-01-24 21:56:03 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/assessment-form.tcl 1.12.2.2 (unknown)
        * 2007-01-24 21:56:03 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-add.tcl 1.13.2.2 (unknown)
        * 2007-01-24 21:56:03 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/assessment-delete.tcl 1.4.2.1 (unknown)

    For once, the oracle query file was up to date and the postgresql one was missing!

        * 2007-04-09 02:43:35 -0600 daveb     openacs-4_packages_assessment@tcl/test/as-assessment-procs-postgresql.xql 1.1.2.1 (unknown)

    Get rid of debugging info

        * 2007-02-16 16:31:13 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-general.adp 1.2.6.3 (unknown)

    Get the list of filter options from the most recent version of a
    question.

        * 2007-06-21 14:20:07 -0600 daveb     openacs-4_packages_assessment@tcl/as-list-procs.tcl 1.4.2.1 (unknown)

    Greek translation

        * 2007-04-15 14:11:50 -0600 emmar     openacs-4_packages_assessment@catalog/assessment.el_GR.utf-8.xml 1.1.2.1 (unknown)

    Importing catalog files from traslate.openacs.org for Openacs Core Packages (5.3.1)
    and .LRN Packages (2.3.0).

        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_assessment@catalog/assessment.de_DE.ISO-8859-1.xml 1.5.2.4 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_assessment@catalog/assessment.es_GT.ISO-8859-1.xml 1.8.2.2 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_assessment@catalog/assessment.gl_ES.ISO-8859-1.xml 1.1.4.3 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_assessment@catalog/assessment.ca_ES.ISO-8859-1.xml 1.2.2.1 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_assessment@catalog/assessment.pt_BR.ISO-8859-1.xml 1.1.4.3 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_assessment@catalog/assessment.el_GR.utf-8.xml 1.1.2.2 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_assessment@catalog/assessment.en_US.ISO-8859-1.xml 1.77.2.16 (unknown)

    Improve formatting on feedback

        * 2007-02-05 14:10:42 -0600 daveb     openacs-4_packages_assessment@www/session.adp 1.30.2.1 (unknown)
        * 2007-02-05 14:10:42 -0600 daveb     openacs-4_packages_assessment@lib/session-items.adp 1.12.2.2 (unknown)
        * 2007-02-05 14:10:42 -0600 daveb     openacs-4_packages_assessment@www/feedback.adp 1.1.2.1 (unknown)
        * 2007-02-05 14:10:42 -0600 daveb     openacs-4_packages_assessment@lib/feedback.adp 1.3.2.1 (unknown)
        * 2007-02-05 14:10:42 -0600 daveb     openacs-4_packages_assessment@lib/feedback.tcl 1.5.2.1 (unknown)
        * 2007-02-05 14:10:42 -0600 daveb     openacs-4_packages_assessment@lib/assessment.tcl 1.18.2.3 (unknown)
        * 2007-02-05 14:10:42 -0600 daveb     openacs-4_packages_assessment@lib/session.adp 1.5.2.1 (unknown)

    Improve layout on questions admin page. Remove unecessary HTML tables and use simpler layout. Make action links consistent

        * 2007-01-26 20:31:05 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/questions.adp 1.1.2.2 (unknown)
        * 2007-01-26 20:31:05 -0600 daveb     openacs-4_packages_assessment@lib/section-items.adp 1.19.2.1 (unknown)
        * 2007-01-26 20:31:05 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/questions.tcl 1.1.2.2 (unknown)

    Improve question edit pages

        * 2007-02-05 14:11:35 -0600 daveb     openacs-4_packages_assessment@lib/section-items.adp 1.19.2.3 (unknown)

    Item edit changes

        * 2007-02-05 14:18:47 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-type-mc-procs.xql 1.12.2.2 (unknown)
        * 2007-02-05 14:18:47 -0600 daveb     openacs-4_packages_assessment@tcl/as-assessment-procs.tcl 1.33.2.2 (unknown)
        * 2007-02-05 14:18:47 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-procs.tcl 1.18.2.2 (unknown)
        * 2007-02-05 14:18:47 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-type-mc-procs.tcl 1.21.2.2 (unknown)
        * 2007-02-05 14:18:47 -0600 daveb     openacs-4_packages_assessment@www/assessment-section-submit.adp 1.21.2.1 (unknown)
        * 2007-02-05 14:18:47 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit.tcl 1.10.2.2 (unknown)

    Let admins delete from user results page so they can delete their own test submissions. Fix return URL from session-delete.

        * 2007-02-05 17:29:42 -0600 daveb     openacs-4_packages_assessment@lib/session.tcl 1.4.2.1 (unknown)
        * 2007-02-05 17:29:42 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/session-delete.xql 1.1.2.1 (unknown)
        * 2007-02-05 17:29:42 -0600 daveb     openacs-4_packages_assessment@lib/session.adp 1.5.2.2 (unknown)

    Let admins take assessment even if it is not live. Add live. Fix layout
    of table

        * 2007-02-02 17:07:35 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/one-a.adp 1.17.2.4 (unknown)
        * 2007-02-02 17:07:35 -0600 daveb     openacs-4_packages_assessment@lib/assessment.tcl 1.18.2.2 (unknown)

    Local changes at Mannheim. Mostly merging catalog files

        * 2007-02-20 16:57:49 -0600 nimam     openacs-4_packages_assessment@catalog/assessment.de_DE.ISO-8859-1.xml 1.5.2.3 (unknown)

    Made sure the version number matches the upgrade script and that the view can actually be deleted. Someone else please take a look if this is actually desired (adding the cascade), it worked on my install just fine (but I am not a heavy user...)

        * 2007-01-09 17:28:16 -0600 maltes     openacs-4_packages_assessment@assessment.info 1.42.2.2 (unknown)
        * 2007-01-09 17:28:16 -0600 maltes     openacs-4_packages_assessment@sql/postgresql/upgrade/upgrade-0.20-0.21.sql 1.4.2.1 (unknown)

    Make more options available for "survey" type

        * 2007-03-23 16:34:51 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/assessment-form.adp 1.3.2.4 (unknown)
        * 2007-03-23 16:34:51 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/assessment-form.tcl 1.12.2.5 (unknown)

    Make permissions checks consistent. Under asm-admin users only need
    1) CREATE on package_id
    2) ADMIN on the object in question (usually assessment_id)

        * 2007-07-12 12:52:50 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/session-delete.tcl 1.4.2.2 (unknown)
        * 2007-07-12 12:52:50 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/toggle-publish.tcl 1.1.2.2 (unknown)
        * 2007-07-12 12:52:50 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/unzip-file.tcl 1.2.2.1 (unknown)

    Make richtext areas bigger to work in IE

        * 2007-04-04 20:21:14 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-add.tcl 1.13.2.7 (unknown)

    Make sure oracle is the same as postgresql data model.
    Make sure upgrades are up to date

        * 2007-04-07 22:50:28 -0600 daveb     openacs-4_packages_assessment@sql/oracle/assessment-item-type-create.sql 1.5.2.1 (unknown)
        * 2007-04-07 22:50:28 -0600 daveb     openacs-4_packages_assessment@sql/postgresql/upgrade/upgrade-0.22d3-0.22d4.sql 1.1.2.1 (unknown)
        * 2007-04-07 22:50:28 -0600 daveb     openacs-4_packages_assessment@sql/oracle/upgrade/upgrade-0.22d3-0.22d4.sql 1.1.2.1 (unknown)
        * 2007-04-07 22:50:28 -0600 daveb     openacs-4_packages_assessment@sql/oracle/assessment-item-create.sql 1.4.6.1 (unknown)

    Make sure the call to add_item_to_form is the same when displaying
    feedback so correct/incorrect choices are displayed.

        * 2007-07-04 01:42:08 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-type-mc-procs-postgresql.xql 1.2.6.2 (unknown)
        * 2007-07-04 01:42:08 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-type-mc-procs.tcl 1.21.2.4 (unknown)

    Make sure we finish and score the assessment at the end. Now that the
    code does not rely on double submitting the form.

        * 2007-07-24 14:47:34 -0600 daveb     openacs-4_packages_assessment@lib/assessment.tcl 1.18.2.8 (unknown)

    Make title optional, not every question set needs to be saved for reuse.
    Fix unescaped variable references.

        * 2007-08-14 15:01:09 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-mc.tcl 1.9.2.3 (unknown)

    Many fixes to Oracle support in assessment.

        * 2007-04-08 17:16:03 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-data-procs.xql 1.7.2.1 (unknown)
        * 2007-04-08 17:16:03 -0600 daveb     openacs-4_packages_assessment@sql/oracle/assessment-item-type-create.sql 1.5.2.2 (unknown)
        * 2007-04-08 17:16:03 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-data-procs-oracle.xql 1.2.2.1 (unknown)
        * 2007-04-08 17:16:03 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-type-fu-procs.xql 1.2.2.1 (unknown)
        * 2007-04-08 17:16:03 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-data-procs-postgresql.xql 1.2.2.1 (unknown)
        * 2007-04-08 17:16:03 -0600 daveb     openacs-4_packages_assessment@sql/postgresql/assessment-actions-create.sql 1.9.2.1 (unknown)
        * 2007-04-08 17:16:03 -0600 daveb     openacs-4_packages_assessment@tcl/as-assessment-procs-oracle.xql 1.10.2.1 (unknown)
        * 2007-04-08 17:16:03 -0600 daveb     openacs-4_packages_assessment@sql/oracle/assessment-collected-data-create.sql 1.5.2.3 (unknown)
        * 2007-04-08 17:16:03 -0600 daveb     openacs-4_packages_assessment@tcl/as-install-procs.xql 1.1.2.2 (unknown)
        * 2007-04-08 17:16:03 -0600 daveb     openacs-4_packages_assessment@tcl/test/as-assessment-procs.tcl 1.2.2.3 (unknown)
        * 2007-04-08 17:16:03 -0600 daveb     openacs-4_packages_assessment@tcl/as-section-procs-oracle.xql 1.7.2.1 (unknown)
        * 2007-04-08 17:16:03 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/toggle-publish.xql 1.1.2.2 (unknown)
        * 2007-04-08 17:16:03 -0600 daveb     openacs-4_packages_assessment@sql/oracle/assessment-section-create.sql 1.7.2.2 (unknown)
        * 2007-04-08 17:16:03 -0600 daveb     openacs-4_packages_assessment@tcl/as-install-procs.tcl 1.35.2.3 (unknown)
        * 2007-04-08 17:16:04 -0600 daveb     openacs-4_packages_assessment@www/view/index.vuh 1.4.2.1 (unknown)
        * 2007-04-08 17:16:03 -0600 daveb     openacs-4_packages_assessment@sql/oracle/upgrade/upgrade-0.22d3-0.22d4.sql 1.1.2.2 (unknown)
        * 2007-04-08 17:16:03 -0600 daveb     openacs-4_packages_assessment@sql/oracle/upgrade/upgrade-0.22d2-0.22d3.sql 1.1.2.2 (unknown)
        * 2007-04-08 17:16:03 -0600 daveb     openacs-4_packages_assessment@sql/postgresql/upgrade/upgrade-0.22d3-0.22d4.sql 1.1.2.2 (unknown)
        * 2007-04-08 17:16:02 -0600 daveb     openacs-4_packages_assessment@lib/session-oracle.xql 1.1.2.1 (unknown)
        * 2007-04-08 17:16:03 -0600 daveb     openacs-4_packages_assessment@sql/oracle/assessment-actions-package-create.sql 1.6.2.1 (unknown)
        * 2007-04-08 17:16:03 -0600 daveb     openacs-4_packages_assessment@tcl/as-pram-procs.tcl 1.2.6.1 (unknown)
        * 2007-04-08 17:16:03 -0600 daveb     openacs-4_packages_assessment@sql/oracle/assessment-types-create.sql 1.3.6.1 (unknown)
        * 2007-04-08 17:16:03 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-type-fu-procs.tcl 1.4.2.1 (unknown)
        * 2007-04-08 17:16:03 -0600 daveb     openacs-4_packages_assessment@tcl/test/as-assessment-procs-oracle.xql 1.1.2.1 (unknown)
        * 2007-04-08 17:16:03 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-add.tcl 1.13.2.9 (unknown)

    Map the section revision to the cr_item by item_id so we can see
    sections that are reused is more than one assessment.

        * 2007-02-06 22:18:08 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/questions.xql 1.1.2.3 (unknown)

    Merged sessions and results-users pages since we don't need two pages that do the same thing.

        * 2007-07-07 00:27:51 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/send-mail-postgresql.xql 1.1.6.1 (unknown)
        * 2007-07-07 00:27:51 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/send-mail.xql 1.1.6.1 (unknown)
        * 2007-07-07 00:27:51 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/sessions.adp 1.2.2.1 (unknown)
        * 2007-07-07 00:27:51 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/results-users.adp 1.4.2.2 (unknown)
        * 2007-07-07 00:27:51 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/results-users.tcl 1.9.2.2 (unknown)
        * 2007-07-07 00:27:51 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/results-users.xql 1.2.2.2 (unknown)
        * 2007-07-07 00:27:51 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/send-mail.tcl 1.3.6.1 (unknown)
        * 2007-07-07 00:27:51 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/sessions.tcl 1.2.2.4 (unknown)

    Merging catalog files to oacs-5-3 from oacs-5-2 for assessment

        * 2007-02-19 00:45:49 -0600 victorg     openacs-4_packages_assessment@catalog/assessment.es_ES.ISO-8859-1.xml 1.22.2.1 (unknown)
        * 2007-02-19 00:45:49 -0600 victorg     openacs-4_packages_assessment@catalog/assessment.de_DE.ISO-8859-1.xml 1.5.2.2 (unknown)
        * 2007-02-19 00:45:49 -0600 victorg     openacs-4_packages_assessment@catalog/assessment.pt_BR.ISO-8859-1.xml 1.1.4.2 (unknown)
        * 2007-02-19 00:45:49 -0600 victorg     openacs-4_packages_assessment@catalog/assessment.es_GT.ISO-8859-1.xml 1.8.2.1 (unknown)
        * 2007-02-19 00:45:49 -0600 victorg     openacs-4_packages_assessment@catalog/assessment.en_US.ISO-8859-1.xml 1.77.2.8 (unknown)
        * 2007-02-19 00:45:49 -0600 victorg     openacs-4_packages_assessment@catalog/assessment.gl_ES.ISO-8859-1.xml 1.1.4.2 (unknown)

    Modified where true with where 1=1 in oracle and create distinct files for both dbs

        * 2007-09-14 22:19:55 -0600 raulm     openacs-4_packages_assessment@www/asm-admin/results-users.xql 1.2.2.3 (unknown)
        * 2007-09-14 22:19:55 -0600 raulm     openacs-4_packages_assessment@www/asm-admin/results-users-oracle.xql 1.1.4.1 (unknown)
        * 2007-09-14 22:19:55 -0600 raulm     openacs-4_packages_assessment@www/asm-admin/results-users-postgresql.xql 1.1.4.2 (unknown)

    More on delete cascades.
    Set uninstantiate and unmount callbacks in info file so we can remove a
    package instance.

        * 2007-04-07 23:27:13 -0600 daveb     openacs-4_packages_assessment@assessment.info 1.42.2.5 (unknown)
        * 2007-04-07 23:27:14 -0600 daveb     openacs-4_packages_assessment@sql/oracle/assessment-collected-data-create.sql 1.5.2.2 (unknown)
        * 2007-04-07 23:27:14 -0600 daveb     openacs-4_packages_assessment@tcl/as-install-procs.tcl 1.35.2.2 (unknown)
        * 2007-04-07 23:27:14 -0600 daveb     openacs-4_packages_assessment@sql/postgresql/assessment-collected-data-create.sql 1.11.2.2 (unknown)

    Need to show all sessions for revisions of this assessment

        * 2007-02-22 02:54:58 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/sessions.tcl 1.2.2.2 (unknown)

    New keys for start/end pages

        * 2007-02-16 02:09:57 -0600 daveb     openacs-4_packages_assessment@catalog/assessment.en_US.ISO-8859-1.xml 1.77.2.5 (unknown)

    Only count completed sessions

        * 2007-07-20 15:14:52 -0600 daveb     openacs-4_packages_assessment@www/instructions.xql 1.1.2.2 (unknown)

    Pass total pages all the time

        * 2007-02-22 03:30:02 -0600 daveb     openacs-4_packages_assessment@lib/assessment.tcl 1.18.2.4 (unknown)

    Reasonably comprehensive tclwebtest test for assessment

        * 2007-04-09 02:44:38 -0600 daveb     openacs-4_packages_assessment@tcl/test/twt-procs.tcl 1.1.2.1 (unknown)

    Redirect to questions page after adding new question

        * 2007-01-24 21:58:15 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-add.tcl 1.13.2.3 (unknown)

    Remove extra <br> tags. Put the question inside <p> tags so it shows up
    in the right place.

        * 2007-01-26 20:36:32 -0600 daveb     openacs-4_packages_assessment@lib/section-items.adp 1.19.2.2 (unknown)

    Remove fieldset around section. Put in H2

        * 2007-02-22 22:04:02 -0600 daveb     openacs-4_packages_assessment@www/assessment-section-submit.adp 1.21.2.2 (unknown)

    Remove form field elements that don't appear int he form, showing
    strange form labels without anyplace to enter the data.

        * 2007-04-06 17:14:13 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-add.adp 1.2.6.5 (unknown)

    Remove formwidget tags where no corresponding form elements exist.

        * 2007-04-06 17:14:59 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-general.adp 1.2.6.5 (unknown)

    Remove multiple selection label, its not implemented (yet)

        * 2007-02-05 19:54:42 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-add.adp 1.2.6.3 (unknown)
        * 2007-02-05 19:54:42 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-general.adp 1.2.6.2 (unknown)
        * 2007-02-05 19:54:42 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-general.tcl 1.15.2.3 (unknown)
        * 2007-02-05 19:54:42 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-add.tcl 1.13.2.4 (unknown)

    Remove obsolete wrap attribute (textarea)

        * 2007-06-14 09:12:47 -0600 emmar     openacs-4_packages_assessment@www/asm-admin/bulk-mail.tcl 1.4.2.1 (unknown)

    Remove question name setting, we don't show it.

        * 2007-02-01 21:47:56 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/one-a.adp 1.17.2.3 (unknown)

    Remove repetetive delete attempts links. You can delete from the
    individual users results.

        * 2007-07-12 12:58:56 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/results-users.tcl 1.9.2.3 (unknown)

    Remove second half of ns log statement

        * 2007-07-05 18:32:36 -0600 daveb     openacs-4_packages_assessment@tcl/as-item-type-mc-procs.tcl 1.21.2.5 (unknown)

    Remove section links, they belong under questions now

        * 2007-02-01 21:46:34 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/one-a.adp 1.17.2.2 (unknown)

    Remove unused keys moved to acs-tcl

        * 2007-04-17 21:43:42 -0600 daveb     openacs-4_packages_assessment@catalog/assessment.en_US.ISO-8859-1.xml 1.77.2.15 (unknown)
        * 2007-04-17 21:43:42 -0600 daveb     openacs-4_packages_assessment@catalog/assessment.es_ES.ISO-8859-1.xml 1.22.2.6 (unknown)

    Reorganize UI. Put all questions on one question page instead of a sperate page for each section. This is a compromise instead of one huge admin page we have 2 pages, one for the assessment and one for questions.

        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-add.tcl 1.13.2.1 (unknown)
        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/index.tcl 1.11.2.1 (unknown)
        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/one-a.adp 1.17.2.1 (unknown)
        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/results-users.adp 1.4.2.1 (unknown)
        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/index.adp 1.9.2.1 (unknown)
        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-add-display-rb.xql 1.1.6.1 (unknown)
        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/one-section.adp 1.1.2.1 (unknown)
        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-mc.adp 1.3.6.1 (unknown)
        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/assessment-form.tcl 1.12.2.1 (unknown)
        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-add-mc.tcl 1.9.2.1 (unknown)
        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/questions.adp 1.1.2.1 (unknown)
        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/questions.tcl 1.1.2.1 (unknown)
        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/index.xql 1.4.2.1 (unknown)
        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/toggle-boolean.tcl 1.1.2.1 (unknown)
        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/section-form.tcl 1.6.2.1 (unknown)
        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/toggle-type.xql 1.1.2.1 (unknown)
        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/questions.xql 1.1.2.1 (unknown)
        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-mc.tcl 1.9.2.1 (unknown)
        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/sessions.tcl 1.2.2.1 (unknown)
        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/assessment-form.adp 1.3.2.1 (unknown)
        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/results-users.xql 1.2.2.1 (unknown)
        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/toggle-type.tcl 1.1.2.1 (unknown)
        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/results-users.tcl 1.9.2.1 (unknown)
        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/one-a.tcl 1.11.2.1 (unknown)
        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/assessment-form.xql 1.5.2.1 (unknown)
        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-add.adp 1.2.6.1 (unknown)
        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/one-section.tcl 1.1.2.1 (unknown)
        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/one-section.xql 1.1.2.1 (unknown)
        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/section-form.xql 1.1.6.1 (unknown)
        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-add-mc.xql 1.4.2.1 (unknown)
        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit.tcl 1.10.2.1 (unknown)
        * 2007-01-24 20:15:30 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/toggle-boolean.xql 1.1.2.1 (unknown)

    Replace fieldset with H2

        * 2007-02-23 14:17:43 -0600 daveb     openacs-4_packages_assessment@lib/feedback.adp 1.3.2.3 (unknown)

    Return to the right URL if the last section doesn't have any feedback.

        * 2007-07-24 17:11:13 -0600 daveb     openacs-4_packages_assessment@lib/assessment.tcl 1.18.2.9 (unknown)
        * 2007-07-24 17:11:13 -0600 daveb     openacs-4_packages_assessment@lib/session-items.tcl 1.16.2.3 (unknown)

    Session procs to support start/end pages

        * 2007-02-16 02:07:11 -0600 daveb     openacs-4_packages_assessment@tcl/as-session-procs.tcl 1.7.2.2 (unknown)
        * 2007-02-16 02:07:11 -0600 daveb     openacs-4_packages_assessment@tcl/as-session-procs.xql 1.2.2.1 (unknown)

    Set entry page and exit page on new assessment

        * 2007-03-10 15:54:33 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/assessment-form.tcl 1.12.2.4 (unknown)

    Show percent_score in the field that says "Percent Score"

        * 2007-05-24 13:03:12 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/results-session.adp 1.6.2.2 (unknown)

    Simplify item-edit pages.

        * 2007-02-05 14:15:04 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-add-display-cb.tcl 1.6.2.1 (unknown)
        * 2007-02-05 14:15:04 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-add-display-f.tcl 1.2.2.1 (unknown)
        * 2007-02-05 14:15:04 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-oq.tcl 1.5.2.1 (unknown)
        * 2007-02-05 14:15:04 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-display-f.tcl 1.2.2.1 (unknown)
        * 2007-02-05 14:15:04 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-swap.tcl 1.3.2.2 (unknown)
        * 2007-02-05 14:15:04 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-display-sa.tcl 1.4.2.1 (unknown)
        * 2007-02-05 14:15:04 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-mc-existing.tcl 1.3.2.1 (unknown)
        * 2007-02-05 14:15:04 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-display-sb.tcl 1.9.2.1 (unknown)
        * 2007-02-05 14:15:04 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-display-ta.tcl 1.5.2.1 (unknown)
        * 2007-02-05 14:15:04 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-general.adp 1.2.6.1 (unknown)
        * 2007-02-05 14:15:04 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-display-tb.tcl 1.5.6.1 (unknown)
        * 2007-02-05 14:15:04 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-add.adp 1.2.6.2 (unknown)
        * 2007-02-05 14:15:04 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-mc-choices-delete.tcl 1.4.2.1 (unknown)
        * 2007-02-05 14:15:04 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-mc.adp 1.3.6.2 (unknown)
        * 2007-02-05 14:15:04 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-sa.tcl 1.5.2.1 (unknown)
        * 2007-02-05 14:15:04 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-add-display-sb.tcl 1.7.2.1 (unknown)
        * 2007-02-05 14:15:04 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-fu.tcl 1.2.2.1 (unknown)
        * 2007-02-05 14:15:04 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-display-cb.tcl 1.6.6.1 (unknown)
        * 2007-02-05 14:15:04 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-general.tcl 1.15.2.2 (unknown)
        * 2007-02-05 14:15:04 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-general.xql 1.4.2.1 (unknown)
        * 2007-02-05 14:15:04 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-copy.tcl 1.4.6.2 (unknown)
        * 2007-02-05 14:15:04 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/catalog-item-add.tcl 1.5.6.1 (unknown)
        * 2007-02-05 14:15:04 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-add-display-tb.tcl 1.6.2.1 (unknown)
        * 2007-02-05 14:15:04 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-add-display-ta.tcl 1.6.2.1 (unknown)
        * 2007-02-05 14:15:04 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-display-rb.tcl 1.6.6.1 (unknown)
        * 2007-02-05 14:15:04 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-add-display-sa.tcl 1.4.2.1 (unknown)
        * 2007-02-05 14:15:04 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-add-display-rb.tcl 1.6.2.1 (unknown)
        * 2007-02-05 14:15:04 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-mc-choices-swap.tcl 1.3.2.1 (unknown)
        * 2007-02-05 14:15:04 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-mc.tcl 1.9.2.2 (unknown)
        * 2007-02-05 14:15:04 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-delete.tcl 1.5.2.2 (unknown)

    Simplyfy help text.

        * 2007-03-23 16:29:32 -0600 daveb     openacs-4_packages_assessment@catalog/assessment.en_US.ISO-8859-1.xml 1.77.2.11 (unknown)

    Since assessment form can by included, we optionally allow hiding the
    titles

        * 2007-04-06 14:14:30 -0600 daveb     openacs-4_packages_assessment@www/assessment-section-submit.adp 1.21.2.4 (unknown)
        * 2007-04-06 14:14:30 -0600 daveb     openacs-4_packages_assessment@lib/assessment.tcl 1.18.2.6 (unknown)

    Spanish translation

        * 2007-03-22 10:13:57 -0600 emmar     openacs-4_packages_assessment@catalog/assessment.es_ES.ISO-8859-1.xml 1.22.2.2 (unknown)
        * 2007-04-15 14:40:39 -0600 emmar     openacs-4_packages_assessment@catalog/assessment.es_ES.ISO-8859-1.xml 1.22.2.5 (unknown)

    Strip absolute URLs in case a page is edited in HTTP/HTTPS and viewed
    the other way. That is, when a full url to HTTP is in the content, and
    the page is viewed under HTTPS, a security warning is displayed. Since
    there are bugs in Firefox when editing, the URLs are converted to
    absolute URLs by xinha. We strip them out when saving. They are
    converted back when editing so the user experience is unch...
        * 2007-02-17 14:58:05 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-general.tcl 1.15.2.5 (unknown)

    Support new assessment type on import

        * 2007-02-02 16:08:41 -0600 daveb     openacs-4_packages_assessment@tcl/as-qti-procs.tcl 1.44.2.1 (unknown)

    Translate preview link and message

        * 2007-02-02 17:13:06 -0600 daveb     openacs-4_packages_assessment@catalog/assessment.en_US.ISO-8859-1.xml 1.77.2.3 (unknown)
        * 2007-02-02 17:13:06 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/one-a.adp 1.17.2.5 (unknown)

    Truncate question before using as title for type specific cr_revisions.

        * 2007-03-27 16:56:25 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-add.tcl 1.13.2.6 (unknown)
        * 2007-03-27 16:56:25 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/item-edit-general.tcl 1.15.2.7 (unknown)

    Update links for simplied admin ui

        * 2007-01-24 20:22:08 -0600 daveb     openacs-4_packages_assessment@lib/section-links.adp 1.1.2.1 (unknown)
        * 2007-01-24 20:22:08 -0600 daveb     openacs-4_packages_assessment@lib/section-links.tcl 1.1.2.1 (unknown)
        * 2007-01-24 20:22:08 -0600 daveb     openacs-4_packages_assessment@lib/section-links.xql 1.1.2.1 (unknown)

    Update progress bar

        * 2007-02-16 02:06:10 -0600 daveb     openacs-4_packages_assessment@www/finish.tcl 1.7.2.1 (unknown)
        * 2007-02-16 02:06:10 -0600 daveb     openacs-4_packages_assessment@lib/progress-bar.tcl 1.1.2.2 (unknown)
        * 2007-02-16 02:06:10 -0600 daveb     openacs-4_packages_assessment@www/finish.adp 1.4.4.1 (unknown)
        * 2007-02-16 02:06:10 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/assessment-form.tcl 1.12.2.3 (unknown)
        * 2007-02-16 02:06:10 -0600 daveb     openacs-4_packages_assessment@lib/progress-bar.adp 1.1.2.2 (unknown)
        * 2007-02-16 02:06:10 -0600 daveb     openacs-4_packages_assessment@www/index.tcl 1.17.2.1 (unknown)
        * 2007-02-16 02:06:10 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/assessment-form.adp 1.3.2.3 (unknown)

    Update version number for packages and dependencies

        * 2007-04-02 14:18:25 -0600 emmar     openacs-4_packages_assessment@assessment.info 1.42.2.3 (unknown)

    Use commas to seperate columns in CSV (not semicolons!) and quote the
    contents with double quotes.

        * 2007-11-15 19:53:12 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/results-export.tcl 1.10.2.1 (unknown)

    Use feedback css and admin results view

        * 2007-02-22 22:05:19 -0600 daveb     openacs-4_packages_assessment@www/asm-admin/results-session.adp 1.6.2.1 (unknown)

    Use form button on feedback page.
    Show page as finished in progress bar on feedback page.

        * 2007-02-18 22:12:40 -0600 daveb     openacs-4_packages_assessment@catalog/assessment.en_US.ISO-8859-1.xml 1.77.2.7 (unknown)
        * 2007-02-18 22:12:41 -0600 daveb     openacs-4_packages_assessment@lib/feedback.adp 1.3.2.2 (unknown)
        * 2007-02-18 22:12:41 -0600 daveb     openacs-4_packages_assessment@lib/progress-bar.adp 1.1.2.3 (unknown)
        * 2007-02-18 22:12:41 -0600 daveb     openacs-4_packages_assessment@lib/feedback.tcl 1.5.2.2 (unknown)
        * 2007-02-18 22:12:41 -0600 daveb     openacs-4_packages_assessment@lib/progress-bar.tcl 1.1.2.3 (unknown)

    Use generic progress bar in acs-tcl now.

        * 2007-03-07 03:14:08 -0600 daveb     openacs-4_packages_assessment@www/assessment-section-submit.adp 1.21.2.3 (unknown)
        * 2007-03-07 03:14:08 -0600 daveb     openacs-4_packages_assessment@www/finish.adp 1.4.4.2 (unknown)

    Use rownum instead of sort_order so numbers start at 1

        * 2007-02-06 22:29:36 -0600 daveb     openacs-4_packages_assessment@catalog/assessment.en_US.ISO-8859-1.xml 1.77.2.4 (unknown)

    Zen: HTML cleanup

        * 2007-03-28 10:18:53 -0600 emmar     openacs-4_packages_assessment@catalog/assessment.en_US.ISO-8859-1.xml 1.77.2.12 (unknown)
        * 2007-03-28 10:18:53 -0600 emmar     openacs-4_packages_assessment@catalog/assessment.es_ES.ISO-8859-1.xml 1.22.2.3 (unknown)

    Zen: version change

        * 2007-03-21 09:46:34 -0600 avni     openacs-4_packages_assessment@catalog/assessment.en_US.ISO-8859-1.xml 1.77.2.10 (unknown)

    ----- ATTACHMENTS -----

    Made sure the attachments download with a file extension reflecting the mime type so the user can actually open the file

        * 2007-03-31 07:10:12 -0600 maltes     openacs-4_packages_attachments@www/go-to-attachment.tcl 1.8.2.1 (unknown)
        * 2007-03-31 07:10:12 -0600 maltes     openacs-4_packages_attachments@www/go-to-attachment.xql 1.5.2.1 (unknown)

    Update version number for packages and dependencies

        * 2007-04-02 14:18:25 -0600 emmar     openacs-4_packages_attachments@attachments.info 1.16.2.1 (unknown)

    ----- BM-PORTLET -----

    Bump to dotlrn 2.3.0a2

        * 2007-04-02 17:08:28 -0600 donb     openacs-4_packages_bm-portlet@bm-portlet.info 1.13.2.4 (unknown)

    Bump version to 2.3.0d1 for dotlrn packages

        * 2007-01-05 13:50:55 -0600 emmar     openacs-4_packages_bm-portlet@bm-portlet.info 1.13.2.1 (unknown)

    Bumped version number.

        * 2007-09-08 16:52:43 -0600 donb     openacs-4_packages_bm-portlet@bm-portlet.info 1.13.2.8 (unknown)

    Bumped version numbers

        * 2007-09-05 15:52:01 -0600 donb     openacs-4_packages_bm-portlet@bm-portlet.info 1.13.2.7 (unknown)

    Bumped version numbers of dotlrn components

        * 2007-03-31 20:02:46 -0600 donb     openacs-4_packages_bm-portlet@bm-portlet.info 1.13.2.2 (unknown)

    Bumped version numbers to 2.3.0

        * 2007-04-22 18:49:14 -0600 donb     openacs-4_packages_bm-portlet@bm-portlet.info 1.13.2.6 (unknown)

    Bumped version numbers to 2.3.0 beta 1

        * 2007-04-15 16:00:05 -0600 donb     openacs-4_packages_bm-portlet@bm-portlet.info 1.13.2.5 (unknown)

    Importing catalog files from traslate.openacs.org for Openacs Core Packages (5.3.1)
    and .LRN Packages (2.3.0).

        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_bm-portlet@catalog/bm-portlet.pt_PT.ISO-8859-1.xml 1.7.2.1 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_bm-portlet@catalog/bm-portlet.es_GT.ISO-8859-1.xml 1.5.2.1 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_bm-portlet@catalog/bm-portlet.sv_SE.ISO-8859-1.xml 1.9.2.1 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_bm-portlet@catalog/bm-portlet.da_DK.ISO-8859-1.xml 1.12.2.1 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_bm-portlet@catalog/bm-portlet.ko_KR.utf-8.xml 1.5.2.1 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_bm-portlet@catalog/bm-portlet.zh_CN.utf-8.xml 1.5.2.1 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_bm-portlet@catalog/bm-portlet.ro_RO.utf-8.xml 1.5.2.1 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_bm-portlet@catalog/bm-portlet.de_DE.ISO-8859-1.xml 1.15.2.1 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_bm-portlet@catalog/bm-portlet.es_ES.ISO-8859-1.xml 1.10.2.2 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_bm-portlet@catalog/bm-portlet.ar_EG.utf-8.xml 1.5.2.1 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_bm-portlet@catalog/bm-portlet.tr_TR.utf-8.xml 1.3.2.1 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_bm-portlet@catalog/bm-portlet.pt_BR.ISO-8859-1.xml 1.9.2.1 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_bm-portlet@catalog/bm-portlet.ar_LB.utf-8.xml 1.5.2.1 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_bm-portlet@catalog/bm-portlet.fr_FR.ISO-8859-1.xml 1.9.2.1 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_bm-portlet@catalog/bm-portlet.ca_ES.ISO-8859-1.xml 1.4.2.1 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_bm-portlet@catalog/bm-portlet.nl_NL.ISO-8859-1.xml 1.12.2.1 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_bm-portlet@catalog/bm-portlet.hi_IN.utf-8.xml 1.3.2.1 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_bm-portlet@catalog/bm-portlet.ast_ES.ISO-8859-1.xml 1.6.2.1 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_bm-portlet@catalog/bm-portlet.en_US.ISO-8859-1.xml 1.16.2.2 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_bm-portlet@catalog/bm-portlet.fi_FI.utf-8.xml 1.7.2.1 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_bm-portlet@catalog/bm-portlet.it_IT.ISO-8859-1.xml 1.7.2.1 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_bm-portlet@catalog/bm-portlet.es_CO.ISO-8859-1.xml 1.3.2.1 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_bm-portlet@catalog/bm-portlet.ru_RU.utf-8.xml 1.5.2.1 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_bm-portlet@catalog/bm-portlet.pl_PL.utf-8.xml 1.5.2.1 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_bm-portlet@catalog/bm-portlet.gl_ES.ISO-8859-1.xml 1.9.2.1 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_bm-portlet@catalog/bm-portlet.no_NO.ISO-8859-1.xml 1.10.2.1 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_bm-portlet@catalog/bm-portlet.ms_MY.utf-8.xml 1.4.2.1 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_bm-portlet@catalog/bm-portlet.nn_NO.ISO-8859-1.xml 1.5.2.1 (unknown)
        * 2007-04-23 05:54:56 -0600 victorg     openacs-4_packages_bm-portlet@catalog/bm-portlet.eu_ES.ISO-8859-1.xml 1.3.2.1 (unknown)

    Merging Nima's changes

        * 2007-02-16 18:22:00 -0600 emmar     openacs-4_packages_bm-portlet@www/bm-portlet.adp 1.5.2.1 (unknown)

    Spanish translation

        * 2007-03-22 10:13:57 -0600 emmar     openacs-4_packages_bm-portlet@catalog/bm-portlet.es_ES.ISO-8859-1.xml 1.10.2.1 (unknown)

    Update version number for packages and dependencies

        * 2007-04-02 14:18:25 -0600 emmar     openacs-4_packages_bm-portlet@bm-portlet.info 1.13.2.3 (unknown)

    Zen: version change

        * 2007-03-21 09:47:58 -0600 avni     openacs-4_packages_bm-portlet@catalog/bm-portlet.en_US.ISO-8859-1.xml 1.16.2.1 (unknown)

    ----- BULK-MAIL -----

    Update version number for packages and dependencies

        * 2007-04-02 14:18:25 -0600 emmar     openacs-4_packages_bulk-mail@bulk-mail.info 1.12.2.1 (unknown)

    ----- CALENDAR-PORTLET -----

    Add return_url for add new item link/button otherwise you lose context
    and end up outside the portlet.

        * 2007-04-13 17:19:12 -0600 daveb     openacs-4_packages_calendar-portlet@www/calendar-full-portlet.tcl 1.34.6.6 (unknown)

    Added the code to set css_dir for a fresh install (yesterday's commit was just
    for upgrades)

        * 2007-03-12 20:41:09 -0600 donb     openacs-4_packages_calendar-portlet@sql/oracle/calendar-admin-portlet-create.sql 1.8.2.1 (unknown)
        * 2007-03-12 20:41:09 -0600 donb     openacs-4_packages_calendar-portlet@sql/postgresql/calendar-admin-portlet-create.sql 1.4.2.1 (unknown)
        * 2007-03-12 20:41:09 -0600 donb     openacs-4_packages_calendar-portlet@sql/oracle/calendar-list-portlet-create.sql 1.6.2.1 (unknown)
        * 2007-03-12 20:41:09 -0600 donb     openacs-4_packages_calendar-portlet@sql/postgresql/calendar-list-portlet-create.sql 1.4.2.1 (unknown)
        * 2007-03-12 20:41:09 -0600 donb     openacs-4_packages_calendar-portlet@sql/oracle/calendar-full-portlet-create.sql 1.9.2.1 (unknown)
        * 2007-03-12 20:41:09 -0600 donb     openacs-4_packages_calendar-portlet@sql/oracle/calendar-portlet-create.sql 1.24.2.1 (unknown)
        * 2007-03-12 20:41:09 -0600 donb     openacs-4_packages_calendar-portlet@sql/postgresql/calendar-full-portlet-create.sql 1.4.2.1 (unknown)
        * 2007-03-12 20:41:09 -0600 donb     openacs-4_packages_calendar-portlet@sql/postgresql/calendar-portlet-create.sql 1.4.2.1 (unknown)

    Adding missing return urls from merge

        * 2007-04-06 18:10:24 -0600 daveb     openacs-4_packages_calendar-portlet@www/calendar-full-portlet.tcl 1.34.6.5 (unknown)

    Bump to dotlrn 2.3.0a2

        * 2007-04-02 17:08:28 -0600 donb     openacs-4_packages_calendar-portlet@calendar-portlet.info 1.22.2.6 (unknown)

    Bump version to 2.3.0d1 for dotlrn packages

        * 2007-01-05 13:50:55 -0600 emmar     openacs-4_packages_calendar-portlet@calendar-portlet.info 1.22.2.1 (unknown)

    Bumped version number and added callback.

        * 2007-03-12 03:13:31 -0600 donb     openacs-4_packages_calendar-portlet@tcl/apm-callback-procs.tcl 1.1.2.1 (unknown)
        * 2007-03-12 03:13:30 -0600 donb     openacs-4_packages_calendar-portlet@calendar-portlet.info 1.22.2.2 (unknown)
        * 2007-03-12 03:13:31 -0600 donb     openacs-4_packages_calendar-portlet@tcl/apm-callback-procs.xql 1.1.2.1 (unknown)

    Bumped version number.

        * 2007-09-08 16:52:43 -0600 donb     openacs-4_packages_calendar-portlet@calendar-portlet.info 1.22.2.10 (unknown)

    Bumped version numbers

        * 2007-09-05 15:52:01 -0600 donb     openacs-4_packages_calendar-portlet@calendar-portlet.info 1.22.2.9 (unknown)

    Bumped version numbers of dotlrn components

        * 2007-03-31 20:02:46 -0600 donb     openacs-4_packages_calendar-portlet@calendar-portlet.info 1.22.2.4 (unknown)

    Bumped version numbers to 2.3.0

        * 2007-04-22 18:49:14 -0600 donb     openacs-4_packages_calendar-portlet@calendar-portlet.info 1.22.2.8 (unknown)

    Bumped version numbers to 2.3.0 beta 1

        * 2007-04-15 16:00:06 -0600 donb     openacs-4_packages_calendar-portlet@calendar-portlet.info 1.22.2.7 (unknown)

    Fix for calendar layout issues after merge

        * 2007-03-03 21:20:27 -0600 carlb     openacs-4_packages_calendar-portlet@www/calendar-full-portlet.adp 1.26.2.4 (unknown)

    Fix merge error add in missing return URLs to links.

        * 2007-04-06 18:07:16 -0600 daveb     openacs-4_packages_calendar-portlet@www/calendar-full-portlet.adp 1.26.2.6 (unknown)

    Fixed missing period day merges

        * 2007-03-26 11:16:54 -0600 nimam     openacs-4_packages_calendar-portlet@catalog/calendar-portlet.en_US.ISO-8859-1.xml 1.16.2.2 (unknown)
        * 2007-03-26 11:16:54 -0600 nimam     openacs-4_packages_calendar-portlet@catalog/calendar-portlet.de_DE.ISO-8859-1.xml 1.14.2.1 (unknown)
        * 2007-03-26 11:16:55 -0600 nimam     openacs-4_packages_calendar-portlet@www/calendar-full-portlet.tcl 1.34.6.4 (unknown)
        * 2007-03-26 11:16:55 -0600 nimam     openacs-4_packages_calendar-portlet@www/calendar-admin-portlet.tcl 1.3.16.2 (unknown)
        * 2007-03-26 11:16:55 -0600 nimam     openacs-4_packages_calendar-portlet@www/calendar-list-portlet.tcl 1.10.2.3 (unknown)

    Fixing problems with the include in view week and view list.

      &n