This task is about adding the user's experience of the suggested edits module itself. This task may be too large, and we should make sub-tasks if necessary.
* **The module consists of these elements:**
** Difficulty filter
** Topic filter (ticketed separately)
** List of tasks
** Task feed interface
** Task explanation
* **Difficulty filter** ([[ https://wikimedia.invisionapp.com/share/DVTQCGW29XW#/screens/381931518 | current mockup ]])
** This button opens a modal with a series of checkboxes listing each task type available in the wiki, grouped by level of difficulty.
** These checkboxes combine like “OR” across the levels of difficulty.
** By default, all the “Easy” task types are checked on.
** The user’s choices are sticky from time to time as they open and close the filter.
** An additional option, “Create a new article”, will exist under the “Hard” difficulty, and will not have a checkbox. It will lead to a tutorial or help page. Exact interaction is still TBD.
** The button to open the filter says the difficulty level of the chosen tasks. TBD what to do if the user selects tasks from multiple difficulty levels.
* **Topic filter**
** This module will also contain a topic filter, ticketed separately.
* **Other filters**
** No protected articles should be shown, at any level of protection.
** No articles should be shown that are nominated for deletion. Specific templates to be collected from ambassadors.
* **List of tasks**
** Recommendations are drawn from articles that are tagged with a maintenance template/category. For each wiki, a certain set of specific templates/categories will be specified for the module, and they will be assigned to a higher level task type, such as “Copy editing” or “Adding links”. Those task types will be classified as “Easy”, “Medium”, or “Hard”. Right now, the task types are being determined in this workbook.
** Filtering by difficulty
*** The recommendations should be filtered to articles that have any of the maintenance templates/categories that correspond to the task types specified in the difficulty filter.
*** When presented to the user, the articles should be sorted randomly, to decrease how often different users sees the same articles.
*** If an article has maintenance templates/categories for multiple selected task types, it should only be counted once for the interface. We will have a hierarchy of which task type to use.
* **Task feed interface** ([[ https://wikimedia.invisionapp.com/share/DVTQCGW29XW#/screens/381931517 | current mockup ]])
** The tasks are shown to the user one at a time as a card that includes:
*** Image from the article (or placeholder image)
*** Beginning of the text
*** Number of pageviews in past month
** Above the card is shown how many tasks there are with the current filter settings and which number task the user is looking at, e.g. “4 of 345 matching suggestions”.
** The user can click arrows to pass back and forth across the list. On the first card, the left arrow is grayed out and not clickable.
** When the user gets to the last card in the list, they can click the right arrow one more time, and then they see a card that says, “Change the filter settings to find more tasks.” If their filter settings yield no tasks, this should be the only card.
** When the user clicks a card, they go to the article from the card.
* **Task explanation** ([[ https://wikimedia.invisionapp.com/share/DVTQCGW29XW#/screens/381931519 | current mockup ]])
** Below the task feed interface is the area saying which task type is needed on the suggested article.
** Each task type will have some copy written to explain what that task is.
** If an article has multiple maintenance categories/templates that fall into multiple task types, preference should be given to the easier tasks over harder tasks. If the article falls into multiple task types of the same difficulty level, we will have a hierarchy of which task type to use.
** When the user hovers over this area (or clicks/hovers over a certain target TBD), a popup opens to explain the task type further. This may include links.
Below is a list of non-engineering items that need to be complete before this task is complete, but that do not block engineering:
[] Lay out the exact templates and categories from which we'll source tasks in Arabic, Czech, and Korean Wikipedias, along with their task type and the difficulty levels of each task type.
[] Collect deletion templates
[] Decide hierarchy of which task types to prefer if an article has more than one maintenance template/category.