Skip to content

Commit

Permalink
Send the client info about the new create assignment endpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
marcospri committed Sep 20, 2021
1 parent 0caed52 commit 1858755
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 0 deletions.
13 changes: 13 additions & 0 deletions lms/resources/_js_config/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,18 @@ def enable_lti_launch_mode(self):
"allowedOrigins": self._request.registry.settings["rpc_allowed_origins"]
}

def _create_assignment_api(self):
if not self._context.is_canvas:
return None

return {
"path": self._request.route_path("canvas_api.assignments.create"),
"data": {
"ext_lti_assignment_id": self._request.params["ext_lti_assignment_id"],
"course_id": self._request.params["custom_canvas_course_id"],
},
}

def enable_content_item_selection_mode(self, form_action, form_fields):
"""
Put the JavaScript code into "content item selection" mode.
Expand All @@ -212,6 +224,7 @@ def enable_content_item_selection_mode(self, form_action, form_fields):
"filePicker": {
"formAction": form_action,
"formFields": form_fields,
"createAssignmentAPI": self._create_assignment_api(),
# Specific config for pickers
"blackboard": FilePickerConfig.blackboard_config(*args),
"canvas": FilePickerConfig.canvas_config(*args),
Expand Down
1 change: 1 addition & 0 deletions lms/static/scripts/frontend_apps/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ import { createContext } from 'preact';
* @typedef FilePickerConfig
* @prop {string} formAction
* @prop {Object.<string,string>} formFields
* @prop {APICallInfo} createAssignmentAPI
* @prop {Object} blackboard
* @prop {boolean} blackboard.enabled
* @prop {APICallInfo} blackboard.listFiles
Expand Down
41 changes: 41 additions & 0 deletions tests/unit/lms/resources/_js_config/__init___test.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,46 @@ def test_it_adds_picker_config(
application_instance_service.get.return_value,
)

def test_with_create_assignment_api(self, js_config, context):
context.is_canvas = True

js_config.enable_content_item_selection_mode(
mock.sentinel.form_action, mock.sentinel.form_fields
)
config = js_config.asdict()

assert config == Any.dict.containing(
{
"mode": "content-item-selection",
"filePicker": Any.dict.containing(
{
"createAssignmentAPI": {
"path": "/api/canvas/assignment",
"data": {
"ext_lti_assignment_id": "ext_lti_assignment_id",
"course_id": "test_course_id",
},
}
}
),
}
)

def test_with_create_assignment_api_non_canvas(self, js_config, context):
context.is_canvas = False

js_config.enable_content_item_selection_mode(
mock.sentinel.form_action, mock.sentinel.form_fields
)
config = js_config.asdict()

assert config == Any.dict.containing(
{
"mode": "content-item-selection",
"filePicker": Any.dict.containing({"createAssignmentAPI": None}),
}
)

@pytest.fixture(autouse=True)
def FilePickerConfig(self, patch):
return patch("lms.resources._js_config.FilePickerConfig")
Expand Down Expand Up @@ -710,6 +750,7 @@ def pyramid_request(pyramid_request):
"context_id": "test_course_id",
"custom_canvas_course_id": "test_course_id",
"custom_canvas_user_id": "test_user_id",
"ext_lti_assignment_id": "ext_lti_assignment_id",
}
)
return pyramid_request
Expand Down

0 comments on commit 1858755

Please sign in to comment.