-
Notifications
You must be signed in to change notification settings - Fork 15
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
Credential Criteria Django app #589
Credential Criteria Django app #589
Conversation
The usual develop into master merge.
…ndler for completion aggregator updates
plugin signal handlers criterion types, criterion type constants, is_satisfied logic, try at generic relations/keys, beginnings of evalute/award criteria for user, UserCredentialCriterion to store user criterion status, settings for Celery routing keys, celery task for satisfying credential criterions, waffle switch to enable the app's functionality
…odel with a credential_type like badge, etc.; make an initial migration
…r LearningContextKey depending on opaque_keys version available.
… handle completion through to emitting SATISFIED_USERCRITERION signal from criterion
…iterion classes Add a cached self.criterions property to criteria model to get all criterions from all concrete criterion model classes handle criteria satisfied evalution for user after satisfied criterion signal, through to calling credential award task
…block types can be used as criterion types / to confer credentials (default course, chapter); fix award credentials task;
FYI @OmarIthawi @melvinsoft this is also going to be needed for Badging. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I checked it quickly and it looks good, I couldn't check all the logic tbh.
Edit: It's still a draft! Why did I check it? 🤷♂️
openedx/core/djangoapps/credential_criteria/migrations/0002_auto_20200515_1356.py
Outdated
Show resolved
Hide resolved
…egator signal with plugin since it may not be available
Co-authored-by: Omar Al-Ithawi <i@omardo.com>
92b5598
to
cc2d256
Compare
appsembler/openedx-completion-aggregator#2 has the new Signal listed to by credential_criteria |
Will probably pull this out into IDA |
Is this still being worked on? |
@bryanlandia I've closed this PR, please feel free to reopen it. |
Pluggable django app (only in edx-platform due to time constraints for now) to provide credential earning criteria.
A CredentialCriteria can be completed by one or more CredentialCriterions. So far only criterion model implemented is a CredentialLocationCriterion, bound to a UsageKey. Each criterion instance has a criterion type like 'completed', 'scored', 'passed', etc. which determines how we determine whether criterion is satisfied. So far only 'completed' is handled.
Signal handler implemented to listen to updated Aggregators (from completion_aggregator). When one is updated, evaluate whether any criterion are based on that aggegator's UsageKey, and if so, if the user in question has completed it.
Criteria listen to satisfied Criterions. When all are satisfied for a user, contact Credentials service to issue the credential linked to the Credential (so far only Badge supported).
Functionality enabled globally via Waffle Switch. Which block types are credential-able can be set globally in settings/env tokens and overridden in SiteConfiguration. So effectively, can be disabled on Tahoe site by site basis by keeping the default credential-able types at
[]
and enabling for some block types (like['course']
for our guinea pig clients.)Still needs tests.