There has been an ongoing request at our institution to put the current user's section/roster name into the course site tab rather than the actual site's name. When site's are crosslisted, it can become confusing for users to determine which site they need to navigate to in order to complete an assignment, test, etc.
If the student is in section/roster 005, but the course site's name is of section/roster 001 of the same course, it may not be obvious to the user that they are indeed the same site. This can result in missed assignments, etc., as well as frustration for the professor(s) dealing with answering student inquiries regarding this.
The linked PR introduces a sakai.property to control this behaviour. Default is set to 'false'; only if set to true will the section/roster title replace the site title for student users enrolled in course sites with multiple sections/rosters. When set to true, student users will see their section/roster title in the course site tab, the page (browser tab) title, and the tool header title (the parts Portal is responsible for). It also introduces another sakai.property to define the 'preferred' type of section/roster title to use, which defaults to "LEC" (lecture) sections. This covers the scenario where the student is enrolled in multiple sections/rosters in the same site. For example, they may be enrolled in both a LEC and a TUT section/roster; so by default the LEC section/roster title would be used.
The algorithm will fall back (short circuit) to the default behaviour of using the site's title if any of the following conditions are true:
- if the sakai.property is set to false
- if there is no currently logged in user
- if there are <= 1 sections/rosters in the site
- if the section/roster object could not be found or the user is not enrolled in an section/roster of the preferred 'type'
This PR also introduces a new column in the "My Current Sites" table of the "Membership" tool located in My Workspace, that lists which sections/rosters the user is enrolled in for any of the given sites. It also ensures that the Preferences tool displays the site or roster title consistently, based on the sakai.properties.
There is also a deficiency in kernel regarding ORA-01745 (Oracle maximum elements in an IN clause) which is addressed by this PR. Previously, the limit of elements in an Oracle IN clause was hard-coded to 99, rather than 999 (DbAuthzGroupService.java).
The sakai.properties introduced (with defaults) are: