Support for custom assignment fields in SharePoint Learning Kit

In version 1.8 I’ve added support for adding custom fields to an assignment, If you’ve ever felt the need to add more details for an assignment, you can now do it.

Here’s an example of an assignment with four extra properties:


This assignment has four custom properties:

  • String Value: A simple one line of text.
  • MultiString: A text value over multiple lines.
  • Choice: A drop down list of values.
  • Url: A url.

Here’s the student view of the same assignment:



The implementation is based on storing the custom properties in a list on the site the assignment is assigned to. You configure the name of the list in the SLK settings, then SLK will look for a list of that name in the site. If it finds it, then it adds the columns in the default view as custom properties.

The name of the property is the name of the column and the columns types supported are:

  • Single line of text
  • Multiple lines of text
  • Choice
  • Hyperlink

These will be rendered as above, with the url type rendered as a url to the student. All other column types will be ignored, as will the Title property.

If there isn’t a list in the site with the configured title, then assignments for that site won’t have any custom properties. This allows you to have different custom properties for each site.

If the column is marked as required in the list, then the custom property will be required.

SLK will handle access to the list so you don’t need to give your users permissions to access it, in fact it’s probably preferable for them not to have access to it directly.

The ordering of the custom properties is controlled by the order of the columns in the view. So if I change the view to:


then the student view will be


and the instructor view will change similarly.


To set up and enable custom properties:

Download and install the latest version of SLK 1.8.

Set the name of the list which will hold the properties in SlkSettings.xml and update it in Central Administration. This is set in the CustomPropertyList attribute on the root Settings element.


    Here it will look for a list called SLK in the assignment’s site.

Then create the lists in each of the sites where you want the assignments to have custom properties. Add a column to the list and default view for each custom property you want, and order the view to get the desired display order. Set required on any columns that you want to be required.

And that’s it, from now on the custom properties will be added to every assignment in those sites with appropriate lists.

Read More

SharePoint Learning Kit Language Packs

I’ve now rebuilt the language packs for SharePoint Learning Kit for use with 1.7 & 1.8. This has involved rewriting the extract and build process so that it’s repeatable.

Most of the languages haven’t been updated since 1.3.1 so any new strings added since then won’t be translated.

To install:

  1. Download the language packs from and unzip onto your SharePoint server.
  2. Open a PowerShell command prompt and navigate into the folder for your language.
  3. Run InstallSolution.ps1. This should add the localized package and deploy it.

The supported languages are:

  • ar-EG
  • ar-SA
  • bg-BG
  • cs-CZ
  • cy-GB
  • da-DK
  • de-DE
  • en-GB
  • en-US
  • es-ES
  • fa-IR
  • fi-FI
  • fr-FR
  • hr-HR
  • hu-HU
  • it-IT
  • ja-JP
  • lt-LT
  • lv-LV
  • nb-NO
  • nl-NL
  • pl-PL
  • pt-PT
  • ro-RO
  • ru-RU
  • sk-SK
  • sl-SL
  • sr-latn-cs
  • sv-SE
  • tr-TR
  • uk-UA


Read More

SLK: Open Office Documents in the Office Apps on iPads

In SharePoint Learning Kit 1.8, I’ve just added beta functionality so that on an iPad, assignments which are office documents are opened in the Office Apps for the iPad. This is transparent to the user, it should just happen.

To enable this, you will need to add a setting to the DropBoxSettings in SlkSettings.xml. You need to set  OpenOfficeInIpadApp to true:


Of course you’ll also need the latest version of 1.8 and the Office Apps installed on any iPad used.

It’s early days for this functionality, but it should work for Word, Excel, PowerPoint and OneNote. Once you’ve finished editing, you will be taken back to the page you were at before, but in a new tab.

Any feedback welcomed.

Read More

Using Grades in SharePoint Learning Kit

The SharePoint Learning Kit (SLK) has had support for marking with grades since version 1.6, but I’ve never got round to documenting it. It’s an optional feature and by default is turned off so you won’t have seen it unless someone has turned it on for you. It’s a nice simple implementation. When turned on, just adds a text field to the grading page which allows you to enter any text you want for the grade. There’s a maximum length of 20 characters which should be more that enough for a grade.

Turning on

To turn on you need to update the SlkSettings.xml file in central administration. All you need to do is add the attribute UseGrades=”true” to the root Settings element.



