Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
h3. Current Status and Problem

...



Courses are created via an account (sitemaker). This account has maintain access, but not administrative access. Due to these access issues, the sitemaker account has a limitation in that it can only create sites via the Worksite setup tool.  The worksite setup tool pulls from sakai.properties values for its data (and other configuration settings such as sitesetup.xml), which are not synchronized with Banner external data.  This results in limited ability to select and/or data enter appropriate terms, courses, etc.

h3.

...

 How one is able to create course sites in Sakai

...



Currently, there are two mechanisms for creating course sites in Sakai.  These are:

...


1. Sites tool: for admins, allows complete control of creating site (including siteid). This method only allows users to create sites, but the respective tools and pages are not included.

...


2. Worksite Setup tool: for maintainers, allows users to create sites of certain types. These types can be controlled via the sitesetup.xml configuration and other means (e.g. realms). By creating sites in this manner, the user is prompted to select their given term, and define what course number to give the site. The user has no control over the site id, as it is automatically generated using this mechanism.

...



\**Note, using both the above methods \*does not* set a provider id for the site. The provider id allows the providers to detect that they need to "look up" information for this site.

h3.

...

 Current Manual Course Creation Strategy

...



Courses are created as a type "course". Here are some "brief" steps.

...


1. When creating the course site, there is a dropdown for the term. The user selects this term, which currently is controlled by the sakai.properties configuration file in the tomcat instance.

...


*Problem*: this data is not synchronized with external Banner data, so only one term may appear that may be applicable (e.g. dropdown says Summer 06, when really it should say Summer Session II).

...


2. User then is prompted for how the roster should be established. The user is then asked to select something like " 2005,FALL,SMPL,001,001" or "Choose user roster not listed from above". The user selects the roster not listed from above.

...


3. User is asked to fill in (textbox) the "Subject","Course", and "Section" for this course site.

...


*Problem* This is ad-hoc, and user's have limited space to add the course information. Again, this is entirely controlled by parameters set in the sakai.properties file.

...


4. The user is asked to add more rosters, and authorization person's name if necessary. Usually rosters are not added, and authorizer's name is something like kdalex@ucdavis.edu.

...


5. From here, the course site is created with a default tool set the user selects from.

...


6. After site is created, rosters are added to it (via MyUCDavis,etc)

...


*Problem* Rosters are still not dynamic, as providers have not been compeletely enabled

...


7. End result: Tab has something like BIS 01A 001 Su06 because of the limited characters, and abbreviations of terms pulled from the sakai.properties information.

...


*Problem* Sites cannot be reconciled easily, and content cannot be migrated easily in the future unless changes are made to more closely resemble our batching mechanism.

h3.

...

 Current Batching Strategy

...



The batching mechanism is in the ucd-enterprise-data module in UC Davis' svn repository, and is implemented via quartz. Batching has yet to be QA tested, but essentially goes "hand-in-hand" with the providers because the one thing that the batching process handles is assigning a "provider id" for course sites. In relation to the manual course site creation, the batching mechanism introduces some different functionality. Currently each CRN is its own site in Sakai, and only CRNs with rosters are created at batch time.

...



1. creates course site "skeleton" with the following attributes:

...


 i. creates site id with a pattern of TERMCD and CRN. An example is 20061012345

...


 ii. creates a site title (tab) with the pattern (this is a MAJOR difference from the manual process)

...


 iia. SUBJ COURSENUMBER SECTION TERMABBREVIATION TERMYEAR  (e.g. BIS 001A 001 SSS WQ06)

...


*Problem{*}TERMABBREVIATION is given below as the associated abbreviations for the terms. This is an internal mechanism to Sakai as a lookup mechanism.

...


 Here is the logic for TERMABBREVIATION resolution, described in code:

...


if (TermIdentifier.equalsIgnoreCase("01"))             return "WQ";

...


 else if (TermIdentifier.equalsIgnoreCase("02"))             return "SSEM";

...


 else if (TermIdentifier.equalsIgnoreCase("03"))             return "SQ";

...


 else if (TermIdentifier.equalsIgnoreCase("04"))             return "ES";

...


 else if (TermIdentifier.equalsIgnoreCase("05"))             return "SS1";

...


 else if (TermIdentifier.equalsIgnoreCase("06"))             return "SSS";

...


 else if (TermIdentifier.equalsIgnoreCase("07"))             return "SS2";

...


 else if (TermIdentifier.equalsIgnoreCase("08"))             return "SUQ";

...


 else if (TermIdentifier.equalsIgnoreCase("09"))             return "FSEM";

...


 else if (TermIdentifier.equalsIgnoreCase("10"))             return "FQ";

...


 else             return "ALT";

...


 iii. adds site information also (e.g. description, long description, etc)

...


2. adds tools and pages to the site (from a sakai.properties configuration)

...


3. creates the site so that providers can "kick in" and create rosters, roles dynamically

...



h3. What should happen

...



