project: Moodle
summary: Forum facelift
description: Update the look and feel of the forum. This is a placeholder for the Forum Facelift project. More detail will be added here shortly.

1.summary: Forum: Implement a "Private Reply" option
description: Implement a way that will open the messages tool as a "private reply" to a forum post.
2.summary: Update forum display to use templates
description: Forum is a very old module in Moodle and has slowly evolved over time into a pretty complex system with lots of features. That evolution has made it costly (in terms of time and complexity) to add some of the more modern features we want. We need to change the forum rendering code to render using templates rather than HTML writer. Part of the process to transition over to using templates will require us to model the forum data a bit better, add renderers, add exporters, and more formally structure the code. The key benefit for moving to templates will be unlocking the ability to render parts of the forum using JavaScript which means we can add features such as inline replies, inline editing, starring, etc. Themers can also freely override templates to easily change the look and feel of the forum in their theme. In addition, we will be able to structure the code a bit better to make it more maintainable for the future.
3.summary: Add in page forum post replying
description: Acceptance criteria: It is possible to reply to discussion posts without losing my current location within the discussion. It is possible to include a file attachment when replying to posts in this fashion. If I need to write a more detailed response, I can open the Advanced editor. When opening the Advanced editor, any content I have written is carried over. After creating my discussion reply content, the new content is added to the discussion view immediately.
4.summary: Add the ability to lock discussions manually
description: Note: This issue deliberately duplicates older issues in order to make project milestones easier to follow and track.
5.summary: Add ability to star discussions
description: Add the ability to mark a discussion as starred, and treat it as a personal version of "Pinned discussions". This functionality, which should make use of the Favourites API, will add a user-personal version of Pinned discussions. Discussions in this category will be shown at the top of the list of discussions in a forum. Acceptance criteria It is possible to Favourite and Unfavourite a forum discussion from the list of discussions. It is possible to Favourite and Unfavourite a forum discussion from within that discussion.
6.summary: Improve accessibility of forum discussion
description: Improve the accessibility of discussions in the forum. Some feedback weve had on what needs improving: Semantic structure is vague. Screen reader users can t be sure who is replying to whom. Show parent wasn t clear. Also JAWS focus is unexpectedly moved when Show parent is selected no warning. Basic forum navigation difficulties often require extensive tabbing. No announcement about the number of discussions and number of replies in a forum. No in-page reply available. JAWS user has to tab through all the Atto tools in order to set focus in a text field and begin typing. A simple editor would be preferable (see Advanced forum example). No confirmation or audio notification that a reply has been successfully posted. When Permalink is selected, JAWS automatically starts reading everything from start to finish - unpredicatable behavior.
7.summary: Improve in-page navigation of forum
description: quote Basic forum navigation difficulties often require extensive tabbing. quote
8.summary: Announce the number of discussions and number of replies in a discussion
description: quote No announcement about the number of discussions and number of replies in a forum. quote Maybe a summary at the top of the discussion page?
9.summary: Ensure that there is a notification when a reply was posted
description: quote No confirmation or audio notification that a reply has been successfully posted. quote Im not sure why this isnt happening. We do have a notification upon posting, and recent changes mean that it should definitely be focused and announced. May need to check this out with Jaws to find out if something is missing?
10.summary: Check and improve behaviour of Permalink link
description: quote When Permalink is selected, JAWS automatically starts reading everything from start to finish - unpredicatable behavior. quote
11.summary: Issue with JAWS navigating Atto Toolbar and reading out each button before entering Editor area.
description: From marlene zentz via Accessibility group feedback on Forum prototype: quote JAWS user has to tab through all the Atto tools in order to set focus in a text field and begin typing. A simple editor would be preferable (see Advanced forum example). quote It seems like something has broken here recently. From what I recall, the Atto toolbar is implemented as a menu, and this should not happen. Need to check this behaviour and see what we can do to improve upon it.
12.summary: As a user, I want to create a new discussion without changing page, so that I can create a discussion quickly and easily.
description: Acceptance criteria It is possible to create a new discussion from the Create new discussion button. It is possible to include a file attachment when creating a new discussion in this fashion. If I need to write a more detailed post, I can open the Advanced editor. When opening the Advanced editor, any content I have written is carried over.
13.summary: Sort starred discussions in discussion list
description: Acceptance criteria: My favourite discussions are listed at the top of the Discussion List within the Forum. My favourite discussions are shown immediately below any discussion that is Pinned for all users. Regardless of the sort-order chosen, discussions which have been favourited are at the top of the list (under pinned discussions).
14.summary: As a user, I am able to sort the list of discussions.
description: Acceptance criteria from spec: It is possible to sort the list of discussions placing the newest discussions at the top of the list. It is possible to sort the list of discussions placing the oldest discussions at the top of the list. It is possible to sort the list of discussions placing discussions with the most replies at the top of the list. Regardless of the sort-order chosen, discussions which have been pinned are at the top of the list. Additionally: It would be nice if Moodle remembered the sort order as a user preference for each time the user visits the page.
15.summary: Deprecate forum_print_latest_discussions
description: forum_print_latest_discussions is now only used in two locations: course/format/social/format.php course/renderer.php These uses should be replaced with the updated renderer, and the old function moved to mod/forum/deprecatedlib.php and deprecated.
16.summary: Follow up forum accessibility improvements
description: Further to weve had some additional feedback from our testers about how we can make some more changes. Further suggestions as follows: JAWS reads out "in reply to" now when reading replies to replies, which is great. Our recommendation would be to have everyone see the information that JAWS is reading out so the user experience is equivalent. Everyone benefits from this information, especially users with cognitive or print disabilities, for example. Parent link is predictable and has the correct re-focus now. The Parent link reads out shortcut keys for navigating to the Parent link, but does not read out a title per se that would give the user more information about what the link does. The need for extensive tabbing through Atto has been resolved as much as we had time to test. However, we did note one major problem with posting replies. When a JAWS user writes a reply and exits the text field to submit their reply, JAWS focus jumps unexpectedly to the next reply, prohibiting the user from canceling or submitting the reply they had just written. JAWS didnt detect the Cancel or Submit buttons until Jolynn navigated backward to them. Hope this makes sense. The number of replies is announced now when a discussion is opened, which is great. The number of discussions is still not announced. JAWS just goes directly into a plain text field now and the first item in the Atto toolbar was not even detected by JAWS. (Jolynn was testing using JAWS 2018.1811.2.400 and Chrome v. 73.0) There is no confirmation or audio notification to a JAWS user that a reply has been successfully posted. JAWS is not detecting a title in the "permalink" link yet, but your work may not have been complete when we tested last Thursday. Chrome is accepted as the standard browser for JAWS testing, but we can try some other browsers. We also need to see how NVDA behaves. Additionally, as noted by Peter while testing : Up/down/home/end keys still scroll the page when shifting focus. Preventing the browser default actions is ok when a screen reader is enabled because it automatically scrolls to the element with focus however without the screen reader the scrolling doesnt seem to be managed so well. (Damyon also noticed this) the item with focus isnt highlighted on the page (with the blue outline) so when a post has focus you cant visually see it
17.summary: Improve forum rendering speed
description: Improve the rendering speed of the new forum rendering. At the moment its marginally faster than the old rendering but there should be some things we can improve.
18.summary: Implement private replies into the quick replies
description: Implement the private reply functionality into the quick reply
19.summary: Remove the profile link from the discussion authors name in the "Started by" column of the discussion list
description: When viewing a forum we display the list of discussions in a table. One of the columns is "Started by" which shows the name of the user that started the discussion. The name currently links to the users profile page. We should remove the link to the profile page because users are confusing it for a link to the discussion itself. Instead it should just print the authors name in text.
20.summary: Indicate that a discussion is locked in the discussion list
description: As per spec, the discussion list should indicate where a discussion is locked.

