Credential Criteria Django app - #589
Closed
bryanlandia wants to merge 17 commits into
Closed
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;
Author
|
FYI @OmarIthawi @melvinsoft this is also going to be needed for Badging. |
OmarIthawi
approved these changes
May 18, 2020
…egator signal with plugin since it may not be available
Co-authored-by: Omar Al-Ithawi <i@omardo.com>
bryanlandia
force-pushed
the
appsembler/feature/credential-criteria
branch
from
May 19, 2020 17:13
92b5598 to
cc2d256
Compare
Author
|
appsembler/openedx-completion-aggregator#2 has the new Signal listed to by credential_criteria |
Author
|
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. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.