1. We should modify our existing course site titles to reflect those of the batching process, so that there is minimal confusion between an Su06 site (intended on being Summer Session I), and say a Su06 site (intended on being Special Summer Session).

...



2. We should change the following properties in sakai.properties to reflect our external data. Note, that this synchronization is enabled in Sakai 2.2 via the site manage functionality.

...


Here is an example of some of the properties we should change.

...


\**course management information (term)

...


termterm.count=17

...


termterm.1=FALL

...


termterm.2=WINTER

...


termterm.3=SPRING

...


termterm.4=SPRING_SUMMER

...


termterm.5=SUMMER

...


termterm.6=FALL

...


termterm.7=WINTER

...


termterm.8=SPRING

...


termterm.9=SPRING_SUMMER

...


termterm.10=SUMMER

...


termterm.11=FALL

...


termterm.12=WINTER

...


termterm.13=SPRING

...


termterm.14=SPRING_SUMMER

...


termterm.15=SUMMER

...


termterm.16=FALL

...


termterm.17=WINTER

...



\**course management information (year)

...


termyear.count=17

...


termyear.1=2003

...


termyear.2=2004

...


termyear.3=2004

...


termyear.4=2004

...


termyear.5=2004

...


termyear.6=2004

...


termyear.7=2005

...


termyear.8=2005

...


termyear.9=2005

...


termyear.10=2005

...


termyear.11=2005

...


termyear.12=2006

...


termyear.13=2006

...


termyear.14=2006

...


termyear.15=2006

...


termyear.16=2006

...


termyear.17=2007

...



\**course management information (term abbrev)

...


termlistabbr.count=17

...


termlistabbr.1=F03

...


termlistabbr.2=W04

...


termlistabbr.3=Sp04

...


termlistabbr.4=SpSu04

...


termlistabbr.5=Su04

...


termlistabbr.6=F04

...


termlistabbr.7=W05

...


termlistabbr.8=Sp05

...


termlistabbr.9=SpSu05

...


termlistabbr.10=Su05

...


termlistabbr.11=F05

...


termlistabbr.12=W06

...


termlistabbr.13=Sp06

...


termlistabbr.14=SpSu06

...


termlistabbr.15=Su06

...


termlistabbr.16=F06

...


termlistabbr.17=W07

...



\**course management information (current term?)

...


termiscurrent.count=17

...


termiscurrent.1=false

...


termiscurrent.2=false

...


termiscurrent.3=false

...


termiscurrent.4=false

...


termiscurrent.5=false

...


termiscurrent.6=false

...


termiscurrent.7=false

...


termiscurrent.8=false

...


termiscurrent.9=false

...


termiscurrent.10=false

...


termiscurrent.11=false

...


termiscurrent.12=true

...


termiscurrent.13=false

...


termiscurrent.14=false

...


termiscurrent.15=false

...


termiscurrent.16=false

...


termiscurrent.17=false

...



\**course management information (start and end of terms)

...


termstarttime.count=17

...


termstarttime.1=20030901000000000

...


termstarttime.2=20040101000000000

...


termstarttime.3=20040501000000000

...


termstarttime.4=20040515000000000

...


termstarttime.5=20040801000000000

...


termstarttime.6=20040901000000000

...


termstarttime.7=20050101000000000

...


termstarttime.8=20050501000000000

...


termstarttime.9=20050515000000000

...


termstarttime.10=20050801000000000

...


termstarttime.11=20050901000000000

...


termstarttime.12=20060101000000000

...


termstarttime.13=20060501000000000

...


termstarttime.14=20060515000000000

...


termstarttime.15=20060801000000000

...


termstarttime.16=20060901000000000

...


termstarttime.17=20070101000000000

...



termendtime.count=17

...


termendtime.1=20031201000000000

...


termendtime.2=20040501000000000

...


termendtime.3=20040801000000000

...


termendtime.4=20040801000000000

...


termendtime.5=20040901000000000

...


termendtime.6=20041201000000000

...


termendtime.7=20050501000000000

...


termendtime.8=20050801000000000

...


termendtime.9=20050801000000000

...


termendtime.10=20050901000000000

...


termendtime.11=20051201000000000

...


termendtime.12=20060501000000000

...


termendtime.13=20060801000000000

...


termendtime.14=20060801000000000

...


termendtime.15=20060901000000000

...


termendtime.16=20061201000000000

...


termendtime.17=20070501000000000

...



3. Additionally, we should modify the default length of the course, subject , and section text fields in the worksite setup UI so that we can have more flexibility.  This is now done via the CourseManagementProvider impl of the getCourseIdRequiredFieldSizes():

...


{code}
**

...


* Return a list of maximum field size for course id required fields

...


*

...


public List getCourseIdRequiredFieldsSizes()

...


{

...


List rv = new Vector();

...


rv.add(new Integer(8));

...


rv.add(new Integer(3));

...


rv.add(new Integer(3));

...


return rv;

...


}
{/code}