Add pages to multiple collections

Bug #1100836 reported by Gordon McLeod
26
This bug affects 6 people
Affects Status Importance Assigned to Milestone
Mahara
Triaged
Wishlist
Unassigned

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.

Revision history for this message
shanen (shane-nuessler-canberra) wrote :

Hi everyone,
I have staff using Mahara for their professional portfolios asking for the same functionality.
Cheers,
Shane.

Aaron Wells (u-aaronw)
Changed in mahara:
milestone: none → 1.8.0rc1
importance: Undecided → Wishlist
status: New → Triaged
Aaron Wells (u-aaronw)
Changed in mahara:
milestone: 1.8rc1 → 1.8.0
Aaron Wells (u-aaronw)
Changed in mahara:
milestone: 1.8.0 → 1.9.0
Revision history for this message
Aaron Wells (u-aaronw) wrote :

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.

Revision history for this message
Gordon McLeod (g-mcleod1) wrote :

Hi Aaron,
Thanks for the feedback - much appreciated that you've taken the time to outline the problems with implementing this. With regard to the possible approaches, if you get an opportunity to take another look at this I think it would be more useful to unglue the collection access settings (with a default of all the same) as that makes things much more flexible from the user perspective - eg
1) You might want to put all of your 1st year pages together in a collection, all 2nd year pages in another, etc so that it's easy for you to review what you did each year - but you don't necessarily want to share all pages when you need to give someone access to something.
2) I use collections when I setup templates for students to use, but don't want them to have full access to all template pages at the same time (we release pages as the course builds) - so I currently have to decouple the collection after I move it to the resource group that the students will have access to, so that I can set different dates for availability.
Regards, Gordon.

Changed in mahara:
milestone: 1.9.0 → none
Revision history for this message
Dirk Meyer (dirkca68) wrote :

Just a thought, as this feature would be a great enhancement.

Perhaps when a page is added to a collection, a copy of that page could created in the background automatically?
Then again, maybe its a bad idea because when I remove a the page from a collection, I would have two copies.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.