Once UseGrades is turned on then instructors will see an extra grades column on the grading page. This is a free text field of length 20 so they can put in whatever they want up to 20 characters.


Once the assignment is returned to the learner then they will see the grade value on the lobby page for the assignment.


And that’s basically it, nice and simple, but allows you to add a grade without having to add it in the comments.

Removing the Points Column

On a related note you can also configure SLK to not show the points column for assignments. Typically this would be used in conjunction with grades, but can be used on it’s own if you only want to use comments.

To do this set HidePointsForNonELearning=”true” on the Settings element in SlkSettings.xml similarly to UseGrades above. Once this is done then the Points column will be hidden on the grading page for instructors and the Points row will be hidden for learners on the lobby page.

SalamanderSoft’s GradeBook

Our GradeBook web part also supports grades when they are turned on in SLK.

Read More

SharePoint Learning Kit Macros for Assignment List Web Part

The queries in the Assignment List Web Part support macros in the conditions, e.g. here is the Due This Week Instructor query


<Query Name="DueThisWeekInstructor" Title="$Resources:SlkDll,QueryTitleDueThisWeek" ViewName="AssignmentListForInstructors" CountViewColumnName="AssignmentId">
  <Column Title="$Resources:SlkDll,QueryColumnTitleSite" RenderAs="SPWebName" ViewColumnName="AssignmentSPWebGuid" ViewColumnName2="AssignmentSPSiteGuid" />
  <Column Title="$Resources:SlkDll,QueryColumnTitleAssignment" RenderAs="Link" ViewColumnName="AssignmentTitle" ViewColumnName2="AssignmentId" NullDisplayString="$Resources:SlkDll,QueryColumnNullDisplayUntitled" />
  <Column Title="$Resources:SlkDll,QueryColumnTitleDue" RenderAs="UtcAsLocalDateTime" ViewColumnName="AssignmentDueDate" CellFormat="d" NullDisplayString="$Resources:SlkDll,QueryColumnNullDisplayDash" ToolTipFormat="$Resources:SlkDll,QueryColumnToolTipDue" Wrap="false" />
  <Column Title="$Resources:SlkDll,QueryColumnTitleSubmitted" RenderAs="Submitted" ViewColumnName="CountCompletedOrFinal" ViewColumnName2="CountTotal" Wrap="false" />
  <Condition ViewColumnName="AssignmentSPWebGuid" Operator="Equal" MacroName="SPWebScope" NoConditionOnNull="true" />
  <Condition ViewColumnName="AssignmentDueDate" Operator="IsNotNull" />
  <Condition ViewColumnName="AssignmentDueDate" Operator="GreaterThanEqual" MacroName="StartOfThisWeek"/>
  <Condition ViewColumnName="AssignmentDueDate" Operator="LessThan" MacroName="StartOfNextWeek"/>
  <Sort ViewColumnName="AssignmentDueDate" Ascending="true"/>
  <Sort ViewColumnName="AssignmentTitle" Ascending="true"/>

The list of macros is:

Name Type Description
SPWebScope Array of site IDs. The ID of the sites that the ALWP is limited to depending on its properties: Will be the current site, null (for all) or an array of IDs.
CurrentUserKey Guid string The key of the current user in the SlkUser table. Not generally needed as the views are normally limited to current user.
Now DateTime The current date and time
StartOfToday DateTime Midnight of today
StartOfTomorrow DateTime Midnight of tomorrow
StartOfThisWeek DateTime Midnight of the start of the week as defined by the current user’s culture.
StartOfNextWeek DateTime Similar to StartOfThisWeek, but the subsequent week.
StartOfWeekAfterNext DateTime Similar to StartOfNextWeek, but the subsequent week.


As of version 1.8, you can now add a day modifier to the DateTime macros, to give you more flexibility over the date ranges. The format is:


Where macroName is the name of the macro above, and dayModifier is an integer value of days to add to the normal value. This can be negative to take away days. So if you wanted a query for assignemnts due tomorrow, you could have

<Condition ViewColumnName="AssignmentDueDate" Operator="GreaterThanEqual" MacroName="StartOfToday:1"/>
  <Condition ViewColumnName="AssignmentDueDate" Operator="LessThan" MacroName="StartOfToday:2"/>

Read More