I spent some time a few months ago trying to implement this feature. It
turns out to be a lot more complicated in terms of implementation that
it is conceptually.

What the problem boils down to is that currently collections don't have
their own access control settings. Instead, we simulate this by syncing
up the access controls of all the pages in a collection so that they
match up. In order to have a comprehensive ability to put a single page
into multiple collections, we'd either need to decouple permissions from
collections (so that the pages in a collection can have separate
permissions from one another; kind of like a Flickr photo "set"), or
we'd have to let collections have their own permissions.

Letting collections have their own permissions turns out to require a
fairly comprehensive change in Mahara, with nearly every script that
checks page access (which is a lot of them) needing a bit of a rewrite.

"ungluing" collections so that the pages in them can have different
access permissions, is a bit simpler, but turns out to have a few weird
corner cases that make it very complicated. These include the
"accessconfhash" column (which is how we determine the checkboxes that
allow you to say "set all these pages to have the same permissions"),
and group submissions.

Another area of tricky corner cases has to do with Collection URL's.
Currently, there is no true URL for a Collection by itself; instead, the
URL for the Collection is the URL of the first page in the Collection.
So, if Pages can belong to multiple Collections, you have to consider
whether you'll create a separate URL for the Page-in-that-Collection,
and how you'll deal with the legacy URLs to the Collection out there
which now just go to the Page-by-itself, and so forth.

I wound up abandoning the effort because it had the potential to cause
widespread bugs in Mahara (since it was such a broad code change) for a
relatively modest pay-off.

Nonetheless, this would still be a good feature to include, because it
makes no logical sense for it to be absent. It'll just require some
careful thought and extensive testing.

-- 
You received this bug notification because you are a member of Mahara
Contributors, which is subscribed to Mahara.
Matching subscriptions: Subscription for all Mahara Contributors -- please ask 
on #mahara-dev or mahara.org forum before editing or unsubscribing it!
https://bugs.launchpad.net/bugs/1100836

Title:
  Add pages to multiple collections

Status in Mahara ePortfolio:
  Triaged

Bug description:
  Feature request.
  It would be useful to have the ability to add pages to multiple collections 
rather than having them restricted to only one collection. This would enable 
the same content to be used in different sets of resources without having to 
copy it multiple times (and update changes in several places). 
  Case Example - 'how to' pages on using specific software might be added to 
several different collections depending on target audiences, such as staff / 
student pages, or thematic (eg offfice software) collections.
  Thanks, Gordon.

To manage notifications about this bug go to:
https://bugs.launchpad.net/mahara/+bug/1100836/+subscriptions

_______________________________________________
Mailing list: https://launchpad.net/~mahara-contributors
Post to     : mahara-contributors@lists.launchpad.net
Unsubscribe : https://launchpad.net/~mahara-contributors
More help   : https://help.launchpad.net/ListHelp

Reply via email to