1.7

I’ve just completed some work ensuring that the Assignment List Web Part works on iPads. Before the work it would only show the results pane as below.

And now it displays both panes:

There’s 2 minor differences to using it in a PC browser.

You need to tap twice to change the query. This is because the first tap is taken as a hover, before the next tap is taken as a click. After the first time, all the other query links work fine. This is slightly annoying, but still usable and I haven’t found a simple way to resolve it.

When there are many assignments returned by a query, e.g. Active above, then the web part expands to show them all rather than adding toolbars as on a PC browser. So on an iPad it is

Whereas on a PC it would be

This is due to how iframes are implemented in iOS. There are some complex ways around it, but at the moment I’ll leave it as is to avoid complexity and it at least works for iPads now.

I’ve now released SharePoint Learning Kit 1.7 beta release. There’s lots of changes, but the biggest, and most anticipated one is support for SharePoint 2013. This release support SharePoint 2007, 2010 and 2013, for both the free and server versions.

I’ll try to blog some more information on each of these as time allows.

In addition it’s got the functionality of 1.6 in, which never made it out of beta.

Better handling of not quite fully compliant SCORM content Textual grading as well as numeric (optional) e.g. ABC type grades Quick assignment type. That is assignments not based on a document. This should make it much easier to use for a homework diary, especially if the assignment is along the lines of "Read chapters 1 & 2 of book y." Email alerts

As of SLK 1.7 I’ve added the ability to configure the SLK mappings at a web application level as well as at a site collection level. This allows site collections in a single web application to share the same mapping, i.e. the database and permission levels, without having to configure each site collection in turn.

If a web application has been configured, a site collection can override that by having its own mapping configured.

Note that configuring SLK for a web application will not create permission levels in the site collections within that all of its site collections. If required, you will have to script this manually.

A prime example of the use of this would be if you wanted the Assignment List Web Part (ALWP) in the learners’ My Sites. You can configure the My Site web application and the the web part will be usable in every users’ My Site. As the ALWP defaults to learner view if an SLK permission is not set, it works nicely for showing their assignments.

In SLK 1.7 I have deprecated slkadm by adding equivalent stsadm commands. These work in the same way, but have the advantage of not needing a separate executable distributed.

As SLK runs on 2007 & 2010, I’ve so far been trying to keep the codebase the same for both versions which is why I haven’t added any PowerShell commands. I expect that I’ll change this in the next couple of versions.

The commands allow you to configure and list site collections and consist of:

slk-configure

This command allows you to configure, or re-configure a site collections’s SLK mapping. It allows you to set up the SLK database, the permissions used and the slksettings file.

* By default, integrated authentication is used to connect to the database. To use a SQL Server user ID and password instead, append the appropriate connection string information to the database server name — for example, instead of "MyServer", use

I’ve just finished adding a new feature to SLK 1.7 which allows the Domain Group Enumeration of members to be swapped out for an alternative implementation. This is pretty much an edge case, which isn’t going to be needed by the vast majority of SLK users, but it has allowed me to add an implementation which prevents domain groups being used to assign to.

Reason

The reason I added this functionality is that a customer had a need, was willing to pay to get it developed in the timescale they needed and I decided it wouldn’t negatively impact the project. They needed it as they were using Active Directory Federation Services and had implemented some custom functionality in their projects which allowed them to associate users in the federated domains, with local Active Directory groups. Of course, SLK didn’t understand this, and couldn’t link the membership of the groups with the federated users. As SLK is a key part of their SharePoint implementation this was a problem.

They could have used the federated users in SharePoint groups which would have worked out of the box with SLK, but decided that it didn’t fit in with their architecture. So we figured out a pluggable method of enumerating the group members would work best. They can write a class which understands their architecture and just plug it into SLK.

Do Not User Active Directory Groups Implementation

As part of the implementation I’ve created a plug in which prevents the use of Active Directory groups for assigning work through SLK. This was mainly as a test case for the pluggable architecture, but I choose this as it is a potentially useful functionality rather than just a random test. When this plug in is chosen no active directory groups are displayed when choosing SLK Members. The two main areas where SLK Members are displayed are the assignment properties page when creating or editing an assignment and the SLK Members web part.

I don’t expect this to be used very often, but I can see the occasional use of it.

Configuration

This is configured in the SlkSettings.xml file i.e. at the site collection + level. To configure it you add a DomainGroupEnumerator element just before any Query elements.

The DomainGroupEnumerator has two attributes:

Type. This is the fully qualified type name of the class which is being plugged in.

Assembly. This is the strong name of the assembly containing the type.

So for the Do Not Use AD Groups implementation the configuration entry would be:

SPWeb web: The SPWeb the permission is for. This may be needed to add users to SharePoint if they aren’t already added. Used by the default implementation as not all group members may have accessed SharePoint before. May not be needed for other implementation.

TimeSpan timeRemaining: The time remaining to enumerate all groups. This can be ignored as SLK will check it before enumerating any more groups if there are any. Used by the default implementation to check time elapsed before enumerating nested groups.

bool hideDisabledUsers: Whether to hide disabled members of the group. Primarily used by the default implementation.