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

Fix the way we handle lis_outcome_service_url #33

Open
acbart opened this issue Dec 9, 2023 · 0 comments
Open

Fix the way we handle lis_outcome_service_url #33

acbart opened this issue Dec 9, 2023 · 0 comments

Comments

@acbart
Copy link
Collaborator

acbart commented Dec 9, 2023

The lis_outcome_service_url is a field passed by LTI on launch, for certain kinds of endpoints. This is the URL that is used to actually pass grades back. If the course has this properly set in its course endpoint field, instructors can pass grades back on behalf of students. But if it's not, then only students can pass their grades back to Canvas.

Currently, I've coded the system dumb. We have a feature in the BlockPy grader dashboard to let you update the course endpoint, but it relies on whatever is in the lis_outcome_service_url session variable. That session variable gets set in a few code paths, most of which are inconvenient to reach as an instructor - basically, you need to trigger a grade for yourself.

As far as I can tell, the lis_outcome_service_url is really just based on the LTI tool ID for canvas, and that's something that will be the same across users in a course. I didn't understand that when I started using LTI, and therefore I didn't make it so that the course fixes its endpoint field whenever it first gets this information - I made it a more manual process that would be triggered by instructors.

I'm pretty sure that the proper thing to do will be to add in a codepath to the launch hook that correctly updates a fields' endpoint with the lis_outcome_service_url when it's missing that information. Then, we won't have all these issues where instructors cannot pass back grades!

As always, the devil will be the testing environment. But I think it's just a matter of getting the logic just right with the launch.

Or we could just finally upgrade to LTI 1.3 and move on with our lives...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant