academic-innovation / django-lti

LTI Advantage support for Django projects.
https://academic-innovation.github.io/django-lti/
MIT License
16 stars 7 forks source link

Adding serialized support for AGS Line Item instances. #53

Closed doreilly closed 1 year ago

doreilly commented 1 year ago

This is an attempt to bring AGS support to a releasable state.

LineItem storage

This PR includes an LtiLineItem model that maps to lti1p3.lineitem.LineItem instances. The interface isn't identical, so there's a conversion necessary—there's a to_line_item method, in much the same way to_registration is on LtiRegistration. Conversion from an lti1p3 instance is handled in services.ags, both for a singular instance, or for a bulk synchronization using the AGS service provided by lti1p3.

What's MVP?

Looking at #25, I think we may want to refine the acceptance criteria. Reflecting on it, I'm thinking that we may wish to leave score and result features with the tool project. I can see a case for maybe holding result instances, but I'm guessing the how and what of that may be better left to the tool. So, I suppose my proposal is to refine/iterate on the code structure of this PR, and accept the first two listed priorities of #25, while punting on the final two.

TODO

doreilly commented 1 year ago

After our conversation, it seems like the least difficult way of moving forward is to avoid codifying any platform API interfaces into the library at present, but to have a model that can house and reflect what exists on the platform. I've removed what's in this PR to just the data model (with a migration forthcoming).

I'm happy to discuss any changes (e.g. names or field nullability).