learning_credentials.api.v1 package#
Submodules#
learning_credentials.api.v1.permissions module#
Django REST framework permissions.
- class learning_credentials.api.v1.permissions.CanAccessLearningContext#
Bases:
BasePermissionPermission to allow access to learning context if the user is enrolled.
- class learning_credentials.api.v1.permissions.IsAdminOrSelf#
Bases:
BasePermissionPermission to allow only admins or the user themselves to access the API.
Non-staff users cannot pass a
usernamethat is not their own.
learning_credentials.api.v1.serializers module#
API serializers for learning credentials.
- class learning_credentials.api.v1.serializers.CredentialEligibilityResponseSerializer(*args, **kwargs)#
Bases:
SerializerSerializer for the complete credential eligibility response.
- class learning_credentials.api.v1.serializers.CredentialEligibilitySerializer(*args, **kwargs)#
Bases:
SerializerSerializer for credential eligibility information with dynamic fields.
- class learning_credentials.api.v1.serializers.CredentialSerializer(*args, **kwargs)#
Bases:
ModelSerializerSerializer that returns credential metadata (for the public verification endpoint).
- class Meta#
Bases:
objectSerializer metadata.
- fields = ('user_full_name', 'created', 'learning_context_name', 'status', 'invalidation_reason')#
- model#
alias of
Credential
learning_credentials.api.v1.urls module#
API v1 URLs.
learning_credentials.api.v1.views module#
API views for Learning Credentials.
- class learning_credentials.api.v1.views.CredentialConfigurationCheckView(**kwargs)#
Bases:
APIViewAPI view to check if any credentials are configured for a specific learning context.
- get(_request: Request, learning_context_key: str) Response#
Check if any credentials are configured for the given learning context.
Example Request
GET /api/learning_credentials/v1/configured/course-v1:OpenedX+DemoX+DemoCourse/Response Values
200 OK: Request successful, returns credential configuration status.
400 Bad Request: Invalid learning context key format.
403 Forbidden: User is not authenticated or does not have permission to access the learning context.
404 Not Found: Learning context not found or user does not have access.
Example Response
{ "has_credentials": true, "credential_count": 2 }
Response Fields
has_credentials: Boolean indicating if any credentials are configuredcredential_count: Number of credential configurations available
Note
This endpoint does not perform learning context existence validation, so it will not return 404 for staff users.
- permission_classes = (<class 'rest_framework.permissions.IsAuthenticated'>, <class 'learning_credentials.api.v1.permissions.CanAccessLearningContext'>)#
- class learning_credentials.api.v1.views.CredentialEligibilityView(**kwargs)#
Bases:
APIViewAPI view for credential eligibility checking and generation.
GET: Returns detailed eligibility info for all configured credentials in a learning context.
Staff users can operate on behalf of other users via the
usernameparameter.- get(request: Request, learning_context_key: str) Response#
Get credential eligibility for a learning context.
Returns detailed eligibility information for all configured credentials, including:
Current grades and requirements for grade-based credentials
Completion percentages for completion-based credentials
Step-by-step progress for learning paths
Existing credential info if already generated
Query Parameters
username(staff only): View eligibility for a specific user.retrieval_func: Filter by credential type retrieval function (e.g.learning_credentials.processors.retrieve_subsection_grades).
Example Request
GET /api/learning_credentials/v1/eligibility/course-v1:OpenedX+DemoX+DemoCourse/Example Response
{ "context_key": "course-v1:OpenedX+DemoX+DemoCourse", "credentials": [ { "credential_type_id": 1, "name": "Certificate of Achievement", "is_eligible": true, "existing_credential": null, "current_grades": {"final exam": 86, "total": 82}, "required_grades": {"final exam": 65, "total": 80} } ] }
- permission_classes = (<class 'rest_framework.permissions.IsAuthenticated'>, <class 'learning_credentials.api.v1.permissions.IsAdminOrSelf'>, <class 'learning_credentials.api.v1.permissions.CanAccessLearningContext'>)#
- class learning_credentials.api.v1.views.CredentialMetadataView(**kwargs)#
Bases:
APIViewAPI view to retrieve credential metadata by UUID.
- get(_request: Request, uuid: str) Response#
Retrieve credential metadata by its UUID.
Example Request
GET /api/learning_credentials/v1/metadata/123e4567-e89b-12d3-a456-426614174000/Response Values
200 OK: Successfully retrieved the credential metadata.
404 Not Found: Credential not found or not valid.
Example Response
{ "user_full_name": "John Doe", "created": "2023-01-01", "learning_context_name": "Demo Course", "status": "available", "invalidation_reason": "" } { "user_full_name": "John Doe", "created": "2023-01-01", "learning_context_name": "Demo Course", "status": "invalidated", "invalidation_reason": "Reissued due to name change." }
Module contents#
Learning Credentials API v1 package.