The ws desktop works like this:
-when we create a workspace type, it is like a kind of prototype for the creation of new workspaces of that type
-we also define a base ws desktop for that type
-when we create a new ws of that type, an admin (or delegate ws admin) has also the possibility to define a specific desktop for this workspace, different from the prototype one, with different modules etc.
So when that ws is opened, if it has his onwn specific desktop, you'll get that. Otherwise you'll fallback to having the prototype desktop, as defined for that ws type.
But in what does a desktop differs from a normal wiki page, with wikiplugin modules placed in it?
-With a wiki page you can have better placing of columns, using tables, so you can have a row that comprises two columns for example.
- with a wiki Page any member with edit permissions can add stuff to the page
- with a wiki page you can assign perms to it, so that eg: delegated admins (member of a WSXX-Teacher group) can modify all of it, Students only parts of it.
- You can still force people to see that page after login, by setting it as a 'group Homepage', obtaining the same effect of a Desktop.
An alternative way could be to define a Desktop with just one module: the workspaces_viewpage module, that will just show a well manufactured page like above
This would give more flexibility and finer permissions on the Desktop layout, and take away a lot of code.
Supposed there exist a way to do it automatically for all workspaces... But I think this can be worked out
What do you think