ls1intum / Artemis

Artemis - Interactive Learning with Automated Feedback
https://docs.artemis.cit.tum.de
MIT License
502 stars 289 forks source link

General manual feedback not fully shown in feedback view #9434

Open flaferty opened 2 weeks ago

flaferty commented 2 weeks ago

Describe the bug

After professor uploaded feedback to exercise, while trying to extend it, it's still not being shown properly, ending by [...]. Photo is attached. The issue is same for tablet and phone version, even while using "Desktop site" functionality

To Reproduce

  1. Go to 'exercise
  2. Click on last review and then on 'feedback'
  3. Scroll down to 'end of feedback'
  4. Not be able to extend feedback any more even though it has some more text
  5. See error

Expected behavior

After expanding feedback I expected to see the whole text in phone version

Screenshots

Screenshot_20241007_150610_Chrome

Which version of Artemis are you seeing the problem on?

7.5.6

What browsers are you seeing the problem on?

Chrome, Safari

Additional context

No response

Relevant log output

No response

krusche commented 2 weeks ago

This might not be limited to smartphones and might be a general issue (not limited to general feedback, but also referenced feedback, e.g. next to a line of code)

It definitely happens in programming exercises, but might also happen in other exercise types. I suspect the view does not properly handle the case when a so called LongFeedback is created, but I am not 100% sure. This probably happens when the manual feedback detail text is longer than 300 characters.

I found the following constants in the server code, that are relevant for this:

    /**
     * Maximum length in the database for the feedback detail text.
     */
    public static final int FEEDBACK_DETAIL_TEXT_DATABASE_MAX_LENGTH = 5000;

    /**
     * Maximum length of feedback detail texts before a long feedback is created.
     */
    public static final int FEEDBACK_DETAIL_TEXT_SOFT_MAX_LENGTH = 1000;

    /**
     * Maximum length for feedback detail text that is trimmed and moved to a connected long feedback instead.
     */
    public static final int FEEDBACK_PREVIEW_TEXT_MAX_LENGTH = 300;

After a first quick check, the server code for handling such cases seems to be fine, I suspect the client cannot handle the case that a LongFeedback is attached to the original feedback in all views.

@b-fein You implemented the LongFeedback a while ago, maybe you remember more about the implementation details, in particular when it comes to manual feedback.

upsj commented 2 weeks ago

For additional context, I saw the same issue inside the text input element when looking at the previously saved description. This might be an issue of the long feedback never making it to the database, or potentially also the textview only showing the shortened version, and the client overwriting the long feedback by a shortened version when clicking "Save".

kaancayli commented 2 weeks ago

I had worked on an issue with long feedbacks a while ago. Might it be related?

If I recall correctly, the issue was that the long feedback was getting detached from its parent element, that's why the long text couldn't be displayed.

b-fein commented 2 weeks ago

Something to test to debug this: The long feedback is only loaded from the server in the client when unfolding the feedback in the list. You can open the browser devtools before doing that and check if there is a network request that fetches the long feedback. That should should if the feedback is successfully returned to the client (and its just a visual issue of not displaying it in the client), or if there is another problem as well where the feedback is missing and the network request fails.