Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve UX of evaluation show page #5636

Open
wants to merge 22 commits into
base: main
Choose a base branch
from

Conversation

jorg-vr
Copy link
Contributor

@jorg-vr jorg-vr commented Jun 24, 2024

This pull request replaces the old feedback status icons with the submissions status icons and textual buttons.

This is done because the old icon wasn't clear for new users. The table wasn't readable and it was also unclear that the icons where actually buttons.

Now that the table itself is clearer, I removed the help text.

image
image

For reference the old icons:
image

  • Documentation update can be found at dodona-edu/dodona-edu.github.io#

Closes #4173

@jorg-vr jorg-vr added the enhancement A change that isn't substantial enough to be called a feature label Jun 24, 2024
@jorg-vr jorg-vr self-assigned this Jun 24, 2024
@jorg-vr jorg-vr marked this pull request as ready for review June 24, 2024 15:21
@jorg-vr jorg-vr requested a review from bmesuere as a code owner June 24, 2024 15:21
@BTWS2
Copy link
Contributor

BTWS2 commented Jun 25, 2024

What do you think about vertically aligning the text?
image

Copy link
Member

@bmesuere bmesuere left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure about this. The current design didn't come out of nowhere and was the result of many iterations taking into account evaluations with multiple columns (in the overview), and limited v-space (on an evaluation itself). I'll first revisit the original iterations (at a later time) before reviewing this.

@jorg-vr
Copy link
Contributor Author

jorg-vr commented Jun 28, 2024

#1777

@jorg-vr
Copy link
Contributor Author

jorg-vr commented Aug 5, 2024

Bart, I don't remember what were the discussed requested changes for this pr?

I do remember discussing that the changes where now much less important due to the 'evaluate' buttons at the top.
So am also open to closing the pr and the underlying issue

@bmesuere
Copy link
Member

bmesuere commented Aug 5, 2024

I recall

  • that the icons were used throughout the feature and that removing half of them would make it more confusing on other places
  • that the overview is primarily an overview and that icons are preferred there over text links
  • that if some of the current icons aren't clear enough, we could try to come up with better alternatives e.g. instead of the colored lines to indicate correct/incorrect, add a badge to the icon.

Copy link

coderabbitai bot commented Aug 5, 2024

Walkthrough

The recent changes primarily focus on enhancing the rendering logic and layout of feedback statuses in the evaluations interface. Modifications include the integration of SVG icons, the removal of unnecessary conditional logic, and the restructuring of user feedback rows into a table format. Additionally, a paragraph element displaying evaluation details has been removed, streamlining the presentation. These updates aim to improve the overall clarity and usability of the evaluation interface.

Changes

Files Change Summary
app/views/evaluations/_feedback_status.html.erb Modified rendering logic for feedback status, integrating SVG icons and additional attributes for tooltips.
app/views/evaluations/show.html.erb Removed a paragraph element displaying evaluation details, simplifying the presentation.
app/views/feedbacks/_user_feedback_row.html.erb Changed rendering to a table layout for user feedback rows, introducing a conditional check for active feedback.

Assessment against linked issues

Objective Addressed Explanation
Improve clarity in feedback display and user interaction (e.g., button visibility)
Ensure users can easily locate grading functionalities Changes do not address navigation to grading directly.
Streamline user feedback for better understanding

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@jorg-vr jorg-vr marked this pull request as draft August 5, 2024 08:48
@jorg-vr
Copy link
Contributor Author

jorg-vr commented Aug 5, 2024

What do you think of this?

image

Keeps the checkmark with comment icon used in other places. But also uses the known submission state icons, thus separating the two types of information into two columns.

@jorg-vr
Copy link
Contributor Author

jorg-vr commented Nov 13, 2024

Vission for changes (dutch from Bart):

  • comment icon leeg/comment icon met een vinkje in is ok om geëvalueerd/niet geëvalueerd aan te duiden. We gebruiken dat niet alleen in de tabel maar ook als icoontje op de next knop etc
  • de kleur het het icoontje (grijs/blauw) is niet duidelijk/voegt weinig toe. Het originele doel was om de lege blauw te maken om aan te duiden: hier moet je nog iets doen -> allemaal grijs/blauw maken?
  • de gekleurde lijn (groen/rood/grijs) onder het icoontje is niet duidelijk genoeg (en zeker niet voor kleurenblinden). -> Kunnen we het echte statusicoontje van de submission in het klein weergeven in bv de rechter onderhoek van het comment icoontje? Dan is het duidelijker dat het om de submission status gaat en is het kleurenblindheidsprobleem opgelost.
  • bij nader inzien in je voorgestelde tabelletje in de sidebar tijdens het evalueren niet slecht. Het lost o.a. het probleem op met evaluaties met veel reeksen + geeft meer info. Nadeel is dat de sidebar langer wordt, maar dit staat toch onderaan denk ik. Ik zou dan wel het icoontje gebruiken ipv de tekst link om het consistent te houden

Todo:

  • create merged icon
  • use merged icon in side table and overview table
  • remove textual buttons in side table

