Lead(s): Zhen Qian, John Leasia
Description: Tool for creating and configuring sites.
Template Functionality was previously available as a Contributed Patch, . The template functionality is included in Sakai 2.7.0.
To make it easier to new users to start using Sakai without having to understand all available tools, it would be good to provide template site(s) that contains some tools set up, eg. resources, wiki, web content, forums, etc. So, the user will be able to create a new site with a copy of the appropriate template as the starting point. It would be useful for a beginner to create a site from a template as it can be quite confusing to understand the available tools and determining which tools are useful for their particular needs. The user can add or remove tools from the new site, once created. With this feature, we can create several template sites that would suit specific user groups, such as Graduate Students, Undergraduate Students, Committees, Research Groups, etc. The template sites are loaded with relevant tools and we can provide some examples and explanations. We hope that it would reduce the barrier to use Sakai for new users and also reduce needs for support for new users.
To enable this functionality, just create a published site with site id starts with 'template'. Then, an additional option is shown when creating a new site that allows users to create a new site based on a template site. Unpublished template is hidden to give template designer enough time to work on the template before making it available to users.
Basically, when user tries to create a new site using 'Worksite Setup' tool in 'My Workspace', there is a new option 'based on a template site'. When a user choose this option, user can choose a template from a drop-down list of available templates, e.g. all sites with a property template=true. As mention before, there is no need to activate/hide the template feature in sakai.properties file. In the following steps, the user has to enter project information, set site access, and confirm the site setup. The tool selection page is skipped as the tools are already defined in the chosen template site. As mentioned previously, the user can add or remove tools from the new site, once created.
To copy the template site to a new site, two mechanisms are used. First, SiteService.addSite(String id, Site other) will create a new site that have a structural copy of the 'other' site. This service does not copy the content of the tools. Then, the content is copied using EntityTransferer. If a tool doesn't support EntityTransferer, the tool itself should be copied without content. When more tools support EntityTransferer in the future, this feature will copy more content from the template site. Some changes are made to the implementation of transferCopyEntities() method in some tools (e.g. Announcement, Resources) to bypass permission checking when reading content of site that has site id starts with "template".
To create a template site, it need an administrator privilege. The steps are: