Skip to end of metadata
Go to start of metadata
You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 7
Next »
Table of Drag and Drop actions:
Action | Description | Screenshot |
---|
Click to item
| Click to the Drag and Drop item:
Event: publish_event is sent. Request URL:
http://local.overhang.io:8000/courses/course-v1:d+d+d/xblock/block-v1:d+d+d+type@drag-and-drop-v2+block@92cea1db16524b0baad9edb5f7e773dc/handler/publish_event Request Method: POST Payload: (Form Data)
{"event_type":"edx.drag_and_drop_v2.item.picked_up","item_id":0} Response: {"result": "success"}
| |
Click and move item
| Click and move item to the Drag and Drop zone:
1. Event: publish_event is sent. Request URL:
http://local.overhang.io:8000/courses/course-v1:d+d+d/xblock/block-v1:d+d+d+type@drag-and-drop-v2+block@92cea1db16524b0baad9edb5f7e773dc/handler/publish_event Request Method: POST Payload: (Form Data)
{"event_type":"edx.drag_and_drop_v2.item.picked_up","item_id":0} Response: {"result": "success"}
2. Event: drop_item is sent. Request URL:
http://local.overhang.io:8000/courses/course-v1:d+d+d/xblock/block-v1:d+d+d+type@drag-and-drop-v2+block@92cea1db16524b0baad9edb5f7e773dc/handler/drop_item Request Method: POST Payload: (Form Data)
{"val":0,"zone":"top"} Response:
{
"correct": true,
"grade": 0.4,
"finished": false,
"overall_feedback": [
{
"message": "Drag the items onto the image above.",
"message_class": "initial"
}
],
"feedback": [
{
"message": "Correct! This one belongs to The Top Zone.",
"message_class": null
}
]
}
3. Event: publish_event is sent.
Request URL:
http://local.overhang.io:8000/courses/course-v1:d+d+d/xblock/block-v1:d+d+d+type@drag-and-drop-v2+block@92cea1db16524b0baad9edb5f7e773dc/handler/publish_event Request Method: POST Payload: (Form Data)
{"event_type":"edx.drag_and_drop_v2.feedback.opened","content":"Correct! This one belongs to The Top Zone.","truncated":false} Response: {"result": "success"}
| |
Close
| Close Drag and Drop feedback message: Event: publish_event is sent. Request URL:
http://local.overhang.io:8000/courses/course-v1:d+d+d/xblock/block-v1:d+d+d+type@drag-and-drop-v2+block@92cea1db16524b0baad9edb5f7e773dc/handler/publish_event Request Method: POST Payload: (Form Data)
{"event_type":"edx.drag_and_drop_v2.feedback.closed","content":"Correct! This one belongs to The Bottom Zone.","manually":true,"truncated":false} Response: {"result": "success"}
| Close feedback message. |
Chose incorrect
| Incorrect answer:
1. Event: publish_event is sent. Request URL:
http://local.overhang.io:8000/courses/course-v1:d+d+d/xblock/block-v1:d+d+d+type@drag-and-drop-v2+block@92cea1db16524b0baad9edb5f7e773dc/handler/publish_event Request Method: POST Payload: (Form Data)
{"event_type":"edx.drag_and_drop_v2.item.picked_up","item_id":4} Response: {"result": "success"} 2. Event: drop_item is sent. Request URL:
http://local.overhang.io:8000/courses/course-v1:d+d+d/xblock/block-v1:d+d+d+type@drag-and-drop-v2+block@92cea1db16524b0baad9edb5f7e773dc/handler/drop_item Request Method: POST Payload: (Form Data)
{"val":4,"zone":"middle"} Response:
{
"correct": false,
"grade": 0.6,
"finished": false,
"overall_feedback": [
{
"message": "Drag the items onto the image above.",
"message_class": "initial"
}
],
"feedback": [
{
"message": "You silly, there are no zones for this one.",
"message_class": null
}
]
}
3. Event: publish_event is sent. Request URL:
http://local.overhang.io:8000/courses/course-v1:d+d+d/xblock/block-v1:d+d+d+type@drag-and-drop-v2+block@92cea1db16524b0baad9edb5f7e773dc/handler/publish_event Request Method: POST Payload: (Form Data)
{"event_type":"edx.drag_and_drop_v2.feedback.opened","content":"You silly, there are no zones for this one.","truncated":false} Response: {"result": "success"}
| Incorrect answer. |
Reset
| Reset student answer: Event: reset is sent. Request URL:
http://local.overhang.io:8000/courses/course-v1:d+d+d/xblock/block-v1:d+d+d+type@drag-and-drop-v2+block@92cea1db16524b0baad9edb5f7e773dc/handler/reset Request Method: POST Payload: (Form Data)
{} Response:
{
"items": {},
"finished": false,
"attempts": 0,
"grade": 1.0,
"overall_feedback": [
{
"message": "Drag the items onto the image above.",
"message_class": "initial"
}
]
}
| |
| Keyboard Help. Don’t need requests and responses from server.
| |
Library content with offline mode.
The components from Library behave the same way as the components inherit from capa problem (Checkboxes, Multiple Choice, Numerical Input, Text Input etc.)
Implementation for text problem and video problem already exist.
Staff Graded Assignment actions table.
Action | Description | Screenshot |
---|
Upload assignment
| Click to the 'Upload your assignment' button and upload file (picture, audio, video, pdf): Event: upload_assignment is sent. Request URL:
http://local.edly.io:8000/courses/course-v1:f+f+f/xblock/block-v1:f+f+f+type@edx_sga+block@6e0fd8e8cb3b41bfbe8dc10cba835f0c/handler/upload_assignment Request Method: POST Payload:
------WebKitFormBoundaryeJ0dBLCR091snpxM Content-Disposition: form-data; name="assignment"; filename="smile_742751.png" Content-Type: image/png ------WebKitFormBoundaryeJ0dBLCR091snpxM--
Response:
{
"display_name": "Staff Graded Assignment",
"uploaded": {
"filename": "smile_742751.png"
},
"annotated": null,
"graded": null,
"max_score": 100,
"upload_allowed": true,
"solution": "<p>Put your question or theme here</p>",
"base_asset_url": "/asset-v1:f+f+f+type@asset+block@"
}
| |
Grade Submissions
| Press GRADE SUBMISSIONS button (it works only for the staff or course instructor) Event: get_staff_grading_data is sent. Request URL:
http://local.edly.io:8000/courses/course-v1:f+f+f/xblock/block-v1:f+f+f+type@edx_sga+block@6e0fd8e8cb3b41bfbe8dc10cba835f0c/handler/get_staff_grading_data Request Method: GET Preview:
0: {module_id: 64, student_id: "d7f90c9b193a3e02ddb7bd53ebcf2339",…}
annotated: ""
approved: false
comment: ""
filename: "smile_742751.png"
finalized: false
fullname: ""
may_grade: true
module_id: 64
needs_approval: false
score: null
student_id: "d7f90c9b193a3e02ddb7bd53ebcf2339"
submission_id: "f99d6ea6-1b3f-4c7b-9ec0-d5dfc64f3f11"
timestamp: "2024-05-16T09:05:13.228339"
username: "kyrylo"
display_name: "Staff Graded Assignment"
max_score: 100
Response:
{
"assignments": [
{
"module_id": 64,
"student_id": "d7f90c9b193a3e02ddb7bd53ebcf2339",
"submission_id": "f99d6ea6-1b3f-4c7b-9ec0-d5dfc64f3f11",
"username": "kyrylo",
"fullname": "",
"filename": "smile_742751.png",
"timestamp": "2024-05-16T09:05:13.228339",
"score": null,
"approved": false,
"needs_approval": false,
"may_grade": true,
"annotated": "",
"comment": "",
"finalized": false
}
],
"max_score": 100,
"display_name": "Staff Graded Assignment"
}
| |
Submit file
| Submit uploaded file: Event: finalize_uploaded_assignment is sent. Request URL:
http://local.edly.io:8000/courses/course-v1:f+f+f/xblock/block-v1:f+f+f+type@edx_sga+block@6e0fd8e8cb3b41bfbe8dc10cba835f0c/handler/finalize_uploaded_assignment Request Method: POST Payload: None Response:
{
"display_name": "Staff Graded Assignment",
"uploaded": {
"filename": "smile_742751.png"
},
"annotated": null,
"graded": null,
"max_score": 100,
"upload_allowed": false,
"solution": "<p>Put your question or theme here</p>",
"base_asset_url": "/asset-v1:f+f+f+type@asset+block@"
}
| |
Enter Grade
| Enter Grade in staff modal window and submit: Event: enter_grade is sent. Request URL:
http://local.edly.io:8000/courses/course-v1:f+f+f/xblock/block-v1:f+f+f+type@edx_sga+block@6e0fd8e8cb3b41bfbe8dc10cba835f0c/handler/enter_grade Request Method: POST Payload:
module_id=65&submission_id=ed9dbcb2-8a3f-4463-b026-ab28f21c13fb&grade=88&comment=Grate+job!
Response:
{
"assignments": [
{
"module_id": 65,
"student_id": "d7f90c9b193a3e02ddb7bd53ebcf2339",
"submission_id": "ed9dbcb2-8a3f-4463-b026-ab28f21c13fb",
"username": "kyrylo",
"fullname": "",
"filename": "smile_742751.png",
"timestamp": "2024-05-16T09:28:19.683966",
"score": 88,
"approved": true,
"needs_approval": false,
"may_grade": true,
"annotated": "",
"comment": "Grate job!",
"finalized": true
}
],
"max_score": 100,
"display_name": "Staff Graded Assignment"
}
| |
Upload annotated file
| Upload annotated file (for staff or instructor) Event: staff_upload_annotated is sent. Request URL:
http://local.edly.io:8000/courses/course-v1:f+f+f/xblock/block-v1:f+f+f+type@edx_sga+block@6e0fd8e8cb3b41bfbe8dc10cba835f0c/handler/staff_upload_annotated?module_id=65 Request Method: POST Payload: (Form Data)
------WebKitFormBoundaryySobLAprYkZiMA9Q
Content-Disposition: form-data; name="annotated"; filename="sad_725099.png"
Content-Type: image/png
------WebKitFormBoundaryySobLAprYkZiMA9Q--
Response:
{
"assignments": [
{
"module_id": 65,
"student_id": "d7f90c9b193a3e02ddb7bd53ebcf2339",
"submission_id": "ed9dbcb2-8a3f-4463-b026-ab28f21c13fb",
"username": "kyrylo",
"fullname": "",
"filename": "smile_742751.png",
"timestamp": "2024-05-16T09:28:19.683966",
"score": 88,
"approved": true,
"needs_approval": false,
"may_grade": true,
"annotated": "sad_725099.png",
"comment": "Grate job!",
"finalized": true
}
],
"max_score": 100,
"display_name": "Staff Graded Assignment"
}
| |
Annotatable problem table.
Requests and responses to the server almost completely correspond to those described in the capa problem article. The only difference is in the Payload of the the request problem_check
.
Action | Description | Screenshot |
---|
Submit | Submit answer and annotation: Event: problem_check is sent. Request URL:
http://local.edly.io:8000/courses/course-v1:f+f+f/xblock/block-v1:f+f+f+type@problem+block@273825134dcc433abbb012fa5e660d4d/handler/xmodule_handler/problem_check Request Method: POST Payload: (Form Data)
input_273825134dcc433abbb012fa5e660d4d_2_1_comment=Lorem+ipsum+dolor+sit+amet%2C+consectetur+adipiscing+elit.+Ut+sodales+laoreet+est%2C+egestas+gravida+felis+egestas+nec.+Aenean+at+volutpat+erat.+Cras+commodo+viverra+nibh+in+aliquam.&input_273825134dcc433abbb012fa5e660d4d_2_1=%7B%22options%22%3A%5B1%5D%2C%22comment%22%3A%22Lorem+ipsum+dolor+sit+amet%2C+consectetur+adipiscing+elit.+Ut+sodales+laoreet+est%2C+egestas+gravida+felis+egestas+nec.+Aenean+at+volutpat+erat.+Cras+commodo+viverra+nibh+in+aliquam.%22%7D
Response:
{
"success": "correct",
"contents": "\n\n\n\n<h3 class=\"hd hd-3 problem-header\" id=\"273825134dcc433abbb012fa5e660d4d-problem-title\" aria-describedby=\"block-v1:f+f+f+type@problem+block@273825134dcc433abbb012fa5e660d4d-problem-progress\" tabindex=\"-1\">\n Blank Problem\n</h3>\n\n<div class=\"problem-progress\" id=\"block-v1:f+f+f+type@problem+block@273825134dcc433abbb012fa5e660d4d-problem-progress\"></div>\n\n<div class=\"problem\">\n <div>\n <div class=\"wrapper-problem-response\" tabindex=\"-1\" aria-label=\"Question 1\" role=\"group\"><div class=\"annotation-input\">\n<div class=\"script_placeholder\" data-src=\"/static/js/capa/annotationinput.js\"/>\n\n<div class=\"annotation-header\">\n Annotation Exercise\n\n <a class=\"annotation-return\" href=\"javascript:void(0)\">Return to Annotation</a><br/>\n</div>\n<div class=\"annotation-body\">\n\n <div class=\"block block-highlight\">PLACEHOLDER: Text of annotation</div>\n <div class=\"block block-comment\">PLACEHOLDER: Text of question</div>\n\n <div class=\"block\">PLACEHOLDER: Type your response below:</div>\n <textarea class=\"comment\" id=\"input_273825134dcc433abbb012fa5e660d4d_2_1_comment\" name=\"input_273825134dcc433abbb012fa5e660d4d_2_1_comment\" aria-describedby=\"answer_273825134dcc433abbb012fa5e660d4d_2_1\">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut sodales laoreet est, egestas gravida felis egestas nec. Aenean at volutpat erat. Cras commodo viverra nibh in aliquam.</textarea>\n\n <div class=\"block\" id=\"label_273825134dcc433abbb012fa5e660d4d_2_1\">PLACEHOLDER: In your response to this question, which tag below do you choose?</div>\n <ul class=\"tags\">\n <li>\n\n <span class=\"tag \" data-id=\"0\">\n PLACEHOLDER: Incorrect answer (to make this option a correct or partially correct answer, change choice=\"incorrect\" to choice=\"correct\" or choice=\"partially-correct\")\n </span>\n </li>\n <li>\n <span class=\"tag-status correct\" aria-describedby=\"input_273825134dcc433abbb012fa5e660d4d_2_1_comment\">\n \n\n<span class=\"status correct\" data-tooltip=\"This answer is correct.\">\n <span class=\"sr\">correct</span><span class=\"status-icon\" aria-hidden=\"true\"/>\n</span>\n\n </span>\n\n <span class=\"tag selected \" data-id=\"1\">\n PLACEHOLDER: Correct answer (to make this option an incorrect or partially correct answer, change choice=\"correct\" to choice=\"incorrect\" or choice=\"partially-correct\")\n </span>\n </li>\n <li>\n\n <span class=\"tag \" data-id=\"2\">\n PLACEHOLDER: Partially correct answer (to make this option a correct or partially correct answer, change choice=\"partially-correct\" to choice=\"correct\" or choice=\"incorrect\")\n \n </span>\n </li>\n </ul>\n\n <input type=\"hidden\" class=\"value\" name=\"input_273825134dcc433abbb012fa5e660d4d_2_1\" id=\"input_273825134dcc433abbb012fa5e660d4d_2_1\" value=\"{"options":[1],"comment":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut sodales laoreet est, egestas gravida felis egestas nec. Aenean at volutpat erat. Cras commodo viverra nibh in aliquam."}\"/>\n\n \n\n<span class=\"status correct\" id=\"status_273825134dcc433abbb012fa5e660d4d_2_1\" data-tooltip=\"This answer is correct.\">\n <span class=\"sr\">correct</span><span class=\"status-icon\" aria-hidden=\"true\"/>\n</span>\n\n\n <p id=\"answer_273825134dcc433abbb012fa5e660d4d_2_1\" class=\"answer answer-annotation\"/>\n</div>\n</div></div>\n <div class=\"solution-span\">\n <span id=\"solution_273825134dcc433abbb012fa5e660d4d_solution_1\"/>\n</div></div>\n <div class=\"action\">\n <input type=\"hidden\" name=\"problem_id\" value=\"Blank Problem\" />\n\n <div class=\"problem-action-buttons-wrapper\">\n <span class=\"problem-action-button-wrapper\">\n <button type=\"button\" class=\"show problem-action-btn btn-link btn-small\" aria-describedby=\"273825134dcc433abbb012fa5e660d4d-problem-title\"><span class=\"show-label\">Show answer</span></button>\n </span>\n </div>\n <div class=\"submit-attempt-container\">\n <button type=\"button\" class=\"submit btn-brand\" data-submitting=\"Submitting\" data-value=\"Submit\" data-should-enable-submit-button=\"True\" aria-describedby=\"submission_feedback_273825134dcc433abbb012fa5e660d4d\" >\n <span class=\"submit-label\">Submit</span>\n </button>\n\n <div class=\"submission-feedback \" id=\"submission_feedback_273825134dcc433abbb012fa5e660d4d\">\n <span class=\"sr\">Some problems have options such as save, reset, hints, or show answer. These options follow the Submit button.</span>\n </div>\n </div>\n </div>\n \n\n\n<div class=\"notification warning notification-gentle-alert\n is-hidden\"\n tabindex=\"-1\">\n <span class=\"icon fa fa-exclamation-circle\" aria-hidden=\"true\"></span>\n <span class=\"notification-message\" aria-describedby=\"273825134dcc433abbb012fa5e660d4d-problem-title\">\n </span>\n <div class=\"notification-btn-wrapper\">\n <button type=\"button\" class=\"btn btn-default btn-small notification-btn review-btn sr\">Review</button>\n </div>\n</div>\n\n \n\n\n<div class=\"notification success notification-submit\n \"\n tabindex=\"-1\">\n <span class=\"icon fa fa-check\" aria-hidden=\"true\"></span>\n <span class=\"notification-message\" aria-describedby=\"273825134dcc433abbb012fa5e660d4d-problem-title\">Correct (2/2 points)\n </span>\n <div class=\"notification-btn-wrapper\">\n <button type=\"button\" class=\"btn btn-default btn-small notification-btn review-btn sr\">Review</button>\n </div>\n</div>\n\n \n\n\n<div class=\"notification warning notification-save\n is-hidden\"\n tabindex=\"-1\">\n <span class=\"icon fa fa-save\" aria-hidden=\"true\"></span>\n <span class=\"notification-message\" aria-describedby=\"273825134dcc433abbb012fa5e660d4d-problem-title\">None\n </span>\n <div class=\"notification-btn-wrapper\">\n <button type=\"button\" class=\"btn btn-default btn-small notification-btn review-btn sr\">Review</button>\n </div>\n</div>\n\n \n \n\n\n<div class=\"notification general notification-show-answer\n is-hidden\"\n tabindex=\"-1\">\n <span class=\"icon fa fa-info-circle\" aria-hidden=\"true\"></span>\n <span class=\"notification-message\" aria-describedby=\"273825134dcc433abbb012fa5e660d4d-problem-title\">Answers are displayed within the problem\n </span>\n <div class=\"notification-btn-wrapper\">\n <button type=\"button\" class=\"btn btn-default btn-small notification-btn review-btn sr\">Review</button>\n </div>\n</div>\n\n</div>\n\n<script>\n function emit_event(message) {\n parent.postMessage(message, '*');\n }\n</script>\n",
"progress_changed": true,
"current_score": 2,
"total_possible": 2,
"attempts_used": 1
}
| |