@jorg-vr
Copy link
Contributor Author

jorg-vr commented Nov 19, 2024

I am not fully convinced of the all blue approach. But I don't have a very strong opinion on either of the three options.

For reference:
All blue
image

All grey:
image

Mixed:
image

@jorg-vr jorg-vr marked this pull request as ready for review November 19, 2024 14:39
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Outside diff range and nitpick comments (3)
app/views/feedbacks/_user_feedback_row.html.erb (1)

6-13: Consider adding ARIA attributes for better accessibility

The implementation looks good and aligns with the PR objectives to improve the feedback status display. The ellipsis overflow with title attribute is a good approach for handling long names.

Consider adding ARIA attributes to improve accessibility:

-<td class="ellipsis-overflow name" title="<%= feedback.exercise.name %>">
+<td class="ellipsis-overflow name" title="<%= feedback.exercise.name %>" aria-label="Exercise: <%= feedback.exercise.name %>">
app/views/evaluations/_feedback_status.html.erb (2)

1-4: Enhance accessibility for the feedback status link

Consider adding ARIA attributes to improve accessibility for screen readers.

 <%= link_to evaluation_feedback_path(evaluation, feedback),
             title: feedback_title(feedback),
             "data-bs-toggle": "tooltip",
+            "aria-label": feedback_title(feedback),
+            "aria-describedby": "feedback-status-tooltip",
             class: "btn btn-icon #{local_assigns.fetch(:active, false) ? 'disabled' : ''}" do %>

14-14: Consider using relative positioning for the background circle

The hardcoded position (cx="21" cy="22.25") might not scale well with different viewport sizes.

Consider using percentages or viewBox units for positioning:

-      <circle cx="21" cy="22.25" r= "9" fill="var(--d-surface)"></circle>
+      <circle cx="87.5%" cy="92.7%" r="37.5%" fill="var(--d-surface)"></circle>
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between a22c43a and f66b814.

📒 Files selected for processing (3)
  • app/views/evaluations/_feedback_status.html.erb (1 hunks)
  • app/views/evaluations/show.html.erb (0 hunks)
  • app/views/feedbacks/_user_feedback_row.html.erb (1 hunks)
💤 Files with no reviewable changes (1)
  • app/views/evaluations/show.html.erb
🔇 Additional comments (3)
app/views/feedbacks/_user_feedback_row.html.erb (2)

14-15: LGTM!

The table structure is properly closed.


11-11: Verify that the new feedback status implementation addresses user confusion

Based on the PR objectives, users previously struggled to understand the meaning of status icons. Let's verify that the new implementation in evaluations/feedback_status partial addresses this concern.

✅ Verification successful

The verification results show that the new feedback status implementation has made several improvements to address user confusion:

New implementation effectively addresses user confusion with status icons

The new feedback status partial (_feedback_status.html.erb) implements a clear visual system:

  • Uses descriptive icons (mdi-comment-check-outline for completed feedback, mdi-comment-outline for pending)
  • Includes submission status through a composite icon design
  • Provides tooltips for additional clarity (data-bs-toggle: "tooltip")
  • Maintains consistency with the rest of the application's tooltip usage pattern
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check the feedback_status partial for improved icon implementation
# and verify removal of help text mentioned in PR objectives

# Check the feedback_status partial implementation
cat app/views/evaluations/_feedback_status.html.erb

# Look for any remaining help text that should have been removed
rg -g "app/views/**/*.erb" "help.*text|tooltip|hint" 

Length of output: 8951

app/views/evaluations/_feedback_status.html.erb (1)

1-24: Verify that the new implementation addresses user confusion

While the implementation technically combines comment and submission status icons, consider these suggestions to further improve user experience based on the PR objectives:

  1. The btn-icon class might not sufficiently indicate clickability
  2. The tooltip might be missed by users who don't hover

Consider these improvements:

  1. Add a subtle hover effect or button-like styling
  2. Include a visual affordance (like a subtle outline) to indicate clickability
  3. Consider adding a small "Click to evaluate" label for new users

@BTWS2
Copy link
Contributor

BTWS2 commented Nov 19, 2024

I am not fully convinced of the all blue approach. But I don't have a very strong opinion on either of the three options.

I prefer the mixed colors, because of the visual distinction.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot reviewed 5 out of 10 changed files in this pull request and generated no suggestions.

Files not reviewed (5)
  • app/assets/stylesheets/components/evaluations.css.scss: Language not supported
  • app/assets/stylesheets/components/table.css.scss: Language not supported
  • app/assets/stylesheets/models/activities.css.scss: Language not supported
  • app/views/evaluations/_feedback_status.html.erb: Evaluated as low risk
  • app/views/evaluations/_grade_status.html.erb: Evaluated as low risk
Comments skipped due to low confidence (1)

app/helpers/evaluation_helper.rb:17

  • [nitpick] Consider using feedback.submission.nil? instead of feedback.submission.blank? for clarity.
submission_status_text = if feedback.submission.blank?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement A change that isn't substantial enough to be called a feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Improve UX of evaluations
3 participants