-
Notifications
You must be signed in to change notification settings - Fork 1
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
Adding in support for missing answer text in CAPA problem reports #239
Conversation
* Sysadmin: Enhance couses page performance in system admin page Sysadmin: Only show gitlogs for non superuser * Fixing disconnect call for mongoengine Remove problematic disconnect call for mongoengine in git import module Fixing bug in call to query timer when structure object is empty * Hack to avoid looking up course git info for sysadmin courses The courses page of the sysadmin dashboard times out due to the amount of work being done. The git info isn't critical to that view so overriding it with empty values. Co-authored-by: Amir Qayyum Khan <amir-qayyum-khan@users.noreply.github.com> Co-authored-by: Tobias Macey <tmacey@mit.edu>
(cherry picked from commit bc38cd2)
* Added a configuration flag to force third party auth This adds a toggle to allow operators to prevent user registration and login via username/password authentication, forcing the platform to only support login and registration using third-party auth such as SAML. * address tobias feedback
* Sync canvas enrollments * Added instructor dashboard button to push edX grades to Canvas * Fixed canvas grade syncing JS * Changed 'edX' reference to 'MITx' * Use EDIT_COURSE_ACCESS permission instead of is_staff * Use OVERRIDE_GRADES rule instead * Use instructor_tasks for canvas work (#183) * Add per_page to paginated requests * Static method * Fix email lowercase mismatch * Use instructor_tasks to handle canvas work * Fix transaction error * Decorator needs to be at the top * Attempt to fix polling of tasks * More task bug fixes * Fix typo * Fix course key bug * Update message for push edx grades command * Use course_key so sync_canvas_enrollments uses the same message * Format the submitted time * Don't return output to prevent task output max size error (#189) Co-authored-by: George Schneeloch <gschneel@mit.edu> Co-authored-by: Gavin Sidebottom <gsidebo@mit.edu>
This is aggregating a collection of changes for adding a tab to the instructor dashboard for reporting on submissions to rapid response problems. (cherry picked from commit 817b74e) Replacing deprecated permissions check for rapid response instructor view In Juniper the `require_level` decorator is removed in favor of the `require_course_permissions` decorator with more granular permissions definitions. Updated to use the new syntax in the rapid response instructor dashboard and remote gradebook modules. Removing explicit unicode handling in rapid response report The rapid response code was explicitly encoding report data unicode which is no longer necessary in Python 3 Fix filename for rapid response CSV exports The file name for the Rapid Response CSV exports is being rendered as `b'rapid_response_submissions.csv'` due to extraneous encoding. Removed the call to encoding as we are now running in Python 3 so the name is UTF-8 by default. Use VIEW_DASHBOARD permission for rapid_response view (#187) removing unicodes from remote gradebook 659af00 Fixing section iteration in remote gradebook 9b03ccf Fixed 2to3 issues with remote gradebook and json response from gradebook 9819a24 Fixing settings type for remote gradebook plugin app Converting remote gradebooks to be python 3 compatible 7b9f46d changing remote_gradebook and canvas_integration modules importing w.r.t koa (https://discuss.openedx.org/t/koa-will-change-how-edx-platform-code-is-imported/3610)
* Adding enrollment restriction for users based on social auth providers In order to prevent users outside of MIT creating a collaborator account and self-enrolling in courses we need to be able to restrict self-enrollment to users who authenticate using the MIT Kerberos SAML backend. This adds filtering of self-enrollment based on a feature flag that sets the allowed provider ids. (cherry picked from commit a4c53a1) * Bugfix for collaborator account access check Co-authored-by: Tobias Macey <tmacey@mit.edu>
edX requires the full namespace for imports so importing e.g. `remote_gradebook.tasks` is no longer valid. Instead it requires `from lms.djangoapps.remote_gradebook import tasks`.
- Change submission type to "None" - Change published state to "False"
In order to allow for preventing users accidentally enrolling in a course we are adding a flag to toggle whether courses in a given installation of edx-platform are invite only, rather than relying on setting it at the per-course level. (cherry picked from commit 1be29e2) (cherry picked from commit 2581b511ceb44c6f6677ece4bf833c556fe766f0) (cherry picked from commit ccce559)
Posting to the remote gradebook via lmod proxy was failing due to a key error when parsing the CSV content. This was due to erroneously encoding a string object. This commit adds a check for the type of the header value to prevent double encoding it.
In the current state if it is unable to find the answer text for a given response (maybe because it was skipped?) then the report will fail to generate. Adding in a conditional with placeholder text allows the report to generate rather than completely failing to provide this data to the course instructor.
The relevant stack trace for this error condition is:
|
We're not sure how to reproduce this issue, although it seems like it might be something like:
|
This PR needs tests |
Seems like this block needs some error handling to avoid edx-platform/common/lib/capa/capa/capa_problem.py Lines 664 to 675 in b580ed1
|
So, in looking into the most recent case of this, I'm finding that the problems are failing aren't multiple choice which seems at odds with the docstrings on the code. I think we need to figure out the steps to reproduce here. |
@blarghmatey I am supposed to add test in your PR, would you like to look around the @pdpinch comments over your PR here? |
@asadiqbal08 can you take this over from Tobias? I'm not sure we're fixing the right problem here, and he doesn't have time to investigate any further. |
Had a discussion with @HamzaIbnFarooq . He will join here for it on priority. |
According to my research, the issue arises in the following situations:
Finding: So the question is "Are we willing to take this issue further?" @pdpinch @asadiqbal08 Steps to reproduce: |
Thanks @HamzaIbnFarooq for the steps to reproduce. I'm going to consult with the MITx team on next steps. |
I was hoping to get some input from the MITx team about what seems the best approach here. I agree that the root cause is an authoring problem, but there isn't any validation that prevents the error and once the course is in the error state, there doesn't seem to be a way to correct it. I'm going to discuss some options with the team and make a decision about how to proceed. If you have any thoughts or suggestions, please let me know. |
0ac122e
to
a271585
Compare
@HamzaIbnFarooq do you think we should close this PR in favor of your #240? |
Yes, I believe #240 shows a huge potential for solving this issue. Edit: #240 is contaminated with some unwanted commits, the cap issue fix is done in the following commit e2b0866 |
Summarizing discussions done regarding CAPA reports generation issueMain issueWhen an author creates a multichoice question problem (like checkboxes) through the studio, without putting any text value for an answer checkbox, then the system crashes while generating problem responses report. (A detailed comment is here) Most probable solutions
Questions
cc: @pdpinch |
Does this still need to be merged, or was it replaced by #264? |
fix: escape vulnerable enrollment mode
In the current state if it is unable to find the answer text for a given response (maybe because it was skipped?) then the report will fail to generate. Adding in a conditional with placeholder text allows the report to generate rather than completely failing to provide this data to the course instructor.