[#12552] Session Copy Modal: Instructors able to select the Course that they are copying from #13149
Fixes #12552
Outline of Solution
Based on discussion in the issue, I implemented an auto-generate function to change the title of the session slightly to allow instructors to copy the session within the same course. This added flexibility is so that instructors can reuse the same session formats for multiple sessions within the course, while allowing them to edit the title of the session after copying.
See below screenshot for example.
This also implies that no error will be thrown for copying the session within the same course.
Hi @kvernnn, thank you for your interest in contributing to TEAMMATES! However, your PR does not appear to follow our contribution guidelines:
- Title must start with the issue number the PR is fixing in square brackets, e.g.
[#<issue-number>]
Please address the above before we proceed to review your PR.
@kvernnn Thanks for this PR. Can you upload a screen-recording to demo how the feature works? Note that it is also not desirable that session name auto-changes for every case. In most cases the user will want to keep the same name.
@damithc Hi Prof, attached is a video demo of how the copy function would work. Unfortunately the file size is too big even after compressing, so I uploaded it to Google Drive and attached the link here. Alternatively, the video can be downloaded here. I have also attached several key screenshots relevant below.
To clarify, below are descriptions of what happens in the video.
-
Copying a feedback session within the same course Expected outcome: Copying is allowed with slight renaming (e.g. Session with different question types -> Session with different question types (1)). Page is redirected to the newly created feedback session where instructors can choose to edit and rename
-
Copying a feedback session to another course Expected outcome: Copying is allowed with no renaming (e.g. Session with different question types -> Session with different question types). Page is similarly redirected to the newly created feedback session where instructors have the agency to edit and rename.
Hope this is clear!
Good start @kvernnn
In terms of UX, I think it is better to force the user to specify a different name when copying a session to the same course, rather than auto add (1) to the name.
Reason: Session names cannot be changed after a session is created, and it is unlikely users will be OK with the auto-generated session name. So, the auto-generated name is unlikely to be actually used but can cause frustration to users if they mistakenly save a session with a name they don't want and can't change.
Noted Prof! @damithc
I understand the rationale behind prompting the user to change the name instead of directly appending (1) to the new session name. I initially intended for the implementation to be as such as well, but due to limited time I had on my hands and the un-finalised approach to handle this, I decided to start off with something that does not require drastic change yet can function.
Nonetheless, I will look into implementing your suggestions, or make the session name editable. Thank you!
@damithc Hi Prof,
I have made changes outlined below:
- Session name is now editable when instructor clicks copy and selects the courses to copy the session to (Screenshot 1)
- Session name will append (1), (2)... by default if the course selected contains an existing session with the same name (Screenshot 2). The session name is still editable.
Below are some flows of this new implementation:
-
Copying to course where the session already exists a. User copies a session that exists in course A and B from course A b. User selects course B as the course to copy to c. Expected: Session name appends (1) suffix, user can still edit session name
-
Copying to course where the session does not exist a. User copies a session that exists in course A and not in B from course A b. User selects course B as the course to copy to c. Expected: Session name does not append (1) suffix, user can still edit session name
Screenshot 1
Screenshot 2