Below is an instruction that describes a task, paired with an input that provides an epic with this format: 
"project": "Name of the project" 
"summary": "Summary of the epic user story" 
"description": "Description of the epic user story". Write a response that appropriately completes the request.### Instruction:
Break this epic user story into smaller tasks to help the developers understand the epic better, you can divide this epic into as much as you want depending on the complexity of the epic.
### Input:
project: Moodle
summary: Forum facelift
description: Update the look and feel of the forum. This is a placeholder for the Forum Facelift project. More detail will be added here shortly.

### Response:
1.summary: Forum: Implement a "Private Reply" option
description: Implement a way that will open the messages tool as a "private reply" to a forum post.
2.summary: Update forum display to use templates
description: Forum is a very old module in Moodle and has slowly evolved over time into a pretty complex system with lots of features. That evolution has made it costly (in terms of time and complexity) to add some of the more modern features we want. We need to change the forum rendering code to render using templates rather than HTML writer. Part of the process to transition over to using templates will require us to model the forum data a bit better, add renderers, add exporters, and more formally structure the code. The key benefit for moving to templates will be unlocking the ability to render parts of the forum using JavaScript which means we can add features such as inline replies, inline editing, starring, etc. Themers can also freely override templates to easily change the look and feel of the forum in their theme. In addition, we will be able to structure the code a bit better to make it more maintainable for the future.
3.summary: Add in page forum post replying
description: Acceptance criteria: It is possible to reply to discussion posts without losing my current location within the discussion. It is possible to include a file attachment when replying to posts in this fashion. If I need to write a more detailed response, I can open the Advanced editor. When opening the Advanced editor, any content I have written is carried over. After creating my discussion reply content, the new content is added to the discussion view immediately.
4.summary: Add the ability to lock discussions manually
description: Note: This issue deliberately duplicates older issues in order to make project milestones easier to follow and track.
5.summary: Add ability to star discussions
description: Add the ability to mark a discussion as starred, and treat it as a personal version of "Pinned discussions". This functionality, which should make use of the Favourites API, will add a user-personal version of Pinned discussions. Discussions in this category will be shown at the top of the list of discussions in a forum. Acceptance criteria It is possible to Favourite and Unfavourite a forum discussion from the list of discussions. It is possible to Favourite and Unfavourite a forum discussion from within that discussion.
6.summary: Improve accessibility of forum discussion
description: Improve the accessibility of discussions in the forum. Some feedback weve had on what needs improving: Semantic structure is vague. Screen reader users can t be sure who is replying to whom. Show parent wasn t clear. Also JAWS focus is unexpectedly moved when Show parent is selected no warning. Basic forum navigation difficulties often require extensive tabbing. No announcement about the number of discussions and number of replies in a forum. No in-page reply available. JAWS user has to tab through all the Atto tools in order to set focus in a text field and begin typing. A simple editor would be preferable (see Advanced forum example). No confirmation or audio notification that a reply has been successfully posted. When Permalink is selected, JAWS automatically starts reading everything from start to finish - unpredicatable behavior.
7.summary: Improve in-page navigation of forum
description: quote Basic forum navigation difficulties often require extensive tabbing. quote
8.summary: Announce the number of discussions and number of replies in a discussion
description: quote No announcement about the number of discussions and number of replies in a forum. quote Maybe a summary at the top of the discussion page?
9.summary: Ensure that there is a notification when a reply was posted
description: quote No confirmation or audio notification that a reply has been successfully posted. quote Im not sure why this isnt happening. We do have a notification upon posting, and recent changes mean that it should definitely be focused and announced. May need to check this out with Jaws to find out if something is missing?
10.summary: Check and improve behaviour of Permalink link
description: quote When Permalink is selected, JAWS automatically starts reading everything from start to finish - unpredicatable behavior. quote
11.summary: Issue with JAWS navigating Atto Toolbar and reading out each button before entering Editor area.
description: From marlene zentz via Accessibility group feedback on Forum prototype: quote JAWS user has to tab through all the Atto tools in order to set focus in a text field and begin typing. A simple editor would be preferable (see Advanced forum example). quote It seems like something has broken here recently. From what I recall, the Atto toolbar is implemented as a menu, and this should not happen. Need to check this behaviour and see what we can do to improve upon it.
12.summary: As a user, I want to create a new discussion without changing page, so that I can create a discussion quickly and easily.
description: Acceptance criteria It is possible to create a new discussion from the Create new discussion button. It is possible to include a file attachment when creating a new discussion in this fashion. If I need to write a more detailed post, I can open the Advanced editor. When opening the Advanced editor, any content I have written is carried over.
13.summary: Sort starred discussions in discussion list
description: Acceptance criteria: My favourite discussions are listed at the top of the Discussion List within the Forum. My favourite discussions are shown immediately below any discussion that is Pinned for all users. Regardless of the sort-order chosen, discussions which have been favourited are at the top of the list (under pinned discussions).
14.summary: As a user, I am able to sort the list of discussions.
description: Acceptance criteria from spec: It is possible to sort the list of discussions placing the newest discussions at the top of the list. It is possible to sort the list of discussions placing the oldest discussions at the top of the list. It is possible to sort the list of discussions placing discussions with the most replies at the top of the list. Regardless of the sort-order chosen, discussions which have been pinned are at the top of the list. Additionally: It would be nice if Moodle remembered the sort order as a user preference for each time the user visits the page.
15.summary: Deprecate forum_print_latest_discussions
description: forum_print_latest_discussions is now only used in two locations: course/format/social/format.php course/renderer.php These uses should be replaced with the updated renderer, and the old function moved to mod/forum/deprecatedlib.php and deprecated.
16.summary: Follow up forum accessibility improvements
description: Further to weve had some additional feedback from our testers about how we can make some more changes. Further suggestions as follows: JAWS reads out "in reply to" now when reading replies to replies, which is great. Our recommendation would be to have everyone see the information that JAWS is reading out so the user experience is equivalent. Everyone benefits from this information, especially users with cognitive or print disabilities, for example. Parent link is predictable and has the correct re-focus now. The Parent link reads out shortcut keys for navigating to the Parent link, but does not read out a title per se that would give the user more information about what the link does. The need for extensive tabbing through Atto has been resolved as much as we had time to test. However, we did note one major problem with posting replies. When a JAWS user writes a reply and exits the text field to submit their reply, JAWS focus jumps unexpectedly to the next reply, prohibiting the user from canceling or submitting the reply they had just written. JAWS didnt detect the Cancel or Submit buttons until Jolynn navigated backward to them. Hope this makes sense. The number of replies is announced now when a discussion is opened, which is great. The number of discussions is still not announced. JAWS just goes directly into a plain text field now and the first item in the Atto toolbar was not even detected by JAWS. (Jolynn was testing using JAWS 2018.1811.2.400 and Chrome v. 73.0) There is no confirmation or audio notification to a JAWS user that a reply has been successfully posted. JAWS is not detecting a title in the "permalink" link yet, but your work may not have been complete when we tested last Thursday. Chrome is accepted as the standard browser for JAWS testing, but we can try some other browsers. We also need to see how NVDA behaves. Additionally, as noted by Peter while testing : Up/down/home/end keys still scroll the page when shifting focus. Preventing the browser default actions is ok when a screen reader is enabled because it automatically scrolls to the element with focus however without the screen reader the scrolling doesnt seem to be managed so well. (Damyon also noticed this) the item with focus isnt highlighted on the page (with the blue outline) so when a post has focus you cant visually see it
17.summary: Improve forum rendering speed
description: Improve the rendering speed of the new forum rendering. At the moment its marginally faster than the old rendering but there should be some things we can improve.
18.summary: Implement private replies into the quick replies
description: Implement the private reply functionality into the quick reply
19.summary: Remove the profile link from the discussion authors name in the "Started by" column of the discussion list
description: When viewing a forum we display the list of discussions in a table. One of the columns is "Started by" which shows the name of the user that started the discussion. The name currently links to the users profile page. We should remove the link to the profile page because users are confusing it for a link to the discussion itself. Instead it should just print the authors name in text.
20.summary: Indicate that a discussion is locked in the discussion list
description: As per spec, the discussion list should indicate where a discussion is locked.
