Distinguish between duplicate & template personal page
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mahara |
Triaged
|
Wishlist
|
Unassigned |
Bug Description
Hello,
The current functionality for copying pages is causing a huge amount of problems for students when creating portfolio pages. The specific issue is that if they copy one of their own personal pages to use as a template for another page, the textboxes are all linked and any changes are mirrored, so the students go from having 2 copies of Page A to having 2 copies of Page B, instead of the desired result of 1 copy of each page.
Copying a page as a template works fine if the template is owned by someone else (eg teacher or group), but I've seen far too many students make the mistake even when given clear instructions.
I'd like to propose an enhancement to the existing copy page/collection functionality-
If the user selects their own page to copy they should be presented with a choice;
1) Create an identical copy where all changes to existing textboxes are mirrored (current functionality)
2) Create a new editable page using the existing page as a template (textboxes aren't linked)
If this isn't something that can be quickly implemented, I'd suggest that when copying your own pages you should at least get a warning pop-up to say that any changes you make to either page will be mirrored in the other page, so that users have to acknowledge it before copying.
Regards, Gordon.
Changed in mahara: | |
importance: | Undecided → Wishlist |
Hi Gordon,
What you propose should be easy enough to do - currently with annotation blocks there is a new copying option called 'fullinclself' which means on copying all blocks/artefacts get duplicated even when copying ones own page.
To achieve what you want in v16.10 Mahara all you would need to do is find the following in /artefact/ internal/ blocktype/ textbox/ lib.php
public static function default_copy_type() {
return 'full';
}
And change to:
public static function default_copy_type() {
return 'fullinclself';
}
If you wanted to make it an optional thing then you could do something similar to the Tagged Journals block where there is a 'Block copy permission' field option in the block configuration.
So you could have 'Block copy permission' options of:
- full: Current functionality
- fullinclself: Current functionality for other users is also applied to self
If you are on a version earlier than 16.10 then the relevant commits will need to be backported to your particular version.
Cheers